updating more of the tests

This commit is contained in:
microproofs 2024-01-23 15:04:24 -05:00 committed by Kasey
parent 51f1f2b67f
commit 3c81ebf137
1 changed files with 219 additions and 79 deletions

View File

@ -3496,35 +3496,74 @@ fn generic_validator_type_test() {
.apply(Term::integer(1.into())) .apply(Term::integer(1.into()))
.apply(Term::var("subject")) .apply(Term::var("subject"))
.delayed_if_then_else( .delayed_if_then_else(
Term::tail_list() Term::var("r_fields")
.apply(Term::var("tail_1"))
.delayed_choose_list( .delayed_choose_list(
Term::unit().lambda("_").apply(
Term::var("__expect_B")
.apply(Term::var("field_B"))
.apply(Term::var("param_msg")),
),
Term::Error.delayed_trace(Term::var("param_msg")), Term::Error.delayed_trace(Term::var("param_msg")),
) Term::var("tail_1")
.lambda("field_B") .delayed_choose_list(
.apply(Term::head_list().apply(Term::var("tail_1"))) Term::Error
.lambda("tail_1") .delayed_trace(Term::var("param_msg")),
.apply(Term::tail_list().apply(Term::var("r_fields"))) Term::tail_list()
.lambda("field_0") .apply(Term::var("tail_1"))
.apply( .delayed_choose_list(
Term::equals_integer() Term::unit().lambda("_").apply(
.apply(Term::integer(0.into())) Term::var("__expect_B")
.apply(Term::var("field_B"))
.apply(Term::var(
"param_msg",
)),
),
Term::Error.delayed_trace(
Term::var("param_msg"),
),
)
.lambda("field_B")
.apply(
Term::head_list()
.apply(Term::var("tail_1")),
),
)
.lambda("tail_1")
.apply( .apply(
Term::fst_pair().apply( Term::tail_list()
Term::unconstr_data().apply( .apply(Term::var("r_fields")),
)
.lambda("field_0")
.apply(
Term::var("__val")
.delayed_choose_data(
Term::equals_integer()
.apply(Term::integer(0.into()))
.apply(
Term::fst_pair().apply(
Term::unconstr_data()
.apply(Term::var(
"__val",
)),
),
)
.delayed_if_then_else(
Term::unit(),
Term::Error,
),
Term::Error.delayed_trace(
Term::var("param_msg"),
),
Term::Error.delayed_trace(
Term::var("param_msg"),
),
Term::Error.delayed_trace(
Term::var("param_msg"),
),
Term::Error.delayed_trace(
Term::var("param_msg"),
),
)
.lambda("__val")
.apply(
Term::head_list() Term::head_list()
.apply(Term::var("r_fields")), .apply(Term::var("r_fields")),
), ),
),
)
.delayed_if_then_else(
Term::unit(),
Term::Error,
), ),
) )
.lambda("r_fields") .lambda("r_fields")
@ -3546,22 +3585,46 @@ fn generic_validator_type_test() {
.apply(Term::integer(0.into())) .apply(Term::integer(0.into()))
.apply(Term::var("subject")) .apply(Term::var("subject"))
.delayed_if_then_else( .delayed_if_then_else(
Term::tail_list() Term::var("B_fields")
.apply(Term::var("B_fields"))
.delayed_choose_list( .delayed_choose_list(
Term::unit(),
Term::Error.delayed_trace(Term::var("param_msg")), Term::Error.delayed_trace(Term::var("param_msg")),
) Term::tail_list()
.lambda("something") .apply(Term::var("B_fields"))
.apply( .delayed_choose_list(
Term::equals_integer() Term::unit(),
.apply(Term::integer(0.into())) Term::Error.delayed_trace(Term::var("param_msg")),
.apply(Term::fst_pair().apply( )
Term::unconstr_data().apply( .lambda("something")
Term::head_list().apply(Term::var("B_fields")), .apply(
), Term::var("__val")
)) .delayed_choose_data(
.delayed_if_then_else(Term::unit(), Term::Error), Term::equals_integer()
.apply(Term::integer(0.into()))
.apply(
Term::fst_pair().apply(
Term::unconstr_data()
.apply(Term::var("__val")),
),
)
.delayed_if_then_else(
Term::unit(),
Term::Error,
),
Term::Error
.delayed_trace(Term::var("param_msg")),
Term::Error
.delayed_trace(Term::var("param_msg")),
Term::Error
.delayed_trace(Term::var("param_msg")),
Term::Error
.delayed_trace(Term::var("param_msg")),
)
.lambda("__val")
.apply(
Term::head_list()
.apply(Term::var("B_fields")),
),
),
) )
.lambda("B_fields") .lambda("B_fields")
.apply( .apply(
@ -4519,65 +4582,142 @@ fn expect_head_cast_data_with_tail() {
test hi() { test hi() {
let a: Data = [1, 2, 3] let a: Data = [1, 2, 3]
expect [h, j, ..]: List<Int> = a expect [h, j, ..]: List<Int> = a
h == h h == h && j == j
} }
"#; "#;
assert_uplc( assert_uplc(
src, src,
Term::equals_integer() Term::var("unwrap_a")
.apply(Term::var("h")) .delayed_choose_list(
.apply(Term::var("h")) Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
.lambda("_") Term::var("tail_1")
.apply( .delayed_choose_list(
Term::var("expect_on_list") Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
.lambda("expect_on_list") Term::equals_integer()
.apply( .apply(Term::var("h"))
Term::var("expect_on_list") .apply(Term::var("h"))
.apply(Term::var("expect_on_list")) .delayed_if_then_else(
.apply(Term::var("list_to_check")) Term::equals_integer()
.lambda("expect_on_list") .apply(Term::var("j"))
.apply(Term::var("j")),
Term::bool(false),
)
.lambda("_")
.apply( .apply(
Term::var("list_to_check") Term::var("expect_on_list")
.delayed_choose_list( .lambda("expect_on_list")
Term::unit(), .apply(
Term::var("expect_on_list") Term::var("expect_on_list")
.apply(Term::var("expect_on_list")) .apply(Term::var("expect_on_list"))
.apply(Term::var("list_to_check"))
.lambda("expect_on_list")
.apply( .apply(
Term::tail_list().apply(Term::var("list_to_check")), Term::var("list_to_check")
.delayed_choose_list(
Term::unit(),
Term::var("expect_on_list")
.apply(Term::var("expect_on_list"))
.apply(
Term::tail_list().apply(Term::var(
"list_to_check",
)),
)
.lambda("_")
.apply(Term::var("check_with").apply(
Term::head_list().apply(Term::var(
"list_to_check",
)),
)),
)
.lambda("list_to_check")
.lambda("expect_on_list"),
) )
.lambda("_") .lambda("check_with")
.apply(Term::var("check_with").apply( .lambda("list_to_check"),
Term::head_list().apply(Term::var("list_to_check")),
)),
) )
.lambda("list_to_check") .apply(Term::var("tail_2"))
.lambda("expect_on_list"), .apply(
Term::var("__val")
.delayed_choose_data(
Term::Error.delayed_trace(Term::var(
"expect[h,j,..]:List<Int>=a",
)),
Term::Error.delayed_trace(Term::var(
"expect[h,j,..]:List<Int>=a",
)),
Term::Error.delayed_trace(Term::var(
"expect[h,j,..]:List<Int>=a",
)),
Term::un_i_data().apply(Term::var("__val")),
Term::Error.delayed_trace(Term::var(
"expect[h,j,..]:List<Int>=a",
)),
)
.lambda("__val")
.apply(Term::var("list_item"))
.lambda("list_item"),
),
) )
.lambda("check_with") .lambda("tail_2")
.lambda("list_to_check"), .apply(Term::tail_list().apply(Term::var("tail_1")))
.lambda("j")
.apply(
Term::var("__val")
.delayed_choose_data(
Term::Error
.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
Term::Error
.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
Term::Error
.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
Term::un_i_data().apply(Term::var("__val")),
Term::Error
.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
)
.lambda("__val")
.apply(Term::head_list().apply(Term::var("tail_1"))),
),
) )
.apply(Term::var("tail_2")) .lambda("tail_1")
.apply(Term::tail_list().apply(Term::var("unwrap_a")))
.lambda("h")
.apply( .apply(
Term::un_i_data() Term::var("__val")
.apply(Term::var("list_item")) .delayed_choose_data(
.lambda("list_item"), Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
Term::un_i_data().apply(Term::var("__val")),
Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
)
.lambda("__val")
.apply(Term::head_list().apply(Term::var("unwrap_a"))),
), ),
) )
.lambda("tail_2")
.apply(Term::tail_list().apply(Term::var("tail_1")))
.lambda("j")
.apply(Term::un_i_data().apply(Term::head_list().apply(Term::var("tail_1"))))
.lambda("tail_1")
.apply(Term::tail_list().apply(Term::var("unwrap_a")))
.lambda("h")
.apply(Term::un_i_data().apply(Term::head_list().apply(Term::var("unwrap_a"))))
.lambda("unwrap_a") .lambda("unwrap_a")
.apply(Term::list_values(vec![ .apply(
Constant::Data(Data::integer(1.into())), Term::var("__val")
Constant::Data(Data::integer(2.into())), .delayed_choose_data(
Constant::Data(Data::integer(3.into())), Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
])), Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
Term::list_values(vec![
Constant::Data(Data::integer(1.into())),
Constant::Data(Data::integer(2.into())),
Constant::Data(Data::integer(3.into())),
]),
Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
Term::Error.delayed_trace(Term::var("expect[h,j,..]:List<Int>=a")),
)
.lambda("__val")
.apply(Term::data(Data::list(vec![
Data::integer(1.into()),
Data::integer(2.into()),
Data::integer(3.into()),
]))),
)
.lambda("expect[h,j,..]:List<Int>=a")
.apply(Term::string("expect [h, j, ..]: List<Int> = a")),
false, false,
); );
} }