import org.forester.archaeopteryx.AptxUtil;
import org.forester.archaeopteryx.TreePanelUtil;
import org.forester.archaeopteryx.webservices.WebserviceUtil;
+import org.forester.clade_analysis.CladeAnalysisTest;
import org.forester.development.DevelopmentTools;
import org.forester.evoinference.TestPhylogenyReconstruction;
import org.forester.evoinference.matrix.character.CharacterStateMatrix;
succeeded++;
}
System.out.println( "OK." );
+
+ System.out.print( "Common prefix: " );
+ if ( !testCommonPrefix() ) {
+ System.out.println( "failed." );
+ failed++;
+ }
+ else {
+ succeeded++;
+ }
+ System.out.println( "OK." );
+
+ System.out.print( "Common prefix sep: " );
+ if ( !testCommonPrefixSep() ) {
+ System.out.println( "failed." );
+ failed++;
+ }
+ else {
+ succeeded++;
+ }
+ System.out.println( "OK." );
+
+
System.out.print( "Sequence writer: " );
if ( testSequenceWriter() ) {
System.out.println( "OK." );
System.out.println( "failed." );
failed++;
}
+ System.out.print( "Phylogeny methods:" );
+ if ( Test.testPhylogenyMethods() ) {
+ System.out.println( "OK." );
+ succeeded++;
+ }
+ else {
+ System.out.println( "failed." );
+ failed++;
+ }
System.out.print( "Postorder Iterator: " );
if ( Test.testPostOrderIterator() ) {
System.out.println( "OK." );
System.out.println( "failed." );
failed++;
}
+ System.out.print( "Clade analyis: " );
+ if ( CladeAnalysisTest.test() ) {
+ System.out.println( "OK." );
+ succeeded++;
+ }
+ else {
+ System.out.println( "failed." );
+ failed++;
+ }
System.out.print( "Phylogeny reconstruction:" );
System.out.println();
if ( TestPhylogenyReconstruction.test( new File( PATH_TO_TEST_DATA ) ) ) {
}
}
+
private static boolean testEngulfingOverlapRemoval() {
try {
final Domain d0 = new BasicDomain( "d0", 0, 8, ( short ) 1, ( short ) 1, 0.1, 1 );
return true;
}
+
+ private static boolean testCommonPrefix() {
+ final List<String> l0 = new ArrayList<String>();
+ l0.add( "abc" );
+ if ( !ForesterUtil.greatestCommonPrefix( l0 ).equals( "abc" ) ) {
+ return false;
+ }
+
+ final List<String> l1 = new ArrayList<String>();
+ l1.add( "abc" );
+ l1.add( "abX" );
+ if ( !ForesterUtil.greatestCommonPrefix( l1 ).equals( "ab" ) ) {
+ return false;
+ }
+
+ final List<String> l2 = new ArrayList<String>();
+ l2.add( "abc" );
+ l2.add( "abX" );
+ l2.add( "axy" );
+ if ( !ForesterUtil.greatestCommonPrefix( l2 ).equals( "a" ) ) {
+ return false;
+ }
+
+ final List<String> l3 = new ArrayList<String>();
+ l3.add( "abXsdfsdfsdfsdfsdfsd" );
+ l3.add( "abXsdfsdfsdfsdfsdfsd" );
+ l3.add( "abc" );
+ l3.add( "abXsdfsdfsdfsdfsdfsd" );
+ l3.add( "ab" );
+ l3.add( "abc" );
+ l3.add( "ab" );
+ if ( !ForesterUtil.greatestCommonPrefix( l3 ).equals( "ab" ) ) {
+ return false;
+ }
+
+ final List<String> l4 = new ArrayList<String>();
+ l4.add( "abXsdfsdfsdfsdfsdfsd" );
+ l4.add( "abXsdfsdfsdfsdfsdfsd" );
+ l4.add( "abc" );
+ l4.add( "Xsdfsdfsdfsdfsdfsd" );
+ l4.add( "ab" );
+ l4.add( "abc" );
+ if ( !ForesterUtil.greatestCommonPrefix( l4 ).equals( "" ) ) {
+ return false;
+ }
+
+ final List<String> l5 = new ArrayList<String>();
+ l5.add( "" );
+ if ( !ForesterUtil.greatestCommonPrefix( l5 ).equals( "" ) ) {
+ return false;
+ }
+
+ final List<String> l6 = new ArrayList<String>();
+ l6.add( "abc" );
+ l6.add( "abX" );
+ l6.add( "" );
+ if ( !ForesterUtil.greatestCommonPrefix( l6 ).equals( "" ) ) {
+ return false;
+ }
+ return true;
+ }
+
+ private static boolean testCommonPrefixSep() {
+ final List<String> l0 = new ArrayList<String>();
+ l0.add( "a.b.c" );
+ if ( !ForesterUtil.greatestCommonPrefix( l0, ".").equals( "a.b.c" ) ) {
+ return false;
+ }
+
+ final List<String> l1 = new ArrayList<String>();
+ l1.add( "a.b.c" );
+ l1.add( "a.b.X" );
+ if ( !ForesterUtil.greatestCommonPrefix( l1 , ".").equals( "a.b" ) ) {
+ return false;
+ }
+
+ final List<String> l2 = new ArrayList<String>();
+ l2.add( "a.b.c." );
+ l2.add( "a.b.X." );
+ l2.add( "a.x.y." );
+ if ( !ForesterUtil.greatestCommonPrefix( l2, ".").equals( "a" ) ) {
+ return false;
+ }
+
+ final List<String> l3 = new ArrayList<String>();
+ l3.add( "a/b/X/s/d/f/s/d/f/s/d/f/s/d/f/s/d/f/s/d/" );
+ l3.add( "a/b/X/s/d/f/s/d/f/s/d/f/s/d/f/s/d/f/s/d" );
+ l3.add( "a/b/c" );
+ l3.add( "a/b/X/s/d/f/s/d/f/s/d/f/s/d/f/s/d/f/s/d/" );
+ l3.add( "a/b/" );
+ l3.add( "a/b/c/" );
+ l3.add( "a/b////////" );
+ if ( !ForesterUtil.greatestCommonPrefix( l3, "/" ).equals( "a/b" ) ) {
+ return false;
+ }
+
+ final List<String> l4 = new ArrayList<String>();
+ l4.add( "a.b.X.s.d.f.s.d.f.s.d.f.s.d.f.s.d.f.s.d" );
+ l4.add( "a.b.X.s.d.f.s.d.f.s.d.f.s.d.f.s.d.f.s.d" );
+ l4.add( "a.b.c" );
+ l4.add( "X.s.d.f.s.d.f.s.d.f.s.d.f.s.d.f.s.d..." );
+ l4.add( "a.b" );
+ l4.add( "a.b.c" );
+ if ( !ForesterUtil.greatestCommonPrefix( l4, "." ).equals( "" ) ) {
+ return false;
+ }
+
+ final List<String> l5 = new ArrayList<String>();
+ l5.add( "" );
+ if ( !ForesterUtil.greatestCommonPrefix( l5, "_" ).equals( "" ) ) {
+ return false;
+ }
+
+ final List<String> l6 = new ArrayList<String>();
+ l6.add( "_" );
+ l6.add( "__" );
+ if ( !ForesterUtil.greatestCommonPrefix( l6, "_" ).equals( "" ) ) {
+ return false;
+ }
+
+ final List<String> l7 = new ArrayList<String>();
+ l7.add( "a,b,c" );
+ l7.add( "a,b,X" );
+ l7.add( "" );
+ l7.add( ",,,,,,,,,," );
+ if ( !ForesterUtil.greatestCommonPrefix( l7, "," ).equals( "" ) ) {
+ return false;
+ }
+
+ final List<String> l8 = new ArrayList<String>();
+ l8.add( "123.304.403.04" );
+ l8.add( "123.304.403.04.02" );
+ l8.add( "123.304.403.03.03" );
+ if ( !ForesterUtil.greatestCommonPrefix( l8, "." ).equals( "123.304.403" ) ) {
+ return false;
+ }
+
+ final List<String> l9 = new ArrayList<String>();
+ l9.add( "123.304.403.04" );
+ l9.add( "123.304.403.04.02" );
+ l9.add( "123.304.402.03.03" );
+ if ( !ForesterUtil.greatestCommonPrefix( l9, "." ).equals( "123.304" ) ) {
+ return false;
+ }
+ return true;
+ }
+
+
private static boolean testUTF8ParsingFromFile() {
try {
final PhyloXmlParser xml_parser = PhyloXmlParser.createPhyloXmlParser();
return false;
}
final PhylogenyNode n6 = PhylogenyNode
- .createInstanceFromNhxString( "BLAGG-12345-blag", NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
+ .createInstanceFromNhxString( "BLAGG-12345-blag",
+ NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
if ( n6.getNodeData().isHasTaxonomy() ) {
System.out.println( n6.toString() );
return false;
return false;
}
final PhylogenyNode n8 = PhylogenyNode
- .createInstanceFromNhxString( "BLAGG_12345-blag", NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
+ .createInstanceFromNhxString( "BLAGG_12345-blag",
+ NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
if ( !n8.getNodeData().getTaxonomy().getIdentifier().getValue().equals( "12345" ) ) {
System.out.println( n8.toString() );
return false;
}
final PhylogenyNode n9 = PhylogenyNode
- .createInstanceFromNhxString( "BLAGG_12345/blag", NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
+ .createInstanceFromNhxString( "BLAGG_12345/blag",
+ NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
if ( !n9.getNodeData().getTaxonomy().getIdentifier().getValue().equals( "12345" ) ) {
System.out.println( n9.toString() );
return false;
}
final PhylogenyNode n10x = PhylogenyNode
- .createInstanceFromNhxString( "BLAG!_12X45-blag", NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
+ .createInstanceFromNhxString( "BLAG!_12X45-blag",
+ NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
if ( n10x.getNodeData().isHasTaxonomy() ) {
System.out.println( n10x.toString() );
return false;
}
final PhylogenyNode n10xx = PhylogenyNode
- .createInstanceFromNhxString( "BLAG!_1YX45-blag", NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
+ .createInstanceFromNhxString( "BLAG!_1YX45-blag",
+ NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
if ( n10xx.getNodeData().isHasTaxonomy() ) {
System.out.println( n10xx.toString() );
return false;
}
final PhylogenyNode n10 = PhylogenyNode
- .createInstanceFromNhxString( "BLAGG_9YX45-blag", NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
+ .createInstanceFromNhxString( "BLAGG_9YX45-blag",
+ NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_RELAXED );
if ( !n10.getNodeData().getTaxonomy().getTaxonomyCode().equals( "9YX45" ) ) {
System.out.println( n10.toString() );
return false;
}
return true;
}
+
+ private static boolean testPhylogenyMethods() {
+ try {
+ final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
+ final Phylogeny t0 = factory.create( "((((A,B)ab,C)abc,D)abcd,E)r", new NHXParser() )[ 0 ];
+
+ if ( PhylogenyMethods.calculateLevel( t0.getNode( "A" ) ) != 0 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t0.getNode( "B" ) ) != 0 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t0.getNode( "ab" ) ) != 1 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t0.getNode( "C" ) ) != 0 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t0.getNode( "abc" ) ) != 2 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t0.getNode( "D" ) ) != 0 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t0.getNode( "abcd" ) ) != 3 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t0.getNode( "E" ) ) != 0 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t0.getNode( "r" ) ) != 4 ) {
+ return false;
+ }
+ final Phylogeny t1 = factory.create( "((((A,B)ab,C)abc,D)abcd,E,((((((X)1)2)3)4)5)6)r", new NHXParser() )[ 0 ];
+ if ( PhylogenyMethods.calculateLevel( t1.getNode( "r" ) ) != 7 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t1.getNode( "X" ) ) != 0 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t1.getNode( "6" ) ) != 6 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t1.getNode( "5" ) ) != 5 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t1.getNode( "4" ) ) != 4 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t1.getNode( "3" ) ) != 3 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t1.getNode( "2" ) ) != 2 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t1.getNode( "1" ) ) != 1 ) {
+ return false;
+ }
+ if ( PhylogenyMethods.calculateLevel( t1.getNode( "abcd" ) ) != 3 ) {
+ return false;
+ }
+
+ }
+ catch ( final Exception e ) {
+ e.printStackTrace( System.out );
+ return false;
+ }
+ return true;
+ }
private static boolean testUniprotEntryRetrieval() {
try {