JAL-845 first working linked edit protein -> cDNA
[jalview.git] / test / jalview / util / StringUtilsTest.java
diff --git a/test/jalview/util/StringUtilsTest.java b/test/jalview/util/StringUtilsTest.java
new file mode 100644 (file)
index 0000000..eba2da4
--- /dev/null
@@ -0,0 +1,56 @@
+package jalview.util;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+
+import org.junit.Test;
+
+public class StringUtilsTest
+{
+
+  @Test
+  public void testInsertCharAt()
+  {
+    char[] c1 = "ABC".toCharArray();
+    char[] expected = new char[]
+    { 'A', 'B', 'C', 'w', 'w' };
+    assertTrue(Arrays.equals(expected,
+            StringUtils.insertCharAt(c1, 3, 2, 'w')));
+    expected = new char[]
+    { 'A', 'B', 'C', 'w', 'w' };
+    assertTrue(Arrays.equals(expected,
+            StringUtils.insertCharAt(c1, 4, 2, 'w')));
+    assertTrue(Arrays.equals(expected,
+            StringUtils.insertCharAt(c1, 5, 2, 'w')));
+    assertTrue(Arrays.equals(expected,
+            StringUtils.insertCharAt(c1, 6, 2, 'w')));
+    assertTrue(Arrays.equals(expected,
+            StringUtils.insertCharAt(c1, 7, 2, 'w')));
+  }
+
+  @Test
+  public void testDeleteChars()
+  {
+    char[] c1 = "ABC".toCharArray();
+
+    // delete second position
+    assertTrue(Arrays.equals(new char[]
+    { 'A', 'C' }, StringUtils.deleteChars(c1, 1, 2)));
+
+    // delete positions 1 and 2
+    assertTrue(Arrays.equals(new char[]
+    { 'C' }, StringUtils.deleteChars(c1, 0, 2)));
+
+    // delete positions 1-3
+    assertTrue(Arrays.equals(new char[]
+    {}, StringUtils.deleteChars(c1, 0, 3)));
+
+    // delete position 3
+    assertTrue(Arrays.equals(new char[]
+    { 'A', 'B' }, StringUtils.deleteChars(c1, 2, 3)));
+
+    // out of range deletion is ignore
+    assertTrue(Arrays.equals(c1, StringUtils.deleteChars(c1, 3, 4)));
+  }
+}