diff options
author | Alexander Belopolsky <a@enlnt.com> | 2015-03-29 14:00:31 -0400 |
---|---|---|
committer | Alexander Belopolsky <a@enlnt.com> | 2015-03-29 14:00:31 -0400 |
commit | 2383bd624992e4ea3e1b9d56f128ccf5d1a9eb5a (patch) | |
tree | b8435ad37f440de34f07b45240103ee10f2590c6 | |
parent | 3fdf1883369c5cd40ad7022ad46a629f2284a7a3 (diff) | |
download | numpy-2383bd624992e4ea3e1b9d56f128ccf5d1a9eb5a.tar.gz |
Fixed out!=None case, added tests.
-rw-r--r-- | numpy/ma/core.py | 2 | ||||
-rw-r--r-- | numpy/ma/tests/test_core.py | 24 |
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 |