summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/test/java/com/yahoo/text
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-12-13 07:03:07 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-12-13 07:03:07 +0000
commit2bc18be3d47d16c4cf25f1bc36614cf6e6a25f7b (patch)
tree00e517a3763ae5be598407983563681f0834f6a0 /vespajlib/src/test/java/com/yahoo/text
parentb0098c4d582e071dae1957d38ce4dc2b915e5184 (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.java44
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());
+ }
+ }
+}