JAL-629 added data for test
[jalview.git] / test / jalview / ws / dbsources / EmblXmlSourceTest.java
index 5f288a8..236e0a5 100644 (file)
@@ -26,6 +26,14 @@ import static org.testng.AssertJUnit.assertNull;
 import static org.testng.AssertJUnit.assertSame;
 import static org.testng.AssertJUnit.assertTrue;
 
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.DBRefSource;
@@ -36,14 +44,6 @@ import jalview.xml.binding.embl.EntryType.Feature;
 import jalview.xml.binding.embl.EntryType.Feature.Qualifier;
 import jalview.xml.binding.embl.XrefType;
 
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
 public class EmblXmlSourceTest
 {
 
@@ -203,10 +203,10 @@ public class EmblXmlSourceTest
             new int[]
             { 1, 3 }, 3, 1);
 
-    DBRefEntry[] dbrefs = dna.getDBRefs();
-    assertEquals(7, dbrefs.length);
+    List<DBRefEntry> dbrefs = dna.getDBRefs();
+    assertEquals(7, dbrefs.size());
 
-    DBRefEntry dbRefEntry = dbrefs[0];
+    DBRefEntry dbRefEntry = dbrefs.get(0);
     assertEquals("EMBL", dbRefEntry.getSource());
     assertEquals("X07547", dbRefEntry.getAccessionId());
     assertEquals("1", dbRefEntry.getVersion());
@@ -214,38 +214,38 @@ public class EmblXmlSourceTest
     assertNull(dbRefEntry.getMap().getTo());
     assertEquals(mapToSelf, dbRefEntry.getMap().getMap());
 
-    dbRefEntry = dbrefs[1];
+    dbRefEntry = dbrefs.get(1);
     // DBRefEntry constructor puts dbSource in upper case
     assertEquals("EUROPEPMC", dbRefEntry.getSource());
     assertEquals("PMC107176", dbRefEntry.getAccessionId());
     assertEquals("9573186", dbRefEntry.getVersion());
     assertNull(dbRefEntry.getMap());
 
-    dbRefEntry = dbrefs[2];
+    dbRefEntry = dbrefs.get(2);
     assertEquals("MD5", dbRefEntry.getSource());
     assertEquals("ac73317", dbRefEntry.getAccessionId());
     assertEquals("0", dbRefEntry.getVersion());
     assertNull(dbRefEntry.getMap());
 
-    dbRefEntry = dbrefs[3];
+    dbRefEntry = dbrefs.get(3);
     assertEquals("UNIPROT", dbRefEntry.getSource());
     assertEquals("B0BCM4", dbRefEntry.getAccessionId());
     assertSame(peptides.get(1), dbRefEntry.getMap().getTo());
     assertEquals(cds1Map, dbRefEntry.getMap().getMap());
 
-    dbRefEntry = dbrefs[4];
+    dbRefEntry = dbrefs.get(4);
     assertEquals("UNIPROT", dbRefEntry.getSource());
     assertEquals("P0CE20", dbRefEntry.getAccessionId());
     assertSame(peptides.get(2), dbRefEntry.getMap().getTo());
     assertEquals(cds1Map, dbRefEntry.getMap().getMap());
 
-    dbRefEntry = dbrefs[5];
+    dbRefEntry = dbrefs.get(5);
     assertEquals("UNIPROT", dbRefEntry.getSource());
     assertEquals("B0BCM3", dbRefEntry.getAccessionId());
     assertSame(peptides.get(4), dbRefEntry.getMap().getTo());
     assertEquals(cds2Map, dbRefEntry.getMap().getMap());
 
-    dbRefEntry = dbrefs[6];
+    dbRefEntry = dbrefs.get(6);
     assertEquals("EMBLCDSPROTEIN", dbRefEntry.getSource());
     assertEquals("CAA12345.6", dbRefEntry.getAccessionId());
     assertSame(peptides.get(5), dbRefEntry.getMap().getTo());
@@ -266,82 +266,82 @@ public class EmblXmlSourceTest
 
     // dbrefs for first CDS EMBL product CAA30420.1
     dbrefs = peptides.get(0).getDBRefs();
-    assertEquals(5, dbrefs.length);
-    assertEquals(DBRefSource.EMBL, dbrefs[0].getSource());
-    assertEquals("CAA30420.1", dbrefs[0].getAccessionId());
+    assertEquals(5, dbrefs.size());
+    assertEquals(DBRefSource.EMBL, dbrefs.get(0).getSource());
+    assertEquals("CAA30420.1", dbrefs.get(0).getAccessionId());
     // TODO: verify getPrimaryDBRefs() for peptide products
