@@ -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