From 6205f48994571977d18f8d693fcf4e6461558cd3 Mon Sep 17 00:00:00 2001
From: Nicolas Pinto <pinto@mit.edu>
Date: Sun, 3 Jul 2011 19:43:18 -0400
Subject: [PATCH] Cleaning up

---
 test/test_array.py | 212 +++++++++++++++------------------------------
 1 file changed, 68 insertions(+), 144 deletions(-)

diff --git a/test/test_array.py b/test/test_array.py
index e9cdf6a9..591b7e7e 100644
--- a/test/test_array.py
+++ b/test/test_array.py
@@ -5,8 +5,6 @@ import sys
 import pytools.test
 
 
-
-
 def have_cl():
     try:
         import pyopencl
@@ -22,36 +20,31 @@ if have_cl():
     from pyopencl.characterize import has_double_support
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_pow_array(ctx_getter):
     context = ctx_getter()
     queue = cl.CommandQueue(context)
 
-    a = np.array([1,2,3,4,5]).astype(np.float32)
+    a = np.array([1, 2, 3, 4, 5]).astype(np.float32)
     a_gpu = cl_array.to_device(queue, a)
 
-    result = pow(a_gpu,a_gpu).get()
-    assert (np.abs(a**a - result) < 1e-3).all()
+    result = pow(a_gpu, a_gpu).get()
+    assert (np.abs(a ** a - result) < 1e-3).all()
 
-    result = (a_gpu**a_gpu).get()
+    result = (a_gpu ** a_gpu).get()
     assert (np.abs(pow(a, a) - result) < 1e-3).all()
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_pow_number(ctx_getter):
     context = ctx_getter()
     queue = cl.CommandQueue(context)
 
-    a = np.array([1,2,3,4,5,6,7,8,9,10]).astype(np.float32)
+    a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.float32)
     a_gpu = cl_array.to_device(queue, a)
 
     result = pow(a_gpu, 2).get()
-    assert (np.abs(a**2 - result) < 1e-3).all()
-
+    assert (np.abs(a ** 2 - result) < 1e-3).all()
 
 
 @pytools.test.mark_test.opencl
@@ -69,7 +62,7 @@ def test_abs(ctx_getter):
 
     res = a.get()
 
-    for i in range (111):
+    for i in range(111):
         assert abs(res[i]) >= 0
         assert res[i] == i
 
@@ -79,13 +72,11 @@ def test_len(ctx_getter):
     context = ctx_getter()
     queue = cl.CommandQueue(context)
 
-    a = np.array([1,2,3,4,5,6,7,8,9,10]).astype(np.float32)
+    a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.float32)
     a_cpu = cl_array.to_device(queue, a)
     assert len(a_cpu) == 10
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_multiply(ctx_getter):
     """Test the muliplication of an array with a scalar. """
@@ -93,11 +84,9 @@ def test_multiply(ctx_getter):
     context = ctx_getter()
     queue = cl.CommandQueue(context)
 
-
     for sz in [10, 50000]:
         for dtype, scalars in [
             (np.float32, [2]),
-            #(np.complex64, [2, 2j])
             ]:
             for scalar in scalars:
                 a = np.arange(sz).astype(dtype)
@@ -106,6 +95,7 @@ def test_multiply(ctx_getter):
 
                 assert (a * scalar == a_doubled).all()
 
+
 @pytools.test.mark_test.opencl
 def test_multiply_array(ctx_getter):
     """Test the multiplication of two arrays."""
@@ -113,16 +103,14 @@ def test_multiply_array(ctx_getter):
     context = ctx_getter()
     queue = cl.CommandQueue(context)
 
-    a = np.array([1,2,3,4,5,6,7,8,9,10]).astype(np.float32)
+    a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.float32)
 
     a_gpu = cl_array.to_device(queue, a)
     b_gpu = cl_array.to_device(queue, a)
 
-    a_squared = (b_gpu*a_gpu).get()
-
-    assert (a*a == a_squared).all()
-
+    a_squared = (b_gpu * a_gpu).get()
 
+    assert (a * a == a_squared).all()
 
 
 @pytools.test.mark_test.opencl
@@ -132,13 +120,11 @@ def test_addition_array(ctx_getter):
     context = ctx_getter()
     queue = cl.CommandQueue(context)
 
-    a = np.array([1,2,3,4,5,6,7,8,9,10]).astype(np.float32)
+    a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.float32)
     a_gpu = cl_array.to_device(queue, a)
-    a_added = (a_gpu+a_gpu).get()
-
-    assert (a+a == a_added).all()
-
+    a_added = (a_gpu + a_gpu).get()
 
+    assert (a + a == a_added).all()
 
 
 @pytools.test.mark_test.opencl
