From c8d286239ef0d14a985cdcc26e0eda57098a5db1 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Wed, 9 Oct 2024 15:55:14 +0200 Subject: Generate multiple expressions --- rust/src/lambda.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'rust/src/lambda.rs') diff --git a/rust/src/lambda.rs b/rust/src/lambda.rs index 8ac3e46..4027a62 100644 --- a/rust/src/lambda.rs +++ b/rust/src/lambda.rs @@ -117,15 +117,23 @@ pub fn generate_expr(size: u32, runner: &mut TestRunner) -> Value { 6 => simple_lambda().new_tree(runner).unwrap().current(), 7 => app_to_lambda().new_tree(runner).unwrap().current(), 8 => multi_app().new_tree(runner).unwrap().current(), - 9 => any::() + _ => any::() .prop_flat_map(gen_terms) .new_tree(runner) .unwrap() .current(), - _ => todo!(), } } +pub fn generate_exprs(size: u32, runner: &mut TestRunner) -> Vec { + let sz = (0..size).new_tree(runner).unwrap().current(); + (0..sz) + .collect::>() + .into_iter() + .map(|_| generate_expr(size, runner)) + .collect() +} + fn simple_app() -> impl Strategy { let leaf = prop_oneof![any_num(), any_sym()]; (leaf.clone(), leaf.clone()).prop_map(|(l, r)| Value::App(Box::new(l), Box::new(r))) -- cgit v1.2.3