3
3
//!
4
4
//! In particular we test the tedious size_hint and exact size correctness.
5
5
6
+ #[ path = "../wrappers.rs" ]
7
+ mod wrappers;
8
+
6
9
use itertools:: free:: {
7
- cloned, enumerate, multipeek, peek_nth, put_back, put_back_n, rciter, zip , zip_eq,
10
+ cloned, enumerate, multipeek, peek_nth, put_back, put_back_n, rciter, zip_eq,
8
11
} ;
9
12
use itertools:: Itertools ;
10
13
use itertools:: { iproduct, izip, multizip, EitherOrBoth } ;
@@ -14,11 +17,14 @@ use std::collections::{HashMap, HashSet};
14
17
use std:: default:: Default ;
15
18
use std:: num:: Wrapping ;
16
19
use std:: ops:: Range ;
20
+ use wrappers:: free:: zip;
17
21
18
22
use quickcheck:: TestResult ;
19
23
use rand:: seq:: SliceRandom ;
20
24
use rand:: Rng ;
21
25
26
+ use crate :: wrappers:: Ext ;
27
+
22
28
/// Trait for size hint modifier types
23
29
trait HintKind : Copy + Send + qc:: Arbitrary {
24
30
fn loosen_bounds ( & self , org_hint : ( usize , Option < usize > ) ) -> ( usize , Option < usize > ) ;
@@ -641,12 +647,12 @@ quickcheck! {
641
647
exact_size_for_this( a. iter( ) . interleave_shortest( & b) )
642
648
}
643
649
fn size_intersperse( a: Iter <i16 >, x: i16 ) -> bool {
644
- correct_size_hint( a. intersperse ( x) )
650
+ correct_size_hint( a. intersperse_wrap ( x) )
645
651
}
646
652
fn equal_intersperse( a: Vec <i32 >, x: i32 ) -> bool {
647
653
let mut inter = false ;
648
654
let mut i = 0 ;
649
- for elt in a. iter( ) . cloned( ) . intersperse ( x) {
655
+ for elt in a. iter( ) . cloned( ) . intersperse_wrap ( x) {
650
656
if inter {
651
657
if elt != x { return false }
652
658
} else {
@@ -1249,8 +1255,8 @@ quickcheck! {
1249
1255
return TestResult :: discard( ) ;
1250
1256
}
1251
1257
1252
- let min = cloned( & a) . fold1 ( f64 :: min) ;
1253
- let max = cloned( & a) . fold1 ( f64 :: max) ;
1258
+ let min = cloned( & a) . fold1_wrap ( f64 :: min) ;
1259
+ let max = cloned( & a) . fold1_wrap ( f64 :: max) ;
1254
1260
1255
1261
let minmax = cloned( & a) . minmax( ) ;
1256
1262
let expected = match a. len( ) {
@@ -1411,7 +1417,7 @@ quickcheck! {
1411
1417
. map( |i| ( i % modulo, i) )
1412
1418
. into_group_map( )
1413
1419
. into_iter( )
1414
- . map( |( key, vals) | ( key, vals. into_iter( ) . fold1 ( |acc, val| acc + val) . unwrap( ) ) )
1420
+ . map( |( key, vals) | ( key, vals. into_iter( ) . fold1_wrap ( |acc, val| acc + val) . unwrap( ) ) )
1415
1421
. collect:: <HashMap <_, _>>( ) ;
1416
1422
assert_eq!( lookup, group_map_lookup) ;
1417
1423
0 commit comments