@@ -148,21 +134,20 @@ def test_addition_scalar(ctx_getter):
     context = ctx_getter()
     queue = cl.CommandQueue(context)
 
-    a = np.array([1,2,3,4,5,6,7,8,9,10]).astype(np.float32)
+    a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.float32)
     a_gpu = cl_array.to_device(queue, a)
-    a_added = (7+a_gpu).get()
-
-    assert (7+a == a_added).all()
-
+    a_added = (7 + a_gpu).get()
 
+    assert (7 + a == a_added).all()
 
 
 @pytools.test.mark_test.opencl
 def test_substract_array(ctx_getter):
     """Test the substraction of two arrays."""
     #test data
-    a = np.array([1,2,3,4,5,6,7,8,9,10]).astype(np.float32)
-    b = np.array([10,20,30,40,50,60,70,80,90,100]).astype(np.float32)
+    a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.float32)
+    b = np.array([10, 20, 30, 40, 50,
+                  60, 70, 80, 90, 100]).astype(np.float32)
 
     context = ctx_getter()
     queue = cl.CommandQueue(context)
@@ -170,13 +155,11 @@ def test_substract_array(ctx_getter):
     a_gpu = cl_array.to_device(queue, a)
     b_gpu = cl_array.to_device(queue, b)
 
-    result = (a_gpu-b_gpu).get()
-    assert (a-b == result).all()
-
-    result = (b_gpu-a_gpu).get()
-    assert (b-a == result).all()
-
+    result = (a_gpu - b_gpu).get()
+    assert (a - b == result).all()
 
+    result = (b_gpu - a_gpu).get()
+    assert (b - a == result).all()
 
 
 @pytools.test.mark_test.opencl
@@ -187,18 +170,16 @@ def test_substract_scalar(ctx_getter):
     queue = cl.CommandQueue(context)
 
     #test data
-    a = np.array([1,2,3,4,5,6,7,8,9,10]).astype(np.float32)
+    a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.float32)
 
     #convert a to a gpu object
     a_gpu = cl_array.to_device(queue, a)
 
-    result = (a_gpu-7).get()
-    assert (a-7 == result).all()
-
-    result = (7-a_gpu).get()
-    assert (7-a == result).all()
-
+    result = (a_gpu - 7).get()
+    assert (a - 7 == result).all()
 
+    result = (7 - a_gpu).get()
+    assert (7 - a == result).all()
 
 
 @pytools.test.mark_test.opencl
@@ -208,16 +189,14 @@ def test_divide_scalar(ctx_getter):
     context = ctx_getter()
     queue = cl.CommandQueue(context)
 
-    a = np.array([1,2,3,4,5,6,7,8,9,10]).astype(np.float32)
+    a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.float32)
     a_gpu = cl_array.to_device(queue, a)
 
-    result = (a_gpu/2).get()
-    assert (a/2 == result).all()
-
-    result = (2/a_gpu).get()
-    assert (np.abs(2/a - result) < 1e-5).all()
-
+    result = (a_gpu / 2).get()
+    assert (a / 2 == result).all()
 
+    result = (2 / a_gpu).get()
+    assert (np.abs(2 / a - result) < 1e-5).all()
 
 
 @pytools.test.mark_test.opencl
@@ -228,19 +207,17 @@ def test_divide_array(ctx_getter):
     queue = cl.CommandQueue(context)
 
     #test data
-    a = np.array([10,20,30,40,50,60,70,80,90,100]).astype(np.float32)
-    b = np.array([10,10,10,10,10,10,10,10,10,10]).astype(np.float32)
+    a = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]).astype(np.float32)
+    b = np.array([10, 10, 10, 10, 10, 10, 10, 10, 10, 10]).astype(np.float32)
 
     a_gpu = cl_array.to_device(queue, a)
     b_gpu = cl_array.to_device(queue, b)
 
-    a_divide = (a_gpu/b_gpu).get()
-    assert (np.abs(a/b - a_divide) < 1e-3).all()
-
-    a_divide = (b_gpu/a_gpu).get()
-    assert (np.abs(b/a - a_divide) < 1e-3).all()
-
+    a_divide = (a_gpu / b_gpu).get()
+    assert (np.abs(a / b - a_divide) < 1e-3).all()
 
+    a_divide = (b_gpu / a_gpu).get()
+    assert (np.abs(b / a - a_divide) < 1e-3).all()
 
 
 @pytools.test.mark_test.opencl
@@ -262,8 +239,6 @@ def test_random(ctx_getter):
         assert (a < 1).all()
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_nan_arithmetic(ctx_getter):
     context = ctx_getter()
