Skip to content

Commit 3346213

Browse files
k_smallest_range test: no izip
`izip` could truncate an iterator without warning us while `assert_equal` would.
1 parent 651602b commit 3346213

File tree

1 file changed

+8
-18
lines changed

1 file changed

+8
-18
lines changed

tests/test_std.rs

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -508,34 +508,24 @@ qc::quickcheck! {
508508
let num_elements = min(k, m as _);
509509

510510
// Compute the top and bottom k in various combinations
511+
let sorted_smallest = sorted[..num_elements].iter().cloned();
511512
let smallest = v.iter().cloned().k_smallest(k);
512513
let smallest_by = v.iter().cloned().k_smallest_by(k, Ord::cmp);
513514
let smallest_by_key = v.iter().cloned().k_smallest_by_key(k, |&x| x);
514515

516+
let sorted_largest = sorted[sorted.len() - num_elements..].iter().rev().cloned();
515517
let largest = v.iter().cloned().k_largest(k);
516518
let largest_by = v.iter().cloned().k_largest_by(k, Ord::cmp);
517519
let largest_by_key = v.iter().cloned().k_largest_by_key(k, |&x| x);
518520

519521
// Check the variations produce the same answers and that they're right
520-
for (a,b,c,d) in izip!(
521-
sorted[..num_elements].iter().cloned(),
522-
smallest,
523-
smallest_by,
524-
smallest_by_key) {
525-
assert_eq!(a,b);
526-
assert_eq!(a,c);
527-
assert_eq!(a,d);
528-
}
522+
it::assert_equal(smallest, sorted_smallest.clone());
523+
it::assert_equal(smallest_by, sorted_smallest.clone());
524+
it::assert_equal(smallest_by_key, sorted_smallest);
529525

530-
for (a,b,c,d) in izip!(
531-
sorted[sorted.len()-num_elements..].iter().rev().cloned(),
532-
largest,
533-
largest_by,
534-
largest_by_key) {
535-
assert_eq!(a,b);
536-
assert_eq!(a,c);
537-
assert_eq!(a,d);
538-
}
526+
it::assert_equal(largest, sorted_largest.clone());
527+
it::assert_equal(largest_by, sorted_largest.clone());
528+
it::assert_equal(largest_by_key, sorted_largest);
539529
}
540530
}
541531

0 commit comments

Comments
 (0)