aboutsummaryrefslogtreecommitdiffstats
path: root/lib/csc/strings-test.csc
diff options
context:
space:
mode:
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)))))