2 package org.forester.clade_analysis;
6 import java.util.regex.Pattern;
8 import org.forester.io.parsers.PhylogenyParser;
9 import org.forester.io.parsers.util.ParserUtils;
10 import org.forester.phylogeny.Phylogeny;
11 import org.forester.phylogeny.factories.ParserBasedPhylogenyFactory;
12 import org.forester.phylogeny.factories.PhylogenyFactory;
13 import org.forester.util.ForesterUtil;
15 public class CladeAnalysisTest {
17 private final static String PATH_TO_TEST_DATA = System.getProperty( "user.dir" ) + ForesterUtil.getFileSeparator()
18 + "test_data" + ForesterUtil.getFileSeparator();
20 public static void main( final String[] args ) {
21 boolean failed = false;
22 if ( !testCladeAnalysis1() ) {
23 System.out.println( "Clade analysis 1 failed" );
26 if ( !testCladeAnalysis2() ) {
27 System.out.println( "Clade analysis 2 failed" );
30 if ( !testCladeAnalysis3() ) {
31 System.out.println( "Clade analysis 3 failed" );
34 if ( !testCladeAnalysis4() ) {
35 System.out.println( "Clade analysis 4 failed" );
38 if ( !testCladeAnalysis5() ) {
39 System.out.println( "Clade analysis 5 failed" );
42 if ( !testCladeAnalysis6() ) {
43 System.out.println( "Clade analysis 6 failed" );
47 System.out.println( "OK" );
51 public static boolean test() {
52 if ( !testCladeAnalysis1() ) {
55 if ( !testCladeAnalysis2() ) {
58 if ( !testCladeAnalysis3() ) {
61 if ( !testCladeAnalysis4() ) {
64 if ( !testCladeAnalysis5() ) {
67 if ( !testCladeAnalysis6() ) {
73 private static boolean testCladeAnalysis1() {
75 final File intreefile1 = new File( PATH_TO_TEST_DATA + "clade_analysis_test_1.xml" );
76 final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
77 final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true );
78 final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ];
79 Result res = Analysis.execute( p1, "A.1.1.1", "." );
80 if ( !res.getGreatestCommonPrefix().equals( "A.1" ) ) {
83 if ( !res.getGreatestCommonPrefixDown().equals( "A.1.1" ) ) {
86 if ( !res.getGreatestCommonPrefixUp().equals( "A.1.2.1" ) ) {
89 if ( res.getLeastEncompassingCladeSize() != 4 ) {
92 if ( res.getTreeSize() != 25 ) {
95 if ( res.getWarnings().size() != 0 ) {
98 res = Analysis.execute( p1, "A.1.1.2", "." );
99 if ( !res.getGreatestCommonPrefix().equals( "A.1" ) ) {
102 if ( !res.getGreatestCommonPrefixDown().equals( "A.1.1" ) ) {
105 if ( !res.getGreatestCommonPrefixUp().equals( "A.1.2.1" ) ) {
108 if ( res.getLeastEncompassingCladeSize() != 4 ) {
111 if ( res.getTreeSize() != 25 ) {
114 if ( res.getWarnings().size() != 0 ) {
117 res = Analysis.execute( p1, "A.1.1.3", "." );
118 if ( !res.getGreatestCommonPrefix().equals( "A.1" ) ) {
121 if ( !res.getGreatestCommonPrefixDown().equals( "A.1.1" ) ) {
124 if ( !res.getGreatestCommonPrefixUp().equals( "A.1.2.1" ) ) {
127 if ( res.getLeastEncompassingCladeSize() != 4 ) {
130 if ( res.getTreeSize() != 25 ) {
133 if ( res.getWarnings().size() != 0 ) {
136 res = Analysis.execute( p1, "A.1.1.4", "." );
137 if ( !res.getGreatestCommonPrefix().equals( "A.1.1" ) ) {
140 if ( !res.getGreatestCommonPrefixDown().equals( "A.1.1" ) ) {
143 if ( !res.getGreatestCommonPrefixUp().equals( "A.1.1" ) ) {
146 if ( res.getLeastEncompassingCladeSize() != 3 ) {
149 if ( res.getTreeSize() != 25 ) {
152 if ( res.getWarnings().size() != 0 ) {
155 res = Analysis.execute( p1, "A.1.2.1", "." );
156 if ( !res.getGreatestCommonPrefix().equals( "A" ) ) {
159 if ( !res.getGreatestCommonPrefixDown().equals( "A.1.1" ) ) {
162 if ( !res.getGreatestCommonPrefixUp().equals( "A" ) ) {
165 if ( res.getLeastEncompassingCladeSize() != 17 ) {
168 if ( res.getTreeSize() != 25 ) {
171 if ( res.getWarnings().size() != 0 ) {
174 res = Analysis.execute( p1, "A.2.1.1", "." );
175 if ( !res.getGreatestCommonPrefix().equals( "A" ) ) {
178 if ( !res.getGreatestCommonPrefixDown().equals( "A.2.1.2" ) ) {
181 if ( !res.getGreatestCommonPrefixUp().equals( "A" ) ) {
184 if ( res.getLeastEncompassingCladeSize() != 17 ) {
187 if ( res.getTreeSize() != 25 ) {
190 if ( res.getWarnings().size() != 0 ) {
193 res = Analysis.execute( p1, "A.2.1.2", "." );
194 if ( !res.getGreatestCommonPrefix().equals( "A" ) ) {
197 if ( !res.getGreatestCommonPrefixDown().equals( "A.2.1.1" ) ) {
200 if ( !res.getGreatestCommonPrefixUp().equals( "A" ) ) {
203 if ( res.getLeastEncompassingCladeSize() != 17 ) {
206 if ( res.getTreeSize() != 25 ) {
209 if ( res.getWarnings().size() != 0 ) {
212 res = Analysis.execute( p1, "A.3.1.1", "." );
213 if ( !res.getGreatestCommonPrefix().equals( "A.3" ) ) {
216 if ( !res.getGreatestCommonPrefixDown().equals( "A.3.1.2" ) ) {
219 if ( !res.getGreatestCommonPrefixUp().equals( "A.3.2.1" ) ) {
222 if ( res.getLeastEncompassingCladeSize() != 2 ) {
225 if ( res.getTreeSize() != 25 ) {
228 if ( res.getWarnings().size() != 0 ) {
231 res = Analysis.execute( p1, "A.3.1.2", "." );
232 if ( !res.getGreatestCommonPrefix().equals( "A.3" ) ) {
235 if ( !res.getGreatestCommonPrefixDown().equals( "A.3.1.1" ) ) {
238 if ( !res.getGreatestCommonPrefixUp().equals( "A.3.2.1" ) ) {
241 if ( res.getLeastEncompassingCladeSize() != 2 ) {
244 if ( res.getTreeSize() != 25 ) {
247 if ( res.getWarnings().size() != 0 ) {
250 res = Analysis.execute( p1, "A.3.2.1", "." );
251 if ( !res.getGreatestCommonPrefix().equals( "A.3" ) ) {
254 if ( !res.getGreatestCommonPrefixDown().equals( "A.3.1" ) ) {
257 if ( !res.getGreatestCommonPrefixUp().equals( "A.3.3.1" ) ) {
260 if ( res.getLeastEncompassingCladeSize() != 3 ) {
263 if ( res.getTreeSize() != 25 ) {
266 if ( res.getWarnings().size() != 0 ) {
269 res = Analysis.execute( p1, "A.3.3.1", "." );
270 if ( !res.getGreatestCommonPrefix().equals( "A" ) ) {
273 if ( !res.getGreatestCommonPrefixDown().equals( "A.3" ) ) {
276 if ( !res.getGreatestCommonPrefixUp().equals( "A" ) ) {
279 if ( res.getLeastEncompassingCladeSize() != 10 ) {
282 if ( res.getTreeSize() != 25 ) {
285 if ( res.getWarnings().size() != 0 ) {
288 res = Analysis.execute( p1, "A.4.1.1", "." );
289 if ( !res.getGreatestCommonPrefix().equals( "A.4.1" ) ) {
292 if ( !res.getGreatestCommonPrefixDown().equals( "A.4.1.1.a" ) ) {
295 if ( !res.getGreatestCommonPrefixUp().equals( "A.4.1.2" ) ) {
298 if ( res.getLeastEncompassingCladeSize() != 3 ) {
301 if ( res.getTreeSize() != 25 ) {
304 if ( res.getWarnings().size() != 0 ) {
307 res = Analysis.execute( p1, "A.4.1.1.a", "." );
308 if ( !res.getGreatestCommonPrefix().equals( "A.4.1" ) ) {
311 if ( !res.getGreatestCommonPrefixDown().equals( "A.4.1.1" ) ) {
314 if ( !res.getGreatestCommonPrefixUp().equals( "A.4.1.2" ) ) {
317 if ( res.getLeastEncompassingCladeSize() != 3 ) {
320 if ( res.getTreeSize() != 25 ) {
323 if ( res.getWarnings().size() != 0 ) {
326 res = Analysis.execute( p1, "A.4.1.2", "." );
327 res = Analysis.execute( p1, "A.4.1.2.a", "." );
328 res = Analysis.execute( p1, "A.5.1.1", "." );
329 if ( !res.getGreatestCommonPrefix().equals( "A" ) ) {
332 if ( !res.getGreatestCommonPrefixDown().equals( "A.5.1.2" ) ) {
335 if ( !res.getGreatestCommonPrefixUp().equals( "A" ) ) {
338 if ( res.getLeastEncompassingCladeSize() != 10 ) {
341 if ( res.getTreeSize() != 25 ) {
344 if ( res.getWarnings().size() != 0 ) {
347 res = Analysis.execute( p1, "A.5.1.2", "." );
348 if ( !res.getGreatestCommonPrefix().equals( "A" ) ) {
351 if ( !res.getGreatestCommonPrefixDown().equals( "A.5.1.1" ) ) {
354 if ( !res.getGreatestCommonPrefixUp().equals( "A" ) ) {
357 if ( res.getLeastEncompassingCladeSize() != 10 ) {
360 if ( res.getTreeSize() != 25 ) {
363 if ( res.getWarnings().size() != 0 ) {
366 res = Analysis.execute( p1, "A.6.3.12", "." );
367 if ( !res.getGreatestCommonPrefix().equals( "A" ) ) {
370 if ( !res.getGreatestCommonPrefixDown().equals( "A" ) ) {
373 if ( !res.getGreatestCommonPrefixUp().equals( "A" ) ) {
376 if ( res.getLeastEncompassingCladeSize() != 17 ) {
379 if ( res.getTreeSize() != 25 ) {
382 if ( res.getWarnings().size() != 0 ) {
385 res = Analysis.execute( p1, "B.1.1.1", "." );
386 if ( !res.getGreatestCommonPrefix().equals( "" ) ) {
389 if ( !res.getGreatestCommonPrefixDown().equals( "B.1.234.3" ) ) {
392 if ( !res.getGreatestCommonPrefixUp().equals( "" ) ) {
395 if ( res.getLeastEncompassingCladeSize() != 25 ) {
398 if ( res.getTreeSize() != 25 ) {
401 if ( res.getWarnings().size() != 2 ) {
404 res = Analysis.execute( p1, "B.1.234.3", "." );
405 if ( !res.getGreatestCommonPrefix().equals( "" ) ) {
408 if ( !res.getGreatestCommonPrefixDown().equals( "B.1.1.1" ) ) {
411 if ( !res.getGreatestCommonPrefixUp().equals( "" ) ) {
414 if ( res.getLeastEncompassingCladeSize() != 25 ) {
417 if ( res.getTreeSize() != 25 ) {
420 if ( res.getWarnings().size() != 2 ) {
423 res = Analysis.execute( p1, "C.1.1.1", "." );
424 if ( !res.getGreatestCommonPrefix().equals( "C.1" ) ) {
427 if ( !res.getGreatestCommonPrefixDown().equals( "C.1.1.2" ) ) {
430 if ( !res.getGreatestCommonPrefixUp().equals( "C.1.2.1" ) ) {
433 if ( res.getLeastEncompassingCladeSize() != 2 ) {
436 if ( res.getTreeSize() != 25 ) {
439 if ( res.getWarnings().size() != 0 ) {
442 res = Analysis.execute( p1, "C.1.1.2", "." );
443 if ( !res.getGreatestCommonPrefix().equals( "C.1" ) ) {
446 if ( !res.getGreatestCommonPrefixDown().equals( "C.1.1.1" ) ) {
449 if ( !res.getGreatestCommonPrefixUp().equals( "C.1.2.1" ) ) {
452 if ( res.getLeastEncompassingCladeSize() != 2 ) {
455 if ( res.getTreeSize() != 25 ) {
458 if ( res.getWarnings().size() != 0 ) {
461 res = Analysis.execute( p1, "C.1.2.1", "." );
462 if ( !res.getGreatestCommonPrefix().equals( "C" ) ) {
465 if ( !res.getGreatestCommonPrefixDown().equals( "C.1.1" ) ) {
468 if ( !res.getGreatestCommonPrefixUp().equals( "C.2.1" ) ) {
471 if ( res.getLeastEncompassingCladeSize() != 3 ) {
474 if ( res.getTreeSize() != 25 ) {
477 if ( res.getWarnings().size() != 0 ) {
480 res = Analysis.execute( p1, "C.2.1", "." );
481 if ( !res.getGreatestCommonPrefix().equals( "C" ) ) {
484 if ( !res.getGreatestCommonPrefixDown().equals( "C.1" ) ) {
487 if ( !res.getGreatestCommonPrefixUp().equals( "C.3" ) ) {
490 if ( res.getLeastEncompassingCladeSize() != 4 ) {
493 if ( res.getTreeSize() != 25 ) {
496 if ( res.getWarnings().size() != 0 ) {
499 res = Analysis.execute( p1, "C.3", "." );
500 if ( !res.getGreatestCommonPrefix().equals( "" ) ) {
503 if ( !res.getGreatestCommonPrefixDown().equals( "C" ) ) {
506 if ( !res.getGreatestCommonPrefixUp().equals( "QE.1.1.1.2.1" ) ) {
509 if ( res.getLeastEncompassingCladeSize() != 5 ) {
512 if ( res.getTreeSize() != 25 ) {
515 if ( res.getWarnings().size() != 1 ) {
518 res = Analysis.execute( p1, "QE.1.1.1.2.1", "." );
519 if ( !res.getGreatestCommonPrefix().equals( "" ) ) {
522 if ( !res.getGreatestCommonPrefixDown().equals( "C" ) ) {
525 if ( !res.getGreatestCommonPrefixUp().equals( "" ) ) {
528 if ( res.getLeastEncompassingCladeSize() != 25 ) {
531 if ( res.getTreeSize() != 25 ) {
534 if ( res.getWarnings().size() != 2 ) {
538 catch ( final Exception e ) {
539 e.printStackTrace( System.out );
545 private static boolean testCladeAnalysis2() {
547 final File intreefile1 = new File( PATH_TO_TEST_DATA + "clade_analysis_test_2.xml" );
548 final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
549 final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true );
550 final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ];
551 Result res = Analysis.execute( p1, "6_DQ278891", null );
552 if ( !res.getGreatestCommonPrefix().equals( "6_" ) ) {
555 if ( !res.getGreatestCommonPrefixDown().equals( "6_DQ278893" ) ) {
558 if ( !res.getGreatestCommonPrefixUp().equals( "6_JX183550" ) ) {
561 if ( res.getLeastEncompassingCladeSize() != 2 ) {
564 if ( res.getTreeSize() != 219 ) {
567 if ( res.getWarnings().size() != 0 ) {
570 res = Analysis.execute( p1, "6xa_EU408330", null );
571 if ( !res.getGreatestCommonPrefix().equals( "6xa_EU40833" ) ) {
574 if ( !res.getGreatestCommonPrefixDown().equals( "6xa_EU408331" ) ) {
577 if ( !res.getGreatestCommonPrefixUp().equals( "6xa_EU408332" ) ) {
580 if ( res.getLeastEncompassingCladeSize() != 2 ) {
583 if ( res.getTreeSize() != 219 ) {
586 if ( res.getWarnings().size() != 0 ) {
589 res = Analysis.execute( p1, "7a_EF108306", null );
590 if ( !res.getGreatestCommonPrefix().equals( "" ) ) {
593 if ( !res.getGreatestCommonPrefixDown().equals( "2" ) ) {
596 if ( !res.getGreatestCommonPrefixUp().equals( "" ) ) {
599 if ( res.getLeastEncompassingCladeSize() != 219 ) {
602 if ( res.getTreeSize() != 219 ) {
605 if ( res.getWarnings().size() != 2 ) {
609 catch ( final Exception e ) {
610 e.printStackTrace( System.out );
616 private static boolean testCladeAnalysis3() {
618 final Result2 res1 = new Result2();
619 res1.addGreatestCommonPrefix( "A.1.1", 0.3 );
620 res1.addGreatestCommonPrefix( "A.1.2", 0.3 );
621 res1.addGreatestCommonPrefix( "A.1.3", 0.3 );
622 res1.addGreatestCommonPrefix( "B.1", 0.1 );
623 res1.analyzeGreatestCommonPrefixes( 0.3 );
624 System.out.print( res1.toString());
625 System.out.println( "------------------------- ");
626 System.out.println();
628 final Result2 res2 = new Result2( "." );
629 res2.addGreatestCommonPrefix( "A.1.1.1", 0.1 );
630 res2.addGreatestCommonPrefix( "A.1", 0.7 );
631 res2.addGreatestCommonPrefix( "A.1.2", 0.1 );
632 res2.addGreatestCommonPrefix( "B.1", 0.1 );
633 res2.analyzeGreatestCommonPrefixes( 0.3 );
634 System.out.print( res2.toString());
635 System.out.println( "------------------------- ");
636 System.out.println();
638 final Result2 res3 = new Result2( "." );
639 res3.addGreatestCommonPrefix( "A.1.1.1", 0.1 );
640 res3.addGreatestCommonPrefix( "A.1.1.1.1", 0.6 );
641 res3.addGreatestCommonPrefix( "A.1", 0.1 );
642 res3.addGreatestCommonPrefix( "A.1.2", 0.1 );
643 res3.addGreatestCommonPrefix( "B.1", 0.1 );
644 res3.analyzeGreatestCommonPrefixes( 0.3 );
645 System.out.print( res3.toString());
646 System.out.println( "------------------------- ");
647 System.out.println();
649 final Result2 res33 = new Result2( "." );
650 res33.addGreatestCommonPrefix( "A.1.1.1", 0.1 );
651 res33.addGreatestCommonPrefix( "A.1.1.1.1", 0.3 );
652 res33.addGreatestCommonPrefix( "A.1", 0.1 );
653 res33.addGreatestCommonPrefix( "A.1.2", 0.1 );
654 res33.addGreatestCommonPrefix( "B.1", 0.1 );
655 res33.addGreatestCommonPrefix( "B.1.1.1", 0.3 );
656 res33.analyzeGreatestCommonPrefixes( 0.3 );
657 System.out.print( res33.toString());
658 System.out.println( "------------------------- ");
659 System.out.println();
661 final Result2 res4 = new Result2();
662 res4.addGreatestCommonPrefix( "A.1.1.1.1", 0.35 );
663 res4.addGreatestCommonPrefix( "A.1.1.1.2", 0.35 );
664 res4.addGreatestCommonPrefix( "A.1", 0.1 );
665 res4.addGreatestCommonPrefix( "A.1.2", 0.1 );
666 res4.addGreatestCommonPrefix( "B.1", 0.1 );
667 res4.analyzeGreatestCommonPrefixes( 0.3 );
668 System.out.print( res4.toString());
669 System.out.println( "------------------------- ");
670 System.out.println();
672 final Result2 res5 = new Result2();
673 res5.addGreatestCommonPrefix( "A.1.1.1.1", 0.2 );
674 res5.addGreatestCommonPrefix( "C.2.3", 0.2 );
675 res5.addGreatestCommonPrefix( "A.1.5", 0.1 );
676 res5.addGreatestCommonPrefix( "A.3.1.4", 0.2 );
677 res5.addGreatestCommonPrefix( "B.1.1", 0.2 );
678 res5.addGreatestCommonPrefix( "B.1.2", 0.09 );
679 res5.addGreatestCommonPrefix( "D.1.1.1.1", 0.01 );
680 res5.analyzeGreatestCommonPrefixes( 0.3 );
681 System.out.print( res5.toString());
682 System.out.println( "------------------------- ");
683 System.out.println();
685 final Result2 res6 = new Result2();
686 res6.addGreatestCommonPrefix( "A.1.1.1", 0.05 );
687 res6.addGreatestCommonPrefix( "A.1.1.1.1", 0.65 );
688 res6.addGreatestCommonPrefix( "A.1", 0.1 );
689 res6.addGreatestCommonPrefix( "A.1.2", 0.1 );
690 res6.addGreatestCommonPrefix( "B.1", 0.1 );
691 res6.analyzeGreatestCommonPrefixes( 0.3 );
692 System.out.print( res6.toString());
693 System.out.println( "------------------------- ");
694 System.out.println();
696 final Result2 res7 = new Result2();
697 res7.addGreatestCommonPrefix( "A.1.1.1", 0.07 );
698 res7.addGreatestCommonPrefix( "A.1.1.1.1", 0.9 );
699 res7.addGreatestCommonPrefix( "A.1", 0.01 );
700 res7.addGreatestCommonPrefix( "A.1.2", 0.01 );
701 res7.addGreatestCommonPrefix( "B.1", 0.01 );
702 res7.analyzeGreatestCommonPrefixes( 0.3 );
703 System.out.print( res7.toString());
704 System.out.println( "------------------------- ");
705 System.out.println();
707 final Result2 res8 = new Result2( "_/_" );
708 res8.addGreatestCommonPrefix( "AA_/_abc_/_def", 0.07 );
709 res8.addGreatestCommonPrefix( "AA_/_abc_/_sfc", 0.9 );
710 res8.addGreatestCommonPrefix( "AA_/_abc_/_xcd", 0.01 );
711 res8.addGreatestCommonPrefix( "AA_/_abc_/_memr", 0.01 );
712 res8.addGreatestCommonPrefix( "AA_/_abc_/_fkem_/_odem", 0.01 );
713 res8.analyzeGreatestCommonPrefixes( 0.3 );
714 System.out.print( res8.toString());
715 System.out.println( "------------------------- ");
716 System.out.println();
718 final Result2 res9 = new Result2( "_/_" );
719 res9.addGreatestCommonPrefix( "AA_/_abc_/_def", 0.07 );
720 res9.addGreatestCommonPrefix( "AA_/_abc_/_sfc", 0.6 );
721 res9.addGreatestCommonPrefix( "AA_/_abc_/_xcd", 0.01 );
722 res9.addGreatestCommonPrefix( "AA_/_abc_/_memr", 0.01 );
723 res9.addGreatestCommonPrefix( "AA_/_abc_/_fkem_/_odem", 0.01 );
724 res9.addGreatestCommonPrefix( "BB_/_fke_/_dme_/_nx2", 0.3 );
725 res9.analyzeGreatestCommonPrefixes( 0.3 );
726 System.out.print( res9.toString());
727 System.out.println( "------------------------- ");
728 System.out.println();
730 catch ( final Exception e ) {
731 e.printStackTrace( System.out );
737 private static boolean testCladeAnalysis4() {
739 final File intreefile1 = new File( PATH_TO_TEST_DATA + "pplacer_2.tre" );
740 final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
741 final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true );
742 final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ];
743 Pattern query = Pattern.compile(".+#\\d+_M=(.+)");
744 Result2 res = Analysis2.execute( p1, query, "." );
746 res.analyzeGreatestCommonPrefixes( 0.3 );
747 System.out.print( res.toString());
748 System.out.println( "------------------------- ");
749 System.out.println();
751 // Result res = Analysis.execute( p1, "A.1.1.1", "." );
752 /* if ( !res.getGreatestCommonPrefix().equals( "A.1" ) ) {
755 if ( !res.getGreatestCommonPrefixDown().equals( "A.1.1" ) ) {
758 if ( !res.getGreatestCommonPrefixUp().equals( "A.1.2.1" ) ) {
761 if ( res.getLeastEncompassingCladeSize() != 4 ) {
764 if ( res.getTreeSize() != 25 ) {
767 if ( res.getWarnings().size() != 0 ) {
772 catch ( final Exception e ) {
773 e.printStackTrace( System.out );
779 private static boolean testCladeAnalysis5() {
781 final File intreefile1 = new File( PATH_TO_TEST_DATA + "clade_analysis_test_3.xml" );
782 final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
783 final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true );
784 final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ];
785 Pattern query = Pattern.compile(".+#\\d+_M=(.+)");
786 Result2 res = Analysis2.execute( p1, query, "." );
788 res.analyzeGreatestCommonPrefixes( 0.3 );
789 System.out.print( res.toString());
790 System.out.println( "------------------------- ");
791 System.out.println();
793 // Result res = Analysis.execute( p1, "A.1.1.1", "." );
794 /* if ( !res.getGreatestCommonPrefix().equals( "A.1" ) ) {
797 if ( !res.getGreatestCommonPrefixDown().equals( "A.1.1" ) ) {
800 if ( !res.getGreatestCommonPrefixUp().equals( "A.1.2.1" ) ) {
803 if ( res.getLeastEncompassingCladeSize() != 4 ) {
806 if ( res.getTreeSize() != 25 ) {
809 if ( res.getWarnings().size() != 0 ) {
814 catch ( final Exception e ) {
815 e.printStackTrace( System.out );
821 private static boolean testCladeAnalysis6() {
823 final File intreefile1 = new File( PATH_TO_TEST_DATA + "clade_analysis_test_4.xml" );
824 final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
825 final PhylogenyParser pp = ParserUtils.createParserDependingOnFileType( intreefile1, true );
826 final Phylogeny p1 = factory.create( intreefile1, pp )[ 0 ];
827 Pattern query = Pattern.compile(".+#\\d+_M=(.+)");
828 Result2 res = Analysis2.execute( p1, query, "." );
830 res.analyzeGreatestCommonPrefixes( 0.45 );
831 System.out.print( res.toString());
832 System.out.println( "------------------------- ");
833 System.out.println();
835 // Result res = Analysis.execute( p1, "A.1.1.1", "." );
836 /* if ( !res.getGreatestCommonPrefix().equals( "A.1" ) ) {
839 if ( !res.getGreatestCommonPrefixDown().equals( "A.1.1" ) ) {
842 if ( !res.getGreatestCommonPrefixUp().equals( "A.1.2.1" ) ) {
845 if ( res.getLeastEncompassingCladeSize() != 4 ) {
848 if ( res.getTreeSize() != 25 ) {
851 if ( res.getWarnings().size() != 0 ) {
856 catch ( final Exception e ) {
857 e.printStackTrace( System.out );