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          assertNotEquals(similarityInput1, null);
46          assertNotEquals(similarityInput1, new Object());
47      }
48  
49      @ParameterizedTest
50      @MethodSource("org.apache.commons.text.similarity.SimilarityInputTest#similarityInputsEquals()")
51      void testHashCode(final Class<?> cls) {
52          final SimilarityInput<Object> similarityInput1 = SimilarityInputTest.build(cls, "");
53          final SimilarityInput<Object> similarityInput2 = SimilarityInputTest.build(cls, "");
54          assertEquals(similarityInput1.hashCode(), similarityInput2.hashCode());
55          assertEquals(similarityInput1.hashCode(), similarityInput1.hashCode());
56          assertEquals(similarityInput2.hashCode(), similarityInput1.hashCode());
57          assertEquals(similarityInput2.hashCode(), similarityInput2.hashCode());
58          final SimilarityInput<Object> similarityInput3 = SimilarityInputTest.build(cls, "3");
59          final SimilarityInput<Object> similarityInput4 = SimilarityInputTest.build(cls, "4");
60          assertNotEquals(similarityInput1.hashCode(), similarityInput4.hashCode());
61          assertNotEquals(similarityInput2.hashCode(), similarityInput4.hashCode());
62          assertNotEquals(similarityInput3.hashCode(), similarityInput4.hashCode());
63      }
64  
65      @ParameterizedTest
66      @MethodSource("org.apache.commons.text.similarity.SimilarityInputTest#similarityInputsEquals()")
67      void testToString(final Class<?> cls) {
68          final SimilarityInput<Object> similarityInput1 = SimilarityInputTest.build(cls, "");
69          final SimilarityInput<Object> similarityInput2 = SimilarityInputTest.build(cls, "");
70          assertEquals(similarityInput1.toString(), similarityInput2.toString());
71          assertEquals(similarityInput1.toString(), similarityInput1.toString());
72          assertEquals(similarityInput2.toString(), similarityInput1.toString());
73          assertEquals(similarityInput2.toString(), similarityInput2.toString());
74          final SimilarityInput<Object> similarityInput3 = SimilarityInputTest.build(cls, "3");
75          final SimilarityInput<Object> similarityInput4 = SimilarityInputTest.build(cls, "4");
76          assertNotEquals(similarityInput1.toString(), similarityInput4.toString());
77          assertNotEquals(similarityInput2.toString(), similarityInput4.toString());
78          assertNotEquals(similarityInput3.toString(), similarityInput4.toString());
79      }
80  }