4 import java.io.IOException;
5 import java.lang.reflect.InvocationTargetException;
6 import java.nio.file.Files;
8 import java.util.HashSet;
11 import javax.swing.SwingUtilities;
13 import org.testng.Assert;
14 import org.testng.annotations.AfterClass;
15 import org.testng.annotations.AfterMethod;
16 import org.testng.annotations.BeforeClass;
17 import org.testng.annotations.DataProvider;
18 import org.testng.annotations.Test;
20 import jalview.gui.AlignFrame;
21 import jalview.gui.Desktop;
22 import jalview.gui.JvOptionPane;
23 import jalview.util.ArrayUtils;
25 public class CommandsTest
27 private static final String testfiles = "test/jalview/bin/argparser/testfiles";
29 @BeforeClass(alwaysRun = true)
30 public static void setUpBeforeClass() throws Exception
32 Cache.loadProperties("test/jalview/gui/quitProps.jvprops");
33 Date oneHourFromNow = new Date(
34 System.currentTimeMillis() + 3600 * 1000);
35 Cache.setDateProperty("JALVIEW_NEWS_RSS_LASTMODIFIED", oneHourFromNow);
38 @AfterClass(alwaysRun = true)
39 public static void resetProps()
41 Cache.loadProperties("test/jalview/testProps.jvprops");
44 @BeforeClass(alwaysRun = true)
45 public void setUpJvOptionPane()
47 JvOptionPane.setInteractiveMode(false);
48 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
51 @AfterMethod(alwaysRun = true)
52 public void tearDown()
56 // occasionally we are blocked by Jmol redraws
57 SwingUtilities.invokeAndWait(new Runnable()
63 Desktop.closeDesktop();
66 } catch (Exception foo)
68 System.err.println("Failed during teardown with exception");
69 foo.printStackTrace();
74 public static void callJalviewMain(String[] args)
76 if (Jalview.getInstance() != null)
78 Jalview.getInstance().doMain(args);
86 /* --setprops is currently disabled so this test won't work
87 @Test(groups = "Functional")
88 public void setpropsTest()
90 final String MOSTLY_HARMLESS = "MOSTLY_HARMLESS";
91 String cmdLine = "--setprop=" + MOSTLY_HARMLESS + "=Earth";
92 String[] args = cmdLine.split("\\s+");
94 Assert.assertEquals(Cache.getDefault(MOSTLY_HARMLESS, "Magrathea"),
99 @Test(groups = {"Functional","testTask3"}, dataProvider = "cmdLines")
100 public void commandsOpenTest(String cmdLine, boolean cmdArgs,
101 int numFrames, String[] sequences)
105 String[] args = (cmdLine + " --gui").split("\\s+");
106 callJalviewMain(args);
107 Commands cmds = Jalview.getInstance().getCommands();
108 Assert.assertNotNull(cmds);
109 Assert.assertEquals(cmds.commandArgsProvided(), cmdArgs,
110 "Commands were not provided in the args");
111 Assert.assertEquals(cmds.argsWereParsed(), cmdArgs,
112 "Overall command parse and operation is false");
114 Assert.assertEquals(Desktop.getAlignFrames().length, numFrames,
115 "Wrong number of AlignFrames");
117 if (sequences != null)
119 Set<String> openedSequenceNames = new HashSet<>();
120 AlignFrame[] afs = Desktop.getAlignFrames();
121 for (AlignFrame af : afs)
123 openedSequenceNames.addAll(
124 af.getViewport().getAlignment().getSequenceNames());
126 for (String sequence : sequences)
128 Assert.assertTrue(openedSequenceNames.contains(sequence),
129 "Sequence '" + sequence
130 + "' was not found in opened alignment files: "
131 + cmdLine + ".\nOpened sequence names are:\n"
132 + String.join("\n", openedSequenceNames));
137 lookForSequenceName("THIS_SEQUENCE_ID_DOESN'T_EXIST"));
138 } catch (Exception x)
140 Assert.fail("Unexpected exception during commandsOpenTest", x);
150 { "Functional", "testTask3" },
151 dataProvider = "structureImageOutputFiles")
152 public void structureImageOutputTest(String cmdLine, String[] filenames)
155 cleanupFiles(filenames);
156 String[] args = (cmdLine + " --gui").split("\\s+");
159 callJalviewMain(args);
160 Commands cmds = Jalview.getInstance().getCommands();
161 Assert.assertNotNull(cmds);
162 File lastFile = null;
163 for (String filename : filenames)
165 File file = new File(filename);
166 Assert.assertTrue(file.exists(), "File '" + filename
167 + "' was not created by '" + cmdLine + "'");
168 Assert.assertTrue(file.isFile(), "File '" + filename
169 + "' is not a file from '" + cmdLine + "'");
170 Assert.assertTrue(Files.size(file.toPath()) > 0, "File '" + filename
171 + "' has no content from '" + cmdLine + "'");
172 // make sure the successive output files get bigger!
173 if (lastFile != null)
174 Assert.assertTrue(Files.size(file.toPath()) > Files
175 .size(lastFile.toPath()));
177 } catch (Exception x)
179 Assert.fail("Unexpected exception during structureImageOutputTest",
183 cleanupFiles(filenames);
188 @Test(groups = "Functional", dataProvider = "argfileOutputFiles")
189 public void argFilesGlobAndSubstitutionsTest(String cmdLine,
190 String[] filenames) throws IOException
192 cleanupFiles(filenames);
193 String[] args = (cmdLine + " --gui").split("\\s+");
196 callJalviewMain(args);
197 Commands cmds = Jalview.getInstance().getCommands();
198 Assert.assertNotNull(cmds);
199 File lastFile = null;
200 for (String filename : filenames)
202 File file = new File(filename);
203 Assert.assertTrue(file.exists(), "File '" + filename
204 + "' was not created by '" + cmdLine + "'");
205 Assert.assertTrue(file.isFile(), "File '" + filename
206 + "' is not a file from '" + cmdLine + "'");
207 Assert.assertTrue(Files.size(file.toPath()) > 0, "File '" + filename
208 + "' has no content from '" + cmdLine + "'");
209 // make sure the successive output files get bigger!
210 if (lastFile != null)
211 Assert.assertTrue(Files.size(file.toPath()) > Files
212 .size(lastFile.toPath()));
214 } catch (Exception x)
217 "Unexpected exception during argFilesGlobAndSubstitutions",
221 cleanupFiles(filenames);
226 @DataProvider(name = "structureImageOutputFiles")
227 public Object[][] structureImageOutputFiles()
229 return new Object[][] {
231 { "--gui --nonews --nosplash --open=./examples/test_fab41.result/sample.a2m "
232 + "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_1_model_3.pdb "
233 + "--structureimage=" + testfiles + "/structureimage1.png "
234 + "--open=./examples/test_fab41.result/sample.a2m "
235 + "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_1_model_3.pdb "
236 + "--structureimage=" + testfiles
237 + "/structureimage2.png --scale=1.5 "
238 + "--open=./examples/test_fab41.result/sample.a2m "
239 + "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_1_model_3.pdb "
240 + "--structureimage=" + testfiles
241 + "/structureimage3.png --scale=2.0 ",
243 { testfiles + "/structureimage1.png",
244 testfiles + "/structureimage2.png",
245 testfiles + "/structureimage3.png" } },
246 { "--headless --noquit --open=./examples/test_fab41.result/sample.a2m "
247 + "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_1_model_3.pdb "
248 + "--structureimage=" + testfiles + "/structureimage1.png "
249 + "--open=./examples/test_fab41.result/sample.a2m "
250 + "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_1_model_3.pdb "
251 + "--structureimage=" + testfiles
252 + "/structureimage2.png --scale=1.5 "
253 + "--open=./examples/test_fab41.result/sample.a2m "
254 + "--structure=./examples/test_fab41.result/test_fab41_unrelaxed_rank_1_model_3.pdb "
255 + "--structureimage=" + testfiles
256 + "/structureimage3.png --scale=2.0 ",
258 { testfiles + "/structureimage1.png",
259 testfiles + "/structureimage2.png",
260 testfiles + "/structureimage3.png" } },
268 @DataProvider(name = "argfileOutputFiles")
269 public Object[][] argfileOutputFiles()
271 return new Object[][] {
273 { "--gui --argfile=" + testfiles + "/**/*.txt", new String[]
274 { testfiles + "/dir1/test1.png", testfiles + "/dir2/test1.png",
275 testfiles + "/dir3/subdir/test0.png" } },
276 { "--gui --argfile=" + testfiles + "/**/argfile.txt", new String[]
277 { testfiles + "/dir1/test1.png", testfiles + "/dir2/test1.png" } },
278 { "--gui --argfile=" + testfiles + "/dir*/argfile.txt", new String[]
279 { testfiles + "/dir1/test1.png", testfiles + "/dir2/test1.png" } },
280 { "--gui --initsubstitutions --append examples/uniref50.fa --image "
281 + testfiles + "/{basename}.png",
283 { testfiles + "/uniref50.png" } },
284 { "--gui --append examples/uniref50.fa --nosubstitutions --image "
285 + testfiles + "/{basename}.png",
287 { testfiles + "/{basename}.png" } }
293 @DataProvider(name = "cmdLines")
294 public Object[][] cmdLines()
296 String[] someUniref50Seqs = new String[] { "FER_CAPAA", "FER_CAPAN",
297 "FER1_MAIZE", "FER1_SPIOL", "O80429_MAIZE" };
298 String[] t1 = new String[] { "TEST1" };
299 String[] t2 = new String[] { "TEST2" };
300 String[] t3 = new String[] { "TEST3" };
301 return new Object[][] {
304 { "--append=examples/uniref50.fa", true, 1, someUniref50Seqs },
305 { "--append examples/uniref50.fa", true, 1, someUniref50Seqs },
306 { "--append=examples/uniref50*.fa", true, 1, someUniref50Seqs },
307 // NOTE we cannot use shell expansion in tests, so list all files!
308 { "--append examples/uniref50.fa examples/uniref50_mz.fa", true, 1,
310 { "--append=[new]examples/uniref50*.fa", true, 2,
312 { "--open=examples/uniref50*.fa", true, 2, someUniref50Seqs },
313 { "examples/uniref50.fa", true, 1, someUniref50Seqs },
314 { "examples/uniref50.fa " + testfiles + "/test1.fa", true, 2,
315 ArrayUtils.concatArrays(someUniref50Seqs, t1) },
316 { "examples/uniref50.fa " + testfiles + "/test1.fa", true, 2, t1 },
317 { "--gui --argfile=" + testfiles + "/argfile0.txt", true, 1,
318 ArrayUtils.concatArrays(t1, t3) },
319 { "--gui --argfile=" + testfiles + "/argfile*.txt", true, 5,
320 ArrayUtils.concatArrays(t1, t2, t3) },
321 { "--gui --argfile=" + testfiles + "/argfile.autocounter", true, 3,
322 ArrayUtils.concatArrays(t1, t2) } };
326 public static boolean lookForSequenceName(String sequenceName)
328 AlignFrame[] afs = Desktop.getAlignFrames();
329 for (AlignFrame af : afs)
331 for (String name : af.getViewport().getAlignment().getSequenceNames())
333 if (sequenceName.equals(name))
342 public static void cleanupFiles(String[] filenames)
344 for (String filename : filenames)
346 File file = new File(filename);
354 private final String deleteDir = "test/deleteAfter";
357 groups = "Functional",
358 dataProvider = "allLinkedIdsData",
359 singleThreaded = true)
360 public void allLinkedIdsTest(String cmdLine, String[] filenames,
361 String[] nonfilenames)
363 String[] args = (cmdLine + " --gui").split("\\s+");
364 callJalviewMain(args);
365 Commands cmds = Jalview.getInstance().getCommands();
366 Assert.assertNotNull(cmds);
367 for (String filename : filenames)
369 Assert.assertTrue(new File(filename).exists(),
370 "File '" + filename + "' was not created");
372 cleanupFiles(filenames);
373 if (nonfilenames != null)
375 for (String nonfilename : nonfilenames)
377 File nonfile = new File(nonfilename);
378 Assert.assertFalse(nonfile.exists(),
379 "File " + nonfilename + " exists when it shouldn't!");
383 File deleteDirF = new File(deleteDir);
384 if (deleteDirF.exists())
390 @DataProvider(name = "allLinkedIdsData")
391 public Object[][] allLinkedIdsData()
393 return new Object[][] {
395 { "--gui --open=test/jalview/bin/argparser/testfiles/*.fa --substitutions --all --output={dirname}/{basename}.stk --close",
397 { "test/jalview/bin/argparser/testfiles/test1.stk",
398 "test/jalview/bin/argparser/testfiles/test2.stk",
399 "test/jalview/bin/argparser/testfiles/test3.stk", },
401 { "--gui --open=test/jalview/bin/argparser/testfiles/*.fa --substitutions --all --image={dirname}/{basename}.png --close",
403 { "test/jalview/bin/argparser/testfiles/test1.png",
404 "test/jalview/bin/argparser/testfiles/test2.png",
405 "test/jalview/bin/argparser/testfiles/test3.png", },
407 { "--gui --open=test/jalview/bin/argparser/testfiles/*.fa --all --output={dirname}/{basename}.stk --close",
409 { "test/jalview/bin/argparser/testfiles/test1.stk",
410 "test/jalview/bin/argparser/testfiles/test2.stk",
411 "test/jalview/bin/argparser/testfiles/test3.stk", },
413 { "test/jalview/bin/argparser/testfiles/dir1/test1.stk",
414 "test/jalview/bin/argparser/testfiles/dir1/test2.stk",
415 "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
416 "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
417 "test/jalview/bin/argparser/testfiles/dir2/test3.stk",
418 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
419 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
420 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
421 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", }, },
422 { "--gui --open=test/jalview/bin/argparser/**/*.fa --all --output={dirname}/{basename}.stk --close",
424 { "test/jalview/bin/argparser/testfiles/test1.stk",
425 "test/jalview/bin/argparser/testfiles/test2.stk",
426 "test/jalview/bin/argparser/testfiles/test3.stk",
427 "test/jalview/bin/argparser/testfiles/dir1/test1.stk",
428 "test/jalview/bin/argparser/testfiles/dir1/test2.stk",
429 "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
430 "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
431 "test/jalview/bin/argparser/testfiles/dir2/test3.stk",
432 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
433 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
434 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
435 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", },
437 { "--gui --open=test/jalview/bin/argparser/**/*.fa --output=*/*.stk --close",
439 { "test/jalview/bin/argparser/testfiles/test1.stk",
440 "test/jalview/bin/argparser/testfiles/test2.stk",
441 "test/jalview/bin/argparser/testfiles/test3.stk",
442 "test/jalview/bin/argparser/testfiles/dir1/test1.stk",
443 "test/jalview/bin/argparser/testfiles/dir1/test2.stk",
444 "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
445 "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
446 "test/jalview/bin/argparser/testfiles/dir2/test3.stk",
447 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
448 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
449 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
450 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", },
452 { "--gui --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --all --output=*/*.stk --close",
454 { "test/jalview/bin/argparser/testfiles/dir1/test1.stk",
455 "test/jalview/bin/argparser/testfiles/dir1/test2.stk",
456 "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
457 "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
458 "test/jalview/bin/argparser/testfiles/dir2/test3.stk", },
460 { "test/jalview/bin/argparser/testfiles/test1.stk",
461 "test/jalview/bin/argparser/testfiles/test2.stk",
462 "test/jalview/bin/argparser/testfiles/test3.stk",
463 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
464 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
465 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
466 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", }, },
467 { "--gui --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output=*/*.stk --close",
469 { "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
470 "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
471 "test/jalview/bin/argparser/testfiles/dir2/test3.stk", },
473 { "test/jalview/bin/argparser/testfiles/test1.stk",
474 "test/jalview/bin/argparser/testfiles/test2.stk",
475 "test/jalview/bin/argparser/testfiles/test3.stk",
476 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
477 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
478 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
479 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", }, },
480 { "--gui --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output={dirname}/{basename}.stk --close",
482 { "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
483 "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
484 "test/jalview/bin/argparser/testfiles/dir2/test3.stk", },
486 { "test/jalview/bin/argparser/testfiles/test1.stk",
487 "test/jalview/bin/argparser/testfiles/test2.stk",
488 "test/jalview/bin/argparser/testfiles/test3.stk",
489 "test/jalview/bin/argparser/testfiles/dir1/test1.stk",
490 "test/jalview/bin/argparser/testfiles/dir1/test2.stk",
491 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
492 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
493 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
494 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", }, },
495 { "--gui --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output={dirname}/{basename}.stk --close",
497 { "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
498 "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
499 "test/jalview/bin/argparser/testfiles/dir2/test3.stk", },
501 { "test/jalview/bin/argparser/testfiles/test1.stk",
502 "test/jalview/bin/argparser/testfiles/test2.stk",
503 "test/jalview/bin/argparser/testfiles/test3.stk",
504 "test/jalview/bin/argparser/testfiles/dir1/test1.stk",
505 "test/jalview/bin/argparser/testfiles/dir1/test2.stk",
506 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
507 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
508 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
509 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk", }, },
510 { "--gui --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --output {dirname}/{basename}.stk --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output={dirname}/{basename}.aln --close",
512 { "test/jalview/bin/argparser/testfiles/dir1/test1.stk",
513 "test/jalview/bin/argparser/testfiles/dir1/test2.stk",
514 "test/jalview/bin/argparser/testfiles/dir2/test1.aln",
515 "test/jalview/bin/argparser/testfiles/dir2/test2.aln",
516 "test/jalview/bin/argparser/testfiles/dir2/test3.aln", },
518 { "test/jalview/bin/argparser/testfiles/test1.stk",
519 "test/jalview/bin/argparser/testfiles/test2.stk",
520 "test/jalview/bin/argparser/testfiles/test3.stk",
521 "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
522 "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
523 "test/jalview/bin/argparser/testfiles/dir2/test3.stk",
524 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
525 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
526 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
527 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk",
528 "test/jalview/bin/argparser/testfiles/test1.aln",
529 "test/jalview/bin/argparser/testfiles/test2.aln",
530 "test/jalview/bin/argparser/testfiles/test3.aln",
531 "test/jalview/bin/argparser/testfiles/dir1/test1.aln",
532 "test/jalview/bin/argparser/testfiles/dir1/test2.aln",
533 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.aln",
534 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.aln",
535 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.aln",
536 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.aln", }, },
538 { "--headless --open=test/jalview/bin/argparser/testfiles/dir1/*.fa --output "
540 + "/{dirname}/{basename}.stk --open=test/jalview/bin/argparser/testfiles/dir2/*.fa --output="
542 + "/{dirname}/{basename}.aln --close --all --mkdirs",
545 + "/test/jalview/bin/argparser/testfiles/dir1/test1.stk",
547 + "/test/jalview/bin/argparser/testfiles/dir1/test2.stk",
549 + "/test/jalview/bin/argparser/testfiles/dir2/test1.aln",
551 + "/test/jalview/bin/argparser/testfiles/dir2/test2.aln",
553 + "/test/jalview/bin/argparser/testfiles/dir2/test3.aln", },
555 { "test/jalview/bin/argparser/testfiles/test1.stk",
556 "test/jalview/bin/argparser/testfiles/test2.stk",
557 "test/jalview/bin/argparser/testfiles/test3.stk",
558 "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
559 "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
560 "test/jalview/bin/argparser/testfiles/dir2/test3.stk",
561 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
562 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
563 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
564 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk",
565 "test/jalview/bin/argparser/testfiles/test1.aln",
566 "test/jalview/bin/argparser/testfiles/test2.aln",
567 "test/jalview/bin/argparser/testfiles/test3.aln",
568 "test/jalview/bin/argparser/testfiles/dir1/test1.aln",
569 "test/jalview/bin/argparser/testfiles/dir1/test2.aln",
570 "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.aln",
571 "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.aln",
572 "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.aln",
573 "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.aln",
575 + "test/jalview/bin/argparser/testfiles/test1.stk",
577 + "test/jalview/bin/argparser/testfiles/test2.stk",
579 + "test/jalview/bin/argparser/testfiles/test3.stk",
581 + "test/jalview/bin/argparser/testfiles/dir2/test1.stk",
583 + "test/jalview/bin/argparser/testfiles/dir2/test2.stk",
585 + "test/jalview/bin/argparser/testfiles/dir2/test3.stk",
587 + "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.stk",
589 + "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.stk",
591 + "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.stk",
593 + "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.stk",
595 + "test/jalview/bin/argparser/testfiles/test1.aln",
597 + "test/jalview/bin/argparser/testfiles/test2.aln",
599 + "test/jalview/bin/argparser/testfiles/test3.aln",
601 + "test/jalview/bin/argparser/testfiles/dir1/test1.aln",
603 + "test/jalview/bin/argparser/testfiles/dir1/test2.aln",
605 + "test/jalview/bin/argparser/testfiles/dir3/subdir/test0.aln",
607 + "test/jalview/bin/argparser/testfiles/dir3/subdir/test1.aln",
609 + "test/jalview/bin/argparser/testfiles/dir3/subdir/test2.aln",
611 + "test/jalview/bin/argparser/testfiles/dir3/subdir/test3.aln", }, },