1 package jalview.util.matcher;
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertFalse;
5 import static org.testng.Assert.assertTrue;
7 import java.util.function.Function;
9 import org.testng.annotations.Test;
11 public class KeyedMatcherSetTest
14 public void testMatches()
17 * a numeric matcher - MatcherTest covers more conditions
19 KeyedMatcherI km = new KeyedMatcher("AF", Condition.GE, -2F);
20 assertTrue(km.matches(key -> "-2"));
21 assertTrue(km.matches(key -> "-1"));
22 assertFalse(km.matches(key -> "-3"));
23 assertFalse(km.matches(key -> ""));
24 assertFalse(km.matches(key -> "junk"));
25 assertFalse(km.matches(key -> null));
28 * a string pattern matcher
30 km = new KeyedMatcher("AF", Condition.Contains, "Cat");
31 assertTrue(km.matches(key -> "AF".equals(key) ? "raining cats and dogs"
38 // condition1: AF value contains "dog" (matches)
39 KeyedMatcherI km1 = new KeyedMatcher("AF", Condition.Contains, "dog");
40 // condition 2: CSQ value does not contain "how" (does not match)
41 KeyedMatcherI km2 = new KeyedMatcher("CSQ", Condition.NotContains,
44 Function<String, String> vp = key -> "AF".equals(key) ? "raining cats and dogs"
46 assertTrue(km1.matches(vp));
47 assertFalse(km2.matches(vp));
49 KeyedMatcherSetI kms = new KeyedMatcherSet();
50 assertTrue(kms.matches(vp)); // if no conditions, then 'all' pass
52 assertTrue(kms.matches(vp));
54 assertFalse(kms.matches(vp));
58 public void testToString()
60 KeyedMatcherI km1 = new KeyedMatcher("AF", Condition.LT, 1.2f);
61 assertEquals(km1.toString(), "AF LT 1.2");
63 KeyedMatcher km2 = new KeyedMatcher("CLIN_SIG", Condition.NotContains, "path");
64 assertEquals(km2.toString(), "CLIN_SIG NotContains PATH");
69 KeyedMatcherSetI kms = new KeyedMatcherSet();
70 assertEquals(kms.toString(), "");
72 assertEquals(kms.toString(), "(AF LT 1.2)");
74 assertEquals(kms.toString(),
75 "(AF LT 1.2) AND (CLIN_SIG NotContains PATH)");
80 kms = new KeyedMatcherSet();
81 assertEquals(kms.toString(), "");
83 assertEquals(kms.toString(), "(AF LT 1.2)");
85 assertEquals(kms.toString(),
86 "(AF LT 1.2) OR (CLIN_SIG NotContains PATH)");
92 protected KeyedMatcher km3()
94 return new KeyedMatcher("CSQ", Condition.Contains, "benign");
100 // condition1: AF value contains "dog" (matches)
101 KeyedMatcherI km1 = new KeyedMatcher("AF", Condition.Contains, "dog");
102 // condition 2: CSQ value does not contain "how" (does not match)
103 KeyedMatcherI km2 = new KeyedMatcher("CSQ", Condition.NotContains,
106 Function<String, String> vp = key -> "AF".equals(key) ? "raining cats and dogs"
108 assertTrue(km1.matches(vp));
109 assertFalse(km2.matches(vp));
111 KeyedMatcherSetI kms = new KeyedMatcherSet();
113 assertFalse(kms.matches(vp));
115 assertTrue(kms.matches(vp));