Commit | Line | Data |
---|---|---|
802b47bd JG |
1 | ;;; r6rs-lists.test --- Test suite for R6RS (rnrs lists) |
2 | ||
3 | ;; Copyright (C) 2010 Free Software Foundation, Inc. | |
4 | ;; | |
5 | ;; This library is free software; you can redistribute it and/or | |
6 | ;; modify it under the terms of the GNU Lesser General Public | |
7 | ;; License as published by the Free Software Foundation; either | |
8 | ;; version 3 of the License, or (at your option) any later version. | |
9 | ;; | |
10 | ;; This library is distributed in the hope that it will be useful, | |
11 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | ;; Lesser General Public License for more details. | |
14 | ;; | |
15 | ;; You should have received a copy of the GNU Lesser General Public | |
16 | ;; License along with this library; if not, write to the Free Software | |
17 | ;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
18 | \f | |
19 | ||
20 | (define-module (test-suite test-r6rs-lists) | |
21 | :use-module ((rnrs lists) :version (6)) | |
22 | :use-module (test-suite lib)) | |
23 | ||
24 | (with-test-prefix "memp" | |
25 | (pass-if "memp simple" | |
26 | (equal? (memp even? '(3 1 4 1 5 9 2 6 5)) '(4 1 5 9 2 6 5)))) | |
27 | ||
28 | (with-test-prefix "assp" | |
29 | (pass-if "assp simple" | |
30 | (let ((d '((3 a) (1 b) (4 c)))) | |
31 | (equal? (assp even? d) '(4 c))))) | |
32 | ||
d825841d IP |
33 | (with-test-prefix "fold-left" |
34 | (pass-if "fold-left sum" | |
35 | (equal? (fold-left + 0 '(1 2 3 4 5)) | |
36 | 15)) | |
37 | (pass-if "fold-left reverse" | |
38 | (equal? (fold-left (lambda (a e) (cons e a)) '() '(1 2 3 4 5)) | |
39 | '(5 4 3 2 1))) | |
40 | (pass-if "fold-left max-length" | |
41 | (equal? (fold-left (lambda (max-len s) | |
42 | (max max-len (string-length s))) | |
43 | 0 | |
44 | '("longest" "long" "longer")) | |
45 | 7)) | |
46 | (pass-if "fold-left with-cons" | |
47 | (equal? (fold-left cons '(q) '(a b c)) | |
48 | '((((q) . a) . b) . c))) | |
49 | (pass-if "fold-left sum-multiple" | |
50 | (equal? (fold-left + 0 '(1 2 3) '(4 5 6)) | |
51 | 21)) | |
52 | (pass-if "fold-left pairlis" | |
53 | (equal? (fold-left (lambda (accum e1 e2) | |
54 | (cons (cons e1 e2) accum)) | |
55 | '((d . 4)) | |
56 | '(a b c) | |
57 | '(1 2 3)) | |
58 | '((c . 3) (b . 2) (a . 1) (d . 4))))) |