Skip to content

Commit b5a4deb

Browse files
committed
More systemic test for k_smallest
1 parent 38a31a2 commit b5a4deb

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

tests/test_std.rs

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -434,29 +434,34 @@ qc::quickcheck! {
434434
let num_elements = min(k, m as _);
435435

436436
// Compute the top and bottom k in various combinations
437-
let smallest_by_smallest : Vec<_> = v.iter().cloned().k_smallest(k).collect();
438-
let smallest_by_largest : Vec<_> = v.iter().cloned().k_largest_by_key(k, |x| -x).collect();
437+
let smallest = v.iter().cloned().k_smallest(k);
438+
let smallest_by = v.iter().cloned().k_smallest_by(k, Ord::cmp);
439+
let smallest_by_key = v.iter().cloned().k_smallest_by_key(k, |&x| x);
439440

440-
let largest_by_smallest : Vec<_> = v.iter().cloned().k_smallest_by(k, |a,b| b.cmp(a)).collect();
441-
let largest_by_largest : Vec<_> = v.iter().cloned().k_largest_by(k, Ord::cmp).collect();
441+
let largest = v.iter().cloned().k_largest(k);
442+
let largest_by = v.iter().cloned().k_largest_by(k, Ord::cmp);
443+
let largest_by_key = v.iter().cloned().k_largest_by_key(k, |&x| x);
442444

443445
// Check the variations produce the same answers and that they're right
444-
assert_eq!(
445-
smallest_by_smallest,
446-
smallest_by_largest
447-
);
448-
assert_eq!(
449-
largest_by_smallest,
450-
largest_by_largest
451-
);
452-
assert_eq!(
453-
sorted[..num_elements],
454-
smallest_by_smallest[..],
455-
);
456-
it::assert_equal(
457-
sorted[sorted.len()-num_elements..].iter().rev(),
458-
largest_by_smallest[..].iter()
459-
);
446+
for (a,b,c,d) in izip!(
447+
sorted[..num_elements].iter().cloned(),
448+
smallest,
449+
smallest_by,
450+
smallest_by_key) {
451+
assert_eq!(a,b);
452+
assert_eq!(a,c);
453+
assert_eq!(a,d);
454+
}
455+
456+
for (a,b,c,d) in izip!(
457+
sorted[sorted.len()-num_elements..].iter().rev().cloned(),
458+
largest,
459+
largest_by,
460+
largest_by_key) {
461+
assert_eq!(a,b);
462+
assert_eq!(a,c);
463+
assert_eq!(a,d);
464+
}
460465
}
461466
}
462467

0 commit comments

Comments
 (0)