X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSequenceTest.java;h=7bbb9f3e5b465a7b5cf87dd28099bd3951f8db57;hb=cd886ae669962ea7fff5fb46627b3f84e77d295d;hp=6e18324d8ee8d92c0d50206500cfbe0c2aa508f4;hpb=57738a1f3c19b1c3a00bd3ac5108f8cd0af32f99;p=jalview.git diff --git a/test/jalview/datamodel/SequenceTest.java b/test/jalview/datamodel/SequenceTest.java index 6e18324..7bbb9f3 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()); } @@ -1044,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() @@ -2275,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());