summaryrefslogtreecommitdiff
path: root/test-suite/tests/pairs.test
diff options
context:
space:
mode:
Diffstat (limited to 'test-suite/tests/pairs.test')
-rw-r--r--test-suite/tests/pairs.test130
1 files changed, 130 insertions, 0 deletions
diff --git a/test-suite/tests/pairs.test b/test-suite/tests/pairs.test
new file mode 100644
index 000000000..a317307b2
--- /dev/null
+++ b/test-suite/tests/pairs.test
@@ -0,0 +1,130 @@
+;;;; pairs.test --- test suite for Guile's pair functions -*- scheme -*-
+;;;;
+;;;; Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+;;;;
+;;;; This library is free software; you can redistribute it and/or
+;;;; modify it under the terms of the GNU Lesser General Public
+;;;; License as published by the Free Software Foundation; either
+;;;; version 3 of the License, or (at your option) any later version.
+;;;;
+;;;; This library is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;;; Lesser General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with this library; if not, write to the Free Software
+;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+(use-modules (test-suite lib))
+
+(with-test-prefix "cxr"
+
+ (define x
+ '(1 . 2))
+
+ (pass-if "car"
+ (= (car x) 1))
+
+ (pass-if "cdr"
+ (= (cdr x) 2)))
+
+(with-test-prefix "cxxr"
+
+ (define x
+ '((1 . 3) 2 . 4))
+
+ (pass-if "caar"
+ (= (caar x) 1))
+
+ (pass-if "cadr"
+ (= (cadr x) 2))
+
+ (pass-if "cdar"
+ (= (cdar x) 3))
+
+ (pass-if "cddr"
+ (= (cddr x) 4)))
+
+(with-test-prefix "cxxxr"
+
+ (define x
+ '(((1 . 5) 3 . 7) (2 . 6) 4 . 8))
+
+ (pass-if "caaar"
+ (= (caaar x) 1))
+
+ (pass-if "caadr"
+ (= (caadr x) 2))
+
+ (pass-if "cadar"
+ (= (cadar x) 3))
+
+ (pass-if "caddr"
+ (= (caddr x) 4))
+
+ (pass-if "cdaar"
+ (= (cdaar x) 5))
+
+ (pass-if "cdadr"
+ (= (cdadr x) 6))
+
+ (pass-if "cddar"
+ (= (cddar x) 7))
+
+ (pass-if "cdddr"
+ (= (cdddr x) 8)))
+
+(with-test-prefix "cxxxxr"
+
+ (define x
+ '((((1 . 9) 5 . 13) (3 . 11) 7 . 15) ((2 . 10) 6 . 14) (4 . 12) 8 . 16))
+
+ (pass-if "caaaar"
+ (= (caaaar x) 1))
+
+ (pass-if "caaadr"
+ (= (caaadr x) 2))
+
+ (pass-if "caadar"
+ (= (caadar x) 3))
+
+ (pass-if "caaddr"
+ (= (caaddr x) 4))
+
+ (pass-if "cadaar"
+ (= (cadaar x) 5))
+
+ (pass-if "cadadr"
+ (= (cadadr x) 6))
+
+ (pass-if "caddar"
+ (= (caddar x) 7))
+
+ (pass-if "cadddr"
+ (= (cadddr x) 8))
+
+ (pass-if "cdaaar"
+ (= (cdaaar x) 9))
+
+ (pass-if "cdaadr"
+ (= (cdaadr x) 10))
+
+ (pass-if "cdadar"
+ (= (cdadar x) 11))
+
+ (pass-if "cdaddr"
+ (= (cdaddr x) 12))
+
+ (pass-if "cddaar"
+ (= (cddaar x) 13))
+
+ (pass-if "cddadr"
+ (= (cddadr x) 14))
+
+ (pass-if "cdddar"
+ (= (cdddar x) 15))
+
+ (pass-if "cddddr"
+ (= (cddddr x) 16)))