diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2023-03-27 20:28:27 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2023-03-27 20:28:27 -0700 |
commit | 5c7d29fc94b805dfad253b804c315448cfea17a1 (patch) | |
tree | f6352d880cd3d9486d7ce7ca9f008209d1264895 | |
parent | 38ae8922580cc01312caec508bcbd30a9a05c188 (diff) | |
download | txr-5c7d29fc94b805dfad253b804c315448cfea17a1.tar.gz txr-5c7d29fc94b805dfad253b804c315448cfea17a1.tar.bz2 txr-5c7d29fc94b805dfad253b804c315448cfea17a1.zip |
range/range*: tests.
* tests/010/range.tl: New file.
-rw-r--r-- | tests/010/range.tl | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/010/range.tl b/tests/010/range.tl new file mode 100644 index 00000000..4cc9ee95 --- /dev/null +++ b/tests/010/range.tl @@ -0,0 +1,103 @@ +(load "../common") + +(mtest + (range 1 1) (1) + (range 1.0 1.0) (1.0) + (range #\a #\a) (#\a) + (range #R(1 1) #R(1 1)) (#R(1 1))) + +(mtest + (range 0 4) (0 1 2 3 4) + (range 4 0) (4 3 2 1 0) + (range 0.0 4.0) (0.0 1.0 2.0 3.0 4.0) + (range 4.0 0.0) (4.0 3.0 2.0 1.0 0.0) + (range #\a #\c) (#\a #\b #\c) + (range #\c #\a) (#\c #\b #\a) + (range #R(0 0) #R(4 4)) (#R(0 0) #R(1 1) #R(2 2) #R(3 3) #R(4 4)) + (range #R(4 4) #R(0 0)) (#R(4 4) #R(3 3) #R(2 2) #R(1 1) #R(0 0))) + +(mtest + (len (range 1 1 "")) :error + (len (range 1 2 "")) :error) + +(mtest + (range 0 4 2) (0 2 4) + (range 4 0 -2) (4 2 0) + (range 0.0 4.0 2) (0.0 2.0 4.0) + (range 4.0 0.0 -2) (4.0 2.0 0.0) + (range #\a #\e 2) (#\a #\c #\e) + (range #\e #\a -2) (#\e #\c #\a) + (range #R(0 0) #R(4 4) 2) (#R(0 0) #R(2 2) #R(4 4)) + (range #R(4 4) #R(0 0) -2) (#R(4 4) #R(2 2) #R(0 0)) + (range 1 32 (op * 2)) (1 2 4 8 16 32)) + +(mtest + (range* 1 1) nil + (range* 1.0 1.0) nil + (range* #\a #\a) nil + (range* #R(1 1) #R(1 1)) nil) + +(mtest + (range* 0 4) (0 1 2 3) + (range* 4 0) (4 3 2 1) + (range* 0.0 4.0) (0.0 1.0 2.0 3.0) + (range* 4.0 0.0) (4.0 3.0 2.0 1.0) + (range* #\a #\c) (#\a #\b) + (range* #\c #\a) (#\c #\b) + (range* #R(0 0) #R(4 4)) (#R(0 0) #R(1 1) #R(2 2) #R(3 3)) + (range* #R(4 4) #R(0 0)) (#R(4 4) #R(3 3) #R(2 2) #R(1 1))) + +(mtest + (len (range* 1 1 "")) 0 + (len (range* 1 2 "")) :error) + +(mtest + (range* 0 4 2) (0 2) + (range* 4 0 -2) (4 2) + (range* 0.0 4.0 2) (0.0 2.0) + (range* 4.0 0.0 -2) (4.0 2.0) + (range* #\a #\e 2) (#\a #\c) + (range* #\e #\a -2) (#\e #\c) + (range* #R(0 0) #R(4 4) 2) (#R(0 0) #R(2 2)) + (range* #R(4 4) #R(0 0) -2) (#R(4 4) #R(2 2)) + (range* 1 32 (op * 2)) (1 2 4 8 16)) + +(mtest + (range 0 1.25 0.5) (0 0.5 1.0) + (range* 0 1.25 0.5) (0 0.5 1.0)) + +(mtest + (range "A" "A") nil + (range "A" "A" 0) :error + (range "A" "A" -2) :error) + +(mtest + (range "A" "C") ("A" "B" "C") + (range "A" "C" 2) ("A" "C") + (range "A" "D" 2) ("A" "C") + (range "A" "E" 2) ("A" "C" "E") + (range "A" "C" 3) ("A") + (range "A" "E" 3) ("A" "D")) + +(mtest + (range* "A" "C") ("A" "B") + (range* "A" "C" 2) ("A") + (range* "A" "D" 2) ("A" "C") + (range* "A" "E" 2) ("A" "C") + (range* "A" "C" 3) ("A") + (range* "A" "E" 3) ("A" "D")) + +(mtest + [range "ABCD" nil rest] ("ABCD" "BCD" "CD" "D" nil) + [range* "ABCD" nil rest] ("ABCD" "BCD" "CD" "D")) + +(defstruct udnum nil + v + (:method + (me arg) (new udnum v (+ me.v arg))) + (:method > (me arg) (> me.v arg)) + (:method < (me arg) (< me.v arg)) + (:method = (me arg) (= me.v arg))) + +(mtest + (range (new udnum v 0) (new udnum v 3)) (#S(udnum v 0) #S(udnum v 1) #S(udnum v 2) #S(udnum v 3)) + (range* (new udnum v 0) (new udnum v 3)) (#S(udnum v 0) #S(udnum v 1) #S(udnum v 2))) |