(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 last-index-last (assert-equal 4 (last-index "ababa" "a"))) (test last-index-penultimate (assert-equal 4 (last-index "ababab" "a"))) (test last-index-notfound (assert-equal -1 (last-index "abcdfads" ";"))) (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)))))