+ assertTrue(fixture.add(low, high, label));
+ assertEquals("", fixture.query(1));
+ }
+
+ /**
+ * Run the boolean add(long,long,String) method test several times out of
+ * order.
+ */
+ @Test
+ public void testAddMany() {
+ assertTrue(fixture.add(00, 01, "fork"));
+ assertTrue(fixture.add(02, 03, "tork"));
+ assertTrue(fixture.add(04, 07, "mork"));
+ assertTrue(fixture.add(10, 20, "zork"));
+ assertTrue(fixture.add(22, 27, "york"));
+ assertTrue(fixture.add(21, 21, "bork"));
+ assertTrue(fixture.add(28, 50, "dork"));
+ assertEquals("fork", fixture.query(0));
+ assertEquals("fork", fixture.query(1));
+ assertEquals("tork", fixture.query(2));
+ assertEquals("tork", fixture.query(3));
+ assertEquals("mork", fixture.query(4));
+ assertEquals("mork", fixture.query(5));
+ assertEquals("mork", fixture.query(6));
+ assertEquals("zork", fixture.query(10));
+ assertEquals("zork", fixture.query(19));
+ assertEquals("bork", fixture.query(21));
+ assertEquals("york", fixture.query(22));
+ }
+
+ /**
+ * Tests adding two of the same elements, this is allowed in the ctf spec
+ */
+ @Test
+ public void testDubs() {
+ assertTrue(fixture.add(00, 01, "fork"));
+ assertTrue(fixture.add(02, 03, "fork"));
+ assertNull(fixture.query(-1));
+ assertEquals("fork", fixture.query(0));
+ assertEquals("fork", fixture.query(1));
+ assertEquals("fork", fixture.query(2));
+ assertEquals("fork", fixture.query(3));
+ assertNull(fixture.query(5));
+ }
+
+ /**
+ * Tests adding two of the same elements
+ */
+ @Test
+ public void testOverlap1() {
+ assertTrue(fixture.add(00, 01, "fork"));
+ assertFalse(fixture.add(01, 03, "zork"));
+ }
+
+ /**
+ * Tests adding two of the same elements
+ */
+ @Test
+ public void testOverlap2() {
+ assertTrue(fixture.add(00, 02, "fork"));
+ assertFalse(fixture.add(01, 03, "zork"));
+ }