1 package jalview.util.matcher;
3 import static org.testng.Assert.assertFalse;
4 import static org.testng.Assert.assertTrue;
6 import org.testng.annotations.Test;
8 public class MatcherTest
11 * Tests for float comparison conditions
14 public void testMatches_float()
19 MatcherI m = new Matcher(Condition.EQ, 2f);
20 assertTrue(m.matches("2"));
21 assertTrue(m.matches("2.0"));
22 assertFalse(m.matches("2.01"));
27 m = new Matcher(Condition.NE, 2f);
28 assertFalse(m.matches("2"));
29 assertFalse(m.matches("2.0"));
30 assertTrue(m.matches("2.01"));
35 m = new Matcher(Condition.GE, 2f);
36 assertTrue(m.matches("2"));
37 assertTrue(m.matches("2.1"));
38 assertFalse(m.matches("1.9"));
43 m = new Matcher(Condition.GT, 2f);
44 assertFalse(m.matches("2"));
45 assertTrue(m.matches("2.1"));
46 assertFalse(m.matches("1.9"));
51 m = new Matcher(Condition.LE, 2f);
52 assertTrue(m.matches("2"));
53 assertFalse(m.matches("2.1"));
54 assertTrue(m.matches("1.9"));
59 m = new Matcher(Condition.LT, 2f);
60 assertFalse(m.matches("2"));
61 assertFalse(m.matches("2.1"));
62 assertTrue(m.matches("1.9"));
66 public void testMatches_floatNullOrInvalid()
68 for (Condition cond : Condition.values())
72 MatcherI m = new Matcher(cond, 2f);
73 assertFalse(m.matches(null));
74 assertFalse(m.matches(""));
75 assertFalse(m.matches("two"));
81 * Tests for string comparison conditions
84 public void testMatches_pattern()
89 MatcherI m = new Matcher(Condition.Contains, "benign");
90 assertTrue(m.matches("benign"));
91 assertTrue(m.matches("MOSTLY BENIGN OBSERVED")); // not case-sensitive
92 assertFalse(m.matches("pathogenic"));
93 assertFalse(m.matches(null));
98 m = new Matcher(Condition.NotContains, "benign");
99 assertFalse(m.matches("benign"));
100 assertFalse(m.matches("MOSTLY BENIGN OBSERVED")); // not case-sensitive
101 assertTrue(m.matches("pathogenic"));
102 assertTrue(m.matches(null)); // null value passes this condition
107 m = new Matcher(Condition.Matches, "benign");
108 assertTrue(m.matches("benign"));
109 assertTrue(m.matches(" Benign ")); // trim before testing
110 assertFalse(m.matches("MOSTLY BENIGN"));
111 assertFalse(m.matches("pathogenic"));
112 assertFalse(m.matches(null));
117 m = new Matcher(Condition.NotMatches, "benign");
118 assertFalse(m.matches("benign"));
119 assertFalse(m.matches(" Benign ")); // trim before testing
120 assertTrue(m.matches("MOSTLY BENIGN"));
121 assertTrue(m.matches("pathogenic"));
122 assertTrue(m.matches(null));
126 * If a float is passed with a string condition it gets converted to a string
129 public void testMatches_floatWithStringCondition()
131 MatcherI m = new Matcher(Condition.Contains, 1.2e-6f);
132 assertTrue(m.matches("1.2e-6"));
134 m = new Matcher(Condition.Contains, 0.0000001f);
135 assertTrue(m.matches("1.0e-7"));
136 assertTrue(m.matches("1.0E-7"));
137 assertFalse(m.matches("0.0000001f"));