1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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.assertThrows;
22
23 import java.util.HashMap;
24 import java.util.Map;
25
26 import org.junit.jupiter.api.Test;
27
28 class CosineSimilarityTest {
29
30 @Test
31 void testCosineSimilarityReturningDoubleWhereByteValueIsZero() {
32 final Map<CharSequence, Integer> hashMap = new HashMap<>();
33 assertEquals(0.0, CosineSimilarity.INSTANCE.cosineSimilarity(hashMap, hashMap), 0.01);
34 }
35
36 @Test
37 void testCosineSimilarityThrowsIllegalArgumentException() {
38 assertThrows(IllegalArgumentException.class, () -> CosineSimilarity.INSTANCE.cosineSimilarity(new HashMap<>(), null));
39 }
40
41 @Test
42 void testCosineSimilarityWithNonEmptyMap() {
43 final Map<CharSequence, Integer> hashMap = new HashMap<>();
44 final Integer integer = -397;
45 hashMap.put("3J/$3.L", integer);
46 final Map<CharSequence, Integer> hashMapTwo = new HashMap<>();
47 assertEquals(0.0, CosineSimilarity.INSTANCE.cosineSimilarity(hashMap, hashMapTwo), 0.01);
48 }
49
50 @Test
51 void testCosineSimilarityWithNull() {
52 assertThrows(IllegalArgumentException.class, () -> CosineSimilarity.INSTANCE.cosineSimilarity(null, null));
53 }
54
55 }