From: tcofoegbu Date: Wed, 16 Nov 2016 14:38:42 +0000 (+0000) Subject: Merge branch 'develop' of https://source.jalview.org/git/jalview into develop X-Git-Tag: Release_2_10_1~11^2~2 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=8bb1df31c9d46763d2a3278d27d52ce69ba441b3;hp=c3c7f93c27f8bc65da1b5491204b6abbeb557ed3;p=jalview.git Merge branch 'develop' of https://source.jalview.org/git/jalview into develop --- diff --git a/src/jalview/datamodel/SequenceFeature.java b/src/jalview/datamodel/SequenceFeature.java index c75d6f2..0baa78e 100755 --- a/src/jalview/datamodel/SequenceFeature.java +++ b/src/jalview/datamodel/SequenceFeature.java @@ -208,7 +208,9 @@ public class SequenceFeature } SequenceFeature sf = (SequenceFeature) o; - if (begin != sf.begin || end != sf.end || score != sf.score) + boolean sameScore = Float.isNaN(score) ? Float.isNaN(sf.score) + : score == sf.score; + if (begin != sf.begin || end != sf.end || !sameScore) { return false; } diff --git a/src/jalview/ws/sifts/SiftsClient.java b/src/jalview/ws/sifts/SiftsClient.java index eb094da..27db604 100644 --- a/src/jalview/ws/sifts/SiftsClient.java +++ b/src/jalview/ws/sifts/SiftsClient.java @@ -511,13 +511,13 @@ public class SiftsClient implements SiftsClientI if (os != null) { MappingOutputPojo mop = new MappingOutputPojo(); - mop.setSeqStart(pdbStart); - mop.setSeqEnd(pdbEnd); + mop.setSeqStart(seqStart); + mop.setSeqEnd(seqEnd); mop.setSeqName(seq.getName()); mop.setSeqResidue(matchedSeq); - mop.setStrStart(seqStart); - mop.setStrEnd(seqEnd); + mop.setStrStart(pdbStart); + mop.setStrEnd(pdbEnd); mop.setStrName(structId); mop.setStrResidue(targetStrucSeqs.toString()); diff --git a/test/jalview/datamodel/SequenceFeatureTest.java b/test/jalview/datamodel/SequenceFeatureTest.java index 2ec824d..5150337 100644 --- a/test/jalview/datamodel/SequenceFeatureTest.java +++ b/test/jalview/datamodel/SequenceFeatureTest.java @@ -112,56 +112,83 @@ 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); // changing description breaks equals: - sf2.setType("type"); + 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); + assertFalse(sf1.equals(sf2)); + sf2.setScore(restoref); + + // NaN doesn't match a number + restoref = sf2.getScore(); + sf2.setScore(Float.NaN); + assertFalse(sf1.equals(sf2)); + + // NaN matches NaN + sf1.setScore(Float.NaN); + assertTrue(sf1.equals(sf2)); + sf1.setScore(restoref); + sf2.setScore(restoref); // changing start position breaks equals: - sf2.setDescription("desc"); + int restorei = sf2.getBegin(); sf2.setBegin(21); assertFalse(sf1.equals(sf2)); + sf2.setBegin(restorei); // changing end position breaks equals: - sf2.setBegin(22); + restorei = sf2.getEnd(); sf2.setEnd(32); assertFalse(sf1.equals(sf2)); + sf2.setEnd(restorei); // changing feature group breaks equals: - sf2.setEnd(33); + restores = sf2.getFeatureGroup(); sf2.setFeatureGroup("Group"); assertFalse(sf1.equals(sf2)); + sf2.setFeatureGroup(restores); // changing ID breaks equals: - sf2.setFeatureGroup("group"); + restores = (String) sf2.getValue("ID"); sf2.setValue("ID", "id2"); assertFalse(sf1.equals(sf2)); + sf2.setValue("ID", restores); // changing Name breaks equals: - sf2.setValue("ID", "id"); + restores = (String) sf2.getValue("Name"); sf2.setValue("Name", "Name"); assertFalse(sf1.equals(sf2)); + sf2.setValue("Name", restores); // changing Parent breaks equals: - sf2.setValue("Name", "name"); + restores = (String) sf1.getValue("Parent"); sf1.setValue("Parent", "Parent"); assertFalse(sf1.equals(sf2)); + sf1.setValue("Parent", restores); // changing strand breaks equals: - sf1.setValue("Parent", "parent"); + restorei = sf2.getStrand(); sf2.setStrand("-"); assertFalse(sf1.equals(sf2)); + sf2.setStrand(restorei == 1 ? "+" : "-"); // changing phase breaks equals: - sf2.setStrand("+"); + restores = sf1.getPhase(); sf1.setPhase("2"); assertFalse(sf1.equals(sf2)); + sf1.setPhase(restores); // restore equality as sanity check: - sf1.setPhase("1"); assertTrue(sf1.equals(sf2)); assertTrue(sf2.equals(sf1)); assertEquals(sf1.hashCode(), sf2.hashCode()); diff --git a/test/jalview/ws/sifts/SiftsClientTest.java b/test/jalview/ws/sifts/SiftsClientTest.java index f22a3b7..3f67c4c 100644 --- a/test/jalview/ws/sifts/SiftsClientTest.java +++ b/test/jalview/ws/sifts/SiftsClientTest.java @@ -387,8 +387,8 @@ public class SiftsClientTest testSeq, testPDBId, "A"); String expectedMappingOutput = "\nSequence ⟷ Structure mapping details\n" + "Method: SIFTS\n\n" - + "P00221 : 1 - 97 Maps to \n" - + "1A70|A : 51 - 147\n\n" + + "P00221 : 51 - 147 Maps to \n" + + "1A70|A : 1 - 97\n\n" + "P00221 AAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLD\n" + " |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n" + "1A70|A AAYKVTLVTPTGNVEFQCPDDVYILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLD\n\n"