 
 (defspec lower-case?-returns-true-on-all-lower 100
   (prop/for-all [s (gen/not-empty gen/string)]
-    (is (str/lower-case? (str/lower-case s)))))
+    (str/lower-case? (str/lower-case s))))
 
 (defspec lower-case?-returns-nil-on-all-upper 100
   (prop/for-all [s (gen/such-that not-empty
                                   (gen/fmap str/join (gen/vector gen/char-alpha)))]
-    (is (not (str/lower-case? (str/upper-case s))))))
+    (not (str/lower-case? (str/upper-case s)))))
 
 (defn- word []
   (gen/fmap #(if (< (.length %) 10)

  (prop/for-all [words (gen/bind (gen/choose 50 500)
                                 #(gen/return (gen/sample (word) %)))
                 width (gen/choose 8 80)]
    (is (reduce (fn [acc line]
                  (and acc (less-than-width-or-unbreakable line width)))
                true
                (str/split-lines (str/wrap-words (str/join " " words) width))))))

(defexamples lower-case-test
  (str/lower-case? "upper") "upper"


(defspec title-case-starts-with-upper 100
  (prop/for-all [s (gen/not-empty gen/string)]
    (upper-if-upper-exists? (first (str/title-case s)))))

(defspec title-case-rest-is-all-lower-case 100
  (prop/for-all [s (gen/not-empty gen/string)]
    (reduce (fn [acc c] (and acc (lower-if-lower-exists? c))) true
            (rest (str/title-case s)))))

(defspec upper-case?-returns-true-on-all-upper 100
  (prop/for-all [s (gen/not-empty gen/string)]
    (str/upper-case? (str/upper-case s))))

(defspec upper-case?-returns-nil-on-all-lower 100
  (prop/for-all [s (gen/such-that not-empty
                                  (gen/fmap str/join (gen/vector gen/char-alpha)))]
    (not (str/upper-case? (str/lower-case s)))))

(deftest upper-case-test
  (str/upper-case? "UPPER") "UPPER"
