summaryrefslogtreecommitdiff
path: root/src/test/java/bjc/everge
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2019-07-02 16:59:14 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2019-07-02 16:59:14 -0400
commit5a1b096b47fbcca7e9cc6a24db558128f4cdd87f (patch)
tree8e5046c58978e0fd62a2758889cf61defdd807b5 /src/test/java/bjc/everge
parent20000281fc88c188eb81d9d3d954119725a03ca6 (diff)
Convert to using ControlledString
All of the places that parse controls now use ControlledString instead of doing their own stuff. -\(o-o)/-
Diffstat (limited to 'src/test/java/bjc/everge')
-rw-r--r--src/test/java/bjc/everge/ControlledStringTest.java42
-rw-r--r--src/test/java/bjc/everge/ReplPairTest.java2
-rw-r--r--src/test/java/bjc/everge/StringUtilsTest.java38
-rw-r--r--src/test/java/bjc/everge/TestUtils.java72
4 files changed, 118 insertions, 36 deletions
diff --git a/src/test/java/bjc/everge/ControlledStringTest.java b/src/test/java/bjc/everge/ControlledStringTest.java
new file mode 100644
index 0000000..8d76354
--- /dev/null
+++ b/src/test/java/bjc/everge/ControlledStringTest.java
@@ -0,0 +1,42 @@
+package bjc.everge;
+
+import bjc.everge.ControlledString.Control;
+
+import org.junit.Test;
+
+import static bjc.everge.ControlledString.Control.C;
+import static bjc.everge.TestUtils.*;
+
+import static org.junit.Assert.*;
+
+/**
+ * Test for ControlledString.
+ *
+ * @author Ben Culkin
+ */
+public class ControlledStringTest {
+ @Test
+ public void testNoControls() {
+ assertIsControl("a", "a");
+ assertIsControl("abc", "abc");
+ }
+
+ @Test
+ public void testSimpleControls() {
+ assertIsControl("//a//", "", C("a"));
+ assertIsControl("//a;b//", "", C("a"), C("b"));
+ assertIsControl("//a;b;c//", "", C("a"), C("b"), C("c"));
+ }
+
+ @Test
+ public void testArgedControls() {
+ assertIsControl("//a/b//", "", C("a", "b"));
+ assertIsControl("//a/b;c//", "", C("a", "b"), C("c"));
+ assertIsControl("//a/b;c/1/2//", "", C("a", "b"), C("c", "1", "2"));
+ }
+
+ @Test
+ public void testMixedControls() {
+ assertIsControl("//a//b", "b", C("a"));
+ }
+}
diff --git a/src/test/java/bjc/everge/ReplPairTest.java b/src/test/java/bjc/everge/ReplPairTest.java
index 7c87160..8edb42e 100644
--- a/src/test/java/bjc/everge/ReplPairTest.java
+++ b/src/test/java/bjc/everge/ReplPairTest.java
@@ -52,7 +52,7 @@ public class ReplPairTest {
@Test
public void testReplaceExpOrder() {
- assertMultiReplace("data/test/test5.rp", "a", "a", "aa", "ab");
+ assertMultiReplace(false, "data/test/test5.rp", "a", "a", "aa", "ab");
}
@Test
diff --git a/src/test/java/bjc/everge/StringUtilsTest.java b/src/test/java/bjc/everge/StringUtilsTest.java
index b20e074..bba5e11 100644
--- a/src/test/java/bjc/everge/StringUtilsTest.java
+++ b/src/test/java/bjc/everge/StringUtilsTest.java
@@ -6,8 +6,15 @@ import java.util.List;
import org.junit.Test;
+import static bjc.everge.TestUtils.*;
+
import static org.junit.Assert.*;
+/**
+ * Test for StringUtils.
+ *
+ * @author Ben Culkin
+ */
public class StringUtilsTest {
@Test
public void testNullSplit() {
@@ -48,35 +55,4 @@ public class StringUtilsTest {
assertSplitsTo("a/", "|", "/", "a");
}
- private void assertSplitsTo(String inp, String esc, String splat, String... right) {
- assertSplitsTo(false, inp, esc, splat, right);
- }
-
- private void assertSplitsTo(boolean doLog, String inp, String esc, String splat, String... right) {
- try {
- if (doLog) StringUtils.isDebug = true;
-
- String[] lst = StringUtils.escapeSplit(esc, splat, inp);
-
- if (doLog) {
- System.err.printf("[TRACE] Returned ");
-
- for (String str : lst) {
- System.err.printf("(%s) ", str);
- }
-
- System.err.println();
- }
-
- assertArrayEquals(right, lst);
- } catch (Exception ex) {
- System.err.println("EXCEPTION");
- ex.printStackTrace();
- System.err.println();
-
- assertTrue(false);
- } finally {
- if (doLog) StringUtils.isDebug = false;
- }
- }
}
diff --git a/src/test/java/bjc/everge/TestUtils.java b/src/test/java/bjc/everge/TestUtils.java
index 2b9dc8d..e30a74e 100644
--- a/src/test/java/bjc/everge/TestUtils.java
+++ b/src/test/java/bjc/everge/TestUtils.java
@@ -1,5 +1,8 @@
package bjc.everge;
+import bjc.everge.ControlledString.Control;
+import bjc.everge.ControlledString.ParseStrings;
+
import java.io.FileInputStream;
import java.io.IOException;
@@ -61,8 +64,13 @@ public class TestUtils {
}
public static void assertMultiReplace(boolean logRep, String fle, String... inps) {
- if (inps.length < 2) throw new IllegalArgumentException("ERROR: Must provide at least two strings to assertMultiReplace");
- if (inps.length % 2 != 0) throw new IllegalArgumentException("ERROR: Odd number of strings passed to assertMultiReplace");
+ if (inps.length < 2) {
+ throw new IllegalArgumentException("ERROR: Must provide at least two strings to assertMultiReplace");
+ }
+
+ if (inps.length % 2 != 0) {
+ throw new IllegalArgumentException("ERROR: Odd number of strings passed to assertMultiReplace");
+ }
List<ReplPair> lrp = null;
@@ -98,7 +106,9 @@ public class TestUtils {
}
public static void assertReplacesTo(boolean logRep, String right, List<ReplPair> rps, String inp) {
- if (logRep) System.err.printf("\t[LOG] Checking '%s' -> '%s'\n", inp, right);
+ if (logRep) {
+ System.err.printf("\t[LOG] Checking '%s' -> '%s'\n", inp, right);
+ }
String tmp = inp;
@@ -107,9 +117,63 @@ public class TestUtils {
tmp = rp.apply(tmp);
- if (logRep) System.err.printf("\t[LOG] '%s' -> '%s'\t%s\n", oldTmp, tmp, rp);
+ if (logRep) {
+ System.err.printf("\t\t[LOG-STEP] '%s' -> '%s'\t%s\n", oldTmp, tmp, rp);
+ }
}
assertEquals(right, tmp);
}
+
+ public static void assertSplitsTo(String inp, String esc, String splat, String... right) {
+ assertSplitsTo(false, inp, esc, splat, right);
+ }
+
+ public static void assertSplitsTo(boolean doLog, String inp, String esc, String splat, String... right) {
+ try {
+ if (doLog) StringUtils.isDebug = true;
+
+ String[] lst = StringUtils.escapeSplit(esc, splat, inp);
+
+ if (doLog) {
+ System.err.printf("[TRACE] Returned ");
+
+ for (String str : lst) {
+ System.err.printf("(%s) ", str);
+ }
+
+ System.err.println();
+ }
+
+ assertArrayEquals(right, lst);
+ } catch (Exception ex) {
+ System.err.println("EXCEPTION");
+ ex.printStackTrace();
+ System.err.println();
+
+ assertTrue(false);
+ } finally {
+ if (doLog) StringUtils.isDebug = false;
+ }
+ }
+
+ public static void assertIsControl(String inp, String strang, Control... args) {
+ assertIsControl(false, inp, strang, args);
+ }
+
+ public static void assertIsControl(boolean doLog, String inp, String strang, Control... args) {
+ ControlledString cs = ControlledString.parse(inp, new ParseStrings("//", ";", "/", "|"));
+
+ if (doLog) {
+ System.err.printf("[LOG] CS: %s\n", cs);
+ }
+
+ assertEquals(strang, cs.strang);
+
+ assertEquals("array length mismatch:", args.length, cs.count());
+
+ for (int i = 0; i < args.length; i++) {
+ assertEquals("array value mismatch:", args[i], cs.controls[i]);
+ }
+ }
}