Skip to content

Commit ffc0264

Browse files
committed
more ackermann tests
1 parent 3d19dee commit ffc0264

File tree

2 files changed

+31
-7
lines changed

2 files changed

+31
-7
lines changed

examples/ackermann-wrap.lisp

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,17 @@
1313
(ackermann (sub1 m) one)
1414
(ackermann (sub1 m) (ackermann m (sub1 n))))))))
1515

16+
1617
(assert-equal ((Y ackermann-wrap) zero zero) one)
1718
(assert-equal ((Y ackermann-wrap) one zero) two)
1819
(assert-equal ((Y ackermann-wrap) zero one) two)
20+
(assert-equal ((Y ackermann-wrap) two zero) three)
1921
(assert-equal ((Y ackermann-wrap) one one) three)
20-
(assert-equal ((Y ackermann-wrap) one two) four)
22+
(assert-equal ((Y ackermann-wrap) zero two) three)
23+
(assert-equal ((Y ackermann-wrap) three zero) five)
2124
(assert-equal ((Y ackermann-wrap) two one) five)
25+
(assert-equal ((Y ackermann-wrap) one two) four)
26+
(assert-equal ((Y ackermann-wrap) zero three) four)
2227

2328
(assert-equal ackermann (ackermann-wrap ackermann))
2429
(assert-equal ackermann (ackermann-wrap (ackermann-wrap ackermann)))
@@ -30,9 +35,13 @@
3035
(assert-equal (ackermann-1 zero zero) one)
3136
(assert-equal (ackermann-1 one zero) two)
3237
(assert-equal (ackermann-1 zero one) two)
38+
(assert-equal (ackermann-1 two zero) three)
3339
(assert-equal (ackermann-1 one one) three)
34-
(assert-equal (ackermann-1 one two) four)
40+
(assert-equal (ackermann-1 zero two) three)
41+
(assert-equal (ackermann-1 three zero) five)
3542
(assert-equal (ackermann-1 two one) five)
43+
(assert-equal (ackermann-1 one two) four)
44+
(assert-equal (ackermann-1 zero three) four)
3645

3746
(define (ackermann-2 m n)
3847
((ackermann-wrap
@@ -42,9 +51,13 @@
4251
(assert-equal (ackermann-2 zero zero) one)
4352
(assert-equal (ackermann-2 one zero) two)
4453
(assert-equal (ackermann-2 zero one) two)
54+
(assert-equal (ackermann-2 two zero) three)
4555
(assert-equal (ackermann-2 one one) three)
46-
(assert-equal (ackermann-2 one two) four)
56+
(assert-equal (ackermann-2 zero two) three)
57+
(assert-equal (ackermann-2 three zero) five)
4758
(assert-equal (ackermann-2 two one) five)
59+
(assert-equal (ackermann-2 one two) four)
60+
(assert-equal (ackermann-2 zero three) four)
4861

4962
(define (ackermann-3 m n)
5063
((ackermann-wrap
@@ -55,9 +68,13 @@
5568
(assert-equal (ackermann-3 zero zero) one)
5669
(assert-equal (ackermann-3 one zero) two)
5770
(assert-equal (ackermann-3 zero one) two)
71+
(assert-equal (ackermann-3 two zero) three)
5872
(assert-equal (ackermann-3 one one) three)
59-
(assert-equal (ackermann-3 one two) four)
73+
(assert-equal (ackermann-3 zero two) three)
74+
(assert-equal (ackermann-3 three zero) five)
6075
(assert-equal (ackermann-3 two one) five)
76+
(assert-equal (ackermann-3 one two) four)
77+
(assert-equal (ackermann-3 zero three) four)
6178

6279
;; TODO fail:
6380

examples/ackermann.lisp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,13 @@
1616
(assert-equal (ackermann zero zero) one)
1717
(assert-equal (ackermann one zero) two)
1818
(assert-equal (ackermann zero one) two)
19+
(assert-equal (ackermann two zero) three)
1920
(assert-equal (ackermann one one) three)
20-
(assert-equal (ackermann one two) four)
21+
(assert-equal (ackermann zero two) three)
22+
(assert-equal (ackermann three zero) five)
2123
(assert-equal (ackermann two one) five)
24+
(assert-equal (ackermann one two) four)
25+
(assert-equal (ackermann zero three) four)
2226

2327
(assert-equal
2428
ackermann
@@ -59,13 +63,16 @@
5963
(sub1 m)
6064
(ackermann/1 m (sub1 n))))))
6165

62-
6366
(assert-equal (ackermann/1 zero zero) one)
6467
(assert-equal (ackermann/1 one zero) two)
6568
(assert-equal (ackermann/1 zero one) two)
69+
(assert-equal (ackermann/1 two zero) three)
6670
(assert-equal (ackermann/1 one one) three)
67-
(assert-equal (ackermann/1 one two) four)
71+
(assert-equal (ackermann/1 zero two) three)
72+
(assert-equal (ackermann/1 three zero) five)
6873
(assert-equal (ackermann/1 two one) five)
74+
(assert-equal (ackermann/1 one two) four)
75+
(assert-equal (ackermann/1 zero three) four)
6976

7077
;; TODO fail:
7178

0 commit comments

Comments
 (0)