Skip to content

Commit 850932a

Browse files
committed
Added test for String profile
1 parent 806f392 commit 850932a

File tree

2 files changed

+89
-6
lines changed

2 files changed

+89
-6
lines changed

src/main/java/info/debatty/java/stringsimilarity/examples/PrecomputedCosine.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,35 +21,36 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222
* THE SOFTWARE.
2323
*/
24-
2524
package info.debatty.java.stringsimilarity.examples;
2625

2726
import info.debatty.java.stringsimilarity.KShingling;
2827
import info.debatty.java.stringsimilarity.StringProfile;
2928

3029
/**
3130
* Example of computing cosine similarity with pre-computed profiles
31+
*
3232
* @author tibo
3333
*/
3434
public class PrecomputedCosine {
3535

3636
/**
3737
* @param args the command line arguments
38+
* @throws java.lang.Exception
3839
*/
3940
public static void main(String[] args) throws Exception {
4041
String s1 = "My first string";
4142
String s2 = "My other string...";
42-
43+
4344
// Let's work with sequences of 2 characters...
4445
KShingling ks = new KShingling(2);
45-
46+
4647
// Pre-compute the profile of strings
4748
StringProfile profile1 = ks.getProfile(s1);
4849
StringProfile profile2 = ks.getProfile(s2);
49-
50+
5051
// Prints 0.516185
5152
System.out.println(profile1.cosineSimilarity(profile2));
52-
53+
5354
}
54-
55+
5556
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/*
2+
* The MIT License
3+
*
4+
* Copyright 2015 Thibault Debatty.
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in
14+
* all copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
* THE SOFTWARE.
23+
*/
24+
25+
package info.debatty.java.stringsimilarity;
26+
27+
import info.debatty.java.utils.SparseIntegerVector;
28+
import org.junit.After;
29+
import org.junit.AfterClass;
30+
import org.junit.Before;
31+
import org.junit.BeforeClass;
32+
import org.junit.Test;
33+
import static org.junit.Assert.*;
34+
35+
/**
36+
*
37+
* @author Thibault Debatty
38+
*/
39+
public class StringProfileTest {
40+
41+
public StringProfileTest() {
42+
}
43+
44+
@BeforeClass
45+
public static void setUpClass() {
46+
}
47+
48+
@AfterClass
49+
public static void tearDownClass() {
50+
}
51+
52+
@Before
53+
public void setUp() {
54+
}
55+
56+
@After
57+
public void tearDown() {
58+
}
59+
60+
/**
61+
* Test of cosineSimilarity method, of class StringProfile.
62+
* @throws java.lang.Exception
63+
*/
64+
@Test
65+
public void testCosineSimilarity() throws Exception {
66+
System.out.println("cosineSimilarity");
67+
String s1 = "My first string";
68+
String s2 = "My other string...";
69+
70+
// Let's work with sequences of 2 characters...
71+
KShingling ks = new KShingling(2);
72+
73+
// Pre-compute the profile of strings
74+
StringProfile profile1 = ks.getProfile(s1);
75+
StringProfile profile2 = ks.getProfile(s2);
76+
77+
// Prints 0.516185
78+
assertEquals(0.516185, profile1.cosineSimilarity(profile2), 0.0001);
79+
}
80+
81+
82+
}

0 commit comments

Comments
 (0)