View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      https://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  package org.apache.commons.text.similarity;
19  
20  import static org.junit.jupiter.api.Assertions.assertEquals;
21  import static org.junit.jupiter.api.Assertions.assertNotEquals;
22  
23  import org.junit.jupiter.params.ParameterizedTest;
24  import org.junit.jupiter.params.provider.MethodSource;
25  
26  /**
27   * Tests {@link SimilarityCharacterInput}.
28   */
29  class SimilarityCharacterInputTest {
30  
31      @ParameterizedTest
32      @MethodSource("org.apache.commons.text.similarity.SimilarityInputTest#similarityInputsEquals()")
33      void testEquals(final Class<?> cls) {
34          final SimilarityInput<Object> similarityInput1 = SimilarityInputTest.build(cls, "");
35          final SimilarityInput<Object> similarityInput2 = SimilarityInputTest.build(cls, "");
36          assertEquals(similarityInput1, similarityInput2);
37          assertEquals(similarityInput1, similarityInput1);
38          assertEquals(similarityInput2, similarityInput1);
39          assertEquals(similarityInput2, similarityInput2);
40          final SimilarityInput<Object> similarityInput3 = SimilarityInputTest.build(cls, "3");
41          final SimilarityInput<Object> similarityInput4 = SimilarityInputTest.build(cls, "4");
42          assertNotEquals(similarityInput1, similarityInput4);
43          assertNotEquals(similarityInput2, similarityInput4);
44          assertNotEquals(similarityInput3, similarityInput4);
45      }
46  
47      @ParameterizedTest
48      @MethodSource("org.apache.commons.text.similarity.SimilarityInputTest#similarityInputsEquals()")
49      void testHashCode(final Class<?> cls) {
50          final SimilarityInput<Object> similarityInput1 = SimilarityInputTest.build(cls, "");
51          final SimilarityInput<Object> similarityInput2 = SimilarityInputTest.build(cls, "");
52          assertEquals(similarityInput1.hashCode(), similarityInput2.hashCode());
53          assertEquals(similarityInput1.hashCode(), similarityInput1.hashCode());
54          assertEquals(similarityInput2.hashCode(), similarityInput1.hashCode());
55          assertEquals(similarityInput2.hashCode(), similarityInput2.hashCode());
56          final SimilarityInput<Object> similarityInput3 = SimilarityInputTest.build(cls, "3");
57          final SimilarityInput<Object> similarityInput4 = SimilarityInputTest.build(cls, "4");
58          assertNotEquals(similarityInput1.hashCode(), similarityInput4.hashCode());
59          assertNotEquals(similarityInput2.hashCode(), similarityInput4.hashCode());
60          assertNotEquals(similarityInput3.hashCode(), similarityInput4.hashCode());
61      }
62  
63      @ParameterizedTest
64      @MethodSource("org.apache.commons.text.similarity.SimilarityInputTest#similarityInputsEquals()")
65      void testToString(final Class<?> cls) {
66          final SimilarityInput<Object> similarityInput1 = SimilarityInputTest.build(cls, "");
67          final SimilarityInput<Object> similarityInput2 = SimilarityInputTest.build(cls, "");
68          assertEquals(similarityInput1.toString(), similarityInput2.toString());
69          assertEquals(similarityInput1.toString(), similarityInput1.toString());
70          assertEquals(similarityInput2.toString(), similarityInput1.toString());
71          assertEquals(similarityInput2.toString(), similarityInput2.toString());
72          final SimilarityInput<Object> similarityInput3 = SimilarityInputTest.build(cls, "3");
73          final SimilarityInput<Object> similarityInput4 = SimilarityInputTest.build(cls, "4");
74          assertNotEquals(similarityInput1.toString(), similarityInput4.toString());
75          assertNotEquals(similarityInput2.toString(), similarityInput4.toString());
76          assertNotEquals(similarityInput3.toString(), similarityInput4.toString());
77      }
78  }