aboutsummaryrefslogtreecommitdiff
path: root/tests/fib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/fib')
-rw-r--r--tests/fib/fib.fwd24
-rw-r--r--tests/fib/test.mk1
2 files changed, 25 insertions, 0 deletions
diff --git a/tests/fib/fib.fwd b/tests/fib/fib.fwd
new file mode 100644
index 0000000..e07d8af
--- /dev/null
+++ b/tests/fib/fib.fwd
@@ -0,0 +1,24 @@
+import "../../mod/libfwdio.so"
+
+fib(i64 n, (i64) res)
+{
+ if n < 2 {
+ res(1);
+ } else {
+ fib(n - 1) => i64 f1;
+ fib(n - 2) => i64 f2;
+ res(f1 + f2);
+ }
+}
+
+main()
+{
+ fib(20) => i64 n;
+ if n == 10946 {
+ fwdprint_str("OK\n");
+ } else {
+ fwdprint_str("expected 10946, got ");
+ fwdprint_i64(n);
+ fwdprint_nl();
+ }
+}
diff --git a/tests/fib/test.mk b/tests/fib/test.mk
new file mode 100644
index 0000000..3ace25e
--- /dev/null
+++ b/tests/fib/test.mk
@@ -0,0 +1 @@
+XPASS += fib