X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Futil%2FHMMProbabilityDistributionAnalyserTest.java;h=4dbf05e3182185454615335e7f4639639cadac76;hb=5e22c6b15dc429055036c19fcfc48c16d37d7ad0;hp=60f6c89cd845f19c1857608c56c87676f0ff2669;hpb=066fc9951453a55eea27900f41e1b0a5b59dc57c;p=jalview.git diff --git a/test/jalview/util/HMMProbabilityDistributionAnalyserTest.java b/test/jalview/util/HMMProbabilityDistributionAnalyserTest.java index 60f6c89..4dbf05e 100644 --- a/test/jalview/util/HMMProbabilityDistributionAnalyserTest.java +++ b/test/jalview/util/HMMProbabilityDistributionAnalyserTest.java @@ -1,16 +1,25 @@ package jalview.util; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNull; +import jalview.datamodel.HMMNode; +import jalview.datamodel.HiddenMarkovModel; import jalview.datamodel.Sequence; import jalview.datamodel.SequenceI; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Vector; import org.testng.annotations.Test; +import junit.extensions.PA; + public class HMMProbabilityDistributionAnalyserTest { HMMProbabilityDistributionAnalyser analyser = new HMMProbabilityDistributionAnalyser(); @@ -20,8 +29,8 @@ public class HMMProbabilityDistributionAnalyserTest { { BufferedReader br = new BufferedReader(new FileReader( - "test/utils/test_Fams_for_probability_analysis.txt")); - analyser.moveLocationBy(2, br); + "test/jalview/util/test_Fams_for_probability_analysis")); + analyser.moveLocationBy(1, br); String line = br.readLine(); assertEquals(line, "# STOCKHOLM 1.0"); @@ -35,14 +44,76 @@ public class HMMProbabilityDistributionAnalyserTest { @Test public void testCountValidResidues() { + analyser.sequences = new Vector<>(); + analyser.hmm = new HiddenMarkovModel(); + analyser.hmm.setProperty("LENG", "8"); + + List nodes = new ArrayList<>(); + nodes.add(new HMMNode()); + for (int i = 1; i < 9; i++) + { + HMMNode node = new HMMNode(); + node.setResidueNumber(i - 1); + nodes.add(node); + + } + PA.setValue(analyser.hmm, "nodes", nodes); + SequenceI[] sequence = new Sequence[] { - new Sequence("seq1", "ATGWWSCF"), new Sequence("seq1", "GGWMMKI"), - new Sequence("seq1", "--.ATccc") }; + new Sequence("seq1", "ATGWWSCF"), new Sequence("seq2", "GGMKI"), + new Sequence("seq3", "--.ATccGc") }; analyser.sequences.add(sequence[0]); analyser.sequences.add(sequence[1]); analyser.sequences.add(sequence[2]); int count = analyser.countValidResidues(); - assertEquals(count, 17); + assertEquals(count, 16); + } + + @Test(priority = 0) + public void testReadBinned() throws IOException + { + analyser.readBinned("test/jalview/util/"); + Map map = analyser.binned; + assertEquals(map.get("1.8"), 4.53); + assertEquals(map.get("3.4"), 2.65); + assertEquals(map.get("6.4"), 10.8); + assertEquals(map.get("0"), 5.4); + } + + @Test + public void testReadRaw() throws IOException + { + analyser.readRaw("test/jalview/util/"); + List> list = analyser.raw; + + assertEquals(list.get(0).get(0), 1.43); + assertNull(list.get(0).get(2)); + assertEquals(list.get(1).get(1), 1.2); + assertEquals(list.get(2).get(0), 5.6); + assertEquals(list.get(2).get(2), 6.8); + + } + + @Test(priority = 1) + public void testProcessData() throws IOException + { + analyser.keepRaw = true; + BufferedReader brFam = new BufferedReader(new FileReader( + "test/jalview/util/test_Fams_for_probability_analysis")); + BufferedReader brHMM = new BufferedReader(new FileReader( + "test/jalview/util/test_HMMs_for_probability_analysis")); + analyser.readStockholm(brFam); + analyser.readHMM(brHMM); + analyser.processData(6); + Map map = analyser.binned; + List> list = analyser.raw; + assertEquals(map.get("1.8"), 4.863, 0.001d); + assertEquals(map.get("3.4"), 2.65); + assertEquals(map.get("0"), 5.4); + assertEquals(map.get("6.4"), 10.8); + assertEquals(map.get("1.4"), 0.166667, 0.00001d); + assertEquals(map.get("4.4"), 0.5); + } }