@@ -272,10 +247,8 @@ def test_nan_arithmetic(ctx_getter):
     def make_nan_contaminated_vector(size):
         shape = (size,)
         a = np.random.randn(*shape).astype(np.float32)
-        #for i in range(0, shape[0], 3):
-            #a[i] = float('nan')
         from random import randrange
-        for i in range(size//10):
+        for i in range(size // 10):
             a[randrange(0, size)] = float('nan')
         return a
 
@@ -286,14 +259,12 @@ def test_nan_arithmetic(ctx_getter):
     b = make_nan_contaminated_vector(size)
     b_gpu = cl_array.to_device(queue, b)
 
-    ab = a*b
-    ab_gpu = (a_gpu*b_gpu).get()
+    ab = a * b
+    ab_gpu = (a_gpu * b_gpu).get()
 
     assert (np.isnan(ab) == np.isnan(ab_gpu)).all()
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_elwise_kernel(ctx_getter):
     context = ctx_getter()
@@ -313,7 +284,7 @@ def test_elwise_kernel(ctx_getter):
     c_gpu = cl_array.empty_like(a_gpu)
     lin_comb(5, a_gpu, 6, b_gpu, c_gpu)
 
-    assert la.norm((c_gpu - (5*a_gpu+6*b_gpu)).get()) < 1e-5
+    assert la.norm((c_gpu - (5 * a_gpu + 6 * b_gpu)).get()) < 1e-5
 
 
 @pytools.test.mark_test.opencl
@@ -347,34 +318,6 @@ def test_elwise_kernel_with_options(ctx_getter):
     assert la.norm(gv - gt) < 1e-5
 
 
-@pytools.test.mark_test.opencl
-def test_elwise_kernel_with_options(ctx_getter):
-    context = ctx_getter()
-    queue = cl.CommandQueue(context)
-
-    from pyopencl.clrandom import rand as clrand
-
-    a_gpu = clrand(context, queue, (50,), np.float32)
-    b_gpu = clrand(context, queue, (50,), np.float32)
-
-    from pyopencl.elementwise import ElementwiseKernel
-
-    options = ['-DADD_ONE']
-    lin_comb = ElementwiseKernel(
-        context,
-        "float a, float *x, float b, float *y, float *z",
-        "z[i] = a*x[i] + b*y[i]",
-        "linear_combination",
-        options=options,
-        )
-
-    c_gpu = cl_array.empty_like(a_gpu)
-    lin_comb(5, a_gpu, 6, b_gpu, c_gpu)
-
-    assert la.norm((c_gpu - (5*a_gpu+6*b_gpu)).get()) < 1e-5
-
-
-
 @pytools.test.mark_test.opencl
 def test_take(ctx_getter):
     context = ctx_getter()
@@ -383,9 +326,7 @@ def test_take(ctx_getter):
     idx = cl_array.arange(queue, 0, 200000, 2, dtype=np.uint32)
     a = cl_array.arange(queue, 0, 600000, 3, dtype=np.float32)
     result = cl_array.take(a, idx)
-    assert ((3*idx).get() == result.get()).all()
-
-
+    assert ((3 * idx).get() == result.get()).all()
 
 
 @pytools.test.mark_test.opencl
@@ -398,8 +339,6 @@ def test_arange(ctx_getter):
     assert (np.arange(n, dtype=np.float32) == a.get()).all()
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_reverse(ctx_getter):
     context = ctx_getter()
@@ -414,8 +353,6 @@ def test_reverse(ctx_getter):
     assert (a[::-1] == a_gpu.get()).all()
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_sum(ctx_getter):
     context = ctx_getter()
@@ -429,9 +366,7 @@ def test_sum(ctx_getter):
     sum_a = np.sum(a)
     sum_a_gpu = cl_array.sum(a_gpu).get()
 
-    assert abs(sum_a_gpu-sum_a)/abs(sum_a) < 1e-4
-
-
+    assert abs(sum_a_gpu - sum_a) / abs(sum_a) < 1e-4
 
 
 @pytools.test.mark_test.opencl
@@ -457,8 +392,6 @@ def test_minmax(ctx_getter):
             assert op_a_gpu == op_a, (op_a_gpu, op_a, dtype, what)
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_subset_minmax(ctx_getter):
     context = ctx_getter()
@@ -499,8 +432,6 @@ def test_subset_minmax(ctx_getter):
         assert min_a_gpu == min_a
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_dot(ctx_getter):
     context = ctx_getter()
@@ -516,9 +447,7 @@ def test_dot(ctx_getter):
 
     dot_ab_gpu = cl_array.dot(a_gpu, b_gpu).get()
 
-    assert abs(dot_ab_gpu-dot_ab)/abs(dot_ab) < 1e-4
-
-
+    assert abs(dot_ab_gpu - dot_ab) / abs(dot_ab) < 1e-4
 
 
 if False:
@@ -538,7 +467,8 @@ if False:
             a_gpu_slice = a_gpu[start:end]
             a_slice = a[start:end]
 
-            assert la.norm(a_gpu_slice.get()-a_slice) == 0
+            assert la.norm(a_gpu_slice.get() - a_slice) == 0
+
 
 @pytools.test.mark_test.opencl
 def test_if_positive(ctx_getter):
@@ -559,8 +489,9 @@ def test_if_positive(ctx_getter):
     print(max_a_b_gpu)
     print(np.maximum(a, b))
 
-    assert la.norm(max_a_b_gpu.get()- np.maximum(a, b)) == 0
-    assert la.norm(min_a_b_gpu.get()- np.minimum(a, b)) == 0
+    assert la.norm(max_a_b_gpu.get() - np.maximum(a, b)) == 0
+    assert la.norm(min_a_b_gpu.get() - np.minimum(a, b)) == 0
+
 
 @pytools.test.mark_test.opencl
 def test_take_put(ctx_getter):
@@ -570,9 +501,9 @@ def test_take_put(ctx_getter):
     for n in [5, 17, 333]:
         one_field_size = 8
         buf_gpu = cl_array.zeros(queue,
-                n*one_field_size, dtype=np.float32)
+                n * one_field_size, dtype=np.float32)
         dest_indices = cl_array.to_device(queue,
-                np.array([ 0,  1,  2,  3, 32, 33, 34, 35], dtype=np.uint32))
+                np.array([0, 1, 2,  3, 32, 33, 34, 35], dtype=np.uint32))
         read_map = cl_array.to_device(queue,
                 np.array([7, 6, 5, 4, 3, 2, 1, 0], dtype=np.uint32))
 
