activate test 75

This commit is contained in:
microproofs
2024-05-06 10:23:16 -04:00
committed by Kasey
parent 878298cc8e
commit 893e9c9855
34 changed files with 65 additions and 65 deletions

View File

@@ -1,37 +1,37 @@
// pub opaque type Dict<key, value> {
// inner: List<Pair<key, value>>,
// }
pub opaque type Dict<key, value> {
inner: List<Pair<key, value>>,
}
// pub fn constant(a: a) -> Fuzzer<a> {
// fn(s0) { Some((s0, a)) }
// }
pub fn constant(a: a) -> Fuzzer<a> {
fn(s0) { Some((s0, a)) }
}
// pub fn map(fuzz_a: Fuzzer<a>, f: fn(a) -> b) -> Fuzzer<b> {
// fn(s0) {
// when fuzz_a(s0) is {
// Some((s1, a)) -> Some((s1, f(a)))
// None -> None
// }
// }
// }
pub fn map(fuzz_a: Fuzzer<a>, f: fn(a) -> b) -> Fuzzer<b> {
fn(s0) {
when fuzz_a(s0) is {
Some((s1, a)) -> Some((s1, f(a)))
None -> None
}
}
}
// // NOTE: Inlining `do_list` fixes the problem. But the indirection here causes:
// //
// // --> Type mismatch expected 'pair data data' got 'data'
// pub fn list(fuzzer: Fuzzer<a>) -> Fuzzer<List<a>> {
// do_list(fuzzer, [])
// }
// NOTE: Inlining `do_list` fixes the problem. But the indirection here causes:
//
// --> Type mismatch expected 'pair data data' got 'data'
pub fn list(fuzzer: Fuzzer<a>) -> Fuzzer<List<a>> {
do_list(fuzzer, [])
}
// fn do_list(fuzzer, xs) -> Fuzzer<List<a>> {
// let x <- map(fuzzer)
// [x, ..xs]
// }
fn do_list(fuzzer, xs) -> Fuzzer<List<a>> {
let x <- map(fuzzer)
[x, ..xs]
}
// pub fn dict() -> Fuzzer<Dict<Int, Bool>> {
// list(constant(Pair(1, True)))
// |> map(fn(inner) { Dict { inner } })
// }
pub fn dict() -> Fuzzer<Dict<Int, Bool>> {
list(constant(Pair(1, True)))
|> map(fn(inner) { Dict { inner } })
}
// test prop_dict_between(_d via dict()) {
// True
// }
test prop_dict_between(_d via dict()) {
True
}