@@ -8,10 +8,11 @@ use test_case::test_case;
88
99#[ test]
1010fn insertion_position ( ) {
11- let fragment: Fragment < u32 > = alloc:: vec![ 4 , 7 , 9 , 13 , 16 , 17 , 23 ] . into ( ) ;
11+ let vec = alloc:: vec![ 4 , 7 , 9 , 13 , 16 , 17 , 23 ] ;
12+ let fragment = Fragment :: new ( vec. capacity ( ) , vec) ;
1213
1314 let mut c = |a : & u32 , b : & u32 | a. cmp ( b) ;
14- let mut pos = |val : & u32 | find_position_to_insert ( & fragment, & mut c, val) ;
15+ let mut pos = |val : & u32 | find_position_to_insert ( fragment. as_slice ( ) , & mut c, val) ;
1516
1617 assert_eq ! ( pos( & 0 ) , None ) ;
1718 assert_eq ! ( pos( & 3 ) , None ) ;
@@ -52,16 +53,16 @@ fn insertion_position() {
5253fn insertion_position_with_ties ( ) {
5354 let mut c = |a : & u32 , b : & u32 | a. cmp ( b) ;
5455
55- let fragment: Fragment < u32 > = alloc:: vec![ 4 , 7 , 13 , 13 , 13 , 17 , 23 ] . into ( ) ;
56- let mut pos = |val : & u32 | find_position_to_insert ( & fragment, & mut c, val) ;
56+ let fragment: Fragment < u32 > = Fragment :: new ( 12 , alloc:: vec![ 4 , 7 , 13 , 13 , 13 , 17 , 23 ] ) ;
57+ let mut pos = |val : & u32 | find_position_to_insert ( fragment. as_slice ( ) , & mut c, val) ;
5758 assert_eq ! ( pos( & 13 ) , Some ( 2 ) ) ;
5859
59- let fragment: Fragment < u32 > = alloc:: vec![ 4 , 7 , 13 , 13 , 23 , 23 , 23 ] . into ( ) ;
60- let mut pos = |val : & u32 | find_position_to_insert ( & fragment, & mut c, val) ;
60+ let fragment: Fragment < u32 > = Fragment :: new ( 12 , alloc:: vec![ 4 , 7 , 13 , 13 , 23 , 23 , 23 ] ) ;
61+ let mut pos = |val : & u32 | find_position_to_insert ( fragment. as_slice ( ) , & mut c, val) ;
6162 assert_eq ! ( pos( & 23 ) , Some ( 4 ) ) ;
6263
63- let fragment: Fragment < u32 > = alloc:: vec![ 4 , 4 , 13 , 13 , 23 , 23 , 23 ] . into ( ) ;
64- let mut pos = |val : & u32 | find_position_to_insert ( & fragment, & mut c, val) ;
64+ let fragment: Fragment < u32 > = Fragment :: new ( 12 , alloc:: vec![ 4 , 4 , 13 , 13 , 23 , 23 , 23 ] ) ;
65+ let mut pos = |val : & u32 | find_position_to_insert ( fragment. as_slice ( ) , & mut c, val) ;
6566 assert_eq ! ( pos( & 4 ) , None ) ;
6667}
6768
@@ -70,9 +71,9 @@ fn sort_simple() {
7071 let mut c = |a : & u32 , b : & u32 | a. cmp ( b) ;
7172
7273 let mut fragments: Vec < Fragment < u32 > > = alloc:: vec![
73- alloc:: vec![ 2 , 4 ] . into ( ) ,
74- alloc:: vec![ 0 , 5 , 6 ] . into ( ) ,
75- alloc:: vec![ 1 , 3 ] . into ( )
74+ Fragment :: new ( 4 , alloc:: vec![ 2 , 4 ] ) ,
75+ Fragment :: new ( 4 , alloc:: vec![ 0 , 5 , 6 ] ) ,
76+ Fragment :: new ( 4 , alloc:: vec![ 1 , 3 ] ) ,
7677 ] ;
7778
7879 in_place_sort_by ( & mut fragments, & mut c) ;
@@ -97,7 +98,7 @@ fn sort_growth(growth: impl Growth) {
9798 for _ in 0 ..num_fragments {
9899 let fragment_capacities: Vec < _ > = fragments. iter ( ) . map ( |x| x. capacity ( ) ) . collect ( ) ;
99100 let mut fragment =
100- Fragment :: new ( growth. new_fragment_capacity_from ( fragment_capacities. into_iter ( ) ) ) ;
101+ Fragment :: new_empty ( growth. new_fragment_capacity_from ( fragment_capacities. into_iter ( ) ) ) ;
101102 for i in 0 ..fragment. capacity ( ) {
102103 let i = len + i;
103104 let value = match i % 3 {
@@ -121,7 +122,10 @@ fn sort_growth(growth: impl Growth) {
121122}
122123
123124fn assert_is_sorted < T : Ord > ( fragments : Vec < Fragment < T > > ) {
124- let flattened: Vec < T > = fragments. into_iter ( ) . flat_map ( |x| Vec :: from ( x) ) . collect ( ) ;
125+ let flattened: Vec < T > = fragments
126+ . into_iter ( )
127+ . flat_map ( Fragment :: into_inner)
128+ . collect ( ) ;
125129
126130 if flattened. is_empty ( ) {
127131 return ;
0 commit comments