summaryrefslogtreecommitdiff
path: root/closure/closure-test.scm
diff options
context:
space:
mode:
Diffstat (limited to 'closure/closure-test.scm')
-rw-r--r--closure/closure-test.scm59
1 files changed, 59 insertions, 0 deletions
diff --git a/closure/closure-test.scm b/closure/closure-test.scm
new file mode 100644
index 0000000..ae10b67
--- /dev/null
+++ b/closure/closure-test.scm
@@ -0,0 +1,59 @@
+;; -*- compile-command: "guile -L . closure-test.scm"; -*-
+(use-modules (srfi srfi-64)
+ (closure))
+
+(define iterative-add-generator-1
+ (iterative-add))
+
+(define iterative-add-generator-2
+ (iterative-add))
+
+(test-begin "harness")
+
+(test-equal "add 0 to 1"
+ 1
+ (iterative-add-generator-1 1))
+
+(test-equal "add 1 to 2"
+ 3
+ (iterative-add-generator-1 2))
+
+(test-equal "add 2 to 6"
+ 8
+ (iterative-add-generator-1 6))
+
+(test-equal "add 6 to 5"
+ 11
+ (iterative-add-generator-1 5))
+
+(test-equal "add 0 to 2"
+ 2
+ (iterative-add-generator-2 2))
+
+(test-equal "add 2 to 2"
+ 4
+ (iterative-add-generator-2 2))
+
+
+(set-store (string->list "abcdefghijklmnopqrstuvwxyz"))
+
+;;; never returns, but manual validation shows
+;;; the function works. Bug in testing library?
+;; (test-equal "peek-char first"
+;; #\a
+;; (peek-char))
+
+(test-equal "advance-char first"
+ #\a
+ (advance-char))
+
+(test-equal "advance-char second"
+ #\b
+ (advance-char))
+
+;; (test-equal "peek-char second"
+;; #\c
+;; (peek-char))
+
+
+(test-end "harness")