From daa3fa5d33420f5f6369b7b57cae77c6f3ca8e13 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Tue, 20 Dec 2022 02:55:01 +0100 Subject: [PATCH] Add new acceptance test scenario 028 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` Error: × Main thread panicked. ├─▶ at crates/lang/src/builder.rs:1257:30 ╰─▶ internal error: entered unreachable code ``` --- examples/acceptance_tests/028/aiken.toml | 2 ++ examples/acceptance_tests/028/lib/test.ak | 27 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 examples/acceptance_tests/028/aiken.toml create mode 100644 examples/acceptance_tests/028/lib/test.ak diff --git a/examples/acceptance_tests/028/aiken.toml b/examples/acceptance_tests/028/aiken.toml new file mode 100644 index 00000000..c4506310 --- /dev/null +++ b/examples/acceptance_tests/028/aiken.toml @@ -0,0 +1,2 @@ +name = "acceptance_test_028" +version = "0.0.0" diff --git a/examples/acceptance_tests/028/lib/test.ak b/examples/acceptance_tests/028/lib/test.ak new file mode 100644 index 00000000..fd46f0c0 --- /dev/null +++ b/examples/acceptance_tests/028/lib/test.ak @@ -0,0 +1,27 @@ +pub fn filter(xs: List, f: fn(a) -> Bool) -> List { + when xs is { + [] -> [] + [x, ..rest] -> + if f(x) { + [x, ..filter(rest, f)] + } else { + filter(rest, f) + } + } +} + +pub fn unique(xs: List) -> List { + when xs is { + [] -> [] + [x, ..rest] -> [x, ..unique(filter(rest, fn(y) { y != x }))] + } +} + +test unique_1() { + unique([]) == [] +} + +test unique_2() { + let xs = [1, 2, 3, 1] + unique(xs) == [1, 2, 3] +}