This is an automated email from the ASF dual-hosted git repository.

reminisce pushed a commit to branch numpy_1_6_prs
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git

commit 6166778a587097e9a3ecc2d0e0880bba55f282c3
Author: JiangZhaoh <54654391+jiangzh...@users.noreply.github.com>
AuthorDate: Sat Oct 19 13:18:10 2019 +0800

    Numpy dispatch test (#16437)
    
    * vstack
    
    * zeros_like
    
    * zeros_like
    
    * vdot
    
    * stack
    
    * less
    
    * less
    
    * less_equal
    
    * greater and greater_equal
    
    * var
    
    * equal and not_equal
    
    * print test
    
    * try to test again
    
    * test without l le g ge e ne
    
    * test again
    
    * remove l le e ne g ge
    
    * remove float16
    
    * final submit
---
 python/mxnet/numpy_dispatch_protocol.py            |  8 ++++
 .../python/unittest/test_numpy_interoperability.py | 46 ++++++++++++++++++++++
 2 files changed, 54 insertions(+)

diff --git a/python/mxnet/numpy_dispatch_protocol.py 
b/python/mxnet/numpy_dispatch_protocol.py
index a241d26..8fc9e2e 100644
--- a/python/mxnet/numpy_dispatch_protocol.py
+++ b/python/mxnet/numpy_dispatch_protocol.py
@@ -112,6 +112,8 @@ _NUMPY_ARRAY_FUNCTION_LIST = [
     'tile',
     'transpose',
     'var',
+    'vdot',
+    'vstack',
     'zeros_like',
     'meshgrid',
     'outer',
@@ -162,6 +164,10 @@ def _register_array_function():
 # https://docs.scipy.org/doc/numpy/reference/ufuncs.html#available-ufuncs
 _NUMPY_ARRAY_UFUNC_LIST = [
     'add',
+    #'equal',
+    #'not_equal',
+    #'greater',
+    #'greater_equal',
     'subtract',
     'multiply',
     # Uncomment divide when mxnet.numpy.true_divide is added
@@ -173,6 +179,8 @@ _NUMPY_ARRAY_UFUNC_LIST = [
     'rint',
     'sign',
     'exp',
+    #'less',
+    #'less_equal',
     'log',
     'log2',
     'log10',
diff --git a/tests/python/unittest/test_numpy_interoperability.py 
b/tests/python/unittest/test_numpy_interoperability.py
index f22d42b..50a1507 100644
--- a/tests/python/unittest/test_numpy_interoperability.py
+++ b/tests/python/unittest/test_numpy_interoperability.py
@@ -223,6 +223,13 @@ def _prepare_workloads():
     OpArgMngr.add_workload('split', array_pool['4x1'], 2)
     OpArgMngr.add_workload('squeeze', array_pool['4x1'])
     OpArgMngr.add_workload('stack', [array_pool['4x1']] * 2)
+    OpArgMngr.add_workload('stack', [array_pool['4x1']] * 2, 1)
+    OpArgMngr.add_workload('stack', [array_pool['4x1']] * 2, -1)
+    OpArgMngr.add_workload('stack', [array_pool['4x1']] * 2, -2)
+    OpArgMngr.add_workload('stack', np.random.normal(size=(2, 4, 3)), 2)
+    OpArgMngr.add_workload('stack', np.random.normal(size=(2, 4, 3)), -3)
+    OpArgMngr.add_workload('stack', np.array([[], [], []]), 1)
+    OpArgMngr.add_workload('stack', np.array([[], [], []]))
     OpArgMngr.add_workload('std', array_pool['4x1'])
     OpArgMngr.add_workload('sum', array_pool['4x1'])
     OpArgMngr.add_workload('swapaxes', array_pool['4x1'], 0, 1)
@@ -231,7 +238,24 @@ def _prepare_workloads():
     OpArgMngr.add_workload('tile', np.array([[[]]]), (3, 2, 5))
     OpArgMngr.add_workload('transpose', array_pool['4x1'])
     OpArgMngr.add_workload('var', array_pool['4x1'])
+    OpArgMngr.add_workload('var', np.array([np.float16(1.)]))
+    OpArgMngr.add_workload('var', np.array([1]))
+    OpArgMngr.add_workload('var', np.array([1.]))
+    OpArgMngr.add_workload('var', np.array([[1, 2, 3], [4, 5, 6]]))
+    OpArgMngr.add_workload('var', np.array([[1, 2, 3], [4, 5, 6]]), 0)
+    OpArgMngr.add_workload('var', np.array([[1, 2, 3], [4, 5, 6]]), 1)
+    OpArgMngr.add_workload('var', np.array([np.nan]))
+    OpArgMngr.add_workload('var', np.array([1, -1, 1, -1]))
+    OpArgMngr.add_workload('var', np.array([1,2,3,4], dtype='f8'))
+    OpArgMngr.add_workload('vdot', np.random.normal(size=(2, 4)), 
np.random.normal(size=(4, 2)))
+    OpArgMngr.add_workload('vdot', np.random.normal(size=(2, 
4)).astype(np.float64), np.random.normal(size=(2, 4)).astype(np.float64))
+    OpArgMngr.add_workload('vstack', (array_pool['4x1'], 
np.random.uniform(size=(5, 1))))
+    OpArgMngr.add_workload('vstack', array_pool['4x1'])
+    OpArgMngr.add_workload('vstack', array_pool['1x1x0'])
     OpArgMngr.add_workload('zeros_like', array_pool['4x1'])
+    OpArgMngr.add_workload('zeros_like', np.random.uniform(size=(3, 
3)).astype(np.float64))
+    OpArgMngr.add_workload('zeros_like', np.random.uniform(size=(3, 
3)).astype(np.float32))
+    OpArgMngr.add_workload('zeros_like', np.random.randint(2, size = (3, 3)))
     OpArgMngr.add_workload('outer', np.ones((5)), np.ones((2)))
     OpArgMngr.add_workload('meshgrid', np.array([1, 2, 3]))
     OpArgMngr.add_workload('meshgrid', np.array([1, 2, 3]), np.array([4, 5, 6, 
7]))
@@ -243,6 +267,20 @@ def _prepare_workloads():
     OpArgMngr.add_workload('add', array_pool['4x1'], 2)
     OpArgMngr.add_workload('add', 2, array_pool['4x1'])
     OpArgMngr.add_workload('add', array_pool['4x1'], array_pool['1x1x0'])
+    """
+    OpArgMngr.add_workload('equal', np.array([0, 1, 2, 4, 2], 
dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16))
+    OpArgMngr.add_workload('equal', np.array([np.nan]), np.array([np.nan]))
+    OpArgMngr.add_workload('equal', array_pool['4x1'], array_pool['1x2'])
+    OpArgMngr.add_workload('not_equal', np.array([0, 1, 2, 4, 2], 
dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16))
+    OpArgMngr.add_workload('not_equal', np.array([np.nan]), np.array([np.nan]))
+    OpArgMngr.add_workload('not_equal', array_pool['4x1'], array_pool['1x2'])
+    OpArgMngr.add_workload('greater', np.array([0, 1, 2, 4, 2], 
dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16))
+    OpArgMngr.add_workload('greater', array_pool['4x1'], array_pool['1x2'])
+    OpArgMngr.add_workload('greater', np.array([np.nan]), np.array([np.nan]))
+    OpArgMngr.add_workload('greater_equal', np.array([0, 1, 2, 4, 2], 
dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16))
+    OpArgMngr.add_workload('greater_equal', array_pool['4x1'], 
array_pool['1x2'])
+    OpArgMngr.add_workload('greater_equal', np.array([np.nan]), 
np.array([np.nan]))
+    """
     OpArgMngr.add_workload('subtract', array_pool['4x1'], array_pool['1x2'])
     OpArgMngr.add_workload('subtract', array_pool['4x1'], 2)
     OpArgMngr.add_workload('subtract', 2, array_pool['4x1'])
@@ -337,6 +375,14 @@ def _prepare_workloads():
     # OpArgMngr.add_workload('sign', np.array(_np.array([_np.nan]))) # failed
 
     OpArgMngr.add_workload('exp', array_pool['4x1'])
+    """
+    OpArgMngr.add_workload('less', np.array([0, 1, 2, 4, 2], 
dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16))
+    OpArgMngr.add_workload('less', array_pool['4x1'], array_pool['1x2'])
+    OpArgMngr.add_workload('less', np.array([np.nan]), np.array([np.nan]))
+    OpArgMngr.add_workload('less_equal', np.array([0, 1, 2, 4, 2], 
dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16))
+    OpArgMngr.add_workload('less_equal', array_pool['4x1'], array_pool['1x2'])
+    OpArgMngr.add_workload('less_equal', np.array([np.nan]), 
np.array([np.nan]))
+    """
     OpArgMngr.add_workload('log', array_pool['4x1'])
     OpArgMngr.add_workload('log2', array_pool['4x1'])
     OpArgMngr.add_workload('log2', np.array(2.**65))

Reply via email to