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;
28 import jalview.gui.JvOptionPane;
30 import org.testng.annotations.BeforeClass;
31 import org.testng.annotations.Test;
33 public class SequenceIdMatcherTest
36 @BeforeClass(alwaysRun = true)
37 public void setUpJvOptionPane()
39 JvOptionPane.setInteractiveMode(false);
40 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
44 * Test the method that checks for one sequence id starting with the other,
45 * followed by an 'allowed' separator character
47 @Test(groups = "Functional")
48 public void test_seqIdNameEquals()
50 SequenceIdMatcher sequenceIdMatcher = new SequenceIdMatcher(
54 * target name = matcher name + word separator...
56 SeqIdName testee = sequenceIdMatcher.new SeqIdName("A12345");
57 assertTrue(testee.equals("A12345"));
58 assertTrue(testee.equals("A12345~"));
59 assertTrue(testee.equals("A12345."));
60 assertTrue(testee.equals("A12345 "));
61 assertTrue(testee.equals("A12345|"));
62 assertTrue(testee.equals("A12345#"));
63 assertTrue(testee.equals("A12345\\"));
64 assertTrue(testee.equals("A12345/"));
65 assertTrue(testee.equals("A12345<"));
66 assertTrue(testee.equals("A12345>"));
67 assertTrue(testee.equals("A12345!"));
68 assertTrue(testee.equals("A12345\""));
69 assertTrue(testee.equals("A12345" + String.valueOf((char) 0x00A4)));
70 assertTrue(testee.equals("A12345$a"));
71 assertTrue(testee.equals("A12345%b"));
72 assertTrue(testee.equals("A12345^cd"));
73 assertTrue(testee.equals("A12345*efg"));
74 assertTrue(testee.equals("A12345)^&!"));
75 assertTrue(testee.equals("A12345}01&*"));
76 assertTrue(testee.equals("A12345[A23456"));
77 assertTrue(testee.equals("A12345@|Uniprot"));
78 assertTrue(testee.equals("A12345'whatever you want here"));
79 assertTrue(testee.equals("A12345,"));
80 assertTrue(testee.equals("A12345?"));
81 assertTrue(testee.equals("A12345_"));
83 * case insensitive matching
85 assertTrue(testee.equals("a12345"));
88 * matcher name = target name + word separator...
90 testee = sequenceIdMatcher.new SeqIdName("A12345#");
91 assertTrue(testee.equals("A12345"));
94 * case insensitive matching
96 assertTrue(testee.equals("a12345"));
99 * miscellaneous failing cases
101 testee = sequenceIdMatcher.new SeqIdName("A12345");
102 assertFalse(testee.equals((Object) null));
103 assertFalse(testee.equals(""));
104 assertFalse(testee.equals("A12346|A12345"));
106 * case insensitive matching
108 assertTrue(testee.equals("a12345"));
110 testee = sequenceIdMatcher.new SeqIdName("A12345?B23456");
111 assertFalse(testee.equals("B23456"));
112 assertFalse(testee.equals("A12345|"));
113 assertFalse(testee.equals("A12345?"));
115 testee = sequenceIdMatcher.new SeqIdName("A12345<");
116 assertFalse(testee.equals("A12345?"));
117 assertTrue(testee.equals("A12345<")); // bug? inconsistent
119 * case insensitive matching
121 assertTrue(testee.equals("a12345"));
123 testee = sequenceIdMatcher.new SeqIdName("UNIPROT|A12345");
124 assertFalse(testee.equals("A12345"));
125 assertFalse(testee.equals("UNIPROT|B98765"));
126 assertFalse(testee.equals("UNIPROT|"));
127 assertTrue(testee.equals("UNIPROT"));