package no.priv.garshol.duke.comparators;
import org.junit.Before;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;
public class LongestCommonSubstringTest {
private LongestCommonSubstring comp;
@Before
public void setup() {
this.comp = new LongestCommonSubstring();
}
// tests for the comparator
@Test
public void testEmpty() {
assertEquals(1.0, comp.compare("", ""));
}
@Test
public void testEmpty2() {
assertEquals(0.0, comp.compare("", "foo"));
}
@Test
public void testComparatorEqual() {
assertEquals(1.0, comp.compare("foo", "foo"));
}
@Test
public void testComparatorTotallyDifferent() {
assertEquals(0.0, comp.compare("foo", "bar"));
}
@Test
public void testChristen5_21() {
assertEquals(8 / (double) 14, comp.compare("peter christen", "christian pedro"));
}
@Test
public void testChristen5_21b() {
comp.setMinimumLength(4);
assertEquals(6 / (double) 14, comp.compare("peter christen", "christian pedro"));
}
@Test
public void testChristen5_21c() {
comp.setMinimumLength(4);
assertEquals(13 / (double) 14, comp.compare("peter christen", "christen peter"));
}
@Test
public void testSelf() {
assertEquals(1.0, comp.compare("lars marius garshol", "lars garshol"));
}
@Test
public void testSymmetric() {
assertEquals(comp.compare("papr", "prap"),
comp.compare("prap", "papr"));
}
@Test
public void testHotels() {
assertEquals(8 / (double) 11,
comp.compare("the waldorf hilton", "one aldwych"));
}
@Test
public void testHotels2() {
comp.setMinimumLength(3);
assertEquals(6 / (double) 11,
comp.compare("the waldorf hilton", "one aldwych"));
}
@Test
public void testJaccard1() {
comp.setFormula(LongestCommonSubstring.Formula.JACCARD);
assertEquals(8 / (double) 21, comp.compare("peter christen", "christian pedro"));
}
@Test
public void testJaccard2() {
comp.setFormula(LongestCommonSubstring.Formula.JACCARD);
assertEquals(13 / (double) 15, comp.compare("peter christen", "christen peter"));
}
@Test
public void testDice1() {
comp.setFormula(LongestCommonSubstring.Formula.DICE);
assertEquals(16 / (double) 29, comp.compare("peter christen", "christian pedro"));
}
@Test
public void testDice2() {
comp.setFormula(LongestCommonSubstring.Formula.DICE);
assertEquals(13 / (double) 14, comp.compare("peter christen", "christen peter"));
}
}