use proptest::{
collection::vec,
strategy::{Strategy, ValueTree},
test_runner::{Config, TestRunner},
};
#[derive(Debug, Default)]
pub struct Rvg {
runner: TestRunner,
}
impl Rvg {
pub fn new() -> Self {
Rvg {
runner: TestRunner::new(Config::default()),
}
}
pub fn deterministic() -> Self {
Rvg {
runner: TestRunner::deterministic(),
}
}
pub fn sample<S: Strategy>(&mut self, strategy: &S) -> S::Value {
strategy
.new_tree(&mut self.runner)
.expect("No value can be generated")
.current()
}
pub fn sample_vec<S: Strategy>(&mut self, strategy: &S, len: usize) -> Vec<S::Value> {
vec(strategy, len..=len)
.new_tree(&mut self.runner)
.expect("No value can be generated")
.current()
}
}