Preliminary, but functional, autotoolsification
[proto.git] / src / tests / tuple.test
blob4c7f535b73f1de285a281af772a19adefa1ed9d1
1 //Tuple Tester
2 //This test suite tests the functions listed under the "Tuple" section of the
3 //language reference. Namely: nul-tup, elt, map, fold, 1st, 2nd, 3rd, find, assoc
6 //Prelude: are tups even created properly?
7 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(tup 0 1 2 3)"
8 = 1 3 0
9 = 1 4 1
10 = 1 5 2
11 = 1 6 3
13 //Elt Operators
14 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(1st (tup 0 1 2 3 4))"
15 = 1 3 0
17 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(2nd (tup 0 1 2 3 4))"
18 = 1 3 1
20 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(3rd (tup 0 1 2 3 4))"
21 = 1 3 2
23 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(elt (tup 0 1 2 3 4) 4)"
24 = 1 3 4
26 //Len Operator
27 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(len (nul-tup ))"
28 = 1 3 0
29 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(len (tup 0 1 2 3 4))"
30 = 1 3 5
31 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(len (tup 0 (tup 1 2) 3 4))"
32 = 1 3 4
34 // SLICE & MAP ARE KNOWN-BROKEN DUE TO COMPILER PROBLEMS
35 //Slice Operator
36 //test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(slice (tup 0 1 2 3 4 5) 3 5)"
37 //= 1 3 3
38 //= 1 4 4
40 //test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(slice (tup 0 1 2 3 4 5) -5 2)"
41 //= 1 3 0
42 //= 1 4 1
45 //Map
46 //test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(map neg (tup 0 1 2 3 4))"
47 //= 1 3 0
48 //= 1 4 -1
49 //= 1 5 -2
50 //= 1 6 -3
51 //= 1 7 -4
53 //test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(map log10 (tup 1 10 100 1000))"
54 //= 1 3 0
55 //= 1 4 1
56 //= 1 5 2
57 //= 1 6 3
59 //test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(map 1st (tup (tup 1 2) (tup 3 4) (tup 5 6))"
60 //= 1 3 1
61 //= 1 4 3
62 //= 1 5 5
64 //Fold
65 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(fold + 0 (tup 0 1 2 3 4))"
66 = 1 3 10
67 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(fold * 1 (tup 1 2 3 4 5))"
68 = 1 3 120
71 //Assoc
72 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(assoc 3 (tup (tup 1 3) (tup 3 6) (tup 4 7)))"
73 = 1 3 3
74 = 1 4 6
75 // KNOWN BROKEN DUE TO COMPILER PROBLEMS:
76 //test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(assoc 3 (tup (tup 1 3 1) (tup 3 6 2) (tup 4 7 3)))"
77 //= 1 3 3
78 //= 1 4 10
79 //test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(assoc 1 (tup (tup 1 2 3) (tup 1 2 3) (tup 1 2 3)))"
80 //= 1 3 1
81 //= 1 4 3
82 //test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(assoc 1 (tup (tup 3 2 1) (tup 3 2 1) (tup 3 2 1) (tup 3 2 1)))"
83 //= 1 3 1
84 //= 1 4 -1
87 //Find
88 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(find 1 (tup 1 2 3))"
89 = 1 3 1
90 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(find 1 (tup 2 2 3))"
91 = 1 3 0
92 test: $(PROTO) -n 1 -headless -D -dump-after 1 -stop-after 1.5 -NDall -Dvalue "(find 3 (tup 3 2 1))"
93 = 1 3 1