X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSequenceFeatureTest.java;h=fbeb36555301747795801ea9e3f9349b76b6aaa5;hb=817741c8e9b1258fc0e5cad8f2ccdddec401d8cf;hp=2da8918a37c25742e69e133bf26d4e6b9bd97f8a;hpb=19424d4e1623bfcdcf30567f7a233fe81c4a9e4e;p=jalview.git diff --git a/test/jalview/datamodel/SequenceFeatureTest.java b/test/jalview/datamodel/SequenceFeatureTest.java index 2da8918..fbeb365 100644 --- a/test/jalview/datamodel/SequenceFeatureTest.java +++ b/test/jalview/datamodel/SequenceFeatureTest.java @@ -42,7 +42,7 @@ public class SequenceFeatureTest } @Test(groups = { "Functional" }) - public void testCopyConstructor() + public void testCopyConstructors() { SequenceFeature sf1 = new SequenceFeature("type", "desc", 22, 33, 12.5f, "group"); @@ -56,10 +56,41 @@ public class SequenceFeatureTest assertEquals("desc", sf2.getDescription()); assertEquals(22, sf2.getBegin()); assertEquals(33, sf2.getEnd()); + assertEquals(12.5f, sf2.getScore()); assertEquals("+", sf2.getValue("STRAND")); assertEquals("Testing", sf2.getValue("Note")); // shallow clone of otherDetails map - contains the same object values! assertSame(count, sf2.getValue("Count")); + + /* + * copy constructor modifying begin/end/group/score + */ + SequenceFeature sf3 = new SequenceFeature(sf1, 11, 14, "group2", 17.4f); + assertEquals("type", sf3.getType()); + assertEquals("desc", sf3.getDescription()); + assertEquals(11, sf3.getBegin()); + assertEquals(14, sf3.getEnd()); + assertEquals(17.4f, sf3.getScore()); + assertEquals("+", sf3.getValue("STRAND")); + assertEquals("Testing", sf3.getValue("Note")); + // shallow clone of otherDetails map - contains the same object values! + assertSame(count, sf3.getValue("Count")); + + /* + * copy constructor modifying type/begin/end/group/score + */ + SequenceFeature sf4 = new SequenceFeature(sf1, "Disulfide bond", 12, + 15, "group3", -9.1f); + assertEquals("Disulfide bond", sf4.getType()); + assertTrue(sf4.isContactFeature()); + assertEquals("desc", sf4.getDescription()); + assertEquals(12, sf4.getBegin()); + assertEquals(15, sf4.getEnd()); + assertEquals(-9.1f, sf4.getScore()); + assertEquals("+", sf4.getValue("STRAND")); + assertEquals("Testing", sf4.getValue("Note")); + // shallow clone of otherDetails map - contains the same object values! + assertSame(count, sf4.getValue("Count")); } /** @@ -123,51 +154,61 @@ public class SequenceFeatureTest assertEquals(sf1.hashCode(), sf2.hashCode()); // changing type breaks equals: - String restores = sf2.getType(); - sf2.setType("Type"); - assertFalse(sf1.equals(sf2)); - sf2.setType(restores); + SequenceFeature sf3 = new SequenceFeature("type", "desc", 22, 33, + 12.5f, "group"); + SequenceFeature sf4 = new SequenceFeature("Type", "desc", 22, 33, + 12.5f, "group"); + assertFalse(sf3.equals(sf4)); // changing description breaks equals: - restores = sf2.getDescription(); + String restores = sf2.getDescription(); sf2.setDescription("Desc"); assertFalse(sf1.equals(sf2)); sf2.setDescription(restores); // changing score breaks equals: float restoref = sf2.getScore(); - sf2.setScore(12.4f); + sf2 = new SequenceFeature(sf2, sf2.getBegin(), sf2.getEnd(), + sf2.getFeatureGroup(), 10f); assertFalse(sf1.equals(sf2)); - sf2.setScore(restoref); + sf2 = new SequenceFeature(sf2, sf2.getBegin(), sf2.getEnd(), + sf2.getFeatureGroup(), restoref); // NaN doesn't match a number restoref = sf2.getScore(); - sf2.setScore(Float.NaN); + sf2 = new SequenceFeature(sf2, sf2.getBegin(), sf2.getEnd(), + sf2.getFeatureGroup(), Float.NaN); assertFalse(sf1.equals(sf2)); // NaN matches NaN - sf1.setScore(Float.NaN); + sf1 = new SequenceFeature(sf1, sf1.getBegin(), sf1.getEnd(), + sf1.getFeatureGroup(), Float.NaN); assertTrue(sf1.equals(sf2)); - sf1.setScore(restoref); - sf2.setScore(restoref); + sf1 = new SequenceFeature(sf1, sf1.getBegin(), sf1.getEnd(), + sf1.getFeatureGroup(), restoref); + sf2 = new SequenceFeature(sf2, sf2.getBegin(), sf2.getEnd(), + sf2.getFeatureGroup(), restoref); // changing start position breaks equals: int restorei = sf2.getBegin(); - sf2.setBegin(21); + sf2 = new SequenceFeature(sf2, 21, sf2.getEnd(), sf2.getFeatureGroup(), sf2.getScore()); assertFalse(sf1.equals(sf2)); - sf2.setBegin(restorei); + sf2 = new SequenceFeature(sf2, restorei, sf2.getEnd(), + sf2.getFeatureGroup(), sf2.getScore()); // changing end position breaks equals: restorei = sf2.getEnd(); - sf2.setEnd(32); + sf2 = new SequenceFeature(sf2, sf2.getBegin(), 32, + sf2.getFeatureGroup(), sf2.getScore()); assertFalse(sf1.equals(sf2)); - sf2.setEnd(restorei); + sf2 = new SequenceFeature(sf2, sf2.getBegin(), restorei, + sf2.getFeatureGroup(), sf2.getScore()); // changing feature group breaks equals: restores = sf2.getFeatureGroup(); - sf2.setFeatureGroup("Group"); + sf2 = new SequenceFeature(sf2, sf2.getBegin(), sf2.getEnd(), "Group", sf2.getScore()); assertFalse(sf1.equals(sf2)); - sf2.setFeatureGroup(restores); + sf2 = new SequenceFeature(sf2, sf2.getBegin(), sf2.getEnd(), restores, sf2.getScore()); // changing ID breaks equals: restores = (String) sf2.getValue("ID"); @@ -215,17 +256,21 @@ public class SequenceFeatureTest SequenceFeature sf = new SequenceFeature("type", "desc", 22, 33, 12.5f, "group"); assertFalse(sf.isContactFeature()); - sf.setType(""); + sf = new SequenceFeature("", "desc", 22, 33, 12.5f, "group"); assertFalse(sf.isContactFeature()); - sf.setType(null); + sf = new SequenceFeature(null, "desc", 22, 33, 12.5f, "group"); assertFalse(sf.isContactFeature()); - sf.setType("Disulfide Bond"); + sf = new SequenceFeature("Disulfide Bond", "desc", 22, 33, 12.5f, + "group"); assertTrue(sf.isContactFeature()); - sf.setType("disulfide bond"); + sf = new SequenceFeature("disulfide bond", "desc", 22, 33, 12.5f, + "group"); assertTrue(sf.isContactFeature()); - sf.setType("Disulphide Bond"); + sf = new SequenceFeature("Disulphide Bond", "desc", 22, 33, 12.5f, + "group"); assertTrue(sf.isContactFeature()); - sf.setType("disulphide bond"); + sf = new SequenceFeature("disulphide bond", "desc", 22, 33, 12.5f, + "group"); assertTrue(sf.isContactFeature()); } }