[Numpy-svn] r3625 - in trunk: . numpy/core/src numpy/core/tests

numpy-svn@scip... numpy-svn@scip...
Sat Mar 31 02:40:52 CDT 2007


Author: oliphant
Date: 2007-03-31 02:40:31 -0500 (Sat, 31 Mar 2007)
New Revision: 3625

Modified:
   trunk/THANKS.txt
   trunk/numpy/core/src/multiarraymodule.c
   trunk/numpy/core/tests/test_numeric.py
Log:
Finish adding and checking remaining tests for clip (and choose).   All tests now pass for new clip method.

Modified: trunk/THANKS.txt
===================================================================
--- trunk/THANKS.txt	2007-03-31 00:15:41 UTC (rev 3624)
+++ trunk/THANKS.txt	2007-03-31 07:40:31 UTC (rev 3625)
@@ -34,4 +34,4 @@
     Valgrind expertise.
 Stefan van der Walt for documentation, bug-fixes and regression-tests.
 Andrew Straw for help with http://www.scipy.org, documentation, and testing. 
-David Cournapeau for documentation, bug-fixes, and code contributions.
+David Cournapeau for documentation, bug-fixes, and code contributions including fast_clipping.

Modified: trunk/numpy/core/src/multiarraymodule.c
===================================================================
--- trunk/numpy/core/src/multiarraymodule.c	2007-03-31 00:15:41 UTC (rev 3624)
+++ trunk/numpy/core/src/multiarraymodule.c	2007-03-31 07:40:31 UTC (rev 3625)
@@ -1291,6 +1291,7 @@
                 else 
                         oflags = NPY_CARRAY;
                 oflags |= NPY_UPDATEIFCOPY | NPY_FORCECAST;
+                Py_INCREF(indescr);
                 newout = (NPY_AO*)PyArray_FromArray(out, indescr, oflags);
                 if (newout == NULL) goto fail;
         }

Modified: trunk/numpy/core/tests/test_numeric.py
===================================================================
--- trunk/numpy/core/tests/test_numeric.py	2007-03-31 00:15:41 UTC (rev 3624)
+++ trunk/numpy/core/tests/test_numeric.py	2007-03-31 07:40:31 UTC (rev 3625)
@@ -568,105 +568,102 @@
         ac  = self.fastclip(a, m , M, out = b)
         assert_array_strict_equal(ac, act)
 
-##        # This looks like a data-type descriptor is not reference
-##        #  counted right.
-##        print "=== OUT arg: testing non native with native scalar, min/max, " + \
-##              "out non native==="
-##        a   = self._generate_non_native_data(self.nr, self.nc)
-##        b   = a.copy()
-##        b   = b.astype(b.dtype.newbyteorder('>'))
-##        bt  = b.copy()
-##        m   = -0.5
-##        M   = 1.
-##        self.fastclip(a, m , M, out = b)
-##        self.clip(a, m, M, out = bt)
-##        assert_array_strict_equal(b, bt)
+    def test_type_cast_10(self):
+        "Test non native with native scalar, min/max, out non native"
+        a   = self._generate_non_native_data(self.nr, self.nc)
+        b   = a.copy()
+        b   = b.astype(b.dtype.newbyteorder('>'))
+        bt  = b.copy()
+        m   = -0.5
+        M   = 1.
+        self.fastclip(a, m , M, out = b)
+        self.clip(a, m, M, out = bt)
+        assert_array_strict_equal(b, bt)
 
-##        print "=== OUT arg: testing native int32 input and min/max and float out ==="
-##        print "\t NOT TESTED (current clip is buggy in this case)"
-##        a   = self._generate_int_data(self.nr, self.nc)
-##        b   = zeros(a.shape, dtype = float32)
-##        m   = int32(0)
-##        M   = int32(1)
-##        act = self.clip(a, m, M, out = b)
-##        ac  = self.fastclip(a, m , M, out = b)
-##        assert_array_strict_equal(ac, act)
+    def test_type_cast_11(self):
+        "Test native int32 input and min/max and float out"
+        a   = self._generate_int_data(self.nr, self.nc)
+        b   = zeros(a.shape, dtype = float32)
+        m   = int32(0)
+        M   = int32(1)
+        act = self.clip(a, m, M, out = b)
+        ac  = self.fastclip(a, m , M, out = b)
+        assert_array_strict_equal(ac, act)
 
-##    def test_clip_with_out_simple(self):
-##        print "=== WITH OUT testing native double input with scalar min/max ==="
-##        a   = self._generate_data(self.nr, self.nc)
-##        m   = -0.5
-##        M   = 0.6
-##        ac  = zeros(a.shape)
-##        act = zeros(a.shape)
-##        self.fastclip(a, m, M, ac)
-##        self.clip(a, m, M, act)
-##        assert_array_strict_equal(ac, act)
+    def test_clip_with_out_simple(self):
+        "Test native double input with scalar min/max"
+        a   = self._generate_data(self.nr, self.nc)
+        m   = -0.5
+        M   = 0.6
+        ac  = zeros(a.shape)
+        act = zeros(a.shape)
+        self.fastclip(a, m, M, ac)
+        self.clip(a, m, M, act)
+        assert_array_strict_equal(ac, act)
 
