2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
21 package jalview.analysis;
23 import static org.testng.AssertJUnit.assertFalse;
24 import static org.testng.AssertJUnit.assertTrue;
26 import jalview.analysis.SequenceIdMatcher.SeqIdName;
27 import jalview.datamodel.SequenceI;
29 import org.testng.annotations.Test;
31 public class SequenceIdMatcherTest
35 * Test the method that checks for one sequence id starting with the other,
36 * followed by an 'allowed' separator character
38 @Test(groups = "Functional")
39 public void test_seqIdNameEquals()
41 SequenceIdMatcher sequenceIdMatcher = new SequenceIdMatcher(
45 * target name = matcher name + word separator...
47 SeqIdName testee = sequenceIdMatcher.new SeqIdName("A12345");
48 assertTrue(testee.equals("A12345"));
49 assertTrue(testee.equals("A12345~"));
50 assertTrue(testee.equals("A12345."));
51 assertTrue(testee.equals("A12345 "));
52 assertTrue(testee.equals("A12345|"));
53 assertTrue(testee.equals("A12345#"));
54 assertTrue(testee.equals("A12345\\"));
55 assertTrue(testee.equals("A12345/"));
56 assertTrue(testee.equals("A12345<"));
57 assertTrue(testee.equals("A12345>"));
58 assertTrue(testee.equals("A12345!"));
59 assertTrue(testee.equals("A12345\""));
60 assertTrue(testee.equals("A12345" + String.valueOf((char) 0x00A4)));
61 assertTrue(testee.equals("A12345$a"));
62 assertTrue(testee.equals("A12345%b"));
63 assertTrue(testee.equals("A12345^cd"));
64 assertTrue(testee.equals("A12345*efg"));
65 assertTrue(testee.equals("A12345)^&!"));
66 assertTrue(testee.equals("A12345}01&*"));
67 assertTrue(testee.equals("A12345[A23456"));
68 assertTrue(testee.equals("A12345@|Uniprot"));
69 assertTrue(testee.equals("A12345'whatever you want here"));
70 assertTrue(testee.equals("A12345,"));
71 assertTrue(testee.equals("A12345?"));
72 assertTrue(testee.equals("A12345_"));
74 * case insensitive matching
76 assertTrue(testee.equals("a12345"));
79 * matcher name = target name + word separator...
81 testee = sequenceIdMatcher.new SeqIdName("A12345#");
82 assertTrue(testee.equals("A12345"));
85 * case insensitive matching
87 assertTrue(testee.equals("a12345"));
90 * miscellaneous failing cases
92 testee = sequenceIdMatcher.new SeqIdName("A12345");
93 assertFalse(testee.equals((Object) null));
94 assertFalse(testee.equals(""));
95 assertFalse(testee.equals("A12346|A12345"));
97 * case insensitive matching
99 assertTrue(testee.equals("a12345"));
101 testee = sequenceIdMatcher.new SeqIdName("A12345?B23456");
102 assertFalse(testee.equals("B23456"));
103 assertFalse(testee.equals("A12345|"));
104 assertFalse(testee.equals("A12345?"));
106 testee = sequenceIdMatcher.new SeqIdName("A12345<");
107 assertFalse(testee.equals("A12345?"));
108 assertTrue(testee.equals("A12345<")); // bug? inconsistent
110 * case insensitive matching
112 assertTrue(testee.equals("a12345"));
114 testee = sequenceIdMatcher.new SeqIdName("UNIPROT|A12345");
115 assertFalse(testee.equals("A12345"));
116 assertFalse(testee.equals("UNIPROT|B98765"));
117 assertFalse(testee.equals("UNIPROT|"));
118 assertTrue(testee.equals("UNIPROT"));