Mercurial > lasercutter
view src/clojure/contrib/test_contrib/test_string.clj @ 10:ef7dbbd6452c
added clojure source goodness
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 21 Aug 2010 06:25:44 -0400 |
parents | |
children |
line wrap: on
line source
1 (ns clojure.contrib.test-string2 (:require [clojure.contrib.string :as s])3 (:use clojure.test))5 (deftest t-codepoints6 (is (= (list 102 111 111 65536 98 97 114)7 (s/codepoints "foo\uD800\uDC00bar"))8 "Handles Unicode supplementary characters"))10 (deftest t-escape11 (is (= "<foo&bar>"12 (s/escape {\& "&" \< "<" \> ">"} "<foo&bar>")))13 (is (= " \\\"foo\\\" "14 (s/escape {\" "\\\""} " \"foo\" " )))15 (is (= "faabor" (s/escape {\a \o, \o \a} "foobar"))))17 (deftest t-blank18 (is (s/blank? nil))19 (is (s/blank? ""))20 (is (s/blank? " "))21 (is (s/blank? " \t \n \r "))22 (is (not (s/blank? " foo "))))24 (deftest t-take25 (is (= "foo" (s/take 3 "foobar")))26 (is (= "foobar" (s/take 7 "foobar")))27 (is (= "" (s/take 0 "foo"))))29 (deftest t-drop30 (is (= "bar" (s/drop 3 "foobar")))31 (is (= "" (s/drop 9 "foobar")))32 (is (= "foobar" (s/drop 0 "foobar"))))34 (deftest t-butlast35 (is (= "foob" (s/butlast 2 "foobar")))36 (is (= "" (s/butlast 9 "foobar")))37 (is (= "foobar" (s/butlast 0 "foobar"))))39 (deftest t-tail40 (is (= "ar" (s/tail 2 "foobar")))41 (is (= "foobar" (s/tail 9 "foobar")))42 (is (= "" (s/tail 0 "foobar"))))44 (deftest t-repeat45 (is (= "foofoofoo" (s/repeat 3 "foo"))))47 (deftest t-reverse48 (is (= "tab" (s/reverse "bat"))))50 (deftest t-replace51 (is (= "faabar" (s/replace-char \o \a "foobar")))52 (is (= "barbarbar" (s/replace-str "foo" "bar" "foobarfoo")))53 (is (= "FOObarFOO" (s/replace-by #"foo" s/upper-case "foobarfoo"))))55 (deftest t-replace-first56 (is (= "barbarfoo" (s/replace-first-re #"foo" "bar" "foobarfoo")))57 (is (= "FOObarfoo" (s/replace-first-by #"foo" s/upper-case "foobarfoo"))))59 (deftest t-partition60 (is (= (list "" "abc" "123" "def")61 (s/partition #"[a-z]+" "abc123def"))))63 (deftest t-join64 (is (= "1,2,3" (s/join \, [1 2 3])))65 (is (= "" (s/join \, [])))66 (is (= "1 and-a 2 and-a 3" (s/join " and-a " [1 2 3]))))68 (deftest t-chop69 (is (= "fo" (s/chop "foo")))70 (is (= "") (s/chop "f"))71 (is (= "") (s/chop "")))73 (deftest t-chomp74 (is (= "foo" (s/chomp "foo\n")))75 (is (= "foo" (s/chomp "foo\r\n")))76 (is (= "foo" (s/chomp "foo")))77 (is (= "" (s/chomp ""))))79 (deftest t-swap-case80 (is (= "fOO!bAR" (s/swap-case "Foo!Bar")))81 (is (= "" (s/swap-case ""))))83 (deftest t-capitalize84 (is (= "Foobar" (s/capitalize "foobar")))85 (is (= "Foobar" (s/capitalize "FOOBAR"))))87 (deftest t-ltrim88 (is (= "foo " (s/ltrim " foo ")))89 (is (= "" (s/ltrim " "))))91 (deftest t-rtrim92 (is (= " foo" (s/rtrim " foo ")))93 (is (= "" (s/rtrim " "))))95 (deftest t-split-lines96 (is (= (list "one" "two" "three")97 (s/split-lines "one\ntwo\r\nthree")))98 (is (= (list "foo") (s/split-lines "foo"))))100 (deftest t-upper-case101 (is (= "FOOBAR" (s/upper-case "Foobar"))))103 (deftest t-lower-case104 (is (= "foobar" (s/lower-case "FooBar"))))106 (deftest t-trim107 (is (= "foo" (s/trim " foo \r\n"))))109 (deftest t-substring110 (is (s/substring? "foo" "foobar"))111 (is (not (s/substring? "baz" "foobar"))))113 (deftest t-get114 (is (= \o (s/get "foo" 1))))116 (deftest t-as-str117 (testing "keyword to string"118 (is (= "foo") (s/as-str :foo)))119 (testing "symbol to string"120 (is (= "foo") (s/as-str 'foo)))121 (testing "string to string"122 (is (= "foo") (s/as-str "foo")))123 (testing "stringifying non-namish things"124 (is (= "42") (s/as-str 42))))