X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FAlignmentTest.java;h=a3f909642282d45e403aee38918e2d5da2090ab6;hb=c794c5033adeee182b03a5ea92c0a7495a29661f;hp=1d1ebd67d596d194a82af033a131229aee1476db;hpb=5af80dd011bdfeab879472802bf2a9646e538f68;p=jalview.git diff --git a/test/jalview/datamodel/AlignmentTest.java b/test/jalview/datamodel/AlignmentTest.java index 1d1ebd6..a3f9096 100644 --- a/test/jalview/datamodel/AlignmentTest.java +++ b/test/jalview/datamodel/AlignmentTest.java @@ -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 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") @@ -1484,4 +1512,82 @@ public class AlignmentTest assertEquals(".JKLMNO", seq2.getSequenceAsString()); assertEquals(".PQR...", seq3.getSequenceAsString()); } + + /** + * Test for setHiddenColumns, to check it returns true if the hidden columns + * have changed, else false + */ + @Test(groups = { "Functional" }) + public void testSetHiddenColumns() + { + AlignmentI al = new Alignment(new SequenceI[] {}); + assertFalse(al.getHiddenColumns().hasHiddenColumns()); + + HiddenColumns hc = new HiddenColumns(); + assertFalse(al.setHiddenColumns(hc)); // no change + assertSame(hc, al.getHiddenColumns()); + + hc.hideColumns(2, 4); + assertTrue(al.getHiddenColumns().hasHiddenColumns()); + + /* + * set a different object but with the same columns hidden + */ + HiddenColumns hc2 = new HiddenColumns(); + hc2.hideColumns(2, 4); + assertFalse(al.setHiddenColumns(hc2)); // no change + assertSame(hc2, al.getHiddenColumns()); + + assertTrue(al.setHiddenColumns(null)); + assertNull(al.getHiddenColumns()); + assertTrue(al.setHiddenColumns(hc)); + assertSame(hc, al.getHiddenColumns()); + + al.getHiddenColumns().hideColumns(10, 12); + hc2.hideColumns(10, 12); + assertFalse(al.setHiddenColumns(hc2)); // no change + + /* + * hide columns 15-16 then 17-18 in hc + * hide columns 15-18 in hc2 + * these are not now 'equal' objects even though they + * represent the same set of columns + */ + assertSame(hc2, al.getHiddenColumns()); + hc.hideColumns(15, 16); + hc.hideColumns(17, 18); + hc2.hideColumns(15, 18); + 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()); + } }