new test for SRFI-31.
authorRob Browning <rlb@defaultvalue.org>
Sun, 20 Jun 2004 14:22:22 +0000 (14:22 +0000)
committerRob Browning <rlb@defaultvalue.org>
Sun, 20 Jun 2004 14:22:22 +0000 (14:22 +0000)
test-suite/tests/srfi-31.test [new file with mode: 0644]

diff --git a/test-suite/tests/srfi-31.test b/test-suite/tests/srfi-31.test
new file mode 100644 (file)
index 0000000..0df0686
--- /dev/null
@@ -0,0 +1,33 @@
+;;;; srfi-31.test --- Test suite for Guile's SRFI-31 functions. -*- scheme -*-
+;;;;
+;;;; Copyright (C) 2004 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 2.1 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+(use-modules (srfi srfi-31))
+
+(with-test-prefix "rec special form"
+
+  (pass-if "rec expressions"
+    (let ((ones-list (rec ones (cons 1 (delay ones)))))
+      (and (= 1 (car ones-list))
+           (= 1 (car (force (cdr ones-list)))))))
+
+  (pass-if "rec functions"
+    (let ((test-func (rec (add-upto n)
+                       (if (positive? n)
+                           (+ n (add-upto (- n 1)))
+                           0))))
+      (= 15 (test-func 5)))))