JAL-1499 parse files with position number comments like [24]
[jalview.git] / test / jalview / io / MegaFileTest.java
index 309ffee..477f982 100644 (file)
@@ -88,7 +88,7 @@ public class MegaFileTest
   //@formatter:on
 
   /**
-   * Test paste of interleaved mega format data.
+   * Test parse of interleaved mega format data.
    * 
    * @throws IOException
    */
@@ -115,7 +115,7 @@ public class MegaFileTest
   }
 
   /**
-   * Test paste of noninterleaved mega format data.
+   * Test parse of noninterleaved mega format data.
    * 
    * @throws IOException
    */
@@ -495,7 +495,7 @@ public class MegaFileTest
   //@formatter:on
   
   /**
-   * Test paste of interleaved mega format data where the identity character is
+   * Test parse of interleaved mega format data where the identity character is
    * used in sequences after the first
    * 
    * @throws IOException
@@ -531,7 +531,7 @@ public class MegaFileTest
   }
 
   /**
-   * Test paste of noninterleaved format data including identity symbol
+   * Test parse of noninterleaved format data including identity symbol
    * 
    * @throws IOException
    */
@@ -567,4 +567,40 @@ public class MegaFileTest
     assertFalse("File format is not flagged as noninterleaved",
             testee.isInterleaved());
   }
+
+  //@formatter:on
+  
+  /**
+   * Test parse of interleaved format data including position number comments.
+   * 
+   * @throws IOException
+   */
+  @Test(groups = { "Functional" })
+  public void testParse_interleavedWithPositionNumber() throws IOException
+  {
+    //@formatter:off
+    MegaFile testee = new MegaFile("#MEGA\n"+ 
+    "TITLE: Interleaved sequence data\n\n" + 
+    "#U455   ABCDEF [6]\n" + 
+    "#CPZANT  MNOPQR [6]\n\n" + 
+    "#U455   KLMNOP [12]\n" + 
+    "#CPZANT WXYZGC [12]\n", AppletFormatAdapter.PASTE);
+    //@formatter:on
+    assertEquals("Title not as expected", "Interleaved sequence data",
+            testee.getAlignmentProperty(MegaFile.PROP_TITLE));
+    Vector<SequenceI> seqs = testee.getSeqs();
+    // should be 2 sequences
+    assertEquals("Expected two sequences", 2, seqs.size());
+    // check sequence names correct and order preserved
+    assertEquals("First sequence id wrong", "U455", seqs.get(0).getName());
+    assertEquals("Second sequence id wrong", "CPZANT", seqs.get(1)
+            .getName());
+    // check sequence data
+    assertEquals("First sequence data wrong", "ABCDEFKLMNOP", seqs.get(0)
+            .getSequenceAsString());
+    assertEquals("Second sequence data wrong", "MNOPQRWXYZGC", seqs.get(1)
+            .getSequenceAsString());
+    assertTrue("File format is not flagged as interleaved",
+            testee.isInterleaved());
+  }
 }