+
+ @Test(groups ={ "Functional" })
+ public void testFindMappingsForSequence()
+ {
+ SequenceI seq1 = new Sequence("Seq1", "ABC");
+ SequenceI seq2 = new Sequence("Seq2", "ABC");
+ SequenceI seq3 = new Sequence("Seq3", "ABC");
+ SequenceI seq4 = new Sequence("Seq4", "ABC");
+ seq1.createDatasetSequence();
+ seq2.createDatasetSequence();
+ seq3.createDatasetSequence();
+ seq4.createDatasetSequence();
+
+ /*
+ * Create mappings from seq1 to seq2, seq2 to seq1, seq3 to seq1
+ */
+ AlignedCodonFrame acf1 = new AlignedCodonFrame();
+ MapList map = new MapList(new int[]
+ { 1, 3 }, new int[]
+ { 1, 3 },1, 1);
+ acf1.addMap(seq1.getDatasetSequence(), seq2.getDatasetSequence(), map);
+ AlignedCodonFrame acf2 = new AlignedCodonFrame();
+ acf2.addMap(seq2.getDatasetSequence(), seq1.getDatasetSequence(), map);
+ AlignedCodonFrame acf3 = new AlignedCodonFrame();
+ acf3.addMap(seq3.getDatasetSequence(), seq1.getDatasetSequence(), map);
+
+ Set<AlignedCodonFrame> mappings = new HashSet<AlignedCodonFrame>();
+ mappings.add(acf1);
+ mappings.add(acf2);
+ mappings.add(acf3);
+
+ /*
+ * Seq1 has three mappings
+ */
+ List<AlignedCodonFrame> result = MappingUtils.findMappingsForSequence(
+ seq1, mappings);
+ assertEquals(3, result.size());
+ assertTrue(result.contains(acf1));
+ assertTrue(result.contains(acf2));
+ assertTrue(result.contains(acf3));
+
+ /*
+ * Seq2 has two mappings
+ */
+ result = MappingUtils.findMappingsForSequence(seq2, mappings);
+ assertEquals(2, result.size());
+ assertTrue(result.contains(acf1));
+ assertTrue(result.contains(acf2));
+
+ /*
+ * Seq3 has one mapping
+ */
+ result = MappingUtils.findMappingsForSequence(seq3, mappings);
+ assertEquals(1, result.size());
+ assertTrue(result.contains(acf3));
+
+ /*
+ * Seq4 has no mappings
+ */
+ result = MappingUtils.findMappingsForSequence(seq4, mappings);
+ assertEquals(0, result.size());
+
+ result = MappingUtils.findMappingsForSequence(null, mappings);
+ assertEquals(0, result.size());
+
+ result = MappingUtils.findMappingsForSequence(seq1, null);
+ assertEquals(0, result.size());
+
+ result = MappingUtils.findMappingsForSequence(null, null);
+ assertEquals(0, result.size());
+}