diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2024-07-10 02:19:57 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2024-07-10 02:19:57 -0700 |
commit | 588cfc99a8c9ca5eed03caae6147ae1e10519145 (patch) | |
tree | 8b88233717b0bbbd7636417170230fd5a933fbcc /tests | |
parent | 2eed172a061a5df56bcc7cfda28b975165db38d3 (diff) | |
download | txr-588cfc99a8c9ca5eed03caae6147ae1e10519145.tar.gz txr-588cfc99a8c9ca5eed03caae6147ae1e10519145.tar.bz2 txr-588cfc99a8c9ca5eed03caae6147ae1e10519145.zip |
split*: add missing tests.
* tests/012/seq.tl: Add tests for split* that were lost
in some editing. Corresponding tests exist for split
already and for partition.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/012/seq.tl | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/tests/012/seq.tl b/tests/012/seq.tl index a6a7b069..f81c4046 100644 --- a/tests/012/seq.tl +++ b/tests/012/seq.tl @@ -1156,6 +1156,131 @@ (split* #(a) '(0)) (#() #()) (split* #(a) '(1)) (#(a) #())) +(mtest + (split* "a" -1) ("" "") + (split* "a" 0) ("" "") + (split* "a" 1) ("a" "") + (split* "a" 2) ("a" "") ;; questionable behavior + (split* "a" '(-1)) ("" "") + (split* "a" '(0)) ("" "") + (split* "a" '(1)) ("a" "")) + +(mtest + (split* 2..3 -1) (nil nil) + (split* 2..3 0) (nil nil) + (split* 2..3 1) ((2) nil) + (split* 2..3 2) ((2) nil) ;; questionable behavior + (split* 2..3 '(-1)) (nil nil) + (split* 2..3 '(0)) (nil nil) + (split* 2..3 '(1)) ((2) nil)) + +(mtest + (split* '(a b) -1) ((a) nil) + (split* '(a b) 0) (nil (b)) + (split* '(a b) 1) ((a) nil) + (split* '(a b) 2) ((a b) nil) + (split* '(a b) 3) ((a b) nil) ;; questionable behavior + (split* '(a b) '(0 -1)) (nil (b)) ;; questionable + (split* '(a b) '(0 1)) (nil nil nil) ;; questionabble + (split* '(a b) '(0 -1 2)) (nil (b) nil) ;; questionable + (split* '(a b) '(0 1 2)) (nil nil nil) ;; questionable + (split* '(a b) '(1 2)) ((a) nil) + (split* '(a b) '(-1 2)) ((a) nil)) ;; questionable + +(mtest + (split* #(a b) -1) (#(a) #()) + (split* #(a b) 0) (#() #(b)) + (split* #(a b) 1) (#(a) #()) + (split* #(a b) 2) (#(a b) #()) + (split* #(a b) 3) (#(a b) #()) ;; questionable behavior + (split* #(a b) '(0 -1)) (#() #(b)) ;; questionable + (split* #(a b) '(0 1)) (#() #() #()) ;; questionable + (split* #(a b) '(0 -1 2)) (#() #(b) #()) ;; questionable + (split* #(a b) '(0 1 2)) (#() #() #()) ;; questionable + (split* #(a b) '(1 2)) (#(a) #()) ;; questionable + (split* #(a b) '(-1 2)) (#(a) #())) ;; questionable + +(mtest + (split* "ab" -1) ("a" "") + (split* "ab" 0) ("" "b") + (split* "ab" 1) ("a" "") + (split* "ab" 2) ("ab" "") + (split* "ab" 3) ("ab" "") ;; questionable behavior + (split* "ab" #(0 -1)) ("" "b") ;; questionable + (split* "ab" '(0 1)) ("" "" "") ;; questionable + (split* "ab" '(0 -1 2)) ("" "b" "") ;; questionable + (split* "ab" '(0 1 2)) ("" "" "") ;; questionable + (split* "ab" '(1 2)) ("a" "") ;; questionable + (split* "ab" '(-1 2)) ("a" "")) ;; questionable + +(mtest + (split* 2..4 -1) ((2) ()) + (split* 2..4 0) (nil (3)) + (split* 2..4 1) ((2) nil) + (split* 2..4 2) ((2 3) nil) + (split* 2..4 3) ((2 3) nil) + (split* 2..4 '(0 -1)) (nil (3)) + (split* 2..4 '(0 1)) (nil nil nil) + (split* 2..4 '(0 -1 2)) (nil (3) nil) + (split* 2..4 '(0 1 2)) (nil nil nil) + (split* 2..4 '(1 2)) ((2) nil) + (split* 2..4 '(-1 2)) ((2) nil)) + +(mtest + (split* '(a b c) -1) ((a b) nil) + (split* '(a b c) 0) (nil (b c)) + (split* '(a b c) 1) ((a) (c)) + (split* '(a b c) 2) ((a b) nil) + (split* '(a b c) 3) ((a b c) nil) + (split* '(a b c) 4) ((a b c) nil) + (split* '(a b c) '(0 1)) (nil nil (c)) + (split* '(a b c) '(0 2)) (nil (b) nil) + (split* '(a b c) '(0 3)) (nil (b c) nil) + (split* '(a b c) '(1 2)) ((a) nil nil) + (split* '(a b c) '(1 3)) ((a) (c) nil) + (split* '(a b c) '(2 3)) ((a b) nil)) + +(mtest + (split* #(a b c) -1) (#(a b) #()) + (split* #(a b c) 0) (#() #(b c)) + (split* #(a b c) 1) (#(a) #(c)) + (split* #(a b c) 2) (#(a b) #()) + (split* #(a b c) 3) (#(a b c) #()) + (split* #(a b c) 4) (#(a b c) #()) + (split* #(a b c) '(0 1)) (#() #() #(c)) + (split* #(a b c) '(0 2)) (#() #(b) #()) + (split* #(a b c) '(0 3)) (#() #(b c) #()) + (split* #(a b c) '(1 2)) (#(a) #() #()) + (split* #(a b c) '(1 3)) (#(a) #(c) #()) + (split* #(a b c) '(2 3)) (#(a b) #())) + +(mtest + (split* "abc" -1) ("ab" "") + (split* "abc" 0) ("" "bc") + (split* "abc" 1) ("a" "c") + (split* "abc" 2) ("ab" "") + (split* "abc" 3) ("abc" "") + (split* "abc" 4) ("abc" "") + (split* "abc" '(0 1)) ("" "" "c") + (split* "abc" '(0 2)) ("" "b" "") + (split* "abc" '(0 3)) ("" "bc" "") + (split* "abc" '(1 2)) ("a" "" "") + (split* "abc" '(1 3)) ("a" "c" "") + (split* "abc" '(2 3)) ("ab" "")) + +(mtest + (split* 2..5 -1) ((2 3) nil) + (split* 2..5 0) (nil (3 4)) + (split* 2..5 1) ((2) (4)) + (split* 2..5 2) ((2 3) nil) + (split* 2..5 3) ((2 3 4) nil) + (split* 2..5 4) ((2 3 4) nil) + (split* 2..5 '(0 1)) (nil nil (4)) + (split* 2..5 '(0 2)) (nil (3) nil) + (split* 2..5 '(0 3)) (nil (3 4) nil) + (split* 2..5 '(1 2)) ((2) nil nil) + (split* 2..5 '(1 3)) ((2) (4) nil) + (split* 2..5 '(2 3)) ((2 3) nil)) (mtest (partition nil -1) nil |