@@ -272,8 +272,8 @@ mod tests {
272272 LevenshteinDNACorrected as LDNACorr , LevenshteinProteinCorrected ,
273273 } ;
274274 use crate :: random:: { FakeGenerator , FakeRng } ;
275- use crate :: tree:: Node ;
276275 use crate :: tree:: NodeIdx :: { self , Internal as I , Leaf as L } ;
276+ use crate :: tree:: { generate_internal_node_id as gen_id, Node } ;
277277 use crate :: { record_wo_desc as record, tree} ;
278278
279279 use super :: * ;
@@ -338,13 +338,17 @@ mod tests {
338338 17.0 , 14.0 , 11.0 , 12.0 , 10.0 , 13.0 , 8.0 , 0.0 ;
339339 ] ,
340340 } ;
341- let sequences = Sequences :: new ( ( 1 ..=8 ) . map ( |i| record ! ( & i. to_string( ) , b"" ) ) . collect ( ) ) ;
341+ let sequences = Sequences :: new (
342+ ( 1 ..=8 )
343+ . map ( |i| record ! ( format!( "s{}" , i) . as_str( ) , b"" ) )
344+ . collect ( ) ,
345+ ) ;
342346 let mut rng = FakeGenerator :: default ( ) ;
343347 let nj_tree = NJTreeBuilder :: new ( LDNACorr { } )
344348 . build_from_distances ( nj_distances, & sequences, & mut rng)
345349 . unwrap ( ) ;
346350 let correct_tree =
347- tree ! ( "((8 :6,7 :2):0.5,((5 :1,6 :4):2,(4 :3,(3 :1,(1 :5,2 :2):2):1):2):0.5):0.0;" ) ;
351+ tree ! ( "((s8 :6,s7 :2):0.5,((s5 :1,s6 :4):2,(s4 :3,(s3 :1,(s1 :5,s2 :2):2):1):2):0.5):0.0;" ) ;
348352 assert_eq ! ( nj_tree. length, correct_tree. length) ;
349353 for leaf in nj_tree. leaves ( ) {
350354 assert_eq ! ( leaf. blen, correct_tree. by_id( & leaf. id) . blen) ;
@@ -480,10 +484,10 @@ mod tests {
480484 Node :: new_leaf( 2 , Some ( I ( 7 ) ) , 4.0 , "C2" . to_string( ) ) ,
481485 Node :: new_leaf( 3 , Some ( I ( 6 ) ) , 2.0 , "D3" . to_string( ) ) ,
482486 Node :: new_leaf( 4 , Some ( I ( 6 ) ) , 1.0 , "E4" . to_string( ) ) ,
483- Node :: new_internal( 5 , Some ( I ( 7 ) ) , vec![ L ( 1 ) , L ( 0 ) ] , 3.0 , "" . to_string ( ) ) ,
484- Node :: new_internal( 6 , Some ( I ( 8 ) ) , vec![ L ( 4 ) , L ( 3 ) ] , 1.0 , "" . to_string ( ) ) ,
485- Node :: new_internal( 7 , Some ( I ( 8 ) ) , vec![ I ( 5 ) , L ( 2 ) ] , 1.0 , "" . to_string ( ) ) ,
486- Node :: new_internal( 8 , None , vec![ I ( 7 ) , I ( 6 ) ] , 0.0 , "" . to_string ( ) ) ,
487+ Node :: new_internal( 5 , Some ( I ( 7 ) ) , vec![ L ( 1 ) , L ( 0 ) ] , 3.0 , gen_id ( & 5 ) ) ,
488+ Node :: new_internal( 6 , Some ( I ( 8 ) ) , vec![ L ( 4 ) , L ( 3 ) ] , 1.0 , gen_id ( & 6 ) ) ,
489+ Node :: new_internal( 7 , Some ( I ( 8 ) ) , vec![ I ( 5 ) , L ( 2 ) ] , 1.0 , gen_id ( & 7 ) ) ,
490+ Node :: new_internal( 8 , None , vec![ I ( 7 ) , I ( 6 ) ] , 0.0 , gen_id ( & 8 ) ) ,
487491 ] ;
488492 assert_eq ! ( nj_tree. root, I ( 8 ) ) ;
489493 assert_eq ! ( nj_tree. nodes, nodes) ;
@@ -514,9 +518,9 @@ mod tests {
514518 Node :: new_leaf( 1 , Some ( I ( 4 ) ) , 3.0 , "B1" . to_string( ) ) ,
515519 Node :: new_leaf( 2 , Some ( I ( 5 ) ) , 2.0 , "C2" . to_string( ) ) ,
516520 Node :: new_leaf( 3 , Some ( I ( 5 ) ) , 7.0 , "D3" . to_string( ) ) ,
517- Node :: new_internal( 4 , Some ( I ( 6 ) ) , vec![ L ( 0 ) , L ( 1 ) ] , 1.0 , "" . to_string ( ) ) ,
518- Node :: new_internal( 5 , Some ( I ( 6 ) ) , vec![ L ( 3 ) , L ( 2 ) ] , 1.0 , "" . to_string ( ) ) ,
519- Node :: new_internal( 6 , None , vec![ I ( 4 ) , I ( 5 ) ] , 0.0 , "" . to_string ( ) ) ,
521+ Node :: new_internal( 4 , Some ( I ( 6 ) ) , vec![ L ( 0 ) , L ( 1 ) ] , 1.0 , gen_id ( & 4 ) ) ,
522+ Node :: new_internal( 5 , Some ( I ( 6 ) ) , vec![ L ( 3 ) , L ( 2 ) ] , 1.0 , gen_id ( & 5 ) ) ,
523+ Node :: new_internal( 6 , None , vec![ I ( 4 ) , I ( 5 ) ] , 0.0 , gen_id ( & 6 ) ) ,
520524 ] ;
521525
522526 assert_eq ! ( nj_tree. root, I ( 6 ) ) ;
@@ -671,7 +675,11 @@ mod tests {
671675 17.0 , 14.0 , 11.0 , 12.0 , 10.0 , 13.0 , 8.0 , 0.0 ;
672676 ] ,
673677 } ;
674- let sequences = Sequences :: new ( ( 1 ..=8 ) . map ( |i| record ! ( & i. to_string( ) , b"" ) ) . collect ( ) ) ;
678+ let sequences = Sequences :: new (
679+ ( 1 ..=8 )
680+ . map ( |i| record ! ( format!( "s{}" , i) . as_str( ) , b"" ) )
681+ . collect ( ) ,
682+ ) ;
675683
676684 // FakeRng will return values that will select the same pairs as in the original paper
677685 let mut rng = RandomGenerator :: from_rng ( FakeRng :: from_f64_values ( vec ! [
@@ -681,7 +689,7 @@ mod tests {
681689 . build_from_distances ( nj_distances, & sequences, & mut rng)
682690 . unwrap ( ) ;
683691 let correct_tree =
684- tree ! ( "((8 :6,7 :2):0.5,((5 :1,6 :4):2,(4 :3,(3 :1,(1 :5,2 :2):2):1):2):0.5):0.0;" ) ;
692+ tree ! ( "((s8 :6,s7 :2):0.5,((s5 :1,s6 :4):2,(s4 :3,(s3 :1,(s1 :5,s2 :2):2):1):2):0.5):0.0;" ) ;
685693 assert_eq ! ( nj_tree. length, correct_tree. length) ;
686694 for leaf in nj_tree. leaves ( ) {
687695 assert_eq ! ( leaf. blen, correct_tree. by_id( & leaf. id) . blen) ;
0 commit comments