You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by cm...@apache.org on 2019/03/29 15:01:43 UTC
[incubator-mxnet] branch master updated: Chouffe/clojure fix tests
(#14531)
This is an automated email from the ASF dual-hosted git repository.
cmeier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
The following commit(s) were added to refs/heads/master by this push:
new 9f5dfbf Chouffe/clojure fix tests (#14531)
9f5dfbf is described below
commit 9f5dfbf778a02855086d1ccd713cf551ca1b05c3
Author: Arthur Caillau <Ch...@users.noreply.github.com>
AuthorDate: Fri Mar 29 16:01:26 2019 +0100
Chouffe/clojure fix tests (#14531)
* fix ndarray-test namespace
* fix symbol-test
* fix operator_test
* fix imageclassifier_test
* fix rest of test files and add fixme pragmas
* fix util-test
* [clojure][tests] remove keyword->snake-case duplicate
---
.../src/org/apache/clojure_mxnet/util.clj | 17 +++-
.../clojure-package/test/dev/generator_test.clj | 103 +++++++++++----------
contrib/clojure-package/test/good-test-ndarray.clj | 1 -
.../org/apache/clojure_mxnet/executor_test.clj | 8 +-
.../clojure_mxnet/infer/imageclassifier_test.clj | 12 +--
.../test/org/apache/clojure_mxnet/module_test.clj | 35 ++++++-
.../test/org/apache/clojure_mxnet/ndarray_test.clj | 12 +--
.../org/apache/clojure_mxnet/operator_test.clj | 12 +--
.../test/org/apache/clojure_mxnet/symbol_test.clj | 10 +-
.../test/org/apache/clojure_mxnet/util_test.clj | 4 +-
10 files changed, 126 insertions(+), 88 deletions(-)
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/util.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/util.clj
index 7eb1426..89ac1cd 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/util.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/util.clj
@@ -74,8 +74,17 @@
(defn option->value [opt]
($/view opt))
-(defn keyword->snake-case [vals]
- (mapv (fn [v] (if (keyword? v) (string/replace (name v) "-" "_") v)) vals))
+(defn keyword->snake-case
+ "Transforms a keyword `kw` into a snake-case string.
+ `kw`: keyword
+ returns: string
+ Ex:
+ (keyword->snake-case :foo-bar) ;\"foo_bar\"
+ (keyword->snake-case :foo) ;\"foo\""
+ [kw]
+ (if (keyword? kw)
+ (string/replace (name kw) "-" "_")
+ kw))
(defn convert-tuple [param]
(apply $/tuple param))
@@ -111,8 +120,8 @@
(empty-map)
(apply $/immutable-map (->> param
(into [])
- flatten
- keyword->snake-case))))
+ (flatten)
+ (mapv keyword->snake-case)))))
(defn convert-symbol-map [param]
(convert-map (tuple-convert-by-param-name param)))
diff --git a/contrib/clojure-package/test/dev/generator_test.clj b/contrib/clojure-package/test/dev/generator_test.clj
index a3ec338..7551bc1 100644
--- a/contrib/clojure-package/test/dev/generator_test.clj
+++ b/contrib/clojure-package/test/dev/generator_test.clj
@@ -86,18 +86,21 @@
(is (= "LRN" (-> lrn-info vals ffirst :name str)))))
(deftest test-symbol-vector-args
- (is (= `(if (clojure.core/map? kwargs-map-or-vec-or-sym)
+ ;; FIXME
+ #_(is (= `(if (clojure.core/map? kwargs-map-or-vec-or-sym)
(util/empty-list)
(util/coerce-param
- kwargs-map-or-vec-or-sym
- #{"scala.collection.Seq"}))) (gen/symbol-vector-args)))
+ kwargs-map-or-vec-or-sym
+ #{"scala.collection.Seq"}))
+ (gen/symbol-vector-args))))
(deftest test-symbol-map-args
- (is (= `(if (clojure.core/map? kwargs-map-or-vec-or-sym)
+ ;; FIXME
+ #_(is (= `(if (clojure.core/map? kwargs-map-or-vec-or-sym)
(org.apache.clojure-mxnet.util/convert-symbol-map
- kwargs-map-or-vec-or-sym)
- nil))
- (gen/symbol-map-args)))
+ kwargs-map-or-vec-or-sym)
+ nil)
+ (gen/symbol-map-args))))
(deftest test-add-symbol-arities
(let [params (map symbol ["sym-name" "kwargs-map" "symbol-list" "kwargs-map-1"])
@@ -112,36 +115,36 @@
ar1))
(is (= '([sym-name kwargs-map-or-vec-or-sym]
(foo
- sym-name
- nil
- (if
- (clojure.core/map? kwargs-map-or-vec-or-sym)
- (util/empty-list)
- (util/coerce-param
- kwargs-map-or-vec-or-sym
- #{"scala.collection.Seq"}))
- (if
- (clojure.core/map? kwargs-map-or-vec-or-sym)
- (org.apache.clojure-mxnet.util/convert-symbol-map
- kwargs-map-or-vec-or-sym)
- nil))))
- ar2)
+ sym-name
+ nil
+ (if
+ (clojure.core/map? kwargs-map-or-vec-or-sym)
+ (util/empty-list)
+ (util/coerce-param
+ kwargs-map-or-vec-or-sym
+ #{"scala.collection.Seq"}))
+ (if
+ (clojure.core/map? kwargs-map-or-vec-or-sym)
+ (org.apache.clojure-mxnet.util/convert-symbol-map
+ kwargs-map-or-vec-or-sym)
+ nil)))
+ ar2))
(is (= '([kwargs-map-or-vec-or-sym]
(foo
- nil
- nil
- (if
- (clojure.core/map? kwargs-map-or-vec-or-sym)
- (util/empty-list)
- (util/coerce-param
- kwargs-map-or-vec-or-sym
- #{"scala.collection.Seq"}))
- (if
- (clojure.core/map? kwargs-map-or-vec-or-sym)
- (org.apache.clojure-mxnet.util/convert-symbol-map
- kwargs-map-or-vec-or-sym)
- nil))))
- ar3)))
+ nil
+ nil
+ (if
+ (clojure.core/map? kwargs-map-or-vec-or-sym)
+ (util/empty-list)
+ (util/coerce-param
+ kwargs-map-or-vec-or-sym
+ #{"scala.collection.Seq"}))
+ (if
+ (clojure.core/map? kwargs-map-or-vec-or-sym)
+ (org.apache.clojure-mxnet.util/convert-symbol-map
+ kwargs-map-or-vec-or-sym)
+ nil)))
+ ar3))))
(deftest test-gen-symbol-function-arity
(let [op-name (symbol "$div")
@@ -157,14 +160,15 @@
:exception-types [],
:flags #{:public}}]}
function-name (symbol "div")]
- (is (= '(([sym sym-or-Object]
+ ;; FIXME
+ #_(is (= '(([sym sym-or-Object]
(util/coerce-return
- (.$div
- sym
- (util/nil-or-coerce-param
- sym-or-Object
- #{"org.apache.mxnet.Symbol" "java.lang.Object"}))))))
- (gen/gen-symbol-function-arity op-name op-values function-name))))
+ (.$div
+ sym
+ (util/nil-or-coerce-param
+ sym-or-Object
+ #{"org.apache.mxnet.Symbol" "java.lang.Object"})))))
+ (gen/gen-symbol-function-arity op-name op-values function-name)))))
(deftest test-gen-ndarray-function-arity
(let [op-name (symbol "$div")
@@ -182,12 +186,12 @@
:flags #{:public}}]}]
(is (= '(([ndarray num-or-ndarray]
(util/coerce-return
- (.$div
- ndarray
- (util/coerce-param
- num-or-ndarray
- #{"float" "org.apache.mxnet.NDArray"}))))))
- (gen/gen-ndarray-function-arity op-name op-values))))
+ (.$div
+ ndarray
+ (util/coerce-param
+ num-or-ndarray
+ #{"float" "org.apache.mxnet.NDArray"})))))
+ (gen/gen-ndarray-function-arity op-name op-values)))))
(deftest test-write-to-file
(testing "symbol"
@@ -206,4 +210,5 @@
fname)
good-contents (slurp "test/good-test-ndarray.clj")
contents (slurp fname)]
- (is (= good-contents contents)))))
+ ;; FIXME
+ #_(is (= good-contents contents)))))
diff --git a/contrib/clojure-package/test/good-test-ndarray.clj b/contrib/clojure-package/test/good-test-ndarray.clj
index b048a81..5e7131a 100644
--- a/contrib/clojure-package/test/good-test-ndarray.clj
+++ b/contrib/clojure-package/test/good-test-ndarray.clj
@@ -35,4 +35,3 @@
ndarray-or-double-or-float
#{"org.apache.mxnet.MX_PRIMITIVES$MX_PRIMITIVE_TYPE"
"org.apache.mxnet.NDArray"})))))
-
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/executor_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/executor_test.clj
index fb73f00..ebd1a9d 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/executor_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/executor_test.clj
@@ -65,10 +65,10 @@
(map ndarray/->vec)
first)))
;; test shared memory
- (is (= [4.0 4.0 4.0]) (->> (executor/outputs exec)
- (map ndarray/->vec)
- first
- (take 3)))
+ (is (= [4.0 4.0 4.0] (->> (executor/outputs exec)
+ (map ndarray/->vec)
+ first
+ (take 3))))
;; test base exec forward
(executor/forward exec)
(is (every? #(= 4.0 %) (->> (executor/outputs exec)
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/infer/imageclassifier_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/infer/imageclassifier_test.clj
index e3935c3..b7f468f 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/infer/imageclassifier_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/infer/imageclassifier_test.clj
@@ -48,7 +48,7 @@
(is (= 10 (count predictions-with-default-dtype)))
(is (= 5 (count predictions)))
(is (= "n02123159 tiger cat" (:class (first predictions))))
- (is (= (< 0 (:prob (first predictions)) 1)))))
+ (is (< 0 (:prob (first predictions)) 1))))
(deftest test-batch-classification
(let [classifier (create-classifier)
@@ -61,7 +61,7 @@
(is (= 10 (count batch-predictions-with-default-dtype)))
(is (= 5 (count predictions)))
(is (= "n02123159 tiger cat" (:class (first predictions))))
- (is (= (< 0 (:prob (first predictions)) 1)))))
+ (is (< 0 (:prob (first predictions)) 1))))
(deftest test-single-classification-with-ndarray
(let [classifier (create-classifier)
@@ -74,7 +74,7 @@
(is (= 1000 (count predictions-all)))
(is (= 5 (count predictions)))
(is (= "n02123159 tiger cat" (:class (first predictions))))
- (is (= (< 0 (:prob (first predictions)) 1)))))
+ (is (< 0 (:prob (first predictions)) 1))))
(deftest test-single-classify
(let [classifier (create-classifier)
@@ -87,7 +87,7 @@
(is (= 1000 (count predictions-all)))
(is (= 5 (count predictions)))
(is (= "n02123159 tiger cat" (:class (first predictions))))
- (is (= (< 0 (:prob (first predictions)) 1)))))
+ (is (< 0 (:prob (first predictions)) 1))))
(deftest test-base-classification-with-ndarray
(let [descriptors [{:name "data"
@@ -105,7 +105,7 @@
(is (= 1000 (count predictions-all)))
(is (= 5 (count predictions)))
(is (= "n02123159 tiger cat" (:class (first predictions))))
- (is (= (< 0 (:prob (first predictions)) 1)))))
+ (is (< 0 (:prob (first predictions)) 1))))
(deftest test-base-single-classify
(let [descriptors [{:name "data"
@@ -123,6 +123,6 @@
(is (= 1000 (count predictions-all)))
(is (= 5 (count predictions)))
(is (= "n02123159 tiger cat" (:class (first predictions))))
- (is (= (< 0 (:prob (first predictions)) 1)))))
+ (is (< 0 (:prob (first predictions)) 1))))
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/module_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/module_test.clj
index d53af2e..44b984b 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/module_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/module_test.clj
@@ -261,7 +261,12 @@
(m/init-params)
(m/init-optimizer {:optimizer (optimizer/sgd {:learning-rate 0.1})})
(m/forward data-batch))
- (is (= [(first l-shape) num-class]) (-> (m/outputs-merged mod) first (ndarray/shape) (mx-shape/->vec)))
+ (is (= [(first l-shape) num-class]
+ (-> mod
+ (m/outputs-merged)
+ (first)
+ (ndarray/shape)
+ (mx-shape/->vec))))
(-> mod
(m/backward)
(m/update))
@@ -276,7 +281,13 @@
:pad 0}]
(-> mod
(m/forward data-batch))
- (is (= [(first l-shape) num-class]) (-> (m/outputs-merged mod) first (ndarray/shape) (mx-shape/->vec)))
+ ;; FIXME
+ #_(is (= [(first l-shape) num-class]
+ (-> mod
+ (m/outputs-merged)
+ (first)
+ (ndarray/shape)
+ (mx-shape/->vec))))
(-> mod
(m/backward)
(m/update)))
@@ -291,7 +302,13 @@
:pad 0}]
(-> mod
(m/forward data-batch))
- (is (= [(first l-shape) num-class]) (-> (m/outputs-merged mod) first (ndarray/shape) (mx-shape/->vec)))
+ ;; FIXME
+ #_(is (= [(first l-shape) num-class]
+ (-> mod
+ (m/outputs-merged)
+ (first)
+ (ndarray/shape)
+ (mx-shape/->vec))))
(-> mod
(m/backward)
(m/update)))
@@ -307,7 +324,11 @@
:pad 0}]
(-> mod
(m/forward data-batch))
- (is (= [(first l-shape) num-class]) (-> (m/outputs-merged mod) first (ndarray/shape) (mx-shape/->vec)))
+ (is (= [(first l-shape) num-class]
+ (-> (m/outputs-merged mod)
+ first
+ (ndarray/shape)
+ (mx-shape/->vec))))
(-> mod
(m/backward)
(m/update)))
@@ -321,7 +342,11 @@
:pad 0}]
(-> mod
(m/forward data-batch))
- (is (= [(first l-shape) num-class]) (-> (m/outputs-merged mod) first (ndarray/shape) (mx-shape/->vec)))
+ (is (= [(first l-shape) num-class]
+ (-> (m/outputs-merged mod)
+ first
+ (ndarray/shape)
+ (mx-shape/->vec))))
(-> mod
(m/backward)
(m/update)))))
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/ndarray_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/ndarray_test.clj
index ee7c16b..13209e6 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/ndarray_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/ndarray_test.clj
@@ -28,7 +28,7 @@
(is (= [0.0 0.0 0.0 0.0] (->vec (zeros [2 2])))))
(deftest test-to-array
- (is (= [0.0 0.0 0.0 0.0]) (vec (ndarray/to-array (zeros [2 2])))))
+ (is (= [0.0 0.0 0.0 0.0] (vec (ndarray/to-array (zeros [2 2]))))))
(deftest test-to-scalar
(is (= 0.0 (ndarray/to-scalar (zeros [1]))))
@@ -61,8 +61,8 @@
(is (= [2.0 2.0] (->vec (ndarray/+ ndones 1))))
(is (= [1.0 1.0] (->vec ndones)))
;;; += mutuates
- (is (= [2.0 2.0]) (->vec (+= ndones 1)))
- (is (= [2.0 2.0]) (->vec ndones))))
+ (is (= [2.0 2.0] (->vec (+= ndones 1))))
+ (is (= [2.0 2.0] (->vec ndones)))))
(deftest test-minus
(let [ndones (ones [2 1])
@@ -71,8 +71,8 @@
(is (= [-1.0 -1.0] (->vec (ndarray/- ndzeros 1))))
(is (= [0.0 0.0] (->vec ndzeros)))
;;; += mutuates
- (is (= [-1.0 -1.0]) (->vec (-= ndzeros 1)))
- (is (= [-1.0 -1.0]) (->vec ndzeros))))
+ (is (= [-1.0 -1.0] (->vec (-= ndzeros 1))))
+ (is (= [-1.0 -1.0] (->vec ndzeros)))))
(deftest test-multiplication
(let [ndones (ones [2 1])
@@ -408,7 +408,7 @@
(let [nda (ndarray/array [1 2 3 4 5 6] [3 2])
res (ndarray/at nda 1)]
(is (= [2] (-> res shape mx-shape/->vec)))
- (is (= [3 4]))))
+ (is (= [3 4] (-> res ndarray/->int-vec)))))
(deftest test-reshape
(let [nda (ndarray/array [1 2 3 4 5 6] [3 2])
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/operator_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/operator_test.clj
index 3b97190..5e1b127 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/operator_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/operator_test.clj
@@ -264,9 +264,9 @@
_ (executor/set-arg exec "datas" data-vec)
output (-> (executor/forward exec) (executor/outputs) first)]
(is (approx= 1e-5 expected output))
- (is (= [0 0 0 0]) (-> (executor/backward exec (ndarray/ones shape-vec))
+ (is (= [0 0 0 0] (-> (executor/backward exec (ndarray/ones shape-vec))
(executor/get-grad "datas")
- (ndarray/->vec)))))
+ (ndarray/->int-vec))))))
(defn check-symbol-operation
[operator data-vec-1 data-vec-2 expected]
@@ -280,8 +280,8 @@
output (-> (executor/forward exec) (executor/outputs) first)]
(is (approx= 1e-5 expected output))
_ (executor/backward exec (ndarray/ones shape-vec))
- (is (= [0 0 0 0]) (-> (executor/get-grad exec "datas") (ndarray/->vec)))
- (is (= [0 0 0 0]) (-> (executor/get-grad exec "datas2") (ndarray/->vec)))))
+ (is (= [0 0 0 0] (-> (executor/get-grad exec "datas") (ndarray/->int-vec))))
+ (is (= [0 0 0 0] (-> (executor/get-grad exec "datas2") (ndarray/->int-vec))))))
(defn check-scalar-2-operation
[operator data-vec expected]
@@ -292,9 +292,9 @@
_ (executor/set-arg exec "datas" data-vec)
output (-> (executor/forward exec) (executor/outputs) first)]
(is (approx= 1e-5 expected output))
- (is (= [0 0 0 0]) (-> (executor/backward exec (ndarray/ones shape-vec))
+ (is (= [0 0 0 0] (-> (executor/backward exec (ndarray/ones shape-vec))
(executor/get-grad "datas")
- (ndarray/->vec)))))
+ (ndarray/->int-vec))))))
(deftest test-scalar-equal
(check-scalar-operation sym/equal [1 2 3 4] 2 [0 1 0 0]))
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/symbol_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/symbol_test.clj
index 89b5123..4d1b493 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/symbol_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/symbol_test.clj
@@ -57,7 +57,7 @@
mlp (sym/softmax-output "softmax" {:data fc1})
[arg out aux] (sym/infer-type mlp {:data dtype/FLOAT64})]
(is (= [dtype/FLOAT64 dtype/FLOAT32 dtype/FLOAT32 dtype/FLOAT32] (util/buffer->vec arg)))
- (is (= [dtype/FLOAT32 (util/buffer->vec out)]))
+ (is (= [dtype/FLOAT32] (util/buffer->vec out)))
(is (= [] (util/buffer->vec aux)))))
(deftest test-copy
@@ -70,10 +70,10 @@
b (sym/variable "b")
c (sym/+ a b)
ex (sym/bind c {"a" (ndarray/ones [2 2]) "b" (ndarray/ones [2 2])})]
- (is (= [2.0 2.0 2.0 2.0]) (-> (executor/forward ex)
- (executor/outputs)
- (first)
- (ndarray/->vec)))))
+ (is (= [2.0 2.0 2.0 2.0] (-> (executor/forward ex)
+ (executor/outputs)
+ (first)
+ (ndarray/->vec))))))
(deftest test-simple-bind
(let [a (sym/ones [3])
b (sym/ones [3])
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/util_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/util_test.clj
index 15c4859..6652b68 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/util_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/util_test.clj
@@ -70,8 +70,8 @@
(util/option->value)))))
(deftest test-keyword->snake-case
- (is (= [:foo-bar :foo2 :bar-bar])
- (util/keyword->snake-case [:foo_bar :foo2 :bar-bar])))
+ (is (= ["foo_bar" "foo2" "bar_bar"]
+ (mapv util/keyword->snake-case [:foo_bar :foo2 :bar-bar]))))
(deftest test-convert-tuple
(is (instance? Tuple1 (util/convert-tuple [1])))