46 lines
2.0 KiB
Clojure
Vendored
46 lines
2.0 KiB
Clojure
Vendored
(ns tech.v3.dataset.infer-test
|
|
(:require [tech.v3.dataset :as ds]
|
|
[tech.v3.datatype :as dtype]
|
|
[tech.v3.datatype.functional :as dfn]
|
|
[tech.v3.datatype.bitmap :as bitmap]
|
|
[clojure.test :refer [deftest is]]))
|
|
|
|
|
|
(deftest simple-inference
|
|
(letfn [(inferred-equals [lhs rhs]
|
|
(let [test-col (-> (ds/->dataset [])
|
|
(assoc :testdata lhs)
|
|
(:testdata))]
|
|
(is (= (dtype/elemwise-datatype test-col)
|
|
(dtype/elemwise-datatype rhs)))
|
|
(is (every? identity (dfn/eq test-col rhs)) (vec lhs))))]
|
|
(inferred-equals [true false true false] (boolean-array [true false true false]))
|
|
(inferred-equals (list 0 Double/NaN 1.0) (double-array [0.0 Double/NaN 1.0]))
|
|
(inferred-equals #:tech.v3.dataset{:data [1 2 3 nil 4]
|
|
:force-datatype? true}
|
|
[1 2 3 nil 4])
|
|
(inferred-equals (list 0 Double/NaN 1.0 nil nil)
|
|
(double-array [0.0 Double/NaN 1.0 Double/NaN Double/NaN]))
|
|
(is (= #{2 4}
|
|
(set (ds/missing (-> (ds/->dataset [])
|
|
(assoc :test-data [1 2 nil 3 nil]))))))
|
|
(is (= #{2 4}
|
|
(set (ds/missing
|
|
(-> (ds/->dataset [])
|
|
(assoc :test-data #:tech.v3.dataset{:data [1 2 nil 3 nil]
|
|
:force-datatype? true}))))))
|
|
(is
|
|
(= #{}
|
|
(set (ds/missing
|
|
(-> (ds/->dataset [])
|
|
(assoc :test-data #:tech.v3.dataset{:data [1 2 nil 3 nil]
|
|
:force-datatype? true
|
|
:missing (bitmap/->bitmap)}))))))
|
|
(is
|
|
(= #{}
|
|
(set (ds/missing
|
|
(-> (ds/->dataset [])
|
|
(assoc :test-data #:tech.v3.dataset{:data [1 2 nil 3 nil]
|
|
:missing (bitmap/->bitmap)}))))))
|
|
))
|