X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSequenceTest.java;fp=test%2Fjalview%2Fdatamodel%2FSequenceTest.java;h=948a5fb5717d1fcbd04413484653a24b25402a00;hb=c8d80485038ab96fb06bd0885c323803646d8e57;hp=6e18324d8ee8d92c0d50206500cfbe0c2aa508f4;hpb=1b1f995b3eb83dc3496510bfc2278f1f72fcfd8a;p=jalview.git diff --git a/test/jalview/datamodel/SequenceTest.java b/test/jalview/datamodel/SequenceTest.java index 6e18324..948a5fb 100644 --- a/test/jalview/datamodel/SequenceTest.java +++ b/test/jalview/datamodel/SequenceTest.java @@ -20,8 +20,6 @@ */ package jalview.datamodel; -import java.util.Locale; - import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertNotNull; @@ -30,20 +28,13 @@ import static org.testng.AssertJUnit.assertNull; import static org.testng.AssertJUnit.assertSame; import static org.testng.AssertJUnit.assertTrue; -import jalview.analysis.AlignmentGenerator; -import jalview.commands.EditCommand; -import jalview.commands.EditCommand.Action; -import jalview.datamodel.PDBEntry.Type; -import jalview.gui.JvOptionPane; -import jalview.util.MapList; -import jalview.ws.params.InvalidArgumentException; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.BitSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Vector; import org.testng.Assert; @@ -51,6 +42,13 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import jalview.analysis.AlignmentGenerator; +import jalview.bin.Cache; +import jalview.commands.EditCommand; +import jalview.commands.EditCommand.Action; +import jalview.datamodel.PDBEntry.Type; +import jalview.gui.JvOptionPane; +import jalview.util.MapList; import junit.extensions.PA; public class SequenceTest @@ -62,6 +60,12 @@ public class SequenceTest JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); } + @BeforeMethod(alwaysRun = true) + public void loadProperties() + { + Cache.loadProperties("test/jalview/util/comparisonTestProps.jvprops"); + } + Sequence seq; @BeforeMethod(alwaysRun = true) @@ -123,9 +127,13 @@ public class SequenceTest assertTrue(new Sequence("prot", "ASDFASDFASDFXXXXXXXXX").isProtein()); // test DNA with X assertFalse(new Sequence("prot", "ACGTACGTACGTXXXXXXXX").isProtein()); + // short sequence is nucleotide only if 50% is nucleotide and remaining N/X + // is either N or X only + assertTrue(new Sequence("prot", "ACGTACGTACGTXN").isProtein()); // test DNA with N 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()); } @@ -1045,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() { @@ -2275,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());