X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSeqCigarTest.java;h=7ec06aa588274c7fecb571487559baf81c2fd044;hb=9a9455154491b2eda742d399efb93eee029e22cd;hp=8ef050c59166bda7834f89c692ac6fc29e363220;hpb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;p=jalview.git diff --git a/test/jalview/datamodel/SeqCigarTest.java b/test/jalview/datamodel/SeqCigarTest.java index 8ef050c..7ec06aa 100644 --- a/test/jalview/datamodel/SeqCigarTest.java +++ b/test/jalview/datamodel/SeqCigarTest.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) - * Copyright (C) 2015 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,9 +20,14 @@ */ package jalview.datamodel; +import static org.testng.Assert.assertTrue; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; +import jalview.gui.JvOptionPane; +import jalview.util.Comparison; + +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; /** @@ -30,6 +35,38 @@ import org.testng.annotations.Test; */ public class SeqCigarTest { + + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + + @Test(groups = { "Functional" }) + public void testFindPosition() + { + SequenceI oseq = new Sequence("MySeq", "ASD---ASD---ASD", 37, 45); + oseq.createDatasetSequence(); + SeqCigar cs = new SeqCigar(oseq); + assertEquals(oseq.getSequenceAsString(), cs.getSequenceString('-')); + for (int c = 0, cLen = oseq.getLength(); c < cLen; c++) + { + int os_p = oseq.findPosition(c); + int cigar_p = cs.findPosition(c); + if (Comparison.isGap(oseq.getCharAt(c))) + { + assertEquals("Expected gap at position " + os_p + " column " + c, + -1, cigar_p); + } + else + { + assertEquals("Positions don't match for at column " + c, os_p, + cigar_p); + } + } + } + /* * refactored 'as is' from main method * @@ -58,13 +95,13 @@ public class SeqCigarTest assertEquals("Failed parseCigar", ex_cs_gapped, gen_sgapped.getCigarstring()); - testSeqRecovery(gen_sgapped, s_gapped); + assertTrue(testSeqRecovery(gen_sgapped, s_gapped,true)); /* * Test dataset resolution */ SeqCigar sub_gapped = new SeqCigar(s_subsequence_gapped); - testSeqRecovery(sub_gapped, s_subsequence_gapped); + assertTrue(testSeqRecovery(sub_gapped, s_subsequence_gapped,true)); /* * Test width functions @@ -85,7 +122,7 @@ public class SeqCigarTest /* * TODO: can we add assertions to the sysouts that follow? */ - System.out.println("Original sequence align:\n" + sub_gapped_s + System.out.println("\nOriginal sequence align:\n" + sub_gapped_s + "\nReconstructed window from 8 to 48\n" + "XXXXXXXX" + sub_se_gp.getSequenceString('-') + "..." + "\nCigar String:" + sub_se_gp.getCigarstring() + "\n"); @@ -151,20 +188,28 @@ public class SeqCigarTest assertEquals("Failed getCigarstring", ex_cs_gapped, cs_gapped); } - protected void testSeqRecovery(SeqCigar gen_sgapped, SequenceI s_gapped) + protected boolean testSeqRecovery(SeqCigar gen_sgapped, SequenceI s_gapped,boolean startEndCheck) { // this is non-rigorous - start and end recovery is not tested. SequenceI gen_sgapped_s = gen_sgapped.getSeq('-'); // assertEquals("Couldn't reconstruct sequence", s_gapped.getSequence(), // gen_sgapped_s); - if (!gen_sgapped_s.getSequence().equals(s_gapped.getSequence())) + if (!gen_sgapped_s.getSequenceAsString().equals( + s_gapped.getSequenceAsString())) { // TODO: investigate errors reported here, to allow full conversion to // passing JUnit assertion form System.err.println("Couldn't reconstruct sequence.\n" + gen_sgapped_s.getSequenceAsString() + "\n" + s_gapped.getSequenceAsString()); + return false; + } + if (startEndCheck) + { + assertEquals("Start not conserved in reconstructed sequence",s_gapped.getStart(),gen_sgapped_s.getStart()); + assertEquals("End not conserved in reconstructed sequence",s_gapped.getEnd(),gen_sgapped_s.getEnd()); } + return true; } }