X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=test%2Fjalview%2Futil%2FComparisonTest.java;h=bd3b52e81fb6892a9997e05c6a893423c71c4d55;hb=refs%2Fheads%2Fpatch%2FJAL-2996_JAL-3053_tildeBracketsPipesEtcAsGapChars;hp=9aab66c93a4550d0ced4cf72cb05e4ed5a0b2ff4;hpb=37de9310bec3501cbc6381e0c3dcb282fcaad812;p=jalview.git diff --git a/test/jalview/util/ComparisonTest.java b/test/jalview/util/ComparisonTest.java index 9aab66c..bd3b52e 100644 --- a/test/jalview/util/ComparisonTest.java +++ b/test/jalview/util/ComparisonTest.java @@ -26,12 +26,22 @@ import static org.testng.AssertJUnit.assertTrue; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; +import jalview.gui.JvOptionPane; +import org.testng.Assert; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class ComparisonTest { + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + @Test(groups = { "Functional" }) public void testIsGap() { @@ -42,6 +52,23 @@ public class ComparisonTest assertFalse(Comparison.isGap('x')); assertFalse(Comparison.isGap('*')); assertFalse(Comparison.isGap('G')); + + // consistency - test Comparison.isGap covers all gapChars + StringBuilder missing = new StringBuilder(); + for (int i = 0, iSize = Comparison.GapChars.length(); i < iSize; i++) + { + char gc = Comparison.GapChars.charAt(i); + if (!Comparison.isGap(gc)) + { + missing.append(gc); + } + } + if (missing.length() > 0) + { + Assert.fail( + "Comparison.GapChars contains symbols not covered by Comparison.isGap: '" + + missing.toString() + "'"); + } } /** @@ -106,7 +133,7 @@ public class ComparisonTest @Test(groups = { "Functional" }) public void testPID_includingGaps() { - String seq1 = "ABCDEF"; + String seq1 = "ABCDEFG"; // extra length here is ignored String seq2 = "abcdef"; assertEquals("identical", 100f, Comparison.PID(seq1, seq2), 0.001f); @@ -120,12 +147,14 @@ public class ComparisonTest int length = seq1.length(); // match gap-residue, match gap-gap: 9/10 identical + // TODO should gap-gap be included in a PID score? JAL-791 assertEquals(90f, Comparison.PID(seq1, seq2, 0, length, true, false), 0.001f); // overloaded version of the method signature above: assertEquals(90f, Comparison.PID(seq1, seq2), 0.001f); // don't match gap-residue, match gap-gap: 7/10 identical + // TODO should gap-gap be included in a PID score? assertEquals(70f, Comparison.PID(seq1, seq2, 0, length, false, false), 0.001f); } @@ -154,7 +183,8 @@ public class ComparisonTest public void testPID_ungappedOnly() { // 5 identical, 2 gap-gap, 2 gap-residue, 1 mismatch - String seq1 = "a--b-cdefh"; + // the extra length of seq1 is ignored + String seq1 = "a--b-cdefhr"; String seq2 = "a---bcdefg"; int length = seq1.length(); @@ -188,4 +218,16 @@ public class ComparisonTest assertTrue(Comparison.isNucleotideSequence("a A-g.GcCtTuU", true)); assertFalse(Comparison.isNucleotideSequence("a A-g.GcCtTuU", false)); } + + @Test(groups = { "Functional" }) + public void testIsSameResidue() + { + assertTrue(Comparison.isSameResidue('a', 'a', false)); + assertTrue(Comparison.isSameResidue('a', 'a', true)); + assertTrue(Comparison.isSameResidue('A', 'a', false)); + assertTrue(Comparison.isSameResidue('a', 'A', false)); + + assertFalse(Comparison.isSameResidue('a', 'A', true)); + assertFalse(Comparison.isSameResidue('A', 'a', true)); + } }