summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Belopolsky <a@enlnt.com>2015-03-29 14:00:31 -0400
committerAlexander Belopolsky <a@enlnt.com>2015-03-29 14:00:31 -0400
commit2383bd624992e4ea3e1b9d56f128ccf5d1a9eb5a (patch)
treeb8435ad37f440de34f07b45240103ee10f2590c6
parent3fdf1883369c5cd40ad7022ad46a629f2284a7a3 (diff)
downloadnumpy-2383bd624992e4ea3e1b9d56f128ccf5d1a9eb5a.tar.gz
Fixed out!=None case, added tests.
-rw-r--r--numpy/ma/core.py2
-rw-r--r--numpy/ma/tests/test_core.py24
2 files changed, 25 insertions, 1 deletions
diff --git a/numpy/ma/core.py b/numpy/ma/core.py
index 964636595..f3ae45a55 100644
--- a/numpy/ma/core.py
+++ b/numpy/ma/core.py
@@ -4529,7 +4529,7 @@ class MaskedArray(ndarray):
d = np.dot(filled(self, 0), filled(other, 0))
m = ~np.dot(am, bm)
return masked_array(d, mask=m)
- d = self.filled(0).dot(other.filled(0), out)
+ d = self.filled(0).dot(other.filled(0), out._data)
if out.mask.shape != d.shape:
out._mask = numpy.empty(d.shape, MaskType)
np.dot(am, bm, out._mask)
diff --git a/numpy/ma/tests/test_core.py b/numpy/ma/tests/test_core.py
index 1d4462306..e67889f37 100644
--- a/numpy/ma/tests/test_core.py
+++ b/numpy/ma/tests/test_core.py
@@ -2982,6 +2982,30 @@ class TestMaskedArrayMathMethods(TestCase):
X.trace() - sum(mXdiag.mask * X.diagonal(),
axis=0))
+ def test_dot(self):
+ # Tests dot on MaskedArrays.
+ (x, X, XX, m, mx, mX, mXX, m2x, m2X, m2XX) = self.d
+ fx = mx.filled(0)
+ r = mx.dot(mx)
+ assert_almost_equal(r.filled(0), fx.dot(fx))
+ self.assertIs(r.mask, nomask)
+
+ fX = mX.filled(0)
+ r = mX.dot(mX)
+ assert_almost_equal(r.filled(0), fX.dot(fX))
+ self.assertTrue(r.mask[1,3])
+ r1 = empty_like(r)
+ mX.dot(mX, r1)
+ assert_almost_equal(r, r1)
+
+ mYY = mXX.swapaxes(-1, -2)
+ fXX, fYY = mXX.filled(0), mYY.filled(0)
+ r = mXX.dot(mYY)
+ assert_almost_equal(r.filled(0), fXX.dot(fYY))
+ r1 = empty_like(r)
+ mXX.dot(mYY, r1)
+ assert_almost_equal(r, r1)
+
def test_varstd(self):
# Tests var & std on MaskedArrays.
(x, X, XX, m, mx, mX, mXX, m2x, m2X, m2XX) = self.d