public void testCaseInsensitive() { // 2. Case insensitive tests. matcher = new ApproximateMatcher(); assertEquals(3, matcher.match("AbcD", "ABcdx")); matcher.setIgnoreCase(true); assertEquals(1, matcher.match(matcher.process("AbcD"), matcher.process("ABcdx"))); }
public void testFractionalMatching() { // 3. Fractional matching. matcher = new ApproximateMatcher(); assertTrue(matcher.matches("abcd", "abxy", 0.f)); assertTrue(matcher.matches("abcd", "abxy", 0.5f)); assertTrue(!matcher.matches("abcd", "abxy", 1.f)); assertTrue(matcher.matches("01234567890123456789", "01234X67890123456789", 0.5f)); assertTrue(matcher.matches("01234567890123456789", "01234X67890123456789", 0.9f)); assertTrue(!matcher.matches("01234567890123456789", "01234X67890123456789", 1.f)); }
private static void scan(String s1, String s2, int expected) { // Match forward and backwards ApproximateMatcher matcher = null; matcher = new ApproximateMatcher(5); // reuse buffer for some,not all matcher.setCompareBackwards(true); assertEquals(expected, matcher.match(matcher.process(s1), matcher.process(s2))); matcher.setCompareBackwards(false); assertEquals(expected, matcher.match(s1, s2)); // Bounded match for (int i = -1; i < expected; i++) { assertTrue( "i=" + i + ", expected=" + expected + " match=" + matcher.match(s1, s2), !matcher.matches(s1, s2, i)); } assertTrue(matcher.matches(s1, s2, expected)); assertTrue(matcher.matches(s1, s2, expected + 1)); }
public void testWhitespace() { // 4. Whitespace matcher = new ApproximateMatcher(); assertEquals(2, matcher.match(" a_", "_a ")); matcher.setIgnoreWhitespace(true); assertEquals(0, matcher.match(matcher.process(" a_"), matcher.process("_a "))); matcher = new ApproximateMatcher(); assertEquals(1, matcher.match("a b", "ab")); matcher.setIgnoreWhitespace(true); assertEquals(0, matcher.match(matcher.process("a b"), matcher.process("ab"))); matcher = new ApproximateMatcher(); assertEquals(1, matcher.match("ab", "a_b")); matcher.setIgnoreWhitespace(true); assertEquals(0, matcher.match(matcher.process("ab"), matcher.process("a_b"))); }