aboutsummaryrefslogtreecommitdiffstats
path: root/csc/strings-test.csc
diff options
context:
space:
mode:
Diffstat (limited to 'csc/strings-test.csc')
-rw-r--r--csc/strings-test.csc60
1 files changed, 60 insertions, 0 deletions
diff --git a/csc/strings-test.csc b/csc/strings-test.csc
new file mode 100644
index 0000000..2e6d240
--- /dev/null
+++ b/csc/strings-test.csc
@@ -0,0 +1,60 @@
+(import (scheme base)
+ (only (csc testing)
+ assert
+ assert-equal
+ test)
+ (csc strings))
+
+
+(test prefix?-good
+ (assert-equal #t (prefix? "asdf" "asdfjkl;")))
+
+
+(test prefix?-bad
+ (assert-equal #f (prefix? "asdf" "asdbjkl;")))
+
+
+(test prefix?-too-long
+ (assert-equal #f (prefix? "asdf" "as")))
+
+
+(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 find-ok
+ (assert-equal 8 (find "abc" "dabsadfdabcdfdfd")))
+
+
+(test find-one-letter
+ (assert-equal 8 (find "a" "sdfdfdfsasdfe")))
+
+
+(test find-notfound
+ (let* ((match "a")
+ (str "def")
+ (got-exception '()))
+ (guard (e
+ ((not-found-error? e) (set! got-exception e)))
+ (find match str))
+ (assert (not-found-error? got-exception))))
+
+
+(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")))