Clover icon

jalviewX

  1. Project Clover database Wed Oct 31 2018 15:13:58 GMT
  2. Package jalview.datamodel.features

File NCNodeTest.java

 

Code metrics

0
62
6
1
136
106
6
0.1
10.33
6
1

Classes

Class Line # Actions
NCNodeTest 17 62 6 0
1.0100%
 

Contributing tests

This file is covered by 6 tests. .

Source view

1    package jalview.datamodel.features;
2   
3    import static org.testng.Assert.assertEquals;
4    import static org.testng.Assert.assertFalse;
5    import static org.testng.Assert.assertTrue;
6   
7    import jalview.datamodel.Range;
8    import jalview.datamodel.SequenceFeature;
9   
10    import java.util.ArrayList;
11    import java.util.List;
12   
13    import junit.extensions.PA;
14   
15    import org.testng.annotations.Test;
16   
 
17    public class NCNodeTest
18    {
 
19  1 toggle @Test(groups = "Functional")
20    public void testAdd()
21    {
22  1 Range r1 = new Range(10, 20);
23  1 NCNode<Range> node = new NCNode<Range>(r1);
24  1 assertEquals(node.getBegin(), 10);
25  1 Range r2 = new Range(10, 15);
26  1 node.add(r2);
27   
28  1 List<Range> contents = new ArrayList<Range>();
29  1 node.getEntries(contents);
30  1 assertEquals(contents.size(), 2);
31  1 assertTrue(contents.contains(r1));
32  1 assertTrue(contents.contains(r2));
33    }
34   
 
35  1 toggle @Test(
36    groups = "Functional",
37    expectedExceptions = { IllegalArgumentException.class })
38    public void testAdd_invalidRangeStart()
39    {
40  1 Range r1 = new Range(10, 20);
41  1 NCNode<Range> node = new NCNode<Range>(r1);
42  1 assertEquals(node.getBegin(), 10);
43  1 Range r2 = new Range(9, 15);
44  1 node.add(r2);
45    }
46   
 
47  1 toggle @Test(
48    groups = "Functional",
49    expectedExceptions = { IllegalArgumentException.class })
50    public void testAdd_invalidRangeEnd()
51    {
52  1 Range r1 = new Range(10, 20);
53  1 NCNode<Range> node = new NCNode<Range>(r1);
54  1 assertEquals(node.getBegin(), 10);
55  1 Range r2 = new Range(12, 21);
56  1 node.add(r2);
57    }
58   
 
59  1 toggle @Test(groups = "Functional")
60    public void testGetEntries()
61    {
62  1 Range r1 = new Range(10, 20);
63  1 NCNode<Range> node = new NCNode<Range>(r1);
64  1 List<Range> entries = new ArrayList<Range>();
65   
66  1 node.getEntries(entries);
67  1 assertEquals(entries.size(), 1);
68  1 assertTrue(entries.contains(r1));
69   
70    // clearing the returned list does not affect the NCNode
71  1 entries.clear();
72  1 node.getEntries(entries);
73  1 assertEquals(entries.size(), 1);
74  1 assertTrue(entries.contains(r1));
75   
76  1 Range r2 = new Range(15, 18);
77  1 node.add(r2);
78  1 entries.clear();
79  1 node.getEntries(entries);
80  1 assertEquals(entries.size(), 2);
81  1 assertTrue(entries.contains(r1));
82  1 assertTrue(entries.contains(r2));
83    }
84   
85    /**
86    * Tests for the contains method (uses entry.equals() test)
87    */
 
88  1 toggle @Test(groups = "Functional")
89    public void testContains()
90    {
91  1 SequenceFeature sf1 = new SequenceFeature("type", "desc", 1, 10, 2f,
92    "group");
93  1 SequenceFeature sf2 = new SequenceFeature("type", "desc", 1, 10, 2f,
94    "group");
95  1 SequenceFeature sf3 = new SequenceFeature("type", "desc", 1, 10, 2f,
96    "anothergroup");
97  1 NCNode<SequenceFeature> node = new NCNode<SequenceFeature>(sf1);
98   
99  1 assertFalse(node.contains(null));
100  1 assertTrue(node.contains(sf1));
101  1 assertTrue(node.contains(sf2)); // sf1.equals(sf2)
102  1 assertFalse(node.contains(sf3)); // !sf1.equals(sf3)
103    }
104   
105    /**
106    * Test method that checks for valid structure. Valid means that all
107    * subregions (if any) lie within the root range, and that all subregions have
108    * valid structure.
109    */
 
110  1 toggle @Test(groups = "Functional")
111    public void testIsValid()
112    {
113  1 Range r1 = new Range(10, 20);
114  1 Range r2 = new Range(14, 15);
115  1 Range r3 = new Range(16, 17);
116  1 NCNode<Range> node = new NCNode<Range>(r1);
117  1 node.add(r2);
118  1 node.add(r3);
119   
120    /*
121    * node has root range [10-20] and contains an
122    * NCList of [14-15, 16-17]
123    */
124  1 assertTrue(node.isValid());
125  1 PA.setValue(r1, "start", 15);
126  1 assertFalse(node.isValid()); // r2 not within r1
127  1 PA.setValue(r1, "start", 10);
128  1 assertTrue(node.isValid());
129  1 PA.setValue(r1, "end", 16);
130  1 assertFalse(node.isValid()); // r3 not within r1
131  1 PA.setValue(r1, "end", 20);
132  1 assertTrue(node.isValid());
133  1 PA.setValue(r3, "start", 12);
134  1 assertFalse(node.isValid()); // r3 should precede r2
135    }
136    }