summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-06-21 06:37:50 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-06-21 06:37:50 -0700
commitff2df257b64111213fd94028d2f18b75ebdee003 (patch)
tree45cf0a063bfc829c6e619fb8482a215f4884f2ed /tests
parent4605d81ba9ef004e1a0e660ccd5d42717c4c6523 (diff)
downloadtxr-ff2df257b64111213fd94028d2f18b75ebdee003.tar.gz
txr-ff2df257b64111213fd94028d2f18b75ebdee003.tar.bz2
txr-ff2df257b64111213fd94028d2f18b75ebdee003.zip
Dubious new functions cxr/cyr.
* lib.c (cxr, cyr): New functions. * lib.h (cxr, cyr): Declared. * eval.c (eval_init): Intrinsics cxr and cyr registered. * tests/012/cadr.tl: New file. * txr.1: Documented. * share/txr/stdlib/doc-syms.tl: Updated.
Diffstat (limited to 'tests')
-rw-r--r--tests/012/cadr.tl14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/012/cadr.tl b/tests/012/cadr.tl
new file mode 100644
index 00000000..509590f7
--- /dev/null
+++ b/tests/012/cadr.tl
@@ -0,0 +1,14 @@
+(load "../common")
+
+(mtest
+ (cxr 1 42) 42
+ (cxr #b11 '(a . b)) a
+ (cxr #b10 '(a . b)) b
+ (cxr #b11000 '(1 2 3 4 5)) 4
+ (cyr #b100001 '(1 2 3 4 5)) 5
+ (cyr #b1111 '(((a)))) a
+ (cyr #b111 '(a)) :error)
+
+(let ((r (range* 0 100)))
+ (vtest (mapcar (op cyr (succ (expt 2 (succ @1))) r) 0..100) r)
+ (vtest (mapcar (op cxr (* 3 (expt 2 @1)) r) 0..100) r))