1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.text.similarity;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20
21 import java.util.stream.Stream;
22
23 import org.junit.jupiter.params.ParameterizedTest;
24 import org.junit.jupiter.params.provider.Arguments;
25 import org.junit.jupiter.params.provider.MethodSource;
26
27
28
29
30
31
32 public class ParameterizedSimilarityScoreFromTest<R> {
33
34 public static Stream<Arguments> parameters() {
35 return Stream.of(Arguments.of(LevenshteinDistance.getDefaultInstance(), "elephant", "hippo", 7),
36 Arguments.of(LevenshteinDistance.getDefaultInstance(), "hippo", "elephant", 7),
37 Arguments.of(LevenshteinDistance.getDefaultInstance(), "hippo", "zzzzzzzz", 8),
38 Arguments.of((SimilarityScore<Boolean>) (left, right) -> left == right || left != null && left.equals(right), "Bob's your uncle.",
39 "Every good boy does fine.", false));
40 }
41
42 @ParameterizedTest
43 @MethodSource("parameters")
44 void test(final SimilarityScore<R> similarityScore, final CharSequence left, final CharSequence right, final R distance) {
45 final SimilarityScoreFrom<R> similarityScoreFrom = new SimilarityScoreFrom<>(similarityScore, left);
46 assertEquals(distance, similarityScoreFrom.apply(right));
47 }
48 }