X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Futil%2FMappingUtilsTest.java;h=095ab1b5facef1b16a47afd05bbd35a3ae354fc8;hb=a7e367109fb4cc5dbc5dfb0b3838c9b12bf86343;hp=7100381d38a178d458f4dfe9afd34f1c6a81bc8c;hpb=f225620636ce3b7ec768b4bed98ba000f09efc2a;p=jalview.git diff --git a/test/jalview/util/MappingUtilsTest.java b/test/jalview/util/MappingUtilsTest.java index 7100381..095ab1b 100644 --- a/test/jalview/util/MappingUtilsTest.java +++ b/test/jalview/util/MappingUtilsTest.java @@ -23,6 +23,7 @@ package jalview.util; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertSame; import static org.testng.AssertJUnit.assertTrue; +import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals; import jalview.api.AlignViewportI; import jalview.commands.EditCommand; @@ -855,4 +856,59 @@ public class MappingUtilsTest assertEquals("[0, 3]", Arrays.toString(hidden.get(0))); assertEquals("[5, 10]", Arrays.toString(hidden.get(1))); } + + /** + * Tests for the method that removes the trailing stop codon from a mapping + * range i.e. the last 3 positions (whether split or not) + */ + @Test(groups = { "Functional" }) + public void testUnmapStopCodon() + { + List ranges = new ArrayList(); + + // simple case, forward strand: + ranges.add(new int[] { 1, 3 }); + ranges.add(new int[] { 9, 14 }); + MappingUtils.unmapStopCodon(ranges, 9); + assertEquals(2, ranges.size()); + assertArrayEquals(new int[] { 1, 3 }, ranges.get(0)); + assertArrayEquals(new int[] { 9, 11 }, ranges.get(1)); + + // split stop codon, forward strand: + ranges.clear(); + ranges.add(new int[] { 1, 8 }); + ranges.add(new int[] { 10, 10 }); + MappingUtils.unmapStopCodon(ranges, 9); + assertEquals(1, ranges.size()); + assertArrayEquals(new int[] { 1, 6 }, ranges.get(0)); + + // very split stop codon, forward strand: + ranges.clear(); + ranges.add(new int[] { 1, 1 }); + ranges.add(new int[] { 3, 4 }); + ranges.add(new int[] { 6, 6 }); + ranges.add(new int[] { 8, 8 }); + ranges.add(new int[] { 10, 10 }); + MappingUtils.unmapStopCodon(ranges, 6); + assertEquals(2, ranges.size()); + assertArrayEquals(new int[] { 1, 1 }, ranges.get(0)); + assertArrayEquals(new int[] { 3, 4 }, ranges.get(1)); + + // simple case, reverse strand: + ranges.clear(); + ranges.add(new int[] { 12, 10 }); + ranges.add(new int[] { 6, 1 }); + MappingUtils.unmapStopCodon(ranges, 9); + assertEquals(2, ranges.size()); + assertArrayEquals(new int[] { 12, 10 }, ranges.get(0)); + assertArrayEquals(new int[] { 6, 4 }, ranges.get(1)); + + // split stop codon, reverse strand: + ranges.clear(); + ranges.add(new int[] { 12, 6 }); + ranges.add(new int[] { 4, 3 }); + MappingUtils.unmapStopCodon(ranges, 9); + assertEquals(1, ranges.size()); + assertArrayEquals(new int[] { 12, 7 }, ranges.get(0)); + } }