1 package jalview.analysis;
3 import static org.testng.AssertJUnit.assertFalse;
4 import static org.testng.AssertJUnit.assertTrue;
6 import jalview.analysis.SequenceIdMatcher.SeqIdName;
7 import jalview.datamodel.SequenceI;
9 import org.testng.annotations.Test;
11 public class SequenceIdMatcherTest
15 * Test the method that checks for one sequence id starting with the other,
16 * followed by an 'allowed' separator character
18 @Test(groups = "Functional")
19 public void test_seqIdNameEquals()
21 SequenceIdMatcher sequenceIdMatcher = new SequenceIdMatcher(
25 * target name = matcher name + word separator...
27 SeqIdName testee = sequenceIdMatcher.new SeqIdName("A12345");
28 assertTrue(testee.equals("A12345"));
29 assertTrue(testee.equals("A12345~"));
30 assertTrue(testee.equals("A12345."));
31 assertTrue(testee.equals("A12345 "));
32 assertTrue(testee.equals("A12345|"));
33 assertTrue(testee.equals("A12345#"));
34 assertTrue(testee.equals("A12345\\"));
35 assertTrue(testee.equals("A12345/"));
36 assertTrue(testee.equals("A12345<"));
37 assertTrue(testee.equals("A12345>"));
38 assertTrue(testee.equals("A12345!"));
39 assertTrue(testee.equals("A12345\""));
40 assertTrue(testee.equals("A12345" + String.valueOf((char) 0x00A4)));
41 assertTrue(testee.equals("A12345$a"));
42 assertTrue(testee.equals("A12345%b"));
43 assertTrue(testee.equals("A12345^cd"));
44 assertTrue(testee.equals("A12345*efg"));
45 assertTrue(testee.equals("A12345)^&!"));
46 assertTrue(testee.equals("A12345}01&*"));
47 assertTrue(testee.equals("A12345[A23456"));
48 assertTrue(testee.equals("A12345@|Uniprot"));
49 assertTrue(testee.equals("A12345'whatever you want here"));
50 assertTrue(testee.equals("A12345,"));
51 assertTrue(testee.equals("A12345?"));
52 assertTrue(testee.equals("A12345_"));
54 * case insensitive matching
56 assertTrue(testee.equals("a12345"));
59 * matcher name = target name + word separator...
61 testee = sequenceIdMatcher.new SeqIdName("A12345#");
62 assertTrue(testee.equals("A12345"));
65 * case insensitive matching
67 assertTrue(testee.equals("a12345"));
70 * miscellaneous failing cases
72 testee = sequenceIdMatcher.new SeqIdName("A12345");
73 assertFalse(testee.equals((Object) null));
74 assertFalse(testee.equals(""));
75 assertFalse(testee.equals("A12346|A12345"));
77 * case insensitive matching
79 assertTrue(testee.equals("a12345"));
81 testee = sequenceIdMatcher.new SeqIdName("A12345?B23456");
82 assertFalse(testee.equals("B23456"));
83 assertFalse(testee.equals("A12345|"));
84 assertFalse(testee.equals("A12345?"));
86 testee = sequenceIdMatcher.new SeqIdName("A12345<");
87 assertFalse(testee.equals("A12345?"));
88 assertTrue(testee.equals("A12345<")); // bug? inconsistent
90 * case insensitive matching
92 assertTrue(testee.equals("a12345"));
94 testee = sequenceIdMatcher.new SeqIdName("UNIPROT|A12345");
95 assertFalse(testee.equals("A12345"));
96 assertFalse(testee.equals("UNIPROT|B98765"));
97 assertFalse(testee.equals("UNIPROT|"));
98 assertTrue(testee.equals("UNIPROT"));