aboutsummaryrefslogtreecommitdiff
path: root/src/test/clojure
diff options
context:
space:
mode:
authorStuart Sierra <mail@stuartsierra.com>2010-01-26 10:38:19 -0500
committerStuart Sierra <mail@stuartsierra.com>2010-01-26 10:38:19 -0500
commit18c6d2102a3f24024a8b45a6a137f24c6b21a91d (patch)
treeb236ddb9d219642668368d70f034d82299b45432 /src/test/clojure
parent18584a46cdcb0651d6f025680c25ab8c18d0e639 (diff)
Add str-utils3 with tests
* most significant argument last, for ->> * 'contains?' renamed 'substring?' * removed 'partial'
Diffstat (limited to 'src/test/clojure')
-rw-r--r--src/test/clojure/clojure/contrib/test_contrib/str_utils3.clj115
1 files changed, 115 insertions, 0 deletions
diff --git a/src/test/clojure/clojure/contrib/test_contrib/str_utils3.clj b/src/test/clojure/clojure/contrib/test_contrib/str_utils3.clj
new file mode 100644
index 00000000..2625c168
--- /dev/null
+++ b/src/test/clojure/clojure/contrib/test_contrib/str_utils3.clj
@@ -0,0 +1,115 @@
+(ns clojure.contrib.test-contrib.str-utils3
+ (:require [clojure.contrib.str-utils3 :as s])
+ (:use clojure.test))
+
+(deftest t-codepoints
+ (is (= (list 102 111 111 65536 98 97 114)
+ (s/codepoints "foo\uD800\uDC00bar"))
+ "Handles Unicode supplementary characters"))
+
+(deftest t-escape
+ (is (= "&lt;foo&amp;bar&gt;"
+ (s/escape {\& "&amp;" \< "&lt;" \> "&gt;"} "<foo&bar>")))
+ (is (= " \\\"foo\\\" "
+ (s/escape {\" "\\\""} " \"foo\" " )))
+ (is (= "faabor" (s/escape {\a \o, \o \a} "foobar"))))
+
+(deftest t-blank
+ (is (s/blank? nil))
+ (is (s/blank? ""))
+ (is (s/blank? " "))
+ (is (s/blank? " \t \n \r "))
+ (is (not (s/blank? " foo "))))
+
+(deftest t-take
+ (is (= "foo" (s/take 3 "foobar")))
+ (is (= "foobar" (s/take 7 "foobar")))
+ (is (= "" (s/take 0 "foo"))))
+
+(deftest t-drop
+ (is (= "bar" (s/drop 3 "foobar")))
+ (is (= "" (s/drop 9 "foobar")))
+ (is (= "foobar" (s/drop 0 "foobar"))))
+
+(deftest t-butlast
+ (is (= "foob" (s/butlast 2 "foobar")))
+ (is (= "" (s/butlast 9 "foobar")))
+ (is (= "foobar" (s/butlast 0 "foobar"))))
+
+(deftest t-tail
+ (is (= "ar" (s/tail 2 "foobar")))
+ (is (= "foobar" (s/tail 9 "foobar")))
+ (is (= "" (s/tail 0 "foobar"))))
+
+(deftest t-repeat
+ (is (= "foofoofoo" (s/repeat 3 "foo"))))
+
+(deftest t-reverse
+ (is (= "tab" (s/reverse "bat"))))
+
+(deftest t-replace
+ (is (= "faabar" (s/replace \o \a "foobar")))
+ (is (= "barbarbar" (s/replace "foo" "bar" "foobarfoo")))
+ (is (= "FOObarFOO" (s/replace #"foo" s/upper-case "foobarfoo"))))
+
+(deftest t-replace-first
+ (is (= "barbarfoo" (s/replace-first #"foo" "bar" "foobarfoo")))
+ (is (= "FOObarfoo" (s/replace-first #"foo" s/upper-case "foobarfoo"))))
+
+(deftest t-partition
+ (is (= (list "" "abc" "123" "def")
+ (s/partition #"[a-z]+" "abc123def"))))
+
+(deftest t-join
+ (is (= "1,2,3" (s/join \, [1 2 3])))
+ (is (= "" (s/join \, [])))
+ (is (= "1 and-a 2 and-a 3" (s/join " and-a " [1 2 3]))))
+
+(deftest t-chop
+ (is (= "fo" (s/chop "foo")))
+ (is (= "") (s/chop "f"))
+ (is (= "") (s/chop "")))
+
+(deftest t-chomp
+ (is (= "foo" (s/chomp "foo\n")))
+ (is (= "foo" (s/chomp "foo\r\n")))
+ (is (= "foo" (s/chomp "foo")))
+ (is (= "" (s/chomp ""))))
+
+(deftest t-swap-case
+ (is (= "fOO!bAR" (s/swap-case "Foo!Bar")))
+ (is (= "" (s/swap-case ""))))
+
+(deftest t-capitalize
+ (is (= "Foobar" (s/capitalize "foobar")))
+ (is (= "Foobar" (s/capitalize "FOOBAR"))))
+
+(deftest t-ltrim
+ (is (= "foo " (s/ltrim " foo ")))
+ (is (= "" (s/ltrim " "))))
+
+(deftest t-rtrim
+ (is (= " foo" (s/rtrim " foo ")))
+ (is (= "" (s/rtrim " "))))
+
+(deftest t-split-lines
+ (is (= (list "one" "two" "three")
+ (s/split-lines "one\ntwo\r\nthree")))
+ (is (= (list "foo") (s/split-lines "foo"))))
+
+(deftest t-upper-case
+ (is (= "FOOBAR" (s/upper-case "Foobar"))))
+
+(deftest t-lower-case
+ (is (= "foobar" (s/lower-case "FooBar"))))
+
+(deftest t-trim
+ (is (= "foo" (s/trim " foo \r\n"))))
+
+(deftest t-substring
+ (is (s/substring? "foo" "foobar"))
+ (is (not (s/substring? "baz" "foobar"))))
+
+(deftest t-get
+ (is (= \o (s/get "foo" 1))))
+