summaryrefslogtreecommitdiff
path: root/src/scheme/tiny-test/ao_scheme_tiny_test.scheme
blob: 94c90ffef21ecd5ba7007f6fb6f7530ac276c623 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
					; Basic syntax tests

(define _assert-eq_
  (macro (a b)
	   (list cond
		 (list (list eq? a b)
		       )
		 (list 'else
		       (list display "failed: ")
		       (list write (list quote a))
		       (list newline)
		       (list exit 1)
		       )
		 )
	   )
  )

(define _assert-equal_
  (macro (a b)
	   (list cond
		 (list (list equal? a b)
		       )
		 (list 'else
		       (list display "failed: ")
		       (list write (list quote a))
		       (list newline)
		       (list exit 1)
		       )
		 )
	   )
  )

(_assert-eq_ (or #f #t) #t)
(_assert-eq_ (and #t #f) #f)
(_assert-eq_ (if (> 3 2) 'yes) 'yes)
(_assert-eq_ (if (> 3 2) 'yes 'no) 'yes)
(_assert-eq_ (if (> 2 3) 'no 'yes) 'yes)
(_assert-eq_ (if (> 2 3) 'no) #f)

(_assert-eq_ (letrec ((a 1) (b a)) (+ a b)) 2)

(_assert-eq_ (equal? '(a b c) '(a b c)) #t)
(_assert-eq_ (equal? '(a b c) '(a b b)) #f)

(_assert-equal_ (member '(2) '((1) (2) (3)))  '((2) (3)))
(_assert-equal_ (member '(4) '((1) (2) (3))) #f)

(_assert-equal_ (memq 2 '(1 2 3)) '(2 3))
(_assert-equal_ (memq 4 '(1 2 3)) #f)
(_assert-equal_ (memq '(2) '((1) (2) (3))) #f)

(_assert-equal_ (assq 'a '((a 1) (b 2) (c 3))) '(a 1))
(_assert-equal_ (assoc '(c) '((a 1) (b 2) ((c) 3))) '((c) 3))

(_assert-equal_ (map cadr '((a b) (d e) (g h))) '(b e h))