summaryrefslogtreecommitdiff
path: root/rust/src/lambda.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/lambda.rs')
-rw-r--r--rust/src/lambda.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/rust/src/lambda.rs b/rust/src/lambda.rs
index d1ab5b5..9b7045f 100644
--- a/rust/src/lambda.rs
+++ b/rust/src/lambda.rs
@@ -1,3 +1,8 @@
+use proptest::{
+ arbitrary::{any, any_with, arbitrary_with},
+ strategy::{Strategy, ValueTree},
+ test_runner::TestRunner,
+};
use rand::{rngs::SmallRng, Rng, RngCore, SeedableRng};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
@@ -98,12 +103,13 @@ fn gensym() -> String {
format!("x_{}", n1)
}
-pub fn generate_expr<R: Rng>(size: u32, rng: &mut R) -> Value {
+pub fn generate_expr(size: u32, runner: &mut TestRunner) -> Value {
match size {
0 | 1 => {
- let n: u16 = rng.gen();
+ let n = any::<u16>().new_tree(runner).unwrap().current();
Value::Num(n.into())
}
+ 2 => Value::Sym(identifier().new_tree(runner).unwrap().current()),
_ => todo!(),
}
}