diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-12-13 07:03:07 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-12-13 07:03:07 +0000 |
commit | 2bc18be3d47d16c4cf25f1bc36614cf6e6a25f7b (patch) | |
tree | 00e517a3763ae5be598407983563681f0834f6a0 /vespajlib/src/test/java/com/yahoo/text | |
parent | b0098c4d582e071dae1957d38ce4dc2b915e5184 (diff) |
Add a faster, but simpler pattern matcher. Builds tensoraddresses 5 times+ faster than the regex one.
Diffstat (limited to 'vespajlib/src/test/java/com/yahoo/text')
-rw-r--r-- | vespajlib/src/test/java/com/yahoo/text/Ascii7BitMatcherTestCase.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/vespajlib/src/test/java/com/yahoo/text/Ascii7BitMatcherTestCase.java b/vespajlib/src/test/java/com/yahoo/text/Ascii7BitMatcherTestCase.java new file mode 100644 index 00000000000..3f628b109f5 --- /dev/null +++ b/vespajlib/src/test/java/com/yahoo/text/Ascii7BitMatcherTestCase.java @@ -0,0 +1,44 @@ +package com.yahoo.text; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class Ascii7BitMatcherTestCase { + @Test + public void testThatListedCharsAreLegal() { + assertTrue(new Ascii7BitMatcher("a").matches("aaaa")); + assertTrue(new Ascii7BitMatcher("ab").matches("abbbbbbbbb")); + assertTrue(new Ascii7BitMatcher("ab").matches("bbbbbbbbbba")); + assertTrue(new Ascii7BitMatcher("1").matches("1")); + } + @Test + public void requireThatNotListedCharsFail() { + assertFalse(new Ascii7BitMatcher("a").matches("b")); + } + + @Test + public void testThatLegalFirstAndRestPass() { + assertTrue(new Ascii7BitMatcher("a", "").matches("a")); + assertTrue(new Ascii7BitMatcher("a", "b").matches("abbbbbbbbb")); + assertTrue(new Ascii7BitMatcher("abc", "0123").matches("a123120")); + } + @Test + public void requireThatIllegalFirstOrSecondFail() { + assertFalse(new Ascii7BitMatcher("a", "").matches("aa")); + assertFalse(new Ascii7BitMatcher("a", "b").matches("aa")); + assertFalse(new Ascii7BitMatcher("", "a").matches("a")); + assertFalse(new Ascii7BitMatcher("a", "b").matches("bb")); + assertFalse(new Ascii7BitMatcher("a", "b").matches("abbbbbx")); + } + @Test + public void requireThatNonAsciiFailConstruction() { + try { + new Ascii7BitMatcher("aæb"); + Assert.fail("'æ' should not be allowed"); + } catch (IllegalArgumentException e) { + assertEquals("Char 'æ' at position 1 is not valid ascii 7 bit char", e.getMessage()); + } + } +} |