11//! Generators for vectors.
22//!
3- //! One design choice of the vector generator implementation is that example
4- //! vectors are expected to over time be potentially longer and longer,
5- //! when iterating over the example iterator.
6- //!
73//! ```rust
84//! use monkey_test::*;
95//!
106//! let some_seed = 1337;
11- //! let some_size = 0..=1000 ;
7+ //! let some_size = 0..=3 ;
128//! let vectors_of_nine = gens::vec::any(gens::fixed::constant(9));
139//!
1410//! let actual_examples = vectors_of_nine
1915//! assert_eq!{
2016//! actual_examples,
2117//! vec![
22- //! vec![],
23- //! vec![9],
24- //! vec![9],
25- //! vec![9, 9],
26- //! vec![9, 9],
27- //! vec![9, 9, 9, 9, 9],
28- //! vec![9, 9],
29- //! vec![9, 9, 9, 9, 9, 9],
30- //! vec![9, 9, 9, 9],
31- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
32- //! vec![9, 9, 9],
33- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
34- //!
35- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
36- //! 9],
37- //!
38- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
39- //! 9, 9, 9, 9, 9, 9],
40- //!
41- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
42- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
43- //! 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
44- //!
45- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
46- //! 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
47- //! 9],
48- //!
49- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
50- //! 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
51- //! 9, 9, 9, 9, 9, 9, 9, 9, 9],
52- //!
53- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
54- //! 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
55- //! 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
56- //! 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
57- //!
58- //! vec![9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
59- //! 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
18+ //! vec![9, 9, 9],
19+ //! vec![9, 9, 9],
20+ //! vec![9, 9],
21+ //! vec![9],
22+ //! vec![9, 9],
23+ //! vec![9, 9, 9],
24+ //! vec![9],
25+ //! vec![9, 9, 9],
26+ //! vec![9],
27+ //! vec![9, 9, 9],
28+ //! vec![9],
29+ //! vec![9, 9, 9],
30+ //! vec![],
31+ //! vec![9, 9],
32+ //! vec![9, 9, 9],
33+ //! vec![9, 9, 9],
34+ //! vec![9, 9],
35+ //! vec![9, 9],
36+ //! vec![9, 9],
37+ //! vec![9, 9]
6038//! ]
6139//! };
6240//! ```
@@ -68,7 +46,8 @@ pub fn any<E: Clone + 'static>(element_gen: BoxGen<E>) -> BoxGen<Vec<E>> {
6846 let element_shrinker = element_gen. shrinker ( ) ;
6947
7048 crate :: gens:: from_fn ( move |seed, size| {
71- let sizes = crate :: gens:: sized:: default ( ) . examples ( seed, size. clone ( ) ) ;
49+ let sizes = crate :: gens:: usize:: ranged ( size. clone ( ) )
50+ . examples ( seed, size. clone ( ) ) ;
7251 let seeds = crate :: gens:: seeds ( ) . examples ( seed, size. clone ( ) ) ;
7352 let element_gen = element_gen. clone ( ) ;
7453
0 commit comments