Skip to content

Commit ceba0a6

Browse files
committed
Feat: Make vector generator use size parameter
1 parent 5c324e2 commit ceba0a6

File tree

2 files changed

+24
-45
lines changed

2 files changed

+24
-45
lines changed

DOCUMENTATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Some, but not all, generators generate examples that have some sort of
118118
size dimension.
119119
The example size can be controlled using [Conf::with_example_size].
120120

121-
```rust,ignore
121+
```rust
122122
use monkey_test::*;
123123

124124
monkey_test()

src/gens/vec.rs

Lines changed: 23 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
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
@@ -19,44 +15,26 @@
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

Comments
 (0)