X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSequenceGroupTest.java;h=b0af5c8721e7b7c0ff426aadfc2db9f3a6bafaa2;hb=0efc6021e63ff62bb2e275501586c1900561b303;hp=6e1c2db41453dca5534e9c4b39c7018c85bf635c;hpb=f5c4a8a268a77ac474addbc778e85b75ffa05da3;p=jalview.git diff --git a/test/jalview/datamodel/SequenceGroupTest.java b/test/jalview/datamodel/SequenceGroupTest.java index 6e1c2db..b0af5c8 100644 --- a/test/jalview/datamodel/SequenceGroupTest.java +++ b/test/jalview/datamodel/SequenceGroupTest.java @@ -3,12 +3,18 @@ package jalview.datamodel; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertNotSame; import static org.testng.Assert.assertNull; import static org.testng.Assert.assertSame; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; +import jalview.analysis.Conservation; import jalview.schemes.NucleotideColourScheme; +import jalview.schemes.PIDColourScheme; + +import java.awt.Color; +import java.util.Collections; import junit.extensions.PA; @@ -121,13 +127,32 @@ public class SequenceGroupTest PA.setValue(sg2, "context", sg2); try { - sg3.setContext(sg2); // circular reference in sg2 + sg3.setContext(sg2, false); // circular reference in sg2 fail("Expected exception"); } catch (IllegalArgumentException e) { // expected assertNull(sg3.getContext()); } + + // test isDefined setting behaviour + sg2 = new SequenceGroup(); + sg1.setContext(null, false); + assertFalse(sg1.isDefined()); + + sg1.setContext(sg2, false); + assertFalse(sg1.isDefined()); + + sg1.setContext(sg2, true); + assertTrue(sg1.isDefined()); + + // setContext without defined parameter does not change isDefined + sg1.setContext(null); + assertTrue(sg1.isDefined()); + + sg1.setContext(null, false); + sg1.setContext(sg2); + assertFalse(sg1.isDefined()); } @Test(groups = { "Functional" }) @@ -198,6 +223,82 @@ public class SequenceGroupTest assertTrue(sg2.contains(seq2, 8)); sg2.deleteSequence(seq2, false); assertFalse(sg2.contains(seq2)); + } + + @Test(groups = { "Functional" }) + public void testCopyConstructor() + { + SequenceI seq = new Sequence("seq", "ABC"); + SequenceGroup sg = new SequenceGroup(); + sg.addSequence(seq, false); + sg.setName("g1"); + sg.setDescription("desc"); + sg.setColourScheme(new PIDColourScheme()); + Conservation cons = new Conservation("Cons", 2, + Collections. emptyList(), 3, 12); + PA.setValue(cons, "consSequence", new Sequence("s", "abc")); + sg.getGroupColourScheme().setConservation(cons); + sg.getGroupColourScheme().setConsensus(new Profiles(null)); + sg.setDisplayBoxes(false); + sg.setDisplayText(false); + sg.setColourText(true); + sg.isDefined = true; + sg.setShowNonconserved(true); + sg.setOutlineColour(Color.red); + sg.setIdColour(Color.blue); + sg.thresholdTextColour = 1; + sg.textColour = Color.orange; + sg.textColour2 = Color.yellow; + sg.setIgnoreGapsConsensus(false); + sg.setshowSequenceLogo(true); + sg.setNormaliseSequenceLogo(true); + sg.setHidereps(true); + sg.setHideCols(true); + sg.setShowConsensusHistogram(true); + sg.setContext(new SequenceGroup()); + + SequenceGroup sg2 = new SequenceGroup(sg); + assertEquals(sg2.getName(), sg.getName()); + assertEquals(sg2.getDescription(), sg.getDescription()); + assertNotSame(sg2.getGroupColourScheme(), sg.getGroupColourScheme()); + assertSame(sg2.getColourScheme(), sg.getColourScheme()); + assertSame(PA.getValue(sg2.getGroupColourScheme(), "consensus"), + PA.getValue(sg.getGroupColourScheme(), "consensus")); + assertSame(PA.getValue(sg2.getGroupColourScheme(), "conservation"), + PA.getValue(sg.getGroupColourScheme(), "conservation")); + assertEquals(sg2.getDisplayBoxes(), sg.getDisplayBoxes()); + assertEquals(sg2.getDisplayText(), sg.getDisplayText()); + assertEquals(sg2.getColourText(), sg.getColourText()); + assertEquals(sg2.getShowNonconserved(), sg.getShowNonconserved()); + assertEquals(sg2.getOutlineColour(), sg.getOutlineColour()); + assertEquals(sg2.getIdColour(), sg.getIdColour()); + assertEquals(sg2.thresholdTextColour, sg.thresholdTextColour); + assertEquals(sg2.textColour, sg.textColour); + assertEquals(sg2.textColour2, sg.textColour2); + assertEquals(sg2.getIgnoreGapsConsensus(), sg.getIgnoreGapsConsensus()); + assertEquals(sg2.isShowSequenceLogo(), sg.isShowSequenceLogo()); + assertEquals(sg2.isNormaliseSequenceLogo(), + sg.isNormaliseSequenceLogo()); + assertEquals(sg2.isHidereps(), sg.isHidereps()); + assertEquals(sg2.isHideCols(), sg.isHideCols()); + assertEquals(sg2.isShowConsensusHistogram(), + sg.isShowConsensusHistogram()); + + /* + * copy of sequences + */ + assertNotSame(sg2.getSequences(), sg.getSequences()); + assertEquals(sg2.getSequences(), sg.getSequences()); + /* + * isDefined should only be set true when a new group is added to + * an alignment, not in the copy constructor + */ + assertFalse(sg2.isDefined()); + + /* + * context should be set explicitly, not by copy + */ + assertNull(sg2.getContext()); } }