Skip to content

Commit a88946d

Browse files
committed
More exhaustive MergeJoinBy specialization test
1 parent b13e35f commit a88946d

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

tests/specializations.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ fn put_back() {
9797

9898
#[test]
9999
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();
101101
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);
104104
// Rust 1.24 compatibility:
105105
fn eob_left_z(eob: EitherOrBoth<usize, usize>) -> usize {
106106
eob.left().unwrap_or(0)
@@ -115,5 +115,12 @@ fn merge_join_by() {
115115
}
116116
check_specialized_fold_xor(&mjb.clone().map(eob_left_z));
117117
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));
118125
check_specialized_fold_xor(&mjb.clone().map(eob_both_z));
119126
}

0 commit comments

Comments
 (0)