X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Fdatamodel%2FSequenceTest.java;h=7bbb9f3e5b465a7b5cf87dd28099bd3951f8db57;hb=c3d723759ba265ecdd89ddef7d59ebc9f33de784;hp=f9c8acf6b15096fe809cdad69bb9062b24b11366;hpb=dd2762def4e4db097c1b829debd49550c5cb191e;p=jalview.git diff --git a/test/jalview/datamodel/SequenceTest.java b/test/jalview/datamodel/SequenceTest.java index f9c8acf..7bbb9f3 100644 --- a/test/jalview/datamodel/SequenceTest.java +++ b/test/jalview/datamodel/SequenceTest.java @@ -134,6 +134,7 @@ public class SequenceTest assertFalse(new Sequence("prot", "ACGTACGTACGTNNNNNNNN").isProtein()); // test RNA with X assertFalse(new Sequence("prot", "ACGUACGUACGUACTGACAXX").isProtein()); + assertFalse(new Sequence("prot", "ACGUACGUACGUXXXXXXXXX").isProtein()); assertFalse(new Sequence("prot", "ACGUACGUACGUNNNNNNNNN").isProtein()); } @@ -1051,6 +1052,38 @@ public class SequenceTest assertEquals("ABCDEF", derived.getDatasetSequence().getSequenceAsString()); } + + /** + * test that creating a copy of an existing sequence with dataset sequence and + * associated contact matrix yields annotation associated with the same + * contact matrix in the copy + */ + @Test(groups= {"Functional"}) + public void testCopyPasteStyleDerivesequence_withcontactMatrixAnn() + { + SequenceI seq1=new Sequence("seq1","ACDACDACD"); + seq1.createDatasetSequence(); + ContactMatrixI cm = new SeqDistanceContactMatrix(seq1.getLength()); + // addContactList needs to return annotation addable to the sequence reference it was called from + AlignmentAnnotation aann = seq1.addContactList(cm); + assertTrue(aann.sequenceRef==seq1); + assertEquals(1,seq1.getAnnotation().length); + assertNotNull(seq1.getContactListFor(seq1.getAnnotation()[0], 1)); + + SequenceI seq_derived=seq1.deriveSequence(); + assertEquals(1,seq_derived.getAnnotation().length); + assertTrue(cm==seq_derived.getContactMatrixFor(seq_derived.getAnnotation()[0])); + assertNotNull(seq_derived.getContactListFor(seq_derived.getAnnotation()[0], 1)); + + // copy paste actually uses the copy constructor .. so + + SequenceI seq_copied=new Sequence((Sequence)seq_derived); + assertEquals(1,seq_copied.getAnnotation().length); + assertTrue(cm==seq_copied.getContactMatrixFor(seq_copied.getAnnotation()[0])); + assertNotNull(seq_copied.getContactListFor(seq_copied.getAnnotation()[0], 1)); + + + } @Test(groups = { "Functional" }) public void testCopyConstructor_noDataset() @@ -2282,8 +2315,16 @@ public class SequenceTest { Sequence origSeq = new Sequence("MYSEQ", "THISISASEQ"); Sequence toSeq = new Sequence("MYSEQ", "THISISASEQ"); + origSeq.setDescription("DESCRIPTION"); origSeq.addDBRef(new DBRefEntry("UNIPROT", "0", "Q12345", null, true)); + + toSeq.transferAnnotation(origSeq, null); + assertEquals("DESCRIPTION",toSeq.getDescription()); + toSeq = new Sequence("MYSEQ", "THISISASEQ"); + toSeq.setDescription("unchanged"); toSeq.transferAnnotation(origSeq, null); + assertEquals("unchanged",toSeq.getDescription()); + assertTrue(toSeq.getDBRefs().size() == 1); assertTrue(toSeq.getDBRefs().get(0).isCanonical());