diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-09-15 23:22:28 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-09-15 23:22:28 -0700 |
commit | 60fa0cd314d283c99af60a650ba4f6c04ee1870a (patch) | |
tree | 4e6e4524b6b26a451a0f0ef9c0347bf113be9122 /tests/012 | |
parent | daa6738f83ec9d31fb62e50e0fe259577a219b8f (diff) | |
download | txr-60fa0cd314d283c99af60a650ba4f6c04ee1870a.tar.gz txr-60fa0cd314d283c99af60a650ba4f6c04ee1870a.tar.bz2 txr-60fa0cd314d283c99af60a650ba4f6c04ee1870a.zip |
seq-iter: bugfix: floating-point ranges.
* lib.c (seq_iter_get_range_bignum): Static function
renamed to seq_iter_get_range_number because it
in fact generalizes to numbers.
(seq_iter_peek_range_bignum): Renamed to
seq_iter_peek_range_number.
(seq_iter_get_rev_range_bignum): Renamed to
seq_iter_get_rev_range_number.
(seq_iter_peek_rev_range_bignum): Renamed to
seq_iter_peek_rev_range_number.
(si_range_bignum_ops): Renamed to si_range_number_ops.
(si_rev_range_bignum_ops): Renamed to
si_rev_range_number_ops.
(seq_iter_init_with_info): Handle ranges where
the from value is floating-point.
Also, if the from-value is bignum that fits into
cnum range, we now try to handle that as a cnum
range.
* tests/012/iter.tl: New tests.
Diffstat (limited to 'tests/012')
-rw-r--r-- | tests/012/iter.tl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/012/iter.tl b/tests/012/iter.tl index 051368b3..9b1db6f5 100644 --- a/tests/012/iter.tl +++ b/tests/012/iter.tl @@ -67,3 +67,26 @@ (let ((big (* fixnum-max 8))) (test (progn (each ((x big..(+ 10 big))) (sys:gc)) 42) 42)) + +(mtest + (list-seq 0..5) (0 1 2 3 4) + (list-seq 5..0) (4 3 2 1 0) + (list-seq 0..5.0) (0 1 2 3 4) + (list-seq 5..0.0) (4 3 2 1 0) + (list-seq 0.0..5.0) (0.0 1.0 2.0 3.0 4.0) + (list-seq 5.0..0.0) (4.0 3.0 2.0 1.0 0.0) + (list-seq 0.0..5) (0.0 1.0 2.0 3.0 4.0) + (list-seq 5.0..0) (4.0 3.0 2.0 1.0 0.0) + (list-seq 0.0..5.1) (0.0 1.0 2.0 3.0 4.0 5.0) + (list-seq 0.5..5) (0.5 1.5 2.5 3.5 4.5) + (list-seq (expt 2 256)..(ssucc (expt 2 256))) + (115792089237316195423570985008687907853269984665640564039457584007913129639936 + 115792089237316195423570985008687907853269984665640564039457584007913129639937) + (list-seq (expt 2 256)..(ppred (expt 2 256))) + (115792089237316195423570985008687907853269984665640564039457584007913129639935 + 115792089237316195423570985008687907853269984665640564039457584007913129639934) + (take 3 (list-seq (expt 2 256)..0)) + (115792089237316195423570985008687907853269984665640564039457584007913129639935 + 115792089237316195423570985008687907853269984665640564039457584007913129639934 + 115792089237316195423570985008687907853269984665640564039457584007913129639933)) + |