X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2FRnaTest.java;h=9d35a1929d64fa2ac031f3fc96dd411e966a63a5;hb=37de9310bec3501cbc6381e0c3dcb282fcaad812;hp=95c37acfcc8f2cd27613ebffb7810f4553c2540f;hpb=267f5674a53a735d8e13a2a4c12a4c8d8b0c1f00;p=jalview.git diff --git a/test/jalview/analysis/RnaTest.java b/test/jalview/analysis/RnaTest.java index 95c37ac..9d35a19 100644 --- a/test/jalview/analysis/RnaTest.java +++ b/test/jalview/analysis/RnaTest.java @@ -105,7 +105,7 @@ public class RnaTest { String s = String.valueOf((char) i); String ss = Rna.getRNASecStrucState(s); - + /* * valid SS chars are a-z, A-Z, and various brackets; * anything else is returned as a space @@ -120,7 +120,7 @@ public class RnaTest assertEquals(" ", ss); } } - + /* * a string is processed character by character */ @@ -128,24 +128,34 @@ public class RnaTest Rna.getRNASecStrucState("a.[K-]z}?{Q b(w)p> are closing bracket symbols */ for (int i = 0; i <= 255; i++) { - boolean isClosing = Rna.isClosingParenthesis((char) i); + boolean isClosingChar = Rna.isClosingParenthesis((char) i); + boolean isClosingString = Rna.isClosingParenthesis(String + .valueOf((char) i)); if ((i >= 'a' && i <= 'z') || i == ')' || i == '}' || i == ']' || i == '>') { - assertTrue(String.format("close base pair %c", i), isClosing); + assertTrue(String.format("close base pair %c", i), isClosingChar); + assertTrue(String.format("close base pair %c", i), isClosingString); } else { - assertFalse(String.format("close base pair %c", i), isClosing); + assertFalse(String.format("close base pair %c", i), isClosingChar); + assertFalse(String.format("close base pair %c", i), isClosingString); } + assertFalse(Rna.isClosingParenthesis(String.valueOf((char) i) + " ")); } } @@ -179,6 +189,36 @@ public class RnaTest } @Test(groups = { "Functional" }) + public void testIsCanonicalPair() + { + String bases = "acgtuACGTU"; + for (int i = 0; i < bases.length(); i++) + { + for (int j = 0; j < bases.length(); j++) + { + char first = bases.charAt(i); + char second = bases.charAt(j); + boolean result = Rna.isCanonicalPair(first, second); + String pair = new String(new char[] { first, second }) + .toUpperCase(); + if (pair.equals("AT") || pair.equals("TA") || pair.equals("AU") + || pair.equals("UA") || pair.equals("GC") + || pair.equals("CG")) + { + assertTrue(pair + " should be valid", result); + } + else + { + assertFalse(pair + " should be invalid", result); + } + } + } + } + + /** + * Tests for isOpeningParenthesis with char or String argument + */ + @Test(groups = { "Functional" }) public void testIsOpeningParenthesis() { /* @@ -186,16 +226,21 @@ public class RnaTest */ for (int i = 0; i <= 255; i++) { - boolean isOpening = Rna.isOpeningParenthesis((char) i); + boolean isOpeningChar = Rna.isOpeningParenthesis((char) i); + boolean isOpeningString = Rna.isOpeningParenthesis(String + .valueOf((char) i)); if ((i >= 'A' && i <= 'Z') || i == '(' || i == '{' || i == '[' || i == '<') { - assertTrue(String.format("Open base pair %c", i), isOpening); + assertTrue(String.format("Open base pair %c", i), isOpeningChar); + assertTrue(String.format("Open base pair %c", i), isOpeningString); } else { - assertFalse(String.format("Open base pair %c", i), isOpening); + assertFalse(String.format("Open base pair %c", i), isOpeningChar); + assertFalse(String.format("Open base pair %c", i), isOpeningString); } + assertFalse(Rna.isOpeningParenthesis(String.valueOf((char) i) + " ")); } } @@ -225,4 +270,37 @@ public class RnaTest } } } + + /** + * Tests for isRnaSecondaryStructureSymbol with char or String argument + */ + @Test(groups = { "Functional" }) + public void testIsRnaSecondaryStructureSymbol() + { + assertFalse(Rna.isRnaSecondaryStructureSymbol(null)); + + /* + * only A-Z, a-z, ()[]{}<> are valid symbols + */ + for (int i = 0; i <= 255; i++) + { + boolean isValidChar = Rna.isRnaSecondaryStructureSymbol((char) i); + boolean isValidString = Rna.isRnaSecondaryStructureSymbol(String + .valueOf((char) i)); + if ((i >= 'A' && i <= 'Z') || (i >= 'a' && i <= 'z') || i == '(' + || i == ')' || i == '{' || i == '}' || i == '[' || i == ']' + || i == '<' || i == '>') + { + assertTrue(String.format("close base pair %c", i), isValidChar); + assertTrue(String.format("close base pair %c", i), isValidString); + } + else + { + assertFalse(String.format("close base pair %c", i), isValidChar); + assertFalse(String.format("close base pair %c", i), isValidString); + } + assertFalse(Rna.isRnaSecondaryStructureSymbol(String + .valueOf((char) i) + " ")); + } + } }