JAL-1499 convert unsupported gap character to '-'
[jalview.git] / test / jalview / io / MegaFileTest.java
index 2b2422f..f7d83c0 100644 (file)
@@ -13,6 +13,7 @@ import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 
 import java.io.IOException;
+import java.util.List;
 import java.util.Vector;
 
 import org.testng.annotations.Test;
@@ -777,4 +778,35 @@ public class MegaFileTest
       verifySequenceFeature(sfs[2], "gene2", "Gene", 7, 12);
     }
   }
+
+  //@formatter:on
+  
+  /**
+   * Test case where the declared gap character is one Jalview does not support;
+   * it should be converted to a '-'
+   * 
+   * @throws IOException
+   */
+  @Test(groups = { "Functional" })
+  public void testParse_weirdGapCharacter() throws IOException
+  {
+    //@formatter:off
+    String data = "#MEGA\n"+ 
+    "!TITLE Interleaved sequence data;\n" +
+    "!Format Identical=. Indel=%;\n\n" +
+    "#U455 %BC%EF\n" + 
+    "#CPZANT M..P.R\n\n" + 
+    "#U455 KLMNOP\n" +
+    "#CPZANT .%%Z..";
+    AppletFormatAdapter fa = new AppletFormatAdapter();
+    AlignmentI al = fa.readFile(data,
+            AppletFormatAdapter.PASTE, "MEGA");
+    //@formatter:on
+    List<SequenceI> seqs = al.getSequences();
+    assertEquals("First sequence data wrong", "-BC-EFKLMNOP", seqs.get(0)
+            .getSequenceAsString());
+    assertEquals("Second sequence data wrong", "MBCPERK--ZOP", seqs.get(1)
+            .getSequenceAsString());
+    assertEquals('-', al.getGapCharacter());
+  }
 }