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

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

simple-loops 1.0

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