X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Futil%2FMappingUtilsTest.java;h=8cb1208bc69a9710cd6f32593cad9124a82305f5;hb=4ea2f7c6e700c5137c62a09a93d0127f8d58158b;hp=08673aeceed6777fe9125b093369f70ecfa6c08e;hpb=882ed2993331d2ce171a2bbdc7e8729f12ff603b;p=jalview.git diff --git a/test/jalview/util/MappingUtilsTest.java b/test/jalview/util/MappingUtilsTest.java index 08673ae..8cb1208 100644 --- a/test/jalview/util/MappingUtilsTest.java +++ b/test/jalview/util/MappingUtilsTest.java @@ -25,7 +25,6 @@ import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertNull; import static org.testng.AssertJUnit.assertSame; import static org.testng.AssertJUnit.assertTrue; -import static org.testng.AssertJUnit.fail; import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals; import java.awt.Color; @@ -39,7 +38,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import jalview.api.AlignViewportI; -import jalview.bin.Cache; +import jalview.bin.Console; import jalview.commands.EditCommand; import jalview.commands.EditCommand.Action; import jalview.commands.EditCommand.Edit; @@ -65,9 +64,9 @@ public class MappingUtilsTest @BeforeClass(alwaysRun = true) public void setUp() { - Cache.initLogger(); + Console.initLogger(); } - + @BeforeClass(alwaysRun = true) public void setUpJvOptionPane() { @@ -240,8 +239,8 @@ public class MappingUtilsTest .asList(new AlignedCodonFrame[] { acf }); - AlignViewportI theDnaView = new AlignViewport(cdna); - AlignViewportI theProteinView = new AlignViewport(protein); + AlignViewportI dnaView = new AlignViewport(cdna); + AlignViewportI proteinView = new AlignViewport(protein); protein.setCodonFrames(acfList); /* @@ -259,7 +258,7 @@ public class MappingUtilsTest * Verify the mapped sequence group in dna */ SequenceGroup mappedGroup = MappingUtils.mapSequenceGroup(sg, - theProteinView, theDnaView); + proteinView, dnaView); assertTrue(mappedGroup.getColourText()); assertSame(sg.getIdColour(), mappedGroup.getIdColour()); assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour()); @@ -277,7 +276,7 @@ public class MappingUtilsTest sg.addSequence(cdna.getSequenceAt(0), false); sg.setStartRes(0); sg.setEndRes(2); - mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView); + mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView); assertTrue(mappedGroup.getColourText()); assertSame(sg.getIdColour(), mappedGroup.getIdColour()); assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour()); @@ -531,8 +530,8 @@ public class MappingUtilsTest .asList(new AlignedCodonFrame[] { acf }); - AlignViewportI theDnaView = new AlignViewport(cdna); - AlignViewportI theProteinView = new AlignViewport(protein); + AlignViewportI dnaView = new AlignViewport(cdna); + AlignViewportI proteinView = new AlignViewport(protein); protein.setCodonFrames(acfList); /* @@ -552,7 +551,7 @@ public class MappingUtilsTest * Verify the mapped sequence group in dna */ SequenceGroup mappedGroup = MappingUtils.mapSequenceGroup(sg, - theProteinView, theDnaView); + proteinView, dnaView); assertTrue(mappedGroup.getColourText()); assertSame(sg.getIdColour(), mappedGroup.getIdColour()); assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour()); @@ -573,7 +572,7 @@ public class MappingUtilsTest // select columns 2 and 3 in DNA which span protein columns 0 and 1 sg.setStartRes(2); sg.setEndRes(3); - mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView); + mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView); assertTrue(mappedGroup.getColourText()); assertSame(sg.getIdColour(), mappedGroup.getIdColour()); assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour()); @@ -598,11 +597,11 @@ public class MappingUtilsTest * viewport). */ AlignmentI cdna = loadAlignment( - ">Cds11\nA-CG-GC--AT-CA\n>Cds2\n-TG-AC-AG-T-AT\n>Cds3\n-T--ACG-TAAT-G\n", + ">Seq1\nA-CG-GC--AT-CA\n>Seq2\n-TG-AC-AG-T-AT\n>Seq3\n-T--ACG-TAAT-G\n", FileFormat.Fasta); cdna.setDataset(null); AlignmentI protein = loadAlignment( - ">Pep1\n-KA-S\n>Pep2\n--L-QY\n>Pep3\nQ-V-M\n", + ">Seq1\n-KA-S\n>Seq2\n--L-QY\n>Seq3\nQ-V-M\n", FileFormat.Fasta); protein.setDataset(null); AlignedCodonFrame acf = new AlignedCodonFrame(); @@ -616,14 +615,15 @@ public class MappingUtilsTest .asList(new AlignedCodonFrame[] { acf }); - AlignViewportI theDnaView = new AlignViewport(cdna); - AlignViewportI theProteinView = new AlignViewport(protein); + AlignViewportI dnaView = new AlignViewport(cdna); + AlignViewportI proteinView = new AlignViewport(protein); protein.setCodonFrames(acfList); /* - * Select Pep1 and Pep2 in the protein, column 1 (K/-). Expect mapped - * sequence group to cover Cds1, columns 0-3 (ACG). Although the selection - * only includes a gap in Cds2, mapped Cds2 is included with 'no columns' + * Select Seq1 and Seq2 in the protein, column 1 (K/-). Expect mapped + * sequence group to cover Seq1, columns 0-3 (ACG). Because the selection + * only includes a gap in Seq2 there is no mappable selection region in the + * corresponding DNA. */ SequenceGroup sg = new SequenceGroup(); sg.setColourText(true); @@ -638,15 +638,14 @@ public class MappingUtilsTest * Verify the mapped sequence group in dna */ SequenceGroup mappedGroup = MappingUtils.mapSequenceGroup(sg, - theProteinView, theDnaView); + proteinView, dnaView); assertTrue(mappedGroup.getColourText()); assertSame(sg.getIdColour(), mappedGroup.getIdColour()); assertSame(sg.getOutlineColour(), mappedGroup.getOutlineColour()); - assertEquals(2, mappedGroup.getSequences().size()); + assertEquals(1, mappedGroup.getSequences().size()); assertSame(cdna.getSequenceAt(0), mappedGroup.getSequences().get(0)); - assertSame(cdna.getSequenceAt(1), mappedGroup.getSequences().get(1)); - // Pep2 in protein has a gap in column 1 - doesn't map to any column - // Pep1 has K which should map to columns 0-3 in Cds1 + // Seq2 in protein has a gap in column 1 - ignored + // Seq1 has K which should map to columns 0-3 in Seq1 assertEquals(0, mappedGroup.getStartRes()); assertEquals(3, mappedGroup.getEndRes()); @@ -656,7 +655,7 @@ public class MappingUtilsTest */ sg.setStartRes(2); sg.setEndRes(4); - mappedGroup = MappingUtils.mapSequenceGroup(sg, theProteinView, theDnaView); + mappedGroup = MappingUtils.mapSequenceGroup(sg, proteinView, dnaView); assertEquals(1, mappedGroup.getStartRes()); assertEquals(13, mappedGroup.getEndRes()); @@ -669,19 +668,19 @@ public class MappingUtilsTest // select columns 4,5 - includes Seq1:codon2 (A) only sg.setStartRes(4); sg.setEndRes(5); - mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView); + mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView); assertEquals(2, mappedGroup.getStartRes()); assertEquals(2, mappedGroup.getEndRes()); // add Seq2 to dna selection cols 4-5 include codons 1 and 2 (LQ) sg.addSequence(cdna.getSequenceAt(1), false); - mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView); + mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView); assertEquals(2, mappedGroup.getStartRes()); assertEquals(4, mappedGroup.getEndRes()); // add Seq3 to dna selection cols 4-5 include codon 1 (Q) sg.addSequence(cdna.getSequenceAt(2), false); - mappedGroup = MappingUtils.mapSequenceGroup(sg, theDnaView, theProteinView); + mappedGroup = MappingUtils.mapSequenceGroup(sg, dnaView, proteinView); assertEquals(0, mappedGroup.getStartRes()); assertEquals(4, mappedGroup.getEndRes()); } @@ -1330,41 +1329,32 @@ public class MappingUtilsTest assertEquals(1, ranges.size()); assertEquals(9, ranges.get(0)[1]); } - + @Test(groups = "Functional") - public void testListToArray() + public void testFindOverlap() { List ranges = new ArrayList<>(); - - int[] result = MappingUtils.listToArray(ranges); - assertEquals(result.length, 0); - ranges.add(new int[] {24, 12}); - result = MappingUtils.listToArray(ranges); - assertEquals(result.length, 2); - assertEquals(result[0], 24); - assertEquals(result[1], 12); - ranges.add(new int[] {-7, 30}); - result = MappingUtils.listToArray(ranges); - assertEquals(result.length, 4); - assertEquals(result[0], 24); - assertEquals(result[1], 12); - assertEquals(result[2], -7); - assertEquals(result[3], 30); - try - { - MappingUtils.listToArray(null); - fail("Expected exception"); - } catch (NullPointerException e) - { - // expected - } + ranges.add(new int[] { 4, 8 }); + ranges.add(new int[] { 10, 12 }); + ranges.add(new int[] { 16, 19 }); + + int[] overlap = MappingUtils.findOverlap(ranges, 5, 13); + assertArrayEquals(overlap, new int[] { 5, 12 }); + overlap = MappingUtils.findOverlap(ranges, -100, 100); + assertArrayEquals(overlap, new int[] { 4, 19 }); + overlap = MappingUtils.findOverlap(ranges, 7, 17); + assertArrayEquals(overlap, new int[] { 7, 17 }); + overlap = MappingUtils.findOverlap(ranges, 13, 15); + assertNull(overlap); } /** * Test mapping a sequence group where sequences in and outside the group * share a dataset sequence (e.g. alternative CDS for the same gene) *

- * This scenario doesn't arise after JAL-3763 changes, but test left as still valid + * This scenario doesn't arise after JAL-3763 changes, but test left as still + * valid + * * @throws IOException */ @Test(groups = { "Functional" }) @@ -1460,22 +1450,4 @@ public class MappingUtilsTest assertEquals(0, mappedGroup.getStartRes()); assertEquals(1, mappedGroup.getEndRes()); // two columns } - - @Test(groups = "Functional") - public void testFindOverlap() - { - List ranges = new ArrayList<>(); - ranges.add(new int[] {4, 8}); - ranges.add(new int[] {10, 12}); - ranges.add(new int[] {16, 19}); - - int[] overlap = MappingUtils.findOverlap(ranges, 5, 13); - assertArrayEquals(overlap, new int[] {5, 12}); - overlap = MappingUtils.findOverlap(ranges, -100, 100); - assertArrayEquals(overlap, new int[] {4, 19}); - overlap = MappingUtils.findOverlap(ranges, 7, 17); - assertArrayEquals(overlap, new int[] {7, 17}); - overlap = MappingUtils.findOverlap(ranges, 13, 15); - assertNull(overlap); - } }