package no.priv.garshol.duke.comparators; import org.junit.Before; import org.junit.Test; import static junit.framework.Assert.assertEquals; public class QGramComparatorTest { private QGramComparator comp; @Before public void setup() { comp = new QGramComparator(); } @Test public void testEmpty() { assertEquals(1.0, comp.compare("", "")); } @Test public void testOneIsEmpty() { assertEquals(0.0, comp.compare("", "abc")); } @Test public void testOneIsDifferent() { assertEquals((4.0 / 6.0), comp.compare("abc def", "cab def")); } @Test public void testGail() { assertEquals((1.0 / 3.0), comp.compare("gail", "gayle")); } @Test public void testGailJaccard() { comp.setFormula(QGramComparator.Formula.JACCARD); assertEquals((1.0 / 6.0), comp.compare("gail", "gayle")); } @Test public void testGailDice() { comp.setFormula(QGramComparator.Formula.DICE); assertEquals((2.0 / 7.0), comp.compare("gail", "gayle")); } @Test public void testGail3() { comp.setQ(3); assertEquals(0.0, comp.compare("gail", "gayle")); } @Test public void testGarshol3() { comp.setQ(3); assertEquals((4.0 / 5.0), comp.compare("garshol", "garshoel")); } @Test public void testGailPositional() { comp.setTokenizer(QGramComparator.Tokenizer.POSITIONAL); assertEquals((1.0 / 3.0), comp.compare("gail", "gayle")); } @Test public void testKakadu() { assertEquals((1.0 / 2.0), comp.compare("kakadu", "cacadu")); } @Test public void testKakaduPositional() { comp.setTokenizer(QGramComparator.Tokenizer.POSITIONAL); assertEquals((2.0 / 5.0), comp.compare("kakadu", "cacadu")); } @Test public void testGailEnds() { comp.setTokenizer(QGramComparator.Tokenizer.ENDS); assertEquals((2.0 / 5.0), comp.compare("gail", "gayle")); } }