Merge branch 'alpha/JAL-3362_Jalview_212_alpha' into alpha/merge_212_JalviewJS_2112
[jalview.git] / test / jalview / datamodel / AlignmentTest.java
index 8aed114..a3f9096 100644 (file)
@@ -1173,14 +1173,14 @@ public class AlignmentTest
     /*
      * verify peptide.cdsdbref.peptidedbref is now mapped to peptide dataset
      */
-    DBRefEntry[] dbRefs = pep.getDBRefs();
-    assertEquals(2, dbRefs.length);
-    assertSame(dna, dbRefs[0].map.to);
-    assertSame(cds, dbRefs[1].map.to);
-    assertEquals(1, dna.getDBRefs().length);
-    assertSame(pep.getDatasetSequence(), dna.getDBRefs()[0].map.to);
-    assertEquals(1, cds.getDBRefs().length);
-    assertSame(pep.getDatasetSequence(), cds.getDBRefs()[0].map.to);
+    List<DBRefEntry> dbRefs = pep.getDBRefs();
+    assertEquals(2, dbRefs.size());
+    assertSame(dna, dbRefs.get(0).map.to);
+    assertSame(cds, dbRefs.get(1).map.to);
+    assertEquals(1, dna.getDBRefs().size());
+    assertSame(pep.getDatasetSequence(), dna.getDBRefs().get(0).map.to);
+    assertEquals(1, cds.getDBRefs().size());
+    assertSame(pep.getDatasetSequence(), cds.getDBRefs().get(0).map.to);
   }
 
   @Test(groups = { "Functional" })
@@ -1351,7 +1351,35 @@ public class AlignmentTest
             "Temperature Factor", null, false, seq, null);
     assertNotNull(ala);
     assertEquals(seq, ala.sequenceRef);
-    assertEquals("", ala.calcId);
+    assertEquals("", ala.getCalcId());
+  }
+
+  @Test(groups = {"Functional"})
+  public void testUpdateFromOrAddAnnotation()
+  {
+    SequenceI seq = new Sequence("seq1", "FRMLPSRT-A--L-");
+    AlignmentI alignment = new Alignment(new SequenceI[] { seq });
+
+    AlignmentAnnotation ala = alignment.findOrCreateAnnotation(
+            "Temperature Factor", null, false, seq, null);
+
+    assertNotNull(ala);
+    assertEquals(seq, ala.sequenceRef);
+    assertEquals("", ala.getCalcId());
+
+    // Assuming findOrCreateForNullCalcId passed then this should work
+
+    assertTrue(ala == alignment.updateFromOrCopyAnnotation(ala));
+    AlignmentAnnotation updatedAla = new AlignmentAnnotation(ala);
+    updatedAla.description = "updated Description";
+    Assert.assertTrue(
+            ala == alignment.updateFromOrCopyAnnotation(updatedAla));
+    Assert.assertEquals(ala.toString(), updatedAla.toString());
+    updatedAla.calcId = "newCalcId";
+    AlignmentAnnotation newUpdatedAla = alignment
+            .updateFromOrCopyAnnotation(updatedAla);
+    Assert.assertTrue(updatedAla != newUpdatedAla);
+    Assert.assertEquals(updatedAla.toString(), newUpdatedAla.toString());
   }
 
   @Test(groups = "Functional")
@@ -1532,4 +1560,34 @@ public class AlignmentTest
     assertFalse(hc.equals(hc2));
     assertTrue(al.setHiddenColumns(hc)); // 'changed'
   }
+
+  @Test(groups = { "Functional" })
+  public void testGetWidth()
+  {
+    SequenceI seq1 = new Sequence("seq1", "ABCDEF--");
+    SequenceI seq2 = new Sequence("seq2", "-JKLMNO--");
+    SequenceI seq3 = new Sequence("seq2", "-PQR");
+    AlignmentI a = new Alignment(new SequenceI[] { seq1, seq2, seq3 });
+
+    assertEquals(9, a.getWidth());
+
+    // width includes hidden columns
+    a.getHiddenColumns().hideColumns(2, 5);
+    assertEquals(9, a.getWidth());
+  }
+
+  @Test(groups = { "Functional" })
+  public void testGetVisibleWidth()
+  {
+    SequenceI seq1 = new Sequence("seq1", "ABCDEF--");
+    SequenceI seq2 = new Sequence("seq2", "-JKLMNO--");
+    SequenceI seq3 = new Sequence("seq2", "-PQR");
+    AlignmentI a = new Alignment(new SequenceI[] { seq1, seq2, seq3 });
+
+    assertEquals(9, a.getVisibleWidth());
+
+    // width excludes hidden columns
+    a.getHiddenColumns().hideColumns(2, 5);
+    assertEquals(5, a.getVisibleWidth());
+  }
 }