X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2Fscoremodels%2FPIDModelTest.java;h=24ddad4095e8db424ae56a1dc6fd2b3a20cfea72;hb=164fb77632cc3c9a3b5f5ac5290eadec920ffbc6;hp=212f825b9e24c6e4e235c6d76b525af890d9bd26;hpb=136c0793b90b72b928c4d77dc109dd5c644e00d3;p=jalview.git diff --git a/test/jalview/analysis/scoremodels/PIDModelTest.java b/test/jalview/analysis/scoremodels/PIDModelTest.java index 212f825..24ddad4 100644 --- a/test/jalview/analysis/scoremodels/PIDModelTest.java +++ b/test/jalview/analysis/scoremodels/PIDModelTest.java @@ -1,3 +1,23 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.analysis.scoremodels; import static org.testng.Assert.assertEquals; @@ -44,6 +64,8 @@ public class PIDModelTest double newScore = PIDModel.computePID(s1, s2, params); double oldScore = Comparison.PID(s1, s2); assertEquals(newScore, oldScore, DELTA); + // and verify PIDModel calculation is symmetric + assertEquals(newScore, PIDModel.computePID(s2, s1, params)); /* * same length, with gaps @@ -54,6 +76,7 @@ public class PIDModelTest newScore = PIDModel.computePID(s1, s2, params); oldScore = Comparison.PID(s1, s2); assertEquals(newScore, oldScore, DELTA); + assertEquals(newScore, PIDModel.computePID(s2, s1, params)); /* * s2 longer than s1, with gaps @@ -64,6 +87,7 @@ public class PIDModelTest newScore = PIDModel.computePID(s1, s2, params); oldScore = Comparison.PID(s1, s2); assertEquals(newScore, oldScore, DELTA); + assertEquals(newScore, PIDModel.computePID(s2, s1, params)); /* * s1 longer than s2, with gaps @@ -74,6 +98,7 @@ public class PIDModelTest newScore = PIDModel.computePID(s1, s2, params); oldScore = Comparison.PID(s1, s2); assertEquals(newScore, oldScore, DELTA); + assertEquals(newScore, PIDModel.computePID(s2, s1, params)); /* * same but now also with gapped columns @@ -84,6 +109,7 @@ public class PIDModelTest newScore = PIDModel.computePID(s1, s2, params); oldScore = Comparison.PID(s1, s2); assertEquals(newScore, oldScore, DELTA); + assertEquals(newScore, PIDModel.computePID(s2, s1, params)); } /** @@ -102,6 +128,7 @@ public class PIDModelTest */ SimilarityParamsI params = new SimilarityParams(true, true, true, true); assertEquals(PIDModel.computePID(s1, s2, params), 80d); + assertEquals(PIDModel.computePID(s2, s1, params), 80d); /* * match gap-char but not gap-gap @@ -109,6 +136,7 @@ public class PIDModelTest */ params = new SimilarityParams(false, true, true, true); assertEquals(PIDModel.computePID(s1, s2, params), 75d); + assertEquals(PIDModel.computePID(s2, s1, params), 75d); /* * include gaps but don't match them @@ -117,6 +145,7 @@ public class PIDModelTest */ params = new SimilarityParams(true, false, true, true); assertEquals(PIDModel.computePID(s1, s2, params), 40d); + assertEquals(PIDModel.computePID(s2, s1, params), 40d); /* * include gaps but don't match them @@ -125,6 +154,7 @@ public class PIDModelTest */ params = new SimilarityParams(false, false, true, true); assertEquals(PIDModel.computePID(s1, s2, params), 25d); + assertEquals(PIDModel.computePID(s2, s1, params), 25d); } /** @@ -136,22 +166,25 @@ public class PIDModelTest { String s1 = "FR-K-S"; String s2 = "FS--L"; - + /* * match gap-gap and gap-char * shorter sequence treated as if with trailing gaps * PID = 5/6 = 83.333...% */ - SimilarityParamsI params = new SimilarityParams(true, true, true, false); + SimilarityParamsI params = new SimilarityParams(true, true, true, + false); assertEquals(PIDModel.computePID(s1, s2, params), 500d / 6); - + assertEquals(PIDModel.computePID(s2, s1, params), 500d / 6); + /* * match gap-char but not gap-gap * PID = 4/5 = 80% */ params = new SimilarityParams(false, true, true, false); assertEquals(PIDModel.computePID(s1, s2, params), 80d); - + assertEquals(PIDModel.computePID(s2, s1, params), 80d); + /* * include gaps but don't match them * include gap-gap, counted as identity @@ -159,7 +192,8 @@ public class PIDModelTest */ params = new SimilarityParams(true, false, true, false); assertEquals(PIDModel.computePID(s1, s2, params), 100d / 3); - + assertEquals(PIDModel.computePID(s2, s1, params), 100d / 3); + /* * include gaps but don't match them * exclude gap-gap @@ -167,6 +201,7 @@ public class PIDModelTest */ params = new SimilarityParams(false, false, true, false); assertEquals(PIDModel.computePID(s1, s2, params), 20d); + assertEquals(PIDModel.computePID(s2, s1, params), 20d); /* * no tests for matchGaps=true, includeGaps=false