source: project/release/4/byte-blob/trunk/tests/run.scm @ 16125

Last change on this file since 16125 was 16125, checked in by Ivan Raikov, 11 years ago

added byte-blob directory

File size: 2.5 KB
Line 
1
2(use byte-blob test posix)
3
4
5(define a (byte-blob-cons 1 (byte-blob-cons 2 (byte-blob-empty))))
6(define b (byte-blob-cons 3 (byte-blob-cons 4 (byte-blob-empty))))
7(define c (list->byte-blob 7 8 9))
8
9   
10
11
12(test-group "byte-blob test"
13
14            (test (sprintf "byte-blob-cons" ) 
15                   '(1 2) (byte-blob->list a))
16
17            (test (sprintf "byte-blob-car" ) 
18                   1 (byte-blob-car a))
19
20            (test (sprintf "byte-blob-cdr" ) 
21                   '(2) (byte-blob->list (byte-blob-cdr a)))
22
23            (test (sprintf "byte-blob-append" ) 
24                   '(1 2 3 4) (byte-blob->list (byte-blob-append a b)))
25
26            (test (sprintf "byte-blob-map" ) 
27                   '(10 2 4 6 8) 
28                   (byte-blob->list 
29                    (byte-blob-map (lambda (x) (* 2 x)) 
30                                   (byte-blob-cons 5  (byte-blob-append a b)))))
31
32            (test (sprintf "byte-blob-reverse" ) 
33                   '(10 8 6 4 2) 
34                   (byte-blob->list
35                    (byte-blob-map
36                     (lambda (x) (* 2 x)) 
37                     (byte-blob-cons 
38                      5 (byte-blob-reverse (byte-blob-append a b))))))
39
40            (test (sprintf "byte-blob-intersperse" ) 
41                   '(10 9 8 9 6 9 4 9 2) 
42                   (byte-blob->list
43                    (byte-blob-intersperse 
44                     (byte-blob-map
45                      (lambda (x) (* 2 x)) 
46                      (byte-blob-cons 
47                       5 (byte-blob-reverse (byte-blob-append a b)))) 9)))
48
49            (test (sprintf "byte-blob-fold-left" ) 
50                   66
51                   (byte-blob-fold-left
52                    + 0
53                    (byte-blob-intersperse 
54                     (byte-blob-map
55                      (lambda (x) (* 2 x)) 
56                      (byte-blob-cons 
57                       5 (byte-blob-reverse (byte-blob-append a b)))) 9)))
58
59            (test (sprintf "byte-blob-fold-right" ) 
60                   -6
61                   (byte-blob-fold-left
62                    - 0
63                    (byte-blob-intersperse 
64                     (byte-blob-map
65                      (lambda (x) (* 2 x)) 
66                      (byte-blob-cons 
67                       5 (byte-blob-reverse (byte-blob-append a b)))) 9)))
68
69            (let* ((out-port+path
70                    (let-values (((fd temp-path) (file-mkstemp "/tmp/byte-blob-test.XXXXXX")))
71                                (let ((temp-port (open-output-file* fd)))
72                                  (cons temp-port temp-path))))
73                   (out-port (car out-port+path))
74                   (temp-path (cdr out-port+path)))
75
76              (test-assert
77               (sprintf "byte-blob-write" ) 
78               (byte-blob-write out-port 
79                                (byte-blob-intersperse 
80                                 (byte-blob-map
81                                  (lambda (x) (* 2 x)) 
82                                  (byte-blob-cons 
83                                   5 (byte-blob-reverse (byte-blob-append a b)))) 9)))
84
85              (close-output-port out-port)
86
87              (let ((in-port (open-input-file temp-path)))
88
89                (test
90                 (sprintf "byte-blob-read" ) 
91                 '(10 9 8 9 6 9 4 9 2) 
92                 (byte-blob->list
93                  (byte-blob-read in-port 9 )))
94             
95                (close-input-port in-port))
96                )
97)
98
99           
Note: See TracBrowser for help on using the repository browser.