-    assertEquals(cds1Map.getInverse(), dbrefs[0].getMap().getMap());
-    assertEquals(DBRefSource.EMBLCDS, dbrefs[1].getSource());
-    assertEquals("CAA30420.1", dbrefs[1].getAccessionId());
-    assertEquals(proteinToCdsMap1, dbrefs[1].getMap().getMap());
-    assertEquals(DBRefSource.EMBLCDSProduct, dbrefs[2].getSource());
-    assertEquals("CAA30420.1", dbrefs[2].getAccessionId());
-    assertNull(dbrefs[2].getMap());
+    assertEquals(cds1Map.getInverse(), dbrefs.get(0).getMap().getMap());
+    assertEquals(DBRefSource.EMBLCDS, dbrefs.get(1).getSource());
+    assertEquals("CAA30420.1", dbrefs.get(1).getAccessionId());
+    assertEquals(proteinToCdsMap1, dbrefs.get(1).getMap().getMap());
+    assertEquals(DBRefSource.EMBLCDSProduct, dbrefs.get(2).getSource());
+    assertEquals("CAA30420.1", dbrefs.get(2).getAccessionId());
+    assertNull(dbrefs.get(2).getMap());
     assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "2.1", "B0BCM4"),
-            dbrefs[3]);
-    assertNull(dbrefs[3].getMap());
+            dbrefs.get(3));
+    assertNull(dbrefs.get(3).getMap());
     assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "P0CE20"),
-            dbrefs[4]);
-    assertNull(dbrefs[4].getMap());
+            dbrefs.get(4));
+    assertNull(dbrefs.get(4).getMap());
 
     // dbrefs for first CDS first Uniprot xref
     dbrefs = peptides.get(1).getDBRefs();
-    assertEquals(2, dbrefs.length);
+    assertEquals(2, dbrefs.size());
     assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "2.1", "B0BCM4"),
-            dbrefs[0]);
-    assertNull(dbrefs[0].getMap());
-    assertEquals(DBRefSource.EMBL, dbrefs[1].getSource());
-    assertEquals("X07547", dbrefs[1].getAccessionId());
-    assertEquals(cds1Map.getInverse(), dbrefs[1].getMap().getMap());
+            dbrefs.get(0));
+    assertNull(dbrefs.get(0).getMap());
+    assertEquals(DBRefSource.EMBL, dbrefs.get(1).getSource());
+    assertEquals("X07547", dbrefs.get(1).getAccessionId());
+    assertEquals(cds1Map.getInverse(), dbrefs.get(1).getMap().getMap());
 
     // dbrefs for first CDS second Uniprot xref
     dbrefs = peptides.get(2).getDBRefs();
-    assertEquals(2, dbrefs.length);
+    assertEquals(2, dbrefs.size());
     assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "P0CE20"),
-            dbrefs[0]);
-    assertNull(dbrefs[0].getMap());
-    assertEquals(DBRefSource.EMBL, dbrefs[1].getSource());
-    assertEquals("X07547", dbrefs[1].getAccessionId());
-    assertEquals(cds1Map.getInverse(), dbrefs[1].getMap().getMap());
+            dbrefs.get(0));
+    assertNull(dbrefs.get(0).getMap());
+    assertEquals(DBRefSource.EMBL, dbrefs.get(1).getSource());
+    assertEquals("X07547", dbrefs.get(1).getAccessionId());
+    assertEquals(cds1Map.getInverse(), dbrefs.get(1).getMap().getMap());
 
     // dbrefs for second CDS EMBL product CAA30421.1
     dbrefs = peptides.get(3).getDBRefs();
-    assertEquals(4, dbrefs.length);
-    assertEquals(DBRefSource.EMBL, dbrefs[0].getSource());
-    assertEquals("CAA30421.1", dbrefs[0].getAccessionId());
-    assertEquals(cds2Map.getInverse(), dbrefs[0].getMap().getMap());
-    assertEquals(DBRefSource.EMBLCDS, dbrefs[1].getSource());
-    assertEquals("CAA30421.1", dbrefs[1].getAccessionId());
-    assertEquals(proteinToCdsMap1, dbrefs[1].getMap().getMap());
-    assertEquals(DBRefSource.EMBLCDSProduct, dbrefs[2].getSource());
-    assertEquals("CAA30421.1", dbrefs[2].getAccessionId());
-    assertNull(dbrefs[2].getMap());
+    assertEquals(4, dbrefs.size());
+    assertEquals(DBRefSource.EMBL, dbrefs.get(0).getSource());
+    assertEquals("CAA30421.1", dbrefs.get(0).getAccessionId());
+    assertEquals(cds2Map.getInverse(), dbrefs.get(0).getMap().getMap());
+    assertEquals(DBRefSource.EMBLCDS, dbrefs.get(1).getSource());
+    assertEquals("CAA30421.1", dbrefs.get(1).getAccessionId());
+    assertEquals(proteinToCdsMap1, dbrefs.get(1).getMap().getMap());
+    assertEquals(DBRefSource.EMBLCDSProduct, dbrefs.get(2).getSource());
+    assertEquals("CAA30421.1", dbrefs.get(2).getAccessionId());
+    assertNull(dbrefs.get(2).getMap());
     assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "B0BCM3"),
