33//!
44//! In particular we test the tedious size_hint and exact size correctness.
55
6+ #[ path = "../wrappers.rs" ]
7+ mod wrappers;
8+
69use quickcheck as qc;
710use std:: default:: Default ;
811use std:: num:: Wrapping ;
@@ -24,14 +27,17 @@ use itertools::free::{
2427 put_back,
2528 put_back_n,
2629 rciter,
27- zip,
2830 zip_eq,
2931} ;
3032
33+ use wrappers:: free:: zip;
34+
3135use rand:: Rng ;
3236use rand:: seq:: SliceRandom ;
3337use quickcheck:: TestResult ;
3438
39+ use crate :: wrappers:: Ext ;
40+
3541/// Trait for size hint modifier types
3642trait HintKind : Copy + Send + qc:: Arbitrary {
3743 fn loosen_bounds ( & self , org_hint : ( usize , Option < usize > ) ) -> ( usize , Option < usize > ) ;
@@ -635,12 +641,12 @@ quickcheck! {
635641 exact_size_for_this( a. iter( ) . interleave_shortest( & b) )
636642 }
637643 fn size_intersperse( a: Iter <i16 >, x: i16 ) -> bool {
638- correct_size_hint( a. intersperse ( x) )
644+ correct_size_hint( a. intersperse_wrap ( x) )
639645 }
640646 fn equal_intersperse( a: Vec <i32 >, x: i32 ) -> bool {
641647 let mut inter = false ;
642648 let mut i = 0 ;
643- for elt in a. iter( ) . cloned( ) . intersperse ( x) {
649+ for elt in a. iter( ) . cloned( ) . intersperse_wrap ( x) {
644650 if inter {
645651 if elt != x { return false }
646652 } else {
@@ -1243,8 +1249,8 @@ quickcheck! {
12431249 return TestResult :: discard( ) ;
12441250 }
12451251
1246- let min = cloned( & a) . fold1 ( f64 :: min) ;
1247- let max = cloned( & a) . fold1 ( f64 :: max) ;
1252+ let min = cloned( & a) . fold1_wrap ( f64 :: min) ;
1253+ let max = cloned( & a) . fold1_wrap ( f64 :: max) ;
12481254
12491255 let minmax = cloned( & a) . minmax( ) ;
12501256 let expected = match a. len( ) {
@@ -1405,7 +1411,7 @@ quickcheck! {
14051411 . map( |i| ( i % modulo, i) )
14061412 . into_group_map( )
14071413 . into_iter( )
1408- . map( |( key, vals) | ( key, vals. into_iter( ) . fold1 ( |acc, val| acc + val) . unwrap( ) ) )
1414+ . map( |( key, vals) | ( key, vals. into_iter( ) . fold1_wrap ( |acc, val| acc + val) . unwrap( ) ) )
14091415 . collect:: <HashMap <_, _>>( ) ;
14101416 assert_eq!( lookup, group_map_lookup) ;
14111417
0 commit comments