31 lines
1.5 KiB
Clojure
Vendored
31 lines
1.5 KiB
Clojure
Vendored
(ns tech.v3.dataset.update-columns-test
|
|
(:require [tech.v3.dataset :as ds]
|
|
[tech.v3.dataset.column-filters :as cf]
|
|
[tech.v3.datatype.functional :as dfn]
|
|
[clojure.test :refer [deftest is]]))
|
|
|
|
(deftest update-columns-selector-fn
|
|
(let [ds (ds/->dataset {:a [1. 2. 3. 4.]
|
|
:b [5 6 7 8]
|
|
:c ["A" "B" "C" "D"]})
|
|
ds' (-> ds
|
|
(ds/update-columns cf/numeric
|
|
#(dfn// (dfn/- % (dfn/mean %))
|
|
(dfn/standard-deviation %)))
|
|
)]
|
|
(is (> 0.001 (Math/abs (reduce + (map - [-1.16189 -0.38729 0.38729 1.16189] (vec (ds' :a)))))))
|
|
(is (> 0.001 (Math/abs (reduce + (map - [-1.16189 -0.38729 0.38729 1.16189] (vec (ds' :d)))))))
|
|
(is (= ["A" "B" "C" "D"] (vec (ds' :c)))))
|
|
|
|
(let [ds (ds/->dataset {:a [1. 2. 3. 4.]
|
|
:b [5 6 7 8]
|
|
:c ["A" "B" "C" "D"]})
|
|
ds' (as-> ds $
|
|
(ds/update-columns $ (ds/column-names (cf/numeric $))
|
|
#(dfn// (dfn/- % (dfn/mean %))
|
|
(dfn/standard-deviation %)))
|
|
)]
|
|
(is (> 0.001 (Math/abs (reduce + (map - [-1.16189 -0.38729 0.38729 1.16189] (vec (ds' :a)))))))
|
|
(is (> 0.001 (Math/abs (reduce + (map - [-1.16189 -0.38729 0.38729 1.16189] (vec (ds' :d)))))))
|
|
(is (= ["A" "B" "C" "D"] (vec (ds' :c))))))
|