X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSequenceTest.java;h=948a5fb5717d1fcbd04413484653a24b25402a00;hb=e83ce5d8ef826fc0b509a51f154abdf734501077;hp=f9c8acf6b15096fe809cdad69bb9062b24b11366;hpb=dd2762def4e4db097c1b829debd49550c5cb191e;p=jalview.git diff --git a/test/jalview/datamodel/SequenceTest.java b/test/jalview/datamodel/SequenceTest.java index f9c8acf..948a5fb 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()); } @@ -1052,6 +1053,42 @@ public class SequenceTest 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 +2319,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());