diff options
| author | Rose Hogenson <rhogenson@posteo.net> | 2022-08-01 19:35:19 -0700 |
|---|---|---|
| committer | Rose Hogenson <rhogenson@posteo.net> | 2022-08-01 19:35:19 -0700 |
| commit | acc561366f3fe6ec0377103f52ef0f7e923711c9 (patch) | |
| tree | d7a19cfbad78a69ebea71b27302e708c0655863d /lib/csc/strings-test.csc | |
| parent | Rename the compiler in bytecode.rs. (diff) | |
| download | chromatopelma-acc561366f3fe6ec0377103f52ef0f7e923711c9.tar.zst | |
Modify the project structure.
Now the lib directory contains what will eventually end up on the
user's /usr/lib/csc. When I write make install, it will copy all of
the .csc files from lib into the destination lib directory. This means I
can start working on the standard library in lib/scheme.
Diffstat (limited to 'lib/csc/strings-test.csc')
| -rw-r--r-- | lib/csc/strings-test.csc | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/lib/csc/strings-test.csc b/lib/csc/strings-test.csc new file mode 100644 index 0000000..1f981ad --- /dev/null +++ b/lib/csc/strings-test.csc @@ -0,0 +1,103 @@ +(define-library (csc strings-test) + (import (scheme base) + (only (csc testing) + assert + assert-equal + test) + (csc strings)) + (begin + + + (test has-prefix?-good + (assert-equal #t (has-prefix? "asdfjkl;" "asdf"))) + + + (test has-prefix?-bad + (assert-equal #f (has-prefix? "asdbjkl;" "asdf"))) + + + (test has-prefix?-too-long + (assert-equal #f (has-prefix? "as" "asdf"))) + + + (test str-quote-simple + (assert-equal "\"hello\"" (str-quote "hello"))) + + + (test str-quote-escape + (assert-equal "\"this string \\\" has a quote\"" (str-quote "this string \" has a quote"))) + + + (test index-ok + (assert-equal 8 (index "dabsadfdabcdfdfd" "abc"))) + + + (test index-one-letter + (assert-equal 8 (index "sdfdfdfsasdfe" "a"))) + + + (test index-notfound + (assert-equal + -1 + (index "def" "a"))) + + + (test contains + (assert-equal + #t + (contains? "abc" "b"))) + + + (test doesnt-contain + (assert-equal + #f + (contains? "abc" "d"))) + + + (test contains-empty + (assert-equal + #t + (contains? "" ""))) + + + (test empty-contains + (assert-equal + #f + (contains? "" "a"))) + + + (test join-, + (assert-equal "a,b,c" (join "," '("a" "b" "c")))) + + + (test join-none + (assert-equal "" (join "," '()))) + + + (test join-singleton + (assert-equal "x" (join "," '("x")))) + + + (test join-empty + (assert-equal "abc" (join "" '("a" "b" "c")))) + + + (test split-empty + (assert-equal '("") (split "" " "))) + + (test split + (assert-equal '("a" "b") (split "a b" " "))) + + + (test split-trailing-empty + (assert-equal '("a" "") (split "a " " "))) + + + (test split-n + (assert-equal '("a" "b" "c d e") (split "a b c d e" " " 3))) + + + (test split-none + (assert-equal + '() + (split "a b c d e" " " 0))))) |
