source: project/release/4/tuples/trunk/tests/run.scm @ 27174

Last change on this file since 27174 was 27174, checked in by juergen, 9 years ago

version 0.8 with code split in two modules checked in

File size: 2.1 KB
Line 
1; Author: Juergen Lorenz
2;         ju (at) jugilo (dot) de
3
4
5(require-library tuples)
6(import tuples)
7
8;;; (run xpr0 xpr1 ...)
9;;; -------------------
10(define (run . xprs)
11  (let loop ((xprs xprs))
12    (if (null? xprs)
13      (print "All tests passed!")
14      (if (car xprs)
15        (loop (cdr xprs))
16        (error 'run "#### Some test failed! ####")))))
17
18(let (
19  (tup (tuple 0 1 2 3))
20  (sg (single 1))
21  (cpl (couple 1 2))
22  (trp (triple 1 2 3))
23  )
24  (run
25    (equal? (tuple->list tup) '(0 1 2 3))
26    (eq? (tuple? tup) #t)
27    (= (tuple-length tup) 4)
28    (= (tuple-ref tup 2) 2)
29    (eqv? (tuple-find tup 2 =) 2)
30    (eqv? (tuple-find tup 4 =) #f)
31    (equal? (tuple->list (tuple-map add1 tup)) '(1 2 3 4))
32    (equal?
33      (let ((result '()))
34        (tuple-for-each (lambda (x) (set! result (cons x result)))
35                        tup)
36        result)
37      '(3 2 1 0))
38    (equal? (tuple->list (tuple-copy tup)) '(0 1 2 3))
39    (equal? (tuple->list (tuple-copy tup 2 3)) '(2))
40    (equal? (tuple->list (tuple-copy tup 2)) '(2 3))
41    (equal? (tuple->list (tuple)) '())
42    (eq? ((tuple-of? even?) (tuple)) #t)
43    (eq? ((tuple-of? even?) (tuple 1 2 3)) #f)
44    (eq? ((tuple-of? even?) (tuple 2 4 6)) #t)
45    (eq? (tuple? 3) #f)
46    (= (tuple-length (tuple)) 0)
47    (eqv? (tuple-find (tuple) 3 =) #f)
48    (equal? (tuple->list (tuple)) '())
49    (equal? (tuple->list (list->tuple '(0 1 2))) '(0 1 2))
50    (equal? (tuple->list (list->tuple '())) '())
51    (equal? (tuple->list (tuple-map add1 (tuple))) '())
52    (equal? (tuple->list (tuple-append (tuple 0 1 2) (tuple 3) (tuple 4 5)))
53            '(0 1 2 3 4 5))
54    (equal? (tuple->list (tuple-append))
55            '())
56    (eq? (empty? (empty)) #t)
57    (eq? (empty? (tuple 1 2)) #f)
58    (eq? (empty? 3) #f)
59    (eq? (single? (empty)) #f)
60    (eq? (single? (single 1)) #t)
61    (eq? (single? 3) #f)
62    (= (single-ref sg) 1)
63    (= (begin (single-set! sg 2) (single-ref sg)) 2)
64    (eq? (couple? cpl) #t)
65    (eq? (triple? cpl) #f)
66    (= (couple-left cpl) 1)
67    (= (couple-right cpl) 2))
68    (eq? (couple? trp) #f)
69    (eq? (triple? trp) #t)
70    (= (triple-left trp) 1)
71    (= (triple-middle trp) 2)
72    (= (triple-right trp) 3))
Note: See TracBrowser for help on using the repository browser.