Finish up tests for decision-tree modification

This commit is contained in:
microproofs 2024-11-08 14:11:34 -05:00
parent 634b2e0f79
commit cd42f51f1a
No known key found for this signature in database
GPG Key ID: 14F93C84DE6AFD17
2 changed files with 71 additions and 114 deletions

View File

@ -3751,7 +3751,7 @@ fn when_tuple_deconstruction() {
} }
"#; "#;
let first_clause = |tuple_index_0: Rc<Name>, tuple_index_1: Rc<Name>, otherwise: Rc<Name>| { let clause = |tuple_index_0: Rc<Name>, subject: Term<Name>, otherwise: Rc<Name>| {
let match_a = Term::equals_integer().apply(Term::integer(0.into())).apply( let match_a = Term::equals_integer().apply(Term::integer(0.into())).apply(
Term::fst_pair().apply(Term::unconstr_data().apply(Term::Var(tuple_index_0.clone()))), Term::fst_pair().apply(Term::unconstr_data().apply(Term::Var(tuple_index_0.clone()))),
); );
@ -3759,35 +3759,37 @@ fn when_tuple_deconstruction() {
let extract_a = Term::head_list() let extract_a = Term::head_list()
.apply(Term::snd_pair().apply(Term::unconstr_data().apply(Term::Var(tuple_index_0)))); .apply(Term::snd_pair().apply(Term::unconstr_data().apply(Term::Var(tuple_index_0))));
match_a.delay_true_if_then_else( match_a.delayed_if_then_else(
extract_a.as_var("a", |a| { {
let tuple_index_1 = Term::head_list().apply(Term::tail_list().apply(subject));
let match_spend = Term::equals_integer().apply(Term::integer(0.into())).apply( let match_spend = Term::equals_integer().apply(Term::integer(0.into())).apply(
Term::fst_pair() Term::fst_pair().apply(Term::unconstr_data().apply(Term::var(
.apply(Term::unconstr_data().apply(Term::Var(tuple_index_1.clone()))), "__subject_var_span_208_235_id_0_tail_extractfield",
))),
); );
match_spend.delay_true_if_then_else( match_spend
Term::equals_integer() .delayed_if_then_else(
.apply(Term::un_i_data().apply(Term::head_list().apply( Term::equals_integer()
Term::snd_pair().apply(Term::unconstr_data().apply(Term::Var(a))), .apply(Term::un_i_data().apply(Term::head_list().apply(
))) Term::snd_pair().apply(Term::unconstr_data().apply(extract_a)),
.apply( )))
Term::un_i_data().apply( .apply(Term::un_i_data().apply(Term::head_list().apply(
Term::head_list().apply( Term::snd_pair().apply(Term::unconstr_data().apply(Term::var(
Term::snd_pair().apply( "__subject_var_span_208_235_id_0_tail_extractfield",
Term::unconstr_data().apply(Term::Var(tuple_index_1)), ))),
), )))
), .delayed_if_then_else(
Term::bool(true),
Term::bool(false).delayed_trace(Term::string("a.idx == x ? False")),
), ),
) Term::Var(otherwise.clone()).force(),
.delayed_if_then_else( )
Term::bool(true), .lambda("__subject_var_span_208_235_id_0_tail_extractfield")
Term::bool(false).delayed_trace(Term::string("a.idx == x ? False")), .apply(tuple_index_1)
), },
Term::Var(otherwise.clone()), Term::Var(otherwise.clone()).force(),
)
}),
Term::Var(otherwise),
) )
}; };
@ -3803,20 +3805,12 @@ fn when_tuple_deconstruction() {
]) ])
}; };
let test = Term::head_list() let test = snd_clause.delay().as_var("clause_then_1", |other_clause| {
.apply(Term::tail_list().apply(subject())) Term::head_list().apply(subject()).as_var(
.as_var("tuple_index_1_span_258_266", |tuple_index_1| { "__subject_var_span_208_235_id_0_extractfield",
Term::head_list().apply(subject()).as_var( |tuple_index_0| clause(tuple_index_0, subject(), other_clause),
"__tuple_index_0_span_252_256", )
|tuple_index_0| { });
snd_clause
.delay()
.as_var("__other_clause_delayed", |other_clause| {
first_clause(tuple_index_0, tuple_index_1, other_clause)
})
},
)
});
assert_uplc(src, test, false, true); assert_uplc(src, test, false, true);
} }
@ -5378,10 +5372,8 @@ fn test_init_3() {
.apply( .apply(
Term::var("do_init") Term::var("do_init")
.apply(Term::var("do_init")) .apply(Term::var("do_init"))
.apply(Term::var("xs")), .apply(Term::var("tail_1")),
) )
.lambda("xs")
.apply(Term::tail_list().apply(Term::var("self")))
.lambda("x") .lambda("x")
.apply( .apply(
Term::un_i_data().apply( Term::un_i_data().apply(
@ -5744,13 +5736,13 @@ fn tuple_2_match() {
Term::equals_integer() Term::equals_integer()
.apply(Term::integer(0.into())) .apply(Term::integer(0.into()))
.apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_0"))) .apply(Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_0")))
.delay_true_if_then_else( .delayed_if_then_else(
Term::equals_integer() Term::equals_integer()
.apply(Term::integer(0.into())) .apply(Term::integer(0.into()))
.apply( .apply(
Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_1")), Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_1")),
) )
.delay_true_if_then_else( .delayed_if_then_else(
Term::equals_integer() Term::equals_integer()
.apply( .apply(
Term::subtract_integer() Term::subtract_integer()
@ -5768,19 +5760,31 @@ fn tuple_2_match() {
.apply(Term::integer(0.into())), .apply(Term::integer(0.into())),
Term::bool(false), Term::bool(false),
) )
.lambda("y2")
.lambda("x2") .lambda("x2")
.lambda("y1")
.lambda("x1")
.apply( .apply(
Term::un_i_data().apply( Term::un_i_data().apply(
Term::head_list().apply(Term::var("field_0_pair")), Term::head_list().apply(Term::var("field_0_pair")),
), ),
) )
.lambda("y2")
.apply(Term::un_i_data().apply( .apply(Term::un_i_data().apply(
Term::head_list().apply( Term::head_list().apply(
Term::tail_list().apply(Term::var("field_0_pair")), Term::tail_list().apply(Term::var("field_0_pair")),
), ),
)) ))
.lambda("field_0_pair") .apply(
Term::un_i_data().apply(
Term::head_list().apply(Term::var("field_1_pair")),
),
)
.apply(Term::un_i_data().apply(
Term::head_list().apply(
Term::tail_list().apply(Term::var("field_1_pair")),
),
))
.lambda("field_1_pair")
.apply(Term::unlist_data().apply( .apply(Term::unlist_data().apply(
Term::head_list().apply(Term::var("tuple_index_1_fields")), Term::head_list().apply(Term::var("tuple_index_1_fields")),
)) ))
@ -5788,84 +5792,37 @@ fn tuple_2_match() {
.apply( .apply(
Term::var(CONSTR_FIELDS_EXPOSER) Term::var(CONSTR_FIELDS_EXPOSER)
.apply(Term::var("tuple_index_1")), .apply(Term::var("tuple_index_1")),
)
.lambda("field_0_pair")
.apply(Term::unlist_data().apply(
Term::head_list().apply(Term::var("tuple_index_0_fields")),
))
.lambda("tuple_index_0_fields")
.apply(
Term::var(CONSTR_FIELDS_EXPOSER)
.apply(Term::var("tuple_index_0")),
), ),
Term::var("clauses_delayed"), Term::bool(false),
) )
.lambda("x1") .lambda("tuple_index_1")
.apply( .apply(
Term::un_i_data() Term::head_list()
.apply(Term::head_list().apply(Term::var("field_0_pair"))), .apply(Term::tail_list().apply(Term::var("input"))),
)
.lambda("y1")
.apply(
Term::un_i_data().apply(
Term::head_list()
.apply(Term::tail_list().apply(Term::var("field_0_pair"))),
),
)
.lambda("field_0_pair")
.apply(
Term::unlist_data().apply(
Term::head_list().apply(Term::var("tuple_index_0_fields")),
),
)
.lambda("tuple_index_0_fields")
.apply(
Term::var(CONSTR_FIELDS_EXPOSER).apply(Term::var("tuple_index_0")),
), ),
Term::var("clauses_delayed"),
)
.lambda("clauses_delayed")
.apply(
Term::equals_integer() Term::equals_integer()
.apply(Term::integer(1.into())) .apply(Term::integer(1.into()))
.apply( .apply(
Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_0")), Term::var(CONSTR_INDEX_EXPOSER).apply(Term::var("tuple_index_1")),
) )
.delay_true_if_then_else( .delayed_if_then_else(Term::bool(true), Term::bool(false))
Term::equals_integer() .lambda("tuple_index_1")
.apply(Term::integer(1.into()))
.apply(
Term::var(CONSTR_INDEX_EXPOSER)
.apply(Term::var("tuple_index_1")),
)
.delay_true_if_then_else(
Term::bool(true),
Term::var("clauses_delayed"),
),
Term::var("clauses_delayed"),
)
.lambda("clauses_delayed")
.apply( .apply(
Term::equals_integer() Term::head_list()
.apply(Term::integer(1.into())) .apply(Term::tail_list().apply(Term::var("input"))),
.apply( ),
Term::var(CONSTR_INDEX_EXPOSER)
.apply(Term::var("tuple_index_0")),
)
.delay_true_if_then_else(
Term::equals_integer()
.apply(Term::integer(0.into()))
.apply(
Term::var(CONSTR_INDEX_EXPOSER)
.apply(Term::var("tuple_index_1")),
)
.delay_true_if_then_else(
Term::bool(false),
Term::var("clauses_delayed"),
),
Term::var("clauses_delayed"),
)
.lambda("clauses_delayed")
.apply(Term::bool(false).delay())
.delay(),
)
.delay(),
) )
.lambda("tuple_index_0") .lambda("tuple_index_0")
.apply(Term::head_list().apply(Term::var("input"))) .apply(Term::head_list().apply(Term::var("input")))
.lambda("tuple_index_1")
.apply(Term::head_list().apply(Term::tail_list().apply(Term::var("input"))))
.lambda("input") .lambda("input")
.apply( .apply(
Term::mk_cons().apply(Term::var("ec1")).apply( Term::mk_cons().apply(Term::var("ec1")).apply(

View File

@ -26,7 +26,7 @@ then
exit 1 exit 1
fi fi
$AIKEN build --filter-traces all -t verbose $AIKEN build -f all -t verbose
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
exit $? exit $?
fi fi