From 1089a1fce8c97a0ddde6ad74a7d6ba62bb36928c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 18 Mar 2019 21:58:20 +0100 Subject: Added some tests. --- tests/test.scm | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 tests/test.scm diff --git a/tests/test.scm b/tests/test.scm new file mode 100755 index 0000000..6ce798e --- /dev/null +++ b/tests/test.scm @@ -0,0 +1,53 @@ +#!/usr/bin/guile \ +-s +!# + +(add-to-load-path (dirname (dirname (current-filename)))) + +(use-modules (srfi srfi-64)) + +(use-modules (monad) + (monad optional)) + +(define (div d) + (if (zero? d) + (nothing) + (just (/ 1 d)))) + +(test-begin "mapM-test") + +(test-assert (equal? (mapM div '(1 2 3)) + (just '(1 1/2 1/3)))) + +(test-assert (equal? (mapM div (map just '(1 2 3))) + (just '(1 1/2 1/3)))) + +;;; -------------------------------------------------- + +(test-assert (equal? (mapM div '(0 1 2 3)) + (nothing))) + +(test-assert (equal? (mapM div (map just '(0 1 2 3))) + (nothing))) + +(test-end "mapM-test") + +(test-begin "state-test") + +(use-modules (monad state) + (monad stack)) + +(test-equal (run-state (return-state 10) 20) + '(10 20)) + +(test-equal + (car + (run-state + (do let y = 7 + (modify (lambda (x) (+ x y))) + (get)) + 10)) + 17) + + +(test-end "state-test") -- cgit v1.2.3