aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2021-12-20 23:05:05 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2021-12-20 23:05:05 +0100
commit660f0ccb6b7e6fff8a6d870b720b5bd0dd6898a4 (patch)
treebb30787470a97a55a6bc3a36fee9930e5dd75442 /tests
parentMerge Javascript rewrite. (diff)
downloadcalp-660f0ccb6b7e6fff8a6d870b720b5bd0dd6898a4.tar.gz
calp-660f0ccb6b7e6fff8a6d870b720b5bd0dd6898a4.tar.xz
find-extreme on empty list now an error.
Diffstat (limited to 'tests')
-rw-r--r--tests/util.scm22
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/util.scm b/tests/util.scm
index 57d2e538..de8d4b2a 100644
--- a/tests/util.scm
+++ b/tests/util.scm
@@ -2,7 +2,8 @@
;; Checks some prodecuders from (calp util)
;;; Code:
-(((calp util) filter-sorted set/r!))
+(((calp util) filter-sorted set/r!
+ find-min find-max))
(test-equal "Filter sorted"
'(3 4 5)
@@ -16,3 +17,22 @@
(test-error
'syntax-error
(test-read-eval-string "(set/r! x err not)"))
+
+
+(call-with-values (lambda () (find-min (iota 10)))
+ (lambda (extreme rest)
+ (test-equal "Found correct minimum"
+ 0 extreme)
+ (test-equal "Removed \"something\" from the set"
+ 9 (length rest))))
+
+
+(call-with-values (lambda () (find-max '("Hello" "Test" "Something long") string-length))
+ (lambda (extreme rest)
+ (test-equal "Found the longest string" "Something long" extreme)
+ (test-equal "Removed the string" 2 (length rest))
+ (test-assert "Other members left 1" (member "Hello" rest))
+ (test-assert "Other members left 2" (member "Test" rest))))
+
+
+(test-error 'misc-error (find-extreme '()))