-            dbrefs[3]);
-    assertNull(dbrefs[3].getMap());
+            dbrefs.get(3));
+    assertNull(dbrefs.get(3).getMap());
 
     // dbrefs for second CDS second Uniprot xref
     dbrefs = peptides.get(4).getDBRefs();
-    assertEquals(2, dbrefs.length);
+    assertEquals(2, dbrefs.size());
     assertEquals(new DBRefEntry(DBRefSource.UNIPROT, "0", "B0BCM3"),
-            dbrefs[0]);
-    assertNull(dbrefs[0].getMap());
-    assertEquals(DBRefSource.EMBL, dbrefs[1].getSource());
-    assertEquals("X07547", dbrefs[1].getAccessionId());
-    assertEquals(cds2Map.getInverse(), dbrefs[1].getMap().getMap());
+            dbrefs.get(0));
+    assertNull(dbrefs.get(0).getMap());
+    assertEquals(DBRefSource.EMBL, dbrefs.get(1).getSource());
+    assertEquals("X07547", dbrefs.get(1).getAccessionId());
+    assertEquals(cds2Map.getInverse(), dbrefs.get(1).getMap().getMap());
 
     // dbrefs for third CDS inferred EMBL product CAA12345.6
     dbrefs = peptides.get(5).getDBRefs();
-    assertEquals(3, dbrefs.length);
-    assertEquals(DBRefSource.EMBL, dbrefs[0].getSource());
-    assertEquals("CAA12345.6", dbrefs[0].getAccessionId());
-    assertEquals(cds3Map.getInverse(), dbrefs[0].getMap().getMap());
-    assertEquals(DBRefSource.EMBLCDS, dbrefs[1].getSource());
-    assertEquals("CAA12345.6", dbrefs[1].getAccessionId());
-    assertEquals(proteinToCdsMap2, dbrefs[1].getMap().getMap());
-    assertEquals(DBRefSource.EMBLCDSProduct, dbrefs[2].getSource());
-    assertEquals("CAA12345.6", dbrefs[2].getAccessionId());
-    assertNull(dbrefs[2].getMap());
+    assertEquals(3, dbrefs.size());
+    assertEquals(DBRefSource.EMBL, dbrefs.get(0).getSource());
+    assertEquals("CAA12345.6", dbrefs.get(0).getAccessionId());
+    assertEquals(cds3Map.getInverse(), dbrefs.get(0).getMap().getMap());
+    assertEquals(DBRefSource.EMBLCDS, dbrefs.get(1).getSource());
+    assertEquals("CAA12345.6", dbrefs.get(1).getAccessionId());
+    assertEquals(proteinToCdsMap2, dbrefs.get(1).getMap().getMap());
+    assertEquals(DBRefSource.EMBLCDSProduct, dbrefs.get(2).getSource());
+    assertEquals("CAA12345.6", dbrefs.get(2).getAccessionId());
+    assertNull(dbrefs.get(2).getMap());
   }
 
   @Test(groups = "Functional")
@@ -352,11 +352,12 @@ public class EmblXmlSourceTest
     // exact length match:
     assertSame(exons, EmblXmlSource.adjustForProteinLength(6, exons));
 
-    // match if we assume exons include stop codon not in protein:
-    assertSame(exons, EmblXmlSource.adjustForProteinLength(5, exons));
+    // truncate last exon by 3bp (e.g. stop codon)
+    int[] truncated = EmblXmlSource.adjustForProteinLength(5, exons);
+    assertEquals("[11, 15, 21, 25, 31, 35]", Arrays.toString(truncated));
 
     // truncate last exon by 6bp
-    int[] truncated = EmblXmlSource.adjustForProteinLength(4, exons);
+    truncated = EmblXmlSource.adjustForProteinLength(4, exons);
     assertEquals("[11, 15, 21, 25, 31, 32]", Arrays.toString(truncated));
 
     // remove last exon and truncate preceding by 1bp