package jalview.datamodel.features; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; import jalview.datamodel.SequenceFeature; import java.util.ArrayList; import java.util.List; import org.testng.annotations.Test; public class NCNodeTest { @Test(groups = "Functional") public void testAdd() { Range r1 = new Range(10, 20); NCNode node = new NCNode(r1); assertEquals(node.getStart(), 10); Range r2 = new Range(10, 15); node.add(r2); List contents = new ArrayList(); node.getEntries(contents); assertEquals(contents.size(), 2); assertTrue(contents.contains(r1)); assertTrue(contents.contains(r2)); } @Test( groups = "Functional", expectedExceptions = { IllegalArgumentException.class }) public void testAdd_invalidRangeStart() { Range r1 = new Range(10, 20); NCNode node = new NCNode(r1); assertEquals(node.getStart(), 10); Range r2 = new Range(9, 15); node.add(r2); } @Test( groups = "Functional", expectedExceptions = { IllegalArgumentException.class }) public void testAdd_invalidRangeEnd() { Range r1 = new Range(10, 20); NCNode node = new NCNode(r1); assertEquals(node.getStart(), 10); Range r2 = new Range(12, 21); node.add(r2); } @Test(groups = "Functional") public void testGetEntries() { Range r1 = new Range(10, 20); NCNode node = new NCNode(r1); List entries = new ArrayList(); node.getEntries(entries); assertEquals(entries.size(), 1); assertTrue(entries.contains(r1)); // clearing the returned list does not affect the NCNode entries.clear(); node.getEntries(entries); assertEquals(entries.size(), 1); assertTrue(entries.contains(r1)); Range r2 = new Range(15, 18); node.add(r2); entries.clear(); node.getEntries(entries); assertEquals(entries.size(), 2); assertTrue(entries.contains(r1)); assertTrue(entries.contains(r2)); } /** * Tests for the contains method (uses entry.equals() test) */ @Test(groups = "Functional") public void testContains() { SequenceFeature sf1 = new SequenceFeature("type", "desc", 1, 10, 2f, "group"); SequenceFeature sf2 = new SequenceFeature("type", "desc", 1, 10, 2f, "group"); SequenceFeature sf3 = new SequenceFeature("type", "desc", 1, 10, 2f, "anothergroup"); NCNode node = new NCNode(sf1); assertFalse(node.contains(null)); assertTrue(node.contains(sf1)); assertTrue(node.contains(sf2)); // sf1.equals(sf2) assertFalse(node.contains(sf3)); // !sf1.equals(sf3) } }