summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2024-07-16 14:37:03 -0700
committerKaz Kylheku <kaz@kylheku.com>2024-07-16 14:37:03 -0700
commit75aea89bbccab9c7629510298c01115ccca08cc1 (patch)
tree76f7bf6d5ea62d53b63408b6237ccc12f9768a3e /tests
parent7dbdc52b4351a44b5d5e18a2fa73ec2f2c16d4c2 (diff)
downloadtxr-75aea89bbccab9c7629510298c01115ccca08cc1.tar.gz
txr-75aea89bbccab9c7629510298c01115ccca08cc1.tar.bz2
txr-75aea89bbccab9c7629510298c01115ccca08cc1.zip
New functions: find-maxes and find-mins.
* eval.c (eval_init): New intrinsic functions find-maxes and find-mins. * lib.[ch] (find_maxes, find_mins): New function. * tests/012/seq.tl: New tests. * txr.1: Documented.
Diffstat (limited to 'tests')
-rw-r--r--tests/012/seq.tl22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/012/seq.tl b/tests/012/seq.tl
index 45cf2b67..171ad300 100644
--- a/tests/012/seq.tl
+++ b/tests/012/seq.tl
@@ -464,6 +464,28 @@
[find-max-key '("alpha" "charlie" "aardvark" "bravo") less upcase-str] "AARDVARK"
[find-max-key #H(() (a 1) (b 2) (c 3)) : cdr] 3)
+(mtest
+ (find-maxes nil) nil
+ (find-maxes '(1 1 1 1 1)) (1 1 1 1 1)
+ (find-maxes '(2 1 1 1 1)) (2)
+ (find-maxes '(2 1 1 1 2)) (2 2)
+ (find-maxes '(2 1 2 1 2)) (2 2 2))
+
+(mtest
+ (find-maxes #()) #()
+ (find-maxes '(1 1 1 1 1)) (1 1 1 1 1)
+ (find-maxes '(2 1 1 1 1)) (2)
+ (find-maxes '(2 1 1 1 2)) (2 2)
+ (find-maxes '(2 1 2 1 2)) (2 2 2))
+
+(mtest
+ (find-maxes "") ""
+ (find-maxes "abracadabra") "rr"
+ (find-mins "abracadabra") "aaaaa")
+
+(test
+ (find-mins -10..11 : [callf * pppred ppred]) (2 3))
+
(defvarl fn (do and
(chr-isdigit @1)
(not (chr-isdigit @2))))