+ @Test(groups = { "Functional" })
+ /**
+ * simple test that mapping from alignment corresponds identical positions.
+ */
+ public void testGetMappingForS1_withLowerCase()
+ {
+ // make one of the sequences lower case
+ SequenceI ns2 = new Sequence(s2);
+ ns2.replace('D', 'd');
+ AlignSeq as = AlignSeq.doGlobalNWAlignment(s1, ns2, AlignSeq.PEP);
+ System.out.println("s1: " + as.getAStr1());
+ System.out.println("s2: " + as.getAStr2());
+
+ // aligned results match
+ assertEquals("ASDFA", as.getAStr1());
+ assertEquals(as.getAStr1(), as.getAStr2().toUpperCase(Locale.ROOT));
+
+ Mapping s1tos2 = as.getMappingFromS1(false);
+ assertEquals("ASdFA", as.getAStr2());
+ // verify mapping is consistent between original all-caps sequences
+ checkMapping(s1tos2, s1, s2);
+ }
+
+ @Test(groups = { "Functional" })
+ public void testExtractGaps()
+ {
+ assertNull(AlignSeq.extractGaps(null, null));
+ assertNull(AlignSeq.extractGaps(". -", null));
+ assertNull(AlignSeq.extractGaps(null, "AB-C"));
+
+ assertEquals("ABCD", AlignSeq.extractGaps(" .-", ". -A-B.C D."));
+ }
+
+ @Test(groups = { "Functional" })
+ public void testPrintAlignment()
+ {
+ AlignSeq as = AlignSeq.doGlobalNWAlignment(s1, s3, AlignSeq.PEP);
+ final StringBuilder baos = new StringBuilder();
+ PrintStream ps = new PrintStream(System.out)
+ {
+ @Override
+ public void print(String x)
+ {
+ baos.append(x);
+ }
+
+ @Override
+ public void println()
+ {
+ baos.append("\n");
+ }
+ };
+
+ as.printAlignment(ps);
+ String expected = "Score = 320.0\nLength of alignment = 10\nSequence Seq1/4-13 (Sequence length = 14)\nSequence Seq3/1-10 (Sequence length = 10)\n\n"
+ + "Seq1/4-13 SDFAQQQRRR\n" + " ||||||| \n"
+ + "Seq3/1-10 SDFAQQQSSS\n\n" + "Percentage ID = 70.00\n\n";
+ assertEquals(expected, baos.toString());
+ }