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
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
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
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
newScore = PIDModel.computePID(s1, s2, params);
oldScore = Comparison.PID(s1, s2);
assertEquals(newScore, oldScore, DELTA);
+ assertEquals(newScore, PIDModel.computePID(s2, s1, params));
}
/**
*/
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
*/
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
*/
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
*/
params = new SimilarityParams(false, false, true, true);
assertEquals(PIDModel.computePID(s1, s2, params), 25d);
+ assertEquals(PIDModel.computePID(s2, s1, params), 25d);
}
/**
*/
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
*/
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
*/
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
*/
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
+ * as it don't make sense
+ */
}
}