X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSeqCigarTest.java;h=7ec06aa588274c7fecb571487559baf81c2fd044;hb=9a9455154491b2eda742d399efb93eee029e22cd;hp=f71f574c0055929c09a059076241f5c678b5b123;hpb=52288466dd1e71946a06fd1e6ea15fa8e652c693;p=jalview.git diff --git a/test/jalview/datamodel/SeqCigarTest.java b/test/jalview/datamodel/SeqCigarTest.java index f71f574..7ec06aa 100644 --- a/test/jalview/datamodel/SeqCigarTest.java +++ b/test/jalview/datamodel/SeqCigarTest.java @@ -1,8 +1,33 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ 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; /** @@ -10,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 * @@ -38,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 @@ -65,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"); @@ -131,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; } }