@@ -580,9 +511,10 @@ def test_take_put(ctx_getter):
                 arrays=[buf_gpu for i in range(n)],
                 dest_indices=dest_indices,
                 src_indices=read_map,
-                src_offsets=[i*one_field_size for i in range(n)],
+                src_offsets=[i * one_field_size for i in range(n)],
                 dest_shape=(96,))
 
+
 @pytools.test.mark_test.opencl
 def test_astype(ctx_getter):
     context = ctx_getter()
@@ -607,9 +539,7 @@ def test_astype(ctx_getter):
     a2 = a_gpu.astype(np.float32).get()
 
     assert a2.dtype == np.float32
-    assert la.norm(a - a2)/la.norm(a) < 1e-7
-
-
+    assert la.norm(a - a2) / la.norm(a) < 1e-7
 
 
 @pytools.test.mark_test.opencl
@@ -624,13 +554,12 @@ def test_scan(ctx_getter):
         knl = cls(context, dtype, "a+b", "0")
 
         for n in [
-                10, 2**10-5, 2**10, 
-                2**20-2**18, 
-                2**20-2**18+5, 
-                2**10+5,
-                2**20+5,
-                2**20, 2**24
-                ]:
+            10, 2 ** 10 - 5, 2 ** 10,
+            2 ** 20 - 2 ** 18,
+            2 ** 20 - 2 ** 18 + 5,
+            2 ** 10 + 5,
+            2 ** 20 + 5,
+            2 ** 20, 2 ** 24]:
             host_data = np.random.randint(0, 10, n).astype(dtype)
             dev_data = cl_array.to_device(queue, host_data)
 
@@ -645,21 +574,17 @@ def test_scan(ctx_getter):
             collect()
 
 
-
-
 @pytools.test.mark_test.opencl
 def test_stride_preservation(ctx_getter):
     context = ctx_getter()
     queue = cl.CommandQueue(context)
 
-    A = np.random.rand(3,3)
+    A = np.random.rand(3, 3)
     AT = A.T
     print(AT.flags.f_contiguous, AT.flags.c_contiguous)
     AT_GPU = cl_array.to_device(queue, AT)
     print(AT_GPU.flags.f_contiguous, AT_GPU.flags.c_contiguous)
-    assert np.allclose(AT_GPU.get(),AT)
-
-
+    assert np.allclose(AT_GPU.get(), AT)
 
 
 @pytools.test.mark_test.opencl
@@ -675,10 +600,9 @@ def test_vector_fill(ctx_getter):
     a_gpu = cl_array.zeros(queue, 100, dtype=cl_array.vec.float4)
 
 
-
-
 if __name__ == "__main__":
-    # make sure that import failures get reported, instead of skipping the tests.
+    # make sure that import failures get reported, instead of skipping the
+    # tests.
     import pyopencl as cl
 
     import sys
-- 
GitLab