aboutsummaryrefslogtreecommitdiffstats
path: root/lib/csc/strings-test.csc
diff options
context:
space:
mode:
authorRose Hogenson <rhogenson@posteo.net>2022-08-01 19:35:19 -0700
committerRose Hogenson <rhogenson@posteo.net>2022-08-01 19:35:19 -0700
commitacc561366f3fe6ec0377103f52ef0f7e923711c9 (patch)
treed7a19cfbad78a69ebea71b27302e708c0655863d /lib/csc/strings-test.csc
parentRename the compiler in bytecode.rs. (diff)
downloadchromatopelma-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.csc103
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)))))