Extract tests are failing because the indexes aren't as expected
I *think* the code is right an the tests are wrong, but I'm too unwell/tired to verify that just now.
This commit is contained in:
parent
958413d2e3
commit
551fd00292
4 changed files with 177 additions and 6 deletions
94
test/sparse_array/extract_test.clj
Normal file
94
test/sparse_array/extract_test.clj
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
(ns sparse-array.extract-test
|
||||
(:require [clojure.test :refer :all]
|
||||
[sparse-array.core :refer [dense-to-sparse get]]
|
||||
[sparse-array.extract :refer :all]))
|
||||
|
||||
|
||||
(deftest sparse-tests
|
||||
(testing "extraction from sparse array"
|
||||
(let [dense [[[1 2 3][:one :two :three]["one" "two" "three"]]
|
||||
[[1 :two "three"]["one" 2 :three][:one "two" 3]]
|
||||
[[1.0 2.0 3.0][2/2 4/2 6/2]["I" "II" "III"]]]
|
||||
sparse (dense-to-sparse dense '(:a :b :c))
|
||||
integers (extract sparse integer?)
|
||||
strings (extract sparse string?)
|
||||
keywords (extract sparse keyword?)
|
||||
threes (extract sparse #(if
|
||||
(number? %)
|
||||
(= % 3)
|
||||
(= (name %) "three")))]
|
||||
(map
|
||||
#(let [expected nil
|
||||
actual (get (extract sparse map?) %1 %2 %3)]
|
||||
(is (= actual expected) "there are no cells of which `map?` is true"))
|
||||
(range 3)
|
||||
(range 3)
|
||||
(range 3))
|
||||
(let [expected 1
|
||||
actual (get integers 0 0 0)]
|
||||
(is (= actual expected)))
|
||||
(let [expected nil
|
||||
actual (get keywords 0 0 0)]
|
||||
(is (= actual expected)))
|
||||
(let [expected nil
|
||||
actual (get strings 0 0 0)]
|
||||
(is (= actual expected)))
|
||||
(let [expected nil
|
||||
actual (get threes 0 0 0)]
|
||||
(is (= actual expected)))
|
||||
(let [expected 1
|
||||
actual (get integers 0 0 2)]
|
||||
(is (= actual expected)))
|
||||
(let [expected nil
|
||||
actual (get keywords 0 0 2)]
|
||||
(is (= actual expected)))
|
||||
(let [expected "three"
|
||||
actual (get strings 0 0 2)]
|
||||
(is (= actual expected)))
|
||||
(let [expected "three"
|
||||
actual (get threes 0 0 2)]
|
||||
(is (= actual expected))))))
|
||||
|
||||
(deftest dense-tests
|
||||
(testing "extraction from dense array"
|
||||
(let [dense [[[1 2 3][:one :two :three]["one" "two" "three"]]
|
||||
[[1 :two "three"]["one" 2 :three][:one "two" 3]]
|
||||
[[1.0 2.0 3.0][2/2 4/2 6/2]["I" "II" "III"]]]
|
||||
integers (extract dense integer?)
|
||||
strings (extract dense string?)
|
||||
keywords (extract dense keyword?)
|
||||
threes (extract dense #(if
|
||||
(number? %)
|
||||
(= % 3)
|
||||
(= (name %) "three")))]
|
||||
(map
|
||||
#(let [expected nil
|
||||
actual (get (extract dense map?) %1 %2 %3)]
|
||||
(is (= actual expected) "there are no cells of which `map?` is true"))
|
||||
(range 3)
|
||||
(range 3)
|
||||
(range 3))
|
||||
(let [expected 1
|
||||
actual (get integers 0 0 0)]
|
||||
(is (= actual expected)))
|
||||
(let [expected nil
|
||||
actual (get keywords 0 0 0)]
|
||||
(is (= actual expected)))
|
||||
(let [expected nil
|
||||
actual (get strings 0 0 0)]
|
||||
(is (= actual expected)))
|
||||
(let [expected nil
|
||||
actual (get threes 0 0 0)]
|
||||
(is (= actual expected)))
|
||||
(let [expected 1
|
||||
actual (get integers 0 0 2)]
|
||||
(is (= actual expected)))
|
||||
(let [expected nil
|
||||
actual (get keywords 0 0 2)]
|
||||
(is (= actual expected)))
|
||||
(let [expected "three"
|
||||
actual (get strings 0 0 2)]
|
||||
(is (= actual expected)))
|
||||
(let [expected "three"
|
||||
actual (get threes 0 0 2)]
|
||||
(is (= actual expected))))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue