File tree Expand file tree Collapse file tree 1 file changed +12
-10
lines changed
Expand file tree Collapse file tree 1 file changed +12
-10
lines changed Original file line number Diff line number Diff line change @@ -71,19 +71,21 @@ fn test_collect_edge_diff_iterators() {
7171 }
7272 }
7373
74- let removals = {
75- let mut r = vec ! [ ] ;
76- for d in diffs. iter ( ) {
77- for di in d. removals ( ) {
78- r. push ( di) ;
79- }
80- }
81- r
82- } ;
74+ let removals = diffs. iter ( ) . flat_map ( |d| d. removals ( ) ) . collect :: < Vec < _ > > ( ) ;
8375 let insertions = diffs. iter ( ) . map ( |i| i. insertions ( ) ) . collect :: < Vec < _ > > ( ) ;
8476
8577 let removal_order = ts. edge_removal_order ( ) ;
86- assert_eq ! ( removals. len( ) , removal_order. len( ) ) ;
78+ // Removals have some nuance:
79+ // The "standard" loop ends when all IMSERTIONS havee
80+ // been processed, which means that all edges
81+ // leaving the tree at the "sequence length" are never visited.
82+ let num_removals_not_at_end = removal_order
83+ . iter ( )
84+ . filter ( |r| {
85+ ts. tables ( ) . edges ( ) . right_column ( ) [ r. as_usize ( ) ] != ts. tables ( ) . sequence_length ( )
86+ } )
87+ . count ( ) ;
88+ assert_eq ! ( removals. len( ) , num_removals_not_at_end) ;
8789
8890 for ( i, j) in removals. iter ( ) . zip ( removal_order. iter ( ) ) {
8991 assert_eq ! (
You can’t perform that action at this time.
0 commit comments