JAL-2094 new classes ColorI, Colour added
[jalview.git] / test / jalview / analysis / SequenceIdMatcherTest.java
1 package jalview.analysis;
2
3 import static org.testng.AssertJUnit.assertFalse;
4 import static org.testng.AssertJUnit.assertTrue;
5
6 import jalview.analysis.SequenceIdMatcher.SeqIdName;
7 import jalview.datamodel.SequenceI;
8
9 import org.testng.annotations.Test;
10
11 public class SequenceIdMatcherTest
12 {
13
14   /**
15    * Test the method that checks for one sequence id starting with the other,
16    * followed by an 'allowed' separator character
17    */
18   @Test(groups = "Functional")
19   public void test_seqIdNameEquals()
20   {
21     SequenceIdMatcher sequenceIdMatcher = new SequenceIdMatcher(
22             new SequenceI[] {});
23
24     /*
25      * target name = matcher name + word separator...
26      */
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_"));
53
54     /*
55      * matcher name = target name + word separator...
56      */
57     testee = sequenceIdMatcher.new SeqIdName("A12345#");
58     assertTrue(testee.equals("A12345"));
59
60     /*
61      * miscellaneous failing cases
62      */
63     testee = sequenceIdMatcher.new SeqIdName("A12345");
64     assertFalse(testee.equals((Object) null));
65     assertFalse(testee.equals(""));
66     assertFalse(testee.equals("a12345"));
67     assertFalse(testee.equals("A12346|A12345"));
68
69     testee = sequenceIdMatcher.new SeqIdName("A12345?B23456");
70     assertFalse(testee.equals("B23456"));
71     assertFalse(testee.equals("A12345|"));
72     assertFalse(testee.equals("A12345?"));
73
74     testee = sequenceIdMatcher.new SeqIdName("A12345<");
75     assertFalse(testee.equals("A12345?"));
76     assertTrue(testee.equals("A12345<")); // bug? inconsistent
77   }
78 }