diff --git a/examples/tests/a/aiken.toml b/examples/tests/a/aiken.toml new file mode 100644 index 00000000..748c732f --- /dev/null +++ b/examples/tests/a/aiken.toml @@ -0,0 +1,2 @@ +name = "test_a" +version = "0.0.0" diff --git a/examples/tests/a/lib/main.ak b/examples/tests/a/lib/main.ak new file mode 100644 index 00000000..bed4015a --- /dev/null +++ b/examples/tests/a/lib/main.ak @@ -0,0 +1,14 @@ +pub fn length(xs: List(a)) -> Int { + when xs is { + [] -> 0 + [_, ..rest] -> 1 + length(rest) + } +} + +test length_1() { + length([1, 2, 3]) == 3 +} + +test length_2() { + length([]) == 0 +} diff --git a/examples/tests/b/aiken.toml b/examples/tests/b/aiken.toml new file mode 100644 index 00000000..bf978117 --- /dev/null +++ b/examples/tests/b/aiken.toml @@ -0,0 +1,2 @@ +name = "test_b" +version = "0.0.0" diff --git a/examples/tests/b/lib/main.ak b/examples/tests/b/lib/main.ak new file mode 100644 index 00000000..c952a34c --- /dev/null +++ b/examples/tests/b/lib/main.ak @@ -0,0 +1,11 @@ +pub fn repeat(x: a, n: Int) -> List(a) { + if n <= 0 { + [] + } else { + [x, ..repeat(x, n - 1)] + } +} + +test repeat_1() { + repeat("aiken", 0) == [] +} diff --git a/examples/tests/c/aiken.toml b/examples/tests/c/aiken.toml new file mode 100644 index 00000000..48d12454 --- /dev/null +++ b/examples/tests/c/aiken.toml @@ -0,0 +1,2 @@ +name = "test_c" +version = "0.0.0" diff --git a/examples/tests/c/lib/main.ak b/examples/tests/c/lib/main.ak new file mode 100644 index 00000000..1331d981 --- /dev/null +++ b/examples/tests/c/lib/main.ak @@ -0,0 +1,14 @@ +pub fn foldr(xs: List(a), f: fn(a, b) -> b, zero: b) -> b { + when xs is { + [] -> zero + [x, ..rest] -> f(x, foldr(rest, f, zero)) + } +} + +pub fn concat(left: List(a), right: List(a)) -> List(a) { + foldr(left, fn(x, xs) { [x, ..xs] }, right) +} + +test concat_1() { + concat([1, 2, 3], [4, 5, 6]) == [1, 2, 3, 4, 5, 6] +}