Merge tag 'v3.14.25' into backport/v3.14.24-ltsi-rc1+v3.14.25/snapshot-merge.wip
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / staging / ktap / test / fibonacci.kp
1 #!/usr/bin/env ktap
2
3 function failed() {
4         printf("failed\n");
5         exit(-1);
6 }
7
8 #---------------fibonacci----------------
9
10
11 #regular recursive fibonacci
12 function fib(n) {
13         if (n < 2) {
14                 return n
15         }
16         return fib(n-1) + fib(n-2)
17 }
18
19 if (fib(20) != 6765) {
20         failed()
21 }
22
23 #tail recursive fibonacci
24 function fib(n) {
25         f = function (iter, res, next) {
26                 if (iter == 0) {
27                         return res;
28                 }
29                 return f(iter-1, next, res+next)
30         }
31         return f(n, 0, 1)
32 }
33
34 if (fib(20) != 6765) {
35         failed()
36 }