source: project/release/5/simple-loops/tags/1.0/tests/run.scm @ 37401

Last change on this file since 37401 was 37401, checked in by juergen, 21 months ago

simple-loops 1.0

File size: 1.1 KB
Line 
1(require-library simple-loops simple-tests)
2(import simple-loops simple-tests)
3
4(define-test (loops?)
5  (equal?
6    (let ((lst '()))
7      (do-times i (+ 2 3)
8        (set! lst (cons i lst)))
9      lst)
10    '(4 3 2 1 0))
11  (equal?
12    (let ((lst '()))
13      (do-list i '(1 2 3)
14        (set! lst (cons i lst)))
15      lst)
16    '(3 2 1))
17  (equal?
18    (let ((lst '()))
19      (do-for i (1 5) (set! lst (cons i lst)))
20      (reverse lst))
21    '(1 2 3 4))
22  (equal?
23    (let ((lst '()))
24      (do-for i (1 65 i) (set! lst (cons i lst)))
25      (reverse lst))
26    '(1 2 4 8 16 32 64))
27  (equal?
28    (let ((n 4) (lst '()))
29      (do-while (<= 0 n)
30        (set! lst (cons n lst))
31        (set! n (- n 1)))
32      lst)
33    '(0 1 2 3 4))
34  (equal?
35    (let ((n 4) (lst '()))
36      (do-until (> 0 n)
37        (set! lst (cons n lst))
38        (set! n (- n 1)))
39      lst)
40    '(0 1 2 3 4))
41  (equal?
42    (let ((n 3) (lst '()))
43      (do-forever
44        (if (zero? n) (exit lst))
45        (set! lst (cons 'a lst))
46        (set! n (- n 1))))
47    '(a a a))
48  )
49
50(compound-test (LOOPS)
51  (loops?))
Note: See TracBrowser for help on using the repository browser.