diff options
author | scgilardi <scgilardi@gmail.com> | 2009-02-10 05:07:53 +0000 |
---|---|---|
committer | scgilardi <scgilardi@gmail.com> | 2009-02-10 05:07:53 +0000 |
commit | 5bb43b5212d3aca42322861c32e69535375548f2 (patch) | |
tree | e34a2a6d643e4925fec2e82e39b65375a2217b22 /src/clojure/contrib/test_clojure/numbers.clj | |
parent | 5ebc583193b7e8903a3e8349aacdf1626a6e7380 (diff) |
fix issue 20: test predicates, from Frantisek Sodomka
Diffstat (limited to 'src/clojure/contrib/test_clojure/numbers.clj')
-rw-r--r-- | src/clojure/contrib/test_clojure/numbers.clj | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/clojure/contrib/test_clojure/numbers.clj b/src/clojure/contrib/test_clojure/numbers.clj index 542f1e45..4b7c19f3 100644 --- a/src/clojure/contrib/test_clojure/numbers.clj +++ b/src/clojure/contrib/test_clojure/numbers.clj @@ -75,3 +75,50 @@ (number? v) (decimal? v) (not (float? v))))) + + +;; *** Number predicates *** + +;; pos? zero? neg? + +(deftest test-pos?-zero?-neg? + (let [nums [[(byte 2) (byte 0) (byte -2)] + [(short 3) (short 0) (short -3)] + [(int 4) (int 0) (int -4)] + [(long 5) (long 0) (long -5)] + [(bigint 6) (bigint 0) (bigint -6)] + [(float 7) (float 0) (float -7)] + [(double 8) (double 0) (double -8)] + [(bigdec 9) (bigdec 0) (bigdec -9)] + [2/3 0 -2/3]] + pred-result [[pos? [true false false]] + [zero? [false true false]] + [neg? [false false true]]] ] + (doseq [pr pred-result] + (doseq [n nums] + (is (= (map (first pr) n) (second pr)) + (pr-str (first pr) n)))))) + + +;; even? odd? + +(deftest test-even? + (are _ + (even? -4) + (not (even? -3)) + (even? 0) + (not (even? 5)) + (even? 8)) + (is (thrown? ArithmeticException (even? 1/2))) + (is (thrown? ArithmeticException (even? (double 10))))) + +(deftest test-odd? + (are _ + (not (odd? -4)) + (odd? -3) + (not (odd? 0)) + (odd? 5) + (not (odd? 8))) + (is (thrown? ArithmeticException (odd? 1/2))) + (is (thrown? ArithmeticException (odd? (double 10))))) + |