JAL-3438 spotless for 2.11.2.0
[jalview.git] / test / jalview / analysis / RnaTest.java
index 9d35a19..a8e03af 100644 (file)
@@ -20,6 +20,8 @@
  */
 package jalview.analysis;
 
+import java.util.Locale;
+
 import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertFalse;
 import static org.testng.AssertJUnit.assertNull;
@@ -27,18 +29,29 @@ import static org.testng.AssertJUnit.assertTrue;
 import static org.testng.AssertJUnit.fail;
 
 import jalview.analysis.SecStrConsensus.SimpleBP;
+import jalview.datamodel.SequenceFeature;
+import jalview.gui.JvOptionPane;
 
-import java.util.Vector;
+import java.util.List;
 
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 public class RnaTest
 {
+
+  @BeforeClass(alwaysRun = true)
+  public void setUpJvOptionPane()
+  {
+    JvOptionPane.setInteractiveMode(false);
+    JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+  }
+
   @Test(groups = { "Functional" })
   public void testGetSimpleBPs() throws WUSSParseException
   {
     String rna = "([{})]"; // JAL-1081 example
-    Vector<SimpleBP> bps = Rna.getSimpleBPs(rna);
+    List<SimpleBP> bps = Rna.getSimpleBPs(rna);
     assertEquals(3, bps.size());
 
     /*
@@ -142,8 +155,8 @@ public class RnaTest
     for (int i = 0; i <= 255; i++)
     {
       boolean isClosingChar = Rna.isClosingParenthesis((char) i);
-      boolean isClosingString = Rna.isClosingParenthesis(String
-              .valueOf((char) i));
+      boolean isClosingString = Rna
+              .isClosingParenthesis(String.valueOf((char) i));
       if ((i >= 'a' && i <= 'z') || i == ')' || i == '}' || i == ']'
               || i == '>')
       {
@@ -153,7 +166,8 @@ public class RnaTest
       else
       {
         assertFalse(String.format("close base pair %c", i), isClosingChar);
-        assertFalse(String.format("close base pair %c", i), isClosingString);
+        assertFalse(String.format("close base pair %c", i),
+                isClosingString);
       }
       assertFalse(Rna.isClosingParenthesis(String.valueOf((char) i) + " "));
     }
@@ -171,7 +185,7 @@ public class RnaTest
         char second = bases.charAt(j);
         boolean result = Rna.isCanonicalOrWobblePair(first, second);
         String pair = new String(new char[] { first, second })
-                .toUpperCase();
+                .toUpperCase(Locale.ROOT);
         if (pair.equals("AT") || pair.equals("TA") || pair.equals("AU")
                 || pair.equals("UA") || pair.equals("GC")
                 || pair.equals("CG") || pair.equals("GT")
@@ -200,7 +214,7 @@ public class RnaTest
         char second = bases.charAt(j);
         boolean result = Rna.isCanonicalPair(first, second);
         String pair = new String(new char[] { first, second })
-                .toUpperCase();
+                .toUpperCase(Locale.ROOT);
         if (pair.equals("AT") || pair.equals("TA") || pair.equals("AU")
                 || pair.equals("UA") || pair.equals("GC")
                 || pair.equals("CG"))
@@ -227,8 +241,8 @@ public class RnaTest
     for (int i = 0; i <= 255; i++)
     {
       boolean isOpeningChar = Rna.isOpeningParenthesis((char) i);
-      boolean isOpeningString = Rna.isOpeningParenthesis(String
-              .valueOf((char) i));
+      boolean isOpeningString = Rna
+              .isOpeningParenthesis(String.valueOf((char) i));
       if ((i >= 'A' && i <= 'Z') || i == '(' || i == '{' || i == '['
               || i == '<')
       {
@@ -285,8 +299,8 @@ public class RnaTest
     for (int i = 0; i <= 255; i++)
     {
       boolean isValidChar = Rna.isRnaSecondaryStructureSymbol((char) i);
-      boolean isValidString = Rna.isRnaSecondaryStructureSymbol(String
-              .valueOf((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 == '>')
@@ -299,8 +313,58 @@ public class RnaTest
         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) + " "));
+      assertFalse(Rna.isRnaSecondaryStructureSymbol(
+              String.valueOf((char) i) + " "));
     }
   }
+
+  @Test(groups = "Functional")
+  public void testGetHelixMap_oneHelix() throws WUSSParseException
+  {
+    String rna = ".(..[{.<..>}..].)";
+    SequenceFeature[] sfs = Rna.getHelixMap(rna);
+    assertEquals(4, sfs.length);
+
+    /*
+     * pairs are added in the order in which the closing bracket is found
+     * (see testGetSimpleBPs)
+     */
+    assertEquals(7, sfs[0].getBegin());
+    assertEquals(10, sfs[0].getEnd());
+    assertEquals("0", sfs[0].getFeatureGroup());
+    assertEquals(5, sfs[1].getBegin());
+    assertEquals(11, sfs[1].getEnd());
+    assertEquals("0", sfs[1].getFeatureGroup());
+    assertEquals(4, sfs[2].getBegin());
+    assertEquals(14, sfs[2].getEnd());
+    assertEquals("0", sfs[2].getFeatureGroup());
+    assertEquals(1, sfs[3].getBegin());
+    assertEquals(16, sfs[3].getEnd());
+    assertEquals("0", sfs[3].getFeatureGroup());
+  }
+
+  @Test(groups = "Functional")
+  public void testGetHelixMap_twoHelices() throws WUSSParseException
+  {
+    String rna = ".([.)]..{.<}.>";
+    SequenceFeature[] sfs = Rna.getHelixMap(rna);
+    assertEquals(4, sfs.length);
+
+    /*
+     * pairs are added in the order in which the closing bracket is found
+     * (see testGetSimpleBPs)
+     */
+    assertEquals(1, sfs[0].getBegin());
+    assertEquals(4, sfs[0].getEnd());
+    assertEquals("0", sfs[0].getFeatureGroup());
+    assertEquals(2, sfs[1].getBegin());
+    assertEquals(5, sfs[1].getEnd());
+    assertEquals("0", sfs[1].getFeatureGroup());
+    assertEquals(8, sfs[2].getBegin());
+    assertEquals(11, sfs[2].getEnd());
+    assertEquals("1", sfs[2].getFeatureGroup());
+    assertEquals(10, sfs[3].getBegin());
+    assertEquals(13, sfs[3].getEnd());
+    assertEquals("1", sfs[3].getFeatureGroup());
+  }
 }