diff options
Diffstat (limited to 'filter/test.conf')
-rw-r--r-- | filter/test.conf | 59 |
1 files changed, 39 insertions, 20 deletions
diff --git a/filter/test.conf b/filter/test.conf index e8b6a663..436031a3 100644 --- a/filter/test.conf +++ b/filter/test.conf @@ -44,9 +44,8 @@ bt_test_same(onef, twof, 0); */ function t_bool() -bool b; { - b = true; + bool b = true; bt_assert(b); bt_assert(!!b); @@ -82,12 +81,11 @@ define xyzzy = (120+10); define '1a-a1' = (xyzzy-100); function t_int() -int i; { bt_assert(xyzzy = 130); bt_assert('1a-a1' = 30); - i = four; + int i = four; i = 12*100 + 60/2 + i; i = (i + 0); bt_assert(i = 1234); @@ -128,9 +126,8 @@ define is2 = [(17+2), 17, 15, 11, 8, 5, 3, 2]; define is3 = [5, 17, 2, 11, 8, 15, 3, 19]; function t_int_set() -int set is; { - is = []; + int set is = []; bt_assert(is = []); bt_assert(0 !~ is); @@ -190,9 +187,8 @@ bt_test_suite(t_int_set, "Testing sets of integers"); */ function t_string() -string st; { - st = "Hello"; + string st = "Hello"; bt_assert(format(st) = "Hello"); bt_assert(st ~ "Hell*"); bt_assert(st ~ "?ello"); @@ -217,9 +213,8 @@ function 'mkpair-a'(int a) } function t_pair() -pair pp; { - pp = (1, 2); + pair pp = (1, 2); bt_assert(format(pp) = "(1,2)"); bt_assert((1,2) = pp); bt_assert((1,1+1) = pp); @@ -240,11 +235,9 @@ bt_test_suite(t_pair, "Testing pairs"); */ function t_pair_set() -pair pp; -pair set ps; { - pp = (1, 2); - ps = []; + pair pp = (1, 2); + pair set ps = []; bt_assert(pp !~ ps); ps = [(1,(one+one)), (3,4)..(4,8), (5,*), (6,3..6)]; @@ -1290,6 +1283,34 @@ function fifteen() return 15; } +function local_vars(int j) +{ + int k = 10; + bt_assert(j = 5 && k = 10); + { + int j = 15; + k = 20; + bt_assert(j = 15 && k = 20); + } + bt_assert(j = 5 && k = 20); + + if j < 10 then + { + int j = 25; + string k = "hello"; + bt_assert(j = 25 && k = "hello"); + } + bt_assert(j = 5 && k = 20); + + int m = 100; + { + j = 35; + int k = 40; + bt_assert(j = 35 && k = 40 && m = 100); + } + bt_assert(j = 35 && k = 20 && m = 100); +} + function factorial(int x) { if x = 0 then return 0; @@ -1312,21 +1333,18 @@ function hanoi_init(int a; int b) } function hanoi_solve(int n; bgppath h_src; bgppath h_dst; bgppath h_aux; bool x; bool y) -bgppath tmp1; -bgppath tmp2; -int v; { # x -> return src or dst # y -> print state if n = 0 then { if x then return h_src; else return h_dst; } - tmp1 = hanoi_solve(n - 1, h_src, h_aux, h_dst, true, y); - tmp2 = hanoi_solve(n - 1, h_src, h_aux, h_dst, false, false); + bgppath tmp1 = hanoi_solve(n - 1, h_src, h_aux, h_dst, true, y); + bgppath tmp2 = hanoi_solve(n - 1, h_src, h_aux, h_dst, false, false); h_src = tmp1; h_aux = tmp2; - v = h_src.first; + int v = h_src.first; # bt_assert(h_dst = +empty+ || v < h_dst.first); h_src = delete(h_src, v); h_dst = prepend(h_dst, v); @@ -1355,6 +1373,7 @@ bgppath h_src; bt_assert(callme(4, 4) = 16); bt_assert(callme(7, 2) = 14); bt_assert(callmeagain(1, 2, 3) = 6); + local_vars(5); bt_assert(factorial(5) = 120); bt_assert(factorial(10) = 3628800); |