1 package jalview.structure;
3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertTrue;
6 import jalview.datamodel.AlignedCodonFrame;
8 import java.util.HashSet;
11 import org.testng.annotations.BeforeMethod;
12 import org.testng.annotations.Test;
14 public class StructureSelectionManagerTest
16 private StructureSelectionManager ssm;
18 @BeforeMethod(alwaysRun = true)
21 ssm = new StructureSelectionManager();
24 @Test(groups ={ "Functional" })
25 public void testAddMapping()
27 AlignedCodonFrame acf1 = new AlignedCodonFrame();
28 AlignedCodonFrame acf2 = new AlignedCodonFrame();
34 assertEquals(1, ssm.seqmappings.size());
35 assertTrue(ssm.seqmappings.contains(acf1));
36 assertEquals(1, ssm.getMappingReferenceCount(acf1));
42 assertEquals(2, ssm.seqmappings.size());
43 assertTrue(ssm.seqmappings.contains(acf1));
44 assertTrue(ssm.seqmappings.contains(acf2));
45 assertEquals(1, ssm.getMappingReferenceCount(acf1));
46 assertEquals(1, ssm.getMappingReferenceCount(acf2));
49 * A second reference to the first mapping.
52 assertEquals(2, ssm.seqmappings.size());
53 assertTrue(ssm.seqmappings.contains(acf1));
54 assertTrue(ssm.seqmappings.contains(acf2));
55 assertEquals(2, ssm.getMappingReferenceCount(acf1));
56 assertEquals(1, ssm.getMappingReferenceCount(acf2));
59 @Test(groups ={ "Functional" })
60 public void testAddMappings()
62 AlignedCodonFrame acf1 = new AlignedCodonFrame();
63 AlignedCodonFrame acf2 = new AlignedCodonFrame();
64 AlignedCodonFrame acf3 = new AlignedCodonFrame();
66 Set<AlignedCodonFrame> set1 = new HashSet<AlignedCodonFrame>();
69 Set<AlignedCodonFrame> set2 = new HashSet<AlignedCodonFrame>();
74 * Adding both sets adds acf2 twice and acf1 and acf3 once each.
76 ssm.addMappings(set1);
77 ssm.addMappings(set2);
79 assertEquals(3, ssm.seqmappings.size());
80 assertTrue(ssm.seqmappings.contains(acf1));
81 assertTrue(ssm.seqmappings.contains(acf2));
82 assertTrue(ssm.seqmappings.contains(acf3));
83 assertEquals(1, ssm.getMappingReferenceCount(acf1));
84 assertEquals(2, ssm.getMappingReferenceCount(acf2));
85 assertEquals(1, ssm.getMappingReferenceCount(acf3));
88 @Test(groups ={ "Functional" })
89 public void testRemoveMapping()
91 AlignedCodonFrame acf1 = new AlignedCodonFrame();
92 AlignedCodonFrame acf2 = new AlignedCodonFrame();
95 * Add one and remove it.
98 ssm.removeMapping(acf1);
99 ssm.removeMapping(acf2);
100 assertEquals(0, ssm.seqmappings.size());
101 assertEquals(0, ssm.getMappingReferenceCount(acf1));
102 assertEquals(0, ssm.getMappingReferenceCount(acf2));
105 * Add one twice and remove it once.
107 ssm.addMapping(acf1);
108 ssm.addMapping(acf2);
109 ssm.addMapping(acf1);
110 ssm.removeMapping(acf1);
111 assertEquals(2, ssm.seqmappings.size());
112 assertTrue(ssm.seqmappings.contains(acf1));
113 assertTrue(ssm.seqmappings.contains(acf2));
114 assertEquals(1, ssm.getMappingReferenceCount(acf1));
115 assertEquals(1, ssm.getMappingReferenceCount(acf2));
118 * Remove both once more to clear the set.
120 ssm.removeMapping(acf1);
121 ssm.removeMapping(acf2);
122 assertEquals(0, ssm.seqmappings.size());
123 assertEquals(0, ssm.getMappingReferenceCount(acf1));
124 assertEquals(0, ssm.getMappingReferenceCount(acf2));
127 @Test(groups ={ "Functional" })
128 public void testRemoveMappings()
130 AlignedCodonFrame acf1 = new AlignedCodonFrame();
131 AlignedCodonFrame acf2 = new AlignedCodonFrame();
132 AlignedCodonFrame acf3 = new AlignedCodonFrame();
135 * Initial ref counts are 3/2/1:
137 ssm.addMapping(acf1);
138 ssm.addMapping(acf1);
139 ssm.addMapping(acf1);
140 ssm.addMapping(acf2);
141 ssm.addMapping(acf2);
142 ssm.addMapping(acf3);
144 Set<AlignedCodonFrame> set1 = new HashSet<AlignedCodonFrame>();
147 Set<AlignedCodonFrame> set2 = new HashSet<AlignedCodonFrame>();
152 * Remove one ref each to acf1, acf2, counts are now 2/1/1:
154 ssm.removeMappings(set1);
155 assertEquals(3, ssm.seqmappings.size());
156 assertTrue(ssm.seqmappings.contains(acf1));
157 assertTrue(ssm.seqmappings.contains(acf2));
158 assertTrue(ssm.seqmappings.contains(acf3));
159 assertEquals(2, ssm.getMappingReferenceCount(acf1));
160 assertEquals(1, ssm.getMappingReferenceCount(acf2));
161 assertEquals(1, ssm.getMappingReferenceCount(acf3));
164 * Remove one ref each to acf2, acf3 - they are removed
166 ssm.removeMappings(set2);
167 assertEquals(1, ssm.seqmappings.size());
168 assertTrue(ssm.seqmappings.contains(acf1));
169 assertEquals(2, ssm.getMappingReferenceCount(acf1));