X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FResidueCountTest.java;h=696ed767c16b6811ddc6929b8dc18249226eddda;hb=4a59f639cf5769d9ec66142ebecfa4961c5d3b04;hp=e879e33637e873b3e0e936029504daaf7fb4a465;hpb=0a5ce6145bb76fc7eb8a5cc2670e20453fbedd29;p=jalview.git diff --git a/test/jalview/datamodel/ResidueCountTest.java b/test/jalview/datamodel/ResidueCountTest.java index e879e33..696ed76 100644 --- a/test/jalview/datamodel/ResidueCountTest.java +++ b/test/jalview/datamodel/ResidueCountTest.java @@ -1,17 +1,48 @@ +/* + * 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.datamodel; +import java.util.Locale; + import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; -import jalview.datamodel.ResidueCount; import jalview.datamodel.ResidueCount.SymbolCounts; +import jalview.gui.JvOptionPane; import org.junit.Assert; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class ResidueCountTest { + + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + /** * Test a mix of add and put for nucleotide counting */ @@ -56,13 +87,25 @@ public class ResidueCountTest rc.add('-'); rc.add('.'); rc.add(' '); - + assertEquals(rc.getGapCount(), 4); assertEquals(rc.getCount(' '), 4); assertEquals(rc.getCount('-'), 4); assertEquals(rc.getCount('.'), 4); assertFalse(rc.isUsingOtherData()); assertFalse(rc.isCountingInts()); + + rc.set(ResidueCount.GAP_COUNT, Short.MAX_VALUE - 2); + assertEquals(rc.getGapCount(), Short.MAX_VALUE - 2); + assertFalse(rc.isCountingInts()); + rc.addGap(); + assertEquals(rc.getGapCount(), Short.MAX_VALUE - 1); + assertFalse(rc.isCountingInts()); + rc.addGap(); + assertEquals(rc.getGapCount(), Short.MAX_VALUE); + rc.addGap(); + assertTrue(rc.isCountingInts()); + assertEquals(rc.getGapCount(), Short.MAX_VALUE + 1); } @Test(groups = "Functional") @@ -140,7 +183,7 @@ public class ResidueCountTest ResidueCount rc = new ResidueCount(false); // expected characters (upper or lower case): String aas = "ACDEFGHIKLMNPQRSTVWXY"; - String lower = aas.toLowerCase(); + String lower = aas.toLowerCase(Locale.ROOT); for (int i = 0; i < aas.length(); i++) { rc.put(aas.charAt(i), i); @@ -165,7 +208,7 @@ public class ResidueCountTest ResidueCount rc = new ResidueCount(true); // expected characters (upper or lower case): String nucs = "ACGTUN"; - String lower = nucs.toLowerCase(); + String lower = nucs.toLowerCase(Locale.ROOT); for (int i = 0; i < nucs.length(); i++) { rc.put(nucs.charAt(i), i); @@ -243,7 +286,7 @@ public class ResidueCountTest rc.add('P'); assertEquals(rc.getResiduesForCount(Short.MAX_VALUE + 1), "P"); assertEquals(rc.getResiduesForCount(1), "C"); - + // modal count is in the 'other data' counts rc = new ResidueCount(); rc.add('Q'); @@ -374,12 +417,20 @@ public class ResidueCountTest rc.add('K'); } rc.add('F'); - + + /* + * percentages are rounded (0.5 rounded up) + * 10/40 9/40 7/40 6/40 1/40 + */ assertEquals(rc.getTooltip(40, 0), - "P 25%; W 22%; C 17%; Q 17%; K 15%; F 2%"); + "P 25%; W 23%; C 18%; Q 18%; K 15%; F 3%"); + rc.add('Q'); + /* + * 10/30 9/30 8/30 7/30 6/30 1/30 + */ assertEquals(rc.getTooltip(30, 1), - "P 33.3%; W 30.0%; C 23.3%; Q 23.3%; K 20.0%; F 3.3%"); + "P 33.3%; W 30.0%; Q 26.7%; C 23.3%; K 20.0%; F 3.3%"); } @Test(groups = "Functional")