From 81e072a14e18bb960f368a88d31a77b069ce24b0 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Fri, 17 Feb 2023 14:18:39 +0100 Subject: [PATCH] Add new acceptance test scenario: 064 - Type mismatch expected 'data' got 'integer' - Type mismatch expected 'data' got 'list data' --- examples/acceptance_tests/064/aiken.lock | 5 ++++ examples/acceptance_tests/064/aiken.toml | 3 +++ examples/acceptance_tests/064/lib/tests.ak | 30 ++++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 examples/acceptance_tests/064/aiken.lock create mode 100644 examples/acceptance_tests/064/aiken.toml create mode 100644 examples/acceptance_tests/064/lib/tests.ak diff --git a/examples/acceptance_tests/064/aiken.lock b/examples/acceptance_tests/064/aiken.lock new file mode 100644 index 00000000..3a78b1e7 --- /dev/null +++ b/examples/acceptance_tests/064/aiken.lock @@ -0,0 +1,5 @@ +# This file was generated by Aiken +# You typically do not need to edit this file + +requirements = [] +packages = [] diff --git a/examples/acceptance_tests/064/aiken.toml b/examples/acceptance_tests/064/aiken.toml new file mode 100644 index 00000000..0a7f3b9b --- /dev/null +++ b/examples/acceptance_tests/064/aiken.toml @@ -0,0 +1,3 @@ +name = 'aiken-lang/acceptance_test_064' +version = '0.0.0' +description = '' diff --git a/examples/acceptance_tests/064/lib/tests.ak b/examples/acceptance_tests/064/lib/tests.ak new file mode 100644 index 00000000..6f738fb8 --- /dev/null +++ b/examples/acceptance_tests/064/lib/tests.ak @@ -0,0 +1,30 @@ +use aiken/builtin + +type Foo { + A(Int) + B(Int, Int) +} + +fn get_constr(data: Data) -> Int { + builtin.un_constr_data(data).1st +} + +test foo() { + get_constr(A(42)) == 0 && get_constr(B(14, 42)) == 1 +} + +fn map(list: List, f: fn(a) -> b) -> List { + when list is { + [] -> [] + [x, ..xs] -> [f(x), ..map(xs, f)] + } +} + +fn get_fields(data: Data) -> List { + builtin.un_constr_data(data).2nd + |> map(builtin.un_i_data) +} + +test bar() { + get_fields(A(42)) == [42] && get_fields(B(14, 42)) == [14, 42] +}