+
+ @Test(groups = { "Functional" })
+ public void testIsNucleotideSequence()
+ {
+ assertFalse(Comparison.isNucleotideSequence(null, true));
+ assertTrue(Comparison.isNucleotideSequence("", true));
+ assertTrue(Comparison.isNucleotideSequence("aAgGcCtTuU", true));
+ assertTrue(Comparison.isNucleotideSequence("aAgGcCtTuU", false));
+ assertFalse(Comparison.isNucleotideSequence("xAgGcCtTuU", false));
+ assertFalse(Comparison.isNucleotideSequence("aAgGcCtTuUx", false));
+ assertTrue(Comparison.isNucleotideSequence("a A-g.GcCtTuU", true));
+ assertFalse(Comparison.isNucleotideSequence("a A-g.GcCtTuU", false));
+ assertFalse(Comparison.isNucleotideSequence("gatactawgataca", false));
+ // including nucleotide ambiguity
+ assertTrue(
+ Comparison.isNucleotideSequence("gatacaWgataca", true, true));
+ assertFalse(
+ Comparison.isNucleotideSequence("gatacaEgataca", true, true));
+
+ // not quite all nucleotides and ambiguity codes
+ Sequence seq = new Sequence("Ambiguity DNA codes", "gatacagatacabve");
+ assertFalse(Comparison.isNucleotide(seq));
+ // all nucleotide and nucleotide ambiguity codes
+ seq = new Sequence("Ambiguity DNA codes", "gatacagatacabvt");
+ assertFalse(Comparison.isNucleotide(seq));
+ seq = new Sequence("Ambiguity DNA codes", "agatacabb");
+ assertFalse(Comparison.isNucleotide(seq));
+ // 55% nucleotide with only Xs or Ns
+ assertTrue(Comparison
+ .isNucleotide(new Sequence("dnaWithXs", "gatacaXXXX")));
+ assertTrue(Comparison
+ .isNucleotide(new Sequence("dnaWithXs", "gatacaNNNN")));
+ assertFalse(Comparison
+ .isNucleotide(new Sequence("dnaWithXs", "gatacXXXXX")));
+ assertFalse(Comparison
+ .isNucleotide(new Sequence("dnaWithXs", "gatacNNNNN")));
+ }
+
+ @Test(groups = { "Functional" })
+ public void testIsSameResidue()
+ {
+ assertTrue(Comparison.isSameResidue('a', 'a', false));
+ assertTrue(Comparison.isSameResidue('a', 'a', true));
+ assertTrue(Comparison.isSameResidue('A', 'a', false));
+ assertTrue(Comparison.isSameResidue('a', 'A', false));
+
+ assertFalse(Comparison.isSameResidue('a', 'A', true));
+ assertFalse(Comparison.isSameResidue('A', 'a', true));
+ }
+
+ @Test(groups = { "Functional" })
+ public void testNucleotideProportion()
+ {
+ assertFalse(Comparison.myShortSequenceNucleotideProportionCount(2, 3));
+ assertTrue(Comparison.myShortSequenceNucleotideProportionCount(3, 3));
+ assertFalse(Comparison.myShortSequenceNucleotideProportionCount(2, 4));
+ assertTrue(Comparison.myShortSequenceNucleotideProportionCount(3, 4));
+ assertFalse(
+ Comparison.myShortSequenceNucleotideProportionCount(17, 20));
+ assertTrue(Comparison.myShortSequenceNucleotideProportionCount(18, 20));
+ assertFalse(
+ Comparison.myShortSequenceNucleotideProportionCount(38, 50));
+ assertTrue(Comparison.myShortSequenceNucleotideProportionCount(39, 50));
+ assertFalse(
+ Comparison.myShortSequenceNucleotideProportionCount(54, 100));
+ assertTrue(
+ Comparison.myShortSequenceNucleotideProportionCount(55, 100));
+ }