X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fanalysis%2FAAFrequencyTest.java;h=75fb39e4e047ed509cca488204747547dfbdb26f;hb=241bd0223b016b5ad5ec78520310a8de32842722;hp=bb3510a03700feeddd228bd8e680e234c6f22aa9;hpb=0a5ce6145bb76fc7eb8a5cc2670e20453fbedd29;p=jalview.git diff --git a/test/jalview/analysis/AAFrequencyTest.java b/test/jalview/analysis/AAFrequencyTest.java index bb3510a..75fb39e 100644 --- a/test/jalview/analysis/AAFrequencyTest.java +++ b/test/jalview/analysis/AAFrequencyTest.java @@ -25,14 +25,25 @@ import static org.testng.AssertJUnit.assertNull; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.Annotation; -import jalview.datamodel.Profile; +import jalview.datamodel.ProfileI; +import jalview.datamodel.ProfilesI; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; +import jalview.gui.JvOptionPane; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class AAFrequencyTest { + + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + @Test(groups = { "Functional" }) public void testCalculate_noProfile() { @@ -41,12 +52,12 @@ public class AAFrequencyTest SequenceI seq3 = new Sequence("Seq3", "C---G"); SequenceI seq4 = new Sequence("Seq4", "CA--t"); SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 }; - Profile[] result = new Profile[seq1.getLength()]; - - AAFrequency.calculate(seqs, 0, seq1.getLength(), result, false); + int width = seq1.getLength(); + ProfilesI result = AAFrequency.calculate(seqs, width, 0, width, + false); // col 0 is 100% C - Profile col = result[0]; + ProfileI col = result.get(0); assertEquals(100f, col.getPercentageIdentity(false)); assertEquals(100f, col.getPercentageIdentity(true)); assertEquals(4, col.getMaxCount()); @@ -54,28 +65,28 @@ public class AAFrequencyTest assertNull(col.getCounts()); // col 1 is 75% A - col = result[1]; + col = result.get(1); assertEquals(75f, col.getPercentageIdentity(false)); assertEquals(100f, col.getPercentageIdentity(true)); assertEquals(3, col.getMaxCount()); assertEquals("A", col.getModalResidue()); // col 2 is 50% G 50% C or 25/25 counting gaps - col = result[2]; + col = result.get(2); assertEquals(25f, col.getPercentageIdentity(false)); assertEquals(50f, col.getPercentageIdentity(true)); assertEquals(1, col.getMaxCount()); assertEquals("CG", col.getModalResidue()); // col 3 is all gaps - col = result[3]; + col = result.get(3); assertEquals(0f, col.getPercentageIdentity(false)); assertEquals(0f, col.getPercentageIdentity(true)); assertEquals(0, col.getMaxCount()); assertEquals("", col.getModalResidue()); // col 4 is 75% T 25% G - col = result[4]; + col = result.get(4); assertEquals(75f, col.getPercentageIdentity(false)); assertEquals(75f, col.getPercentageIdentity(true)); assertEquals(3, col.getMaxCount()); @@ -90,26 +101,27 @@ public class AAFrequencyTest SequenceI seq3 = new Sequence("Seq3", "C--G"); SequenceI seq4 = new Sequence("Seq4", "CA-t"); SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 }; - Profile[] result = new Profile[seq1.getLength()]; + int width = seq1.getLength(); + ProfilesI result = AAFrequency.calculate(seqs, width, 0, width, + true); - AAFrequency.calculate(seqs, 0, seq1.getLength(), result, true); - Profile profile = result[0]; + ProfileI profile = result.get(0); assertEquals(4, profile.getCounts().getCount('C')); assertEquals(4, profile.getHeight()); assertEquals(4, profile.getNonGapped()); - profile = result[1]; + profile = result.get(1); assertEquals(3, profile.getCounts().getCount('A')); assertEquals(4, profile.getHeight()); assertEquals(3, profile.getNonGapped()); - profile = result[2]; + profile = result.get(2); assertEquals(1, profile.getCounts().getCount('C')); assertEquals(1, profile.getCounts().getCount('G')); assertEquals(4, profile.getHeight()); assertEquals(2, profile.getNonGapped()); - profile = result[3]; + profile = result.get(3); assertEquals(3, profile.getCounts().getCount('T')); assertEquals(1, profile.getCounts().getCount('G')); assertEquals(4, profile.getHeight()); @@ -124,15 +136,16 @@ public class AAFrequencyTest SequenceI seq3 = new Sequence("Seq3", "C--G"); SequenceI seq4 = new Sequence("Seq4", "CA-t"); SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 }; - Profile[] result = new Profile[seq1.getLength()]; - // ensure class loaded and initialized - AAFrequency.calculate(seqs, 0, seq1.getLength(), result, true); + // ensure class loaded and initialised + int width = seq1.getLength(); + AAFrequency.calculate(seqs, width, 0, width, true); + int reps = 100000; long start = System.currentTimeMillis(); for (int i = 0; i < reps; i++) { - AAFrequency.calculate(seqs, 0, seq1.getLength(), result, true); + AAFrequency.calculate(seqs, width, 0, width, true); } System.out.println(System.currentTimeMillis() - start); } @@ -154,11 +167,11 @@ public class AAFrequencyTest SequenceI seq3 = new Sequence("Seq3", "C---G"); SequenceI seq4 = new Sequence("Seq4", "CA--t"); SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 }; - Profile[] profiles = new Profile[seq1.getLength()]; - AAFrequency.calculate(seqs, 0, seq1.getLength(), profiles, true); + int width = seq1.getLength(); + ProfilesI profiles = AAFrequency.calculate(seqs, width, 0, width, true); AlignmentAnnotation consensus = new AlignmentAnnotation("Consensus", - "PID", new Annotation[seq1.getLength()]); + "PID", new Annotation[width]); AAFrequency .completeConsensus(consensus, profiles, 0, 5, false, true, 4); @@ -195,11 +208,11 @@ public class AAFrequencyTest SequenceI seq3 = new Sequence("Seq3", "C---G"); SequenceI seq4 = new Sequence("Seq4", "CA--t"); SequenceI[] seqs = new SequenceI[] { seq1, seq2, seq3, seq4 }; - Profile[] profiles = new Profile[seq1.getLength()]; - AAFrequency.calculate(seqs, 0, seq1.getLength(), profiles, true); + int width = seq1.getLength(); + ProfilesI profiles = AAFrequency.calculate(seqs, width, 0, width, true); AlignmentAnnotation consensus = new AlignmentAnnotation("Consensus", - "PID", new Annotation[seq1.getLength()]); + "PID", new Annotation[width]); AAFrequency .completeConsensus(consensus, profiles, 0, 5, true, false, 4);