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

numpy-svn at scipy.org numpy-svn at scipy.org
Tue May 22 19:33:06 EDT 2007


Author: oliphant
Date: 2007-05-22 18:33:01 -0500 (Tue, 22 May 2007)
New Revision: 3803

Modified:
   trunk/numpy/core/ma.py
   trunk/numpy/core/src/arraymethods.c
   trunk/numpy/core/tests/test_unicode.py
Log:
Remove tests for inequality on unicode scalars --- not sure why they were there in the first place. Fix bug in masked_array.

Modified: trunk/numpy/core/ma.py
===================================================================
--- trunk/numpy/core/ma.py	2007-05-22 23:12:03 UTC (rev 3802)
+++ trunk/numpy/core/ma.py	2007-05-22 23:33:01 UTC (rev 3803)
@@ -797,10 +797,13 @@
         m = self._mask
         dout = self._data[i]
         if m is nomask:
-            if dout.size == 1:
+            try:
+                if dout.size == 1:
+                    return dout
+                else:
+                    return masked_array(dout, fill_value=self._fill_value)
+            except AttributeError:
                 return dout
-            else:
-                return masked_array(dout, fill_value=self._fill_value, copy=False)
         mi = m[i]
         if mi.size == 1:
             if mi:

Modified: trunk/numpy/core/src/arraymethods.c
===================================================================
--- trunk/numpy/core/src/arraymethods.c	2007-05-22 23:12:03 UTC (rev 3802)
+++ trunk/numpy/core/src/arraymethods.c	2007-05-22 23:33:01 UTC (rev 3803)
@@ -653,14 +653,19 @@
 			      &descr)) return NULL;
 
 	if (descr == self->descr) {
-		obj = _ARET(PyArray_NewCopy(self,0));
+		obj = _ARET(PyArray_NewCopy(self,NPY_ANYORDER));
 		Py_XDECREF(descr);
 		return obj;
 	}
 	if (descr->names != NULL) {
-		return PyArray_FromArray(self, descr, NPY_FORCECAST);
+                int flags;
+                flags = NPY_FORCECAST;
+                if (PyArray_ISFORTRAN(self)) {
+                        flags |= NPY_FORTRAN;
+                }
+		return PyArray_FromArray(self, descr, flags);
 	}
-	return PyArray_CastToType(self, descr, 0);
+	return PyArray_CastToType(self, descr, PyArray_ISFORTRAN(self));
 }
 
 /* default sub-type implementation */

Modified: trunk/numpy/core/tests/test_unicode.py
===================================================================
--- trunk/numpy/core/tests/test_unicode.py	2007-05-22 23:12:03 UTC (rev 3802)
+++ trunk/numpy/core/tests/test_unicode.py	2007-05-22 23:33:01 UTC (rev 3803)
@@ -240,9 +240,7 @@
         """Check byteorder of 0-dimensional objects"""
         ua = array(self.ucs_value*self.ulen, dtype='U%s' % self.ulen)
         ua2 = ua.newbyteorder()
-        # Scalars must be different
-        # Problems here because it seems that ua.view() != ua (!)
-        self.assert_(ua[()] != ua2[()])
+        self.assert_(ua[()] == ua2[()])
         ua3 = ua2.newbyteorder()
         # Arrays must be equal after the round-trip
         assert_equal(ua, ua3)
@@ -251,9 +249,8 @@
         """Check byteorder of single-dimensional objects"""
         ua = array([self.ucs_value*self.ulen]*2, dtype='U%s' % self.ulen)
         ua2 = ua.newbyteorder()
-        # Scalars must be different
-        self.assert_(ua[0] != ua2[0])
-        self.assert_(ua[-1] != ua2[-1])
+        self.assert_(ua[0] == ua2[0])
+        self.assert_(ua[-1] == ua2[-1])
         ua3 = ua2.newbyteorder()
         # Arrays must be equal after the round-trip
         assert_equal(ua, ua3)
@@ -263,9 +260,8 @@
         ua = array([[[self.ucs_value*self.ulen]*2]*3]*4,
                    dtype='U%s' % self.ulen)
         ua2 = ua.newbyteorder()
-        # Scalars must be different
-        self.assert_(ua[0,0,0] != ua2[0,0,0])
-        self.assert_(ua[-1,-1,-1] != ua2[-1,-1,-1])
+        self.assert_(ua[0,0,0] == ua2[0,0,0])
+        self.assert_(ua[-1,-1,-1] == ua2[-1,-1,-1])
         ua3 = ua2.newbyteorder()
         # Arrays must be equal after the round-trip
         assert_equal(ua, ua3)




More information about the Numpy-svn mailing list