source: project/release/5/dotted-lambdas/tags/1.1/tests/run.scm @ 39485

Last change on this file since 39485 was 39485, checked in by juergen, 5 months ago

dotted-lambdas 1.1

File size: 1.5 KB
Line 
1(import dotted-lambdas)
2
3(import simple-tests (chicken base) (chicken condition))
4
5(define-checks
6  (calls verbose? lst (callable '(0 1 2 3)) lst0 (callable '()))
7  (condition-case (lst0 0) ((exn) #f))
8  #f
9  (lst 0)
10  0
11  (lst 3)
12  3
13  (condition-case (lst 5) ((exn) #f))
14  #f
15  (condition-case (lst -1) ((exn) #f))
16  #f)
17
18(define-checks
19  (lambdas verbose?)
20  ((lambda* (xs ...) (list (xs 0) (xs 1) (xs 2))) 1 2 3)
21  '(1 2 3)
22  ((lambda* (x xs ...) (apply list x (xs))) 1 2 3)
23  '(1 2 3)
24  (condition-case ((lambda* (xs ..) xs) 1 2 3) ((exn) #f))
25  #f
26  (condition-case ((lambda* (xs ....) xs)) ((exn) #f))
27  #f
28  ((lambda* (xs ...) (xs)))
29  '()
30  ((lambda* (x y zs ...) (list x y (zs 0) (zs 1))) 1 2 3 4)
31  '(1 2 3 4)
32  (condition-case ((lambda* (x y zs ..) (list x y zs)) 1 2 3 4) ((exn) #f))
33  #f
34  (condition-case ((lambda* (x y zs ....) (list x y zs)) 1 2) ((exn) #f))
35  #f
36  ((lambda* (a b) (list a b)) 1 2)
37  '(1 2)
38  ((lambda* (as ...) (as)) 1 2 3)
39  '(1 2 3)
40  ((lambda* (as ...) (as)))
41  '())
42
43(define* (inc x i ..) (+ x (optional (i) 1)))
44
45(define* (foo x y zs ...) (list x y (zs)))
46
47(define* (bar x ys ....) (list x (ys)))
48
49(define* (baz xs ..) (list (xs)))
50
51(define-checks
52  (defines verbose?)
53  (inc 5)
54  6
55  (inc 5 3)
56  8
57  (foo 1 2 3 4)
58  '(1 2 (3 4))
59  (foo 1 2)
60  '(1 2 ())
61  (bar 1 2 3 4)
62  '(1 (2 3 4))
63  (condition-case (bar 1) ((exn) #f))
64  #f
65  (baz 1)
66  '((1))
67  (condition-case (baz 1 2) ((exn) #f))
68  #f)
69
70(check-all DOTTED-LAMBDAS
71  (calls)
72  (lambdas)
73  (defines)
74  )
Note: See TracBrowser for help on using the repository browser.