diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2025-01-24 20:49:52 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2025-01-24 20:49:52 -0800 |
commit | 31540ce793f1aa551e1df3054f37fb3221618361 (patch) | |
tree | cecace480fad4edf6c08e8028bf8043c61103ed9 /tests | |
parent | af458b10e3bc6709e68ef7d0ca1d2aabbeada414 (diff) | |
download | txr-31540ce793f1aa551e1df3054f37fb3221618361.tar.gz txr-31540ce793f1aa551e1df3054f37fb3221618361.tar.bz2 txr-31540ce793f1aa551e1df3054f37fb3221618361.zip |
New functions for producing CSV.
* stream.c (put_csv, tocsv): New functions.
(stream_init): put-csv and tocsv intrinsics registered.
* stream.h (put_csv, tocsv): Declared.
* tests/010/csv.tl (mtest-pcsv): New macro.
New test cases.
* txr.1: Documented.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/010/csv.tl | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/010/csv.tl b/tests/010/csv.tl index fffd8d0d..6c93b6c8 100644 --- a/tests/010/csv.tl +++ b/tests/010/csv.tl @@ -6,6 +6,12 @@ ,(mapcar (op regsub "#" "\"") @2))) data expected)))) +(defmacro mtest-pcsv (. pairs) + (tree-bind (data expected) (flow pairs (tuples 2) transpose) + ^(mtest ,*(mappend (ret ^((tocsv ,(mapcar [iffi stringp (op regsub "#" "\"")] @1)) + ,(regsub "#" "\"" @2))) + data expected)))) + (mtest-csv "" #("") "," #("" "") @@ -164,3 +170,16 @@ "#Hello, ##Bob##!#\r\n" #("Hello, #Bob#!") "#Hello, ##Bob##!#\n" #("Hello, #Bob#!") "#Hello, ##Bob##!#\r" #("Hello, #Bob#!\r")) + +(mtest-pcsv + #() "\n" + #("") "\n" + #(hello) "hello\n" + #(3.14) "3.14\n" + #(1.0 2 #\c) "1,2,c\n" + #(hello world) "hello,world\n" + #("foo" "bar") "foo,bar\n" + #(",") "#,#\n" + #("a\nb" "c#d" "e,f") "#a\nb#,#c##d#,#e,f#\n" + #("a\n#,b") "#a\n##,b#\n" + #("a#\n,b\n") "#a##\n,b\n#\n") |