annotate src/clojure/contrib/test_contrib/datalog/tests/test_util.clj @ 10:ef7dbbd6452c

added clojure source goodness
author Robert McIntyre <rlm@mit.edu>
date Sat, 21 Aug 2010 06:25:44 -0400
parents
children
rev   line source
rlm@10 1 ;; Copyright (c) Jeffrey Straszheim. All rights reserved. The use and
rlm@10 2 ;; distribution terms for this software are covered by the Eclipse Public
rlm@10 3 ;; License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can
rlm@10 4 ;; be found in the file epl-v10.html at the root of this distribution. By
rlm@10 5 ;; using this software in any fashion, you are agreeing to be bound by the
rlm@10 6 ;; terms of this license. You must not remove this notice, or any other,
rlm@10 7 ;; from this software.
rlm@10 8 ;;
rlm@10 9 ;; test-util.clj
rlm@10 10 ;;
rlm@10 11 ;; A Clojure implementation of Datalog -- Utilities Tests
rlm@10 12 ;;
rlm@10 13 ;; straszheimjeffrey (gmail)
rlm@10 14 ;; Created 11 Feburary 2009
rlm@10 15
rlm@10 16 (ns clojure.contrib.datalog.tests.test-util
rlm@10 17 (:use clojure.test
rlm@10 18 clojure.contrib.datalog.util)
rlm@10 19 (:use [clojure.contrib.except :only (throwf)]))
rlm@10 20
rlm@10 21 (deftest test-is-var?
rlm@10 22 (is (is-var? '?x))
rlm@10 23 (is (is-var? '?))
rlm@10 24 (is (not (is-var? '??x)))
rlm@10 25 (is (not (is-var? '??)))
rlm@10 26 (is (not (is-var? 'x)))
rlm@10 27 (is (not (is-var? "fred")))
rlm@10 28 (is (not (is-var? :q))))
rlm@10 29
rlm@10 30 (deftest test-map-values
rlm@10 31 (let [map {:fred 1 :sally 2}]
rlm@10 32 (is (= (map-values #(* 2 %) map) {:fred 2 :sally 4}))
rlm@10 33 (is (= (map-values identity {}) {}))))
rlm@10 34
rlm@10 35 (deftest test-keys-to-vals
rlm@10 36 (let [map {:fred 1 :sally 2 :joey 3}]
rlm@10 37 (is (= (set (keys-to-vals map [:fred :sally])) #{1 2}))
rlm@10 38 (is (= (set (keys-to-vals map [:fred :sally :becky])) #{1 2}))
rlm@10 39 (is (empty? (keys-to-vals map [])))
rlm@10 40 (is (empty? (keys-to-vals {} [:fred])))))
rlm@10 41
rlm@10 42 (deftest test-reverse-map
rlm@10 43 (let [map {:fred 1 :sally 2 :joey 3}
rlm@10 44 map-1 (assoc map :mary 3)]
rlm@10 45 (is (= (reverse-map map) {1 :fred 2 :sally 3 :joey}))
rlm@10 46 (is (or (= (reverse-map map-1) {1 :fred 2 :sally 3 :joey})
rlm@10 47 (= (reverse-map map-1) {1 :fred 2 :sally 3 :mary})))))
rlm@10 48
rlm@10 49 (def some-maps
rlm@10 50 [
rlm@10 51 { :a 1 :b 2 }
rlm@10 52 { :c 3 :b 3 }
rlm@10 53 { :d 4 :a 1 }
rlm@10 54 { :g 4 :b 4 }
rlm@10 55 { :a 2 :b 1 }
rlm@10 56 { :e 1 :f 1 }
rlm@10 57 ])
rlm@10 58
rlm@10 59 (def reduced (preduce + some-maps))
rlm@10 60 (def merged (apply merge-with + some-maps))
rlm@10 61
rlm@10 62 (deftest test-preduce
rlm@10 63 (is (= reduced merged)))
rlm@10 64
rlm@10 65 (comment
rlm@10 66 (run-tests)
rlm@10 67 )
rlm@10 68
rlm@10 69 ; End of file