@@ -97,10 +97,10 @@ fn put_back() {
97
97
98
98
#[ test]
99
99
fn merge_join_by ( ) {
100
- let i1 = vec ! [ 1 , 3 , 5 ] . into_iter ( ) ;
100
+ let i1 = vec ! [ 1 , 3 , 5 , 7 , 8 , 9 ] . into_iter ( ) ;
101
101
let i2 = vec ! [ 0 , 3 , 4 , 5 ] . into_iter ( ) ;
102
- let mjb = i1. merge_join_by ( i2, std:: cmp:: Ord :: cmp) ;
103
- check_specialized_count_last_nth_sizeh ( & mjb, 5 ) ;
102
+ let mjb = i1. clone ( ) . merge_join_by ( i2. clone ( ) , std:: cmp:: Ord :: cmp) ;
103
+ check_specialized_count_last_nth_sizeh ( & mjb, 8 ) ;
104
104
// Rust 1.24 compatibility:
105
105
fn eob_left_z ( eob : EitherOrBoth < usize , usize > ) -> usize {
106
106
eob. left ( ) . unwrap_or ( 0 )
@@ -115,5 +115,12 @@ fn merge_join_by() {
115
115
}
116
116
check_specialized_fold_xor ( & mjb. clone ( ) . map ( eob_left_z) ) ;
117
117
check_specialized_fold_xor ( & mjb. clone ( ) . map ( eob_right_z) ) ;
118
+ check_specialized_fold_xor ( & mjb. clone ( ) . map ( eob_both_z) ) ;
119
+
120
+ // And the other way around
121
+ let mjb = i2. merge_join_by ( i1, std:: cmp:: Ord :: cmp) ;
122
+ check_specialized_count_last_nth_sizeh ( & mjb, 8 ) ;
123
+ check_specialized_fold_xor ( & mjb. clone ( ) . map ( eob_left_z) ) ;
124
+ check_specialized_fold_xor ( & mjb. clone ( ) . map ( eob_right_z) ) ;
118
125
check_specialized_fold_xor ( & mjb. clone ( ) . map ( eob_both_z) ) ;
119
126
}
0 commit comments