JAL-2446 added delete/contains to pseudo-random tests, fail fixes
[jalview.git] / test / jalview / datamodel / features / NCNodeTest.java
index 73f957e..4198fec 100644 (file)
@@ -18,7 +18,7 @@ public class NCNodeTest
   {
     Range r1 = new Range(10, 20);
     NCNode<Range> node = new NCNode<Range>(r1);
-    assertEquals(node.getStart(), 10);
+    assertEquals(node.getBegin(), 10);
     Range r2 = new Range(10, 15);
     node.add(r2);
 
@@ -36,7 +36,7 @@ public class NCNodeTest
   {
     Range r1 = new Range(10, 20);
     NCNode<Range> node = new NCNode<Range>(r1);
-    assertEquals(node.getStart(), 10);
+    assertEquals(node.getBegin(), 10);
     Range r2 = new Range(9, 15);
     node.add(r2);
   }
@@ -48,7 +48,7 @@ public class NCNodeTest
   {
     Range r1 = new Range(10, 20);
     NCNode<Range> node = new NCNode<Range>(r1);
-    assertEquals(node.getStart(), 10);
+    assertEquals(node.getBegin(), 10);
     Range r2 = new Range(12, 21);
     node.add(r2);
   }
@@ -99,4 +99,36 @@ public class NCNodeTest
     assertFalse(node.contains(sf3)); // !sf1.equals(sf3)
   }
 
+  /**
+   * Test method that checks for valid structure. Valid means that all
+   * subregions (if any) lie within the root range, and that all subregions have
+   * valid structure.
+   */
+  @Test(groups = "Functional")
+  public void testIsValid()
+  {
+    Range r1 = new Range(10, 20);
+    Range r2 = new Range(14, 15);
+    Range r3 = new Range(16, 17);
+    NCNode<Range> node = new NCNode<Range>(r1);
+    node.add(r2);
+    node.add(r3);
+
+    /*
+     * node has root range [10-20] and contains an
+     * NCList of [14-15, 16-17]
+     */
+    assertTrue(node.isValid());
+    r1.start = 15;
+    assertFalse(node.isValid()); // r2 not within r1
+    r1.start = 10;
+    assertTrue(node.isValid());
+    r1.end = 16;
+    assertFalse(node.isValid()); // r3 not within r1
+    r1.end = 20;
+    assertTrue(node.isValid());
+    r3.start = 12;
+    assertFalse(node.isValid()); // r3 should precede r2
+
+  }
 }