-##    def test_clip_with_out_simple2(self):
-##        print "=== WITH OUT testing native int32 input "+\
-##                "with double min/max and int32 out ==="
-##        a   = self._generate_int32_data(self.nr, self.nc)
-##        m   = float64(0)
-##        M   = float64(2)
-##        ac  = zeros(a.shape, dtype = int32)
-##        act = ac.copy()
-##        self.fastclip(a, m, M, ac)
-##        self.clip(a, m, M, act)
-##        assert_array_strict_equal(ac, act)
+    def test_clip_with_out_simple2(self):
+        "Test native int32 input with double min/max and int32 out"
+        a   = self._generate_int32_data(self.nr, self.nc)
+        m   = float64(0)
+        M   = float64(2)
+        ac  = zeros(a.shape, dtype = int32)
+        act = ac.copy()
+        self.fastclip(a, m, M, ac)
+        self.clip(a, m, M, act)
+        assert_array_strict_equal(ac, act)
 
-##    def test_clip_with_out_simple_int32(self):
-##        print "=== WITH OUT testing native int32 input with int32 scalar min/max and int64 out ==="
-##        a   = self._generate_int32_data(self.nr, self.nc)
-##        m   = int32(-1)
-##        M   = int32(1)
-##        ac  = zeros(a.shape, dtype = int64)
-##        act = ac.copy()
-##        self.fastclip(a, m, M, ac)
-##        self.clip(a, m, M, act)
-##        assert_array_strict_equal(ac, act)
+    def test_clip_with_out_simple_int32(self):
+        "Test native int32 input with int32 scalar min/max and int64 out"
+        a   = self._generate_int32_data(self.nr, self.nc)
+        m   = int32(-1)
+        M   = int32(1)
+        ac  = zeros(a.shape, dtype = int64)
+        act = ac.copy()
+        self.fastclip(a, m, M, ac)
+        self.clip(a, m, M, act)
+        assert_array_strict_equal(ac, act)
 
-##    def test_clip_with_out_array_int32(self):
-##        print "=== WITH OUT testing native int32 input with double array min/max and int32 out ==="
-##        a   = self._generate_int32_data(self.nr, self.nc)
-##        m   = zeros(a.shape, float64)
-##        M   = float64(1)
-##        ac  = zeros(a.shape, dtype = int32)
-##        act = ac.copy()
-##        self.fastclip(a, m, M, ac)
-##        self.clip(a, m, M, act)
-##        assert_array_strict_equal(ac, act)
+    def test_clip_with_out_array_int32(self):
+        "Test native int32 input with double array min/max and int32 out"
+        a   = self._generate_int32_data(self.nr, self.nc)
+        m   = zeros(a.shape, float64)
+        M   = float64(1)
+        ac  = zeros(a.shape, dtype = int32)
+        act = ac.copy()
+        self.fastclip(a, m, M, ac)
+        self.clip(a, m, M, act)
+        assert_array_strict_equal(ac, act)
 
-##    def test_clip_with_out_array_outint32(self):
-##        print "=== WITH OUT testing native double input with scalar min/max and int out ==="
-##        a   = self._generate_data(self.nr, self.nc)
-##        m   = -1.0
-##        M   = 2.0
-##        ac  = zeros(a.shape, dtype = int32)
-##        act = ac.copy()
-##        self.fastclip(a, m, M, ac)
-##        self.clip(a, m, M, act)
-##        assert_array_strict_equal(ac, act)
+    def test_clip_with_out_array_outint32(self):
+        "Test native double input with scalar min/max and int out"
+        a   = self._generate_data(self.nr, self.nc)
+        m   = -1.0
+        M   = 2.0
+        ac  = zeros(a.shape, dtype = int32)
+        act = ac.copy()
+        self.fastclip(a, m, M, ac)
+        self.clip(a, m, M, act)
+        assert_array_strict_equal(ac, act)
 
-##    def test_clip_inplace_array(self):
-##        print "=== INPLACE: testing native double input with array min/max ==="
-##        a   = self._generate_data(self.nr, self.nc)
-##        ac  = a.copy()
-##        m   = zeros(a.shape)
-##        M   = 1.0
-##        self.fastclip(a, m, M, a)
-##        self.clip(a, m, M, ac)
-##        assert_array_strict_equal(a, ac)
+    def test_clip_inplace_array(self):
+        "Test native double input with array min/max"
+        a   = self._generate_data(self.nr, self.nc)
+        ac  = a.copy()
+        m   = zeros(a.shape)
+        M   = 1.0
+        self.fastclip(a, m, M, a)
+        self.clip(a, m, M, ac)
+        assert_array_strict_equal(a, ac)
 
-##    def test_clip_inplace_simple(self):
-##        print "=== INPLACE: testing native double input with scalar min/max ==="
-##        a   = self._generate_data(self.nr, self.nc)
-##        ac  = a.copy()
-##        m   = -0.5
-##        M   = 0.6
-##        self.fastclip(a, m, M, a)
-##        self.clip(a, m, M, ac)
-##        assert_array_strict_equal(a, ac)
+    def test_clip_inplace_simple(self):
+        "Test native double input with scalar min/max"
+        a   = self._generate_data(self.nr, self.nc)
+        ac  = a.copy()
+        m   = -0.5
+        M   = 0.6
+        self.fastclip(a, m, M, a)
+        self.clip(a, m, M, ac)
+        assert_array_strict_equal(a, ac)
 
         
 import sys



More information about the Numpy-svn mailing list