23
23
class TestMa(TestCase):
25
x = numpy.array([1., 1., 1., -2., pi / 2.0, 4., 5., -10., 10., 1., 2., 3.])
26
y = numpy.array([5., 0., 3., 2., -1., -4., 0., -10., 10., 1., 0., 3.])
25
x = np.array([1., 1., 1., -2., pi / 2.0, 4., 5., -10., 10., 1., 2., 3.])
26
y = np.array([5., 0., 3., 2., -1., -4., 0., -10., 10., 1., 0., 3.])
28
28
m1 = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
29
29
m2 = [0, 0, 1, 0, 0, 1, 1, 0, 0, 0 , 0, 1]
30
30
xm = array(x, mask=m1)
31
31
ym = array(y, mask=m2)
32
z = numpy.array([-.5, 0., .5, .8])
32
z = np.array([-.5, 0., .5, .8])
33
33
zm = array(z, mask=[0, 1, 0, 0])
34
xf = numpy.where(m1, 1e+20, x)
34
xf = np.where(m1, 1e+20, x)
36
36
xm.set_fill_value(1e+20)
37
37
self.d = (x, y, a10, m1, m2, xm, ym, z, zm, xf, s)
109
103
self.assertTrue(eq(x ** 2, xm ** 2))
110
104
self.assertTrue(eq(abs(x) ** 2.5, abs(xm) ** 2.5))
111
105
self.assertTrue(eq(x ** y, xm ** ym))
112
self.assertTrue(eq(numpy.add(x, y), add(xm, ym)))
113
self.assertTrue(eq(numpy.subtract(x, y), subtract(xm, ym)))
114
self.assertTrue(eq(numpy.multiply(x, y), multiply(xm, ym)))
115
olderr = numpy.seterr(divide='ignore', invalid='ignore')
117
self.assertTrue(eq(numpy.divide(x, y), divide(xm, ym)))
119
numpy.seterr(**olderr)
106
self.assertTrue(eq(np.add(x, y), add(xm, ym)))
107
self.assertTrue(eq(np.subtract(x, y), subtract(xm, ym)))
108
self.assertTrue(eq(np.multiply(x, y), multiply(xm, ym)))
109
with np.errstate(divide='ignore', invalid='ignore'):
110
self.assertTrue(eq(np.divide(x, y), divide(xm, ym)))
122
113
def test_testMixedArithmetic(self):
123
na = numpy.array([1])
125
116
self.assertTrue(isinstance(na + ma, MaskedArray))
126
117
self.assertTrue(isinstance(ma + na, MaskedArray))
128
119
def test_testUfuncs1 (self):
129
120
"Test various functions such as sin, cos."
130
121
(x, y, a10, m1, m2, xm, ym, z, zm, xf, s) = self.d
131
self.assertTrue (eq(numpy.cos(x), cos(xm)))
132
self.assertTrue (eq(numpy.cosh(x), cosh(xm)))
133
self.assertTrue (eq(numpy.sin(x), sin(xm)))
134
self.assertTrue (eq(numpy.sinh(x), sinh(xm)))
135
self.assertTrue (eq(numpy.tan(x), tan(xm)))
136
self.assertTrue (eq(numpy.tanh(x), tanh(xm)))
137
olderr = numpy.seterr(divide='ignore', invalid='ignore')
139
self.assertTrue (eq(numpy.sqrt(abs(x)), sqrt(xm)))
140
self.assertTrue (eq(numpy.log(abs(x)), log(xm)))
141
self.assertTrue (eq(numpy.log10(abs(x)), log10(xm)))
143
numpy.seterr(**olderr)
144
self.assertTrue (eq(numpy.exp(x), exp(xm)))
145
self.assertTrue (eq(numpy.arcsin(z), arcsin(zm)))
146
self.assertTrue (eq(numpy.arccos(z), arccos(zm)))
147
self.assertTrue (eq(numpy.arctan(z), arctan(zm)))
148
self.assertTrue (eq(numpy.arctan2(x, y), arctan2(xm, ym)))
149
self.assertTrue (eq(numpy.absolute(x), absolute(xm)))
150
self.assertTrue (eq(numpy.equal(x, y), equal(xm, ym)))
151
self.assertTrue (eq(numpy.not_equal(x, y), not_equal(xm, ym)))
152
self.assertTrue (eq(numpy.less(x, y), less(xm, ym)))
153
self.assertTrue (eq(numpy.greater(x, y), greater(xm, ym)))
154
self.assertTrue (eq(numpy.less_equal(x, y), less_equal(xm, ym)))
155
self.assertTrue (eq(numpy.greater_equal(x, y), greater_equal(xm, ym)))
156
self.assertTrue (eq(numpy.conjugate(x), conjugate(xm)))
157
self.assertTrue (eq(numpy.concatenate((x, y)), concatenate((xm, ym))))
158
self.assertTrue (eq(numpy.concatenate((x, y)), concatenate((x, y))))
159
self.assertTrue (eq(numpy.concatenate((x, y)), concatenate((xm, y))))
160
self.assertTrue (eq(numpy.concatenate((x, y, x)), concatenate((x, ym, x))))
122
self.assertTrue (eq(np.cos(x), cos(xm)))
123
self.assertTrue (eq(np.cosh(x), cosh(xm)))
124
self.assertTrue (eq(np.sin(x), sin(xm)))
125
self.assertTrue (eq(np.sinh(x), sinh(xm)))
126
self.assertTrue (eq(np.tan(x), tan(xm)))
127
self.assertTrue (eq(np.tanh(x), tanh(xm)))
128
with np.errstate(divide='ignore', invalid='ignore'):
129
self.assertTrue (eq(np.sqrt(abs(x)), sqrt(xm)))
130
self.assertTrue (eq(np.log(abs(x)), log(xm)))
131
self.assertTrue (eq(np.log10(abs(x)), log10(xm)))
132
self.assertTrue (eq(np.exp(x), exp(xm)))
133
self.assertTrue (eq(np.arcsin(z), arcsin(zm)))
134
self.assertTrue (eq(np.arccos(z), arccos(zm)))
135
self.assertTrue (eq(np.arctan(z), arctan(zm)))
136
self.assertTrue (eq(np.arctan2(x, y), arctan2(xm, ym)))
137
self.assertTrue (eq(np.absolute(x), absolute(xm)))
138
self.assertTrue (eq(np.equal(x, y), equal(xm, ym)))
139
self.assertTrue (eq(np.not_equal(x, y), not_equal(xm, ym)))
140
self.assertTrue (eq(np.less(x, y), less(xm, ym)))
141
self.assertTrue (eq(np.greater(x, y), greater(xm, ym)))
142
self.assertTrue (eq(np.less_equal(x, y), less_equal(xm, ym)))
143
self.assertTrue (eq(np.greater_equal(x, y), greater_equal(xm, ym)))
144
self.assertTrue (eq(np.conjugate(x), conjugate(xm)))
145
self.assertTrue (eq(np.concatenate((x, y)), concatenate((xm, ym))))
146
self.assertTrue (eq(np.concatenate((x, y)), concatenate((x, y))))
147
self.assertTrue (eq(np.concatenate((x, y)), concatenate((xm, y))))
148
self.assertTrue (eq(np.concatenate((x, y, x)), concatenate((x, ym, x))))
162
150
def test_xtestCount (self):
164
152
ott = array([0., 1., 2., 3.], mask=[1, 0, 0, 0])
165
153
if sys.version_info[0] >= 3:
166
self.assertTrue(isinstance(count(ott), numpy.integer))
154
self.assertTrue(isinstance(count(ott), np.integer))
168
156
self.assertTrue(isinstance(count(ott), int))
169
157
self.assertEqual(3, count(ott))
170
158
self.assertEqual(1, count(1))
171
159
self.assertTrue (eq(0, array(1, mask=[1])))
172
160
ott = ott.reshape((2, 2))
173
assert_(isinstance(count(ott, 0), numpy.ndarray))
161
assert_(isinstance(count(ott, 0), np.ndarray))
174
162
if sys.version_info[0] >= 3:
175
assert_(isinstance(count(ott), numpy.integer))
163
assert_(isinstance(count(ott), np.integer))
177
165
assert_(isinstance(count(ott), int))
178
166
self.assertTrue (eq(3, count(ott)))
194
182
def test_testAddSumProd (self):
195
183
"Test add, sum, product."
196
184
(x, y, a10, m1, m2, xm, ym, z, zm, xf, s) = self.d
197
self.assertTrue (eq(numpy.add.reduce(x), add.reduce(x)))
198
self.assertTrue (eq(numpy.add.accumulate(x), add.accumulate(x)))
199
self.assertTrue (eq(4, sum(array(4), axis=0)))
200
self.assertTrue (eq(4, sum(array(4), axis=0)))
201
self.assertTrue (eq(numpy.sum(x, axis=0), sum(x, axis=0)))
202
self.assertTrue (eq(numpy.sum(filled(xm, 0), axis=0), sum(xm, axis=0)))
203
self.assertTrue (eq(numpy.sum(x, 0), sum(x, 0)))
204
self.assertTrue (eq(numpy.product(x, axis=0), product(x, axis=0)))
205
self.assertTrue (eq(numpy.product(x, 0), product(x, 0)))
206
self.assertTrue (eq(numpy.product(filled(xm, 1), axis=0),
185
self.assertTrue (eq(np.add.reduce(x), add.reduce(x)))
186
self.assertTrue (eq(np.add.accumulate(x), add.accumulate(x)))
187
self.assertTrue (eq(4, sum(array(4), axis=0)))
188
self.assertTrue (eq(4, sum(array(4), axis=0)))
189
self.assertTrue (eq(np.sum(x, axis=0), sum(x, axis=0)))
190
self.assertTrue (eq(np.sum(filled(xm, 0), axis=0), sum(xm, axis=0)))
191
self.assertTrue (eq(np.sum(x, 0), sum(x, 0)))
192
self.assertTrue (eq(np.product(x, axis=0), product(x, axis=0)))
193
self.assertTrue (eq(np.product(x, 0), product(x, 0)))
194
self.assertTrue (eq(np.product(filled(xm, 1), axis=0),
207
195
product(xm, axis=0)))
209
self.assertTrue (eq(numpy.concatenate((x, y), 1),
197
self.assertTrue (eq(np.concatenate((x, y), 1),
210
198
concatenate((xm, ym), 1)))
211
self.assertTrue (eq(numpy.add.reduce(x, 1), add.reduce(x, 1)))
212
self.assertTrue (eq(numpy.sum(x, 1), sum(x, 1)))
213
self.assertTrue (eq(numpy.product(x, 1), product(x, 1)))
199
self.assertTrue (eq(np.add.reduce(x, 1), add.reduce(x, 1)))
200
self.assertTrue (eq(np.sum(x, 1), sum(x, 1)))
201
self.assertTrue (eq(np.product(x, 1), product(x, 1)))
216
204
def test_testCI(self):
217
205
"Test of conversions and indexing"
218
x1 = numpy.array([1, 2, 4, 3])
206
x1 = np.array([1, 2, 4, 3])
219
207
x2 = array(x1, mask=[1, 0, 0, 0])
220
208
x3 = array(x1, mask=[0, 1, 0, 1])
222
210
# test conversion to strings
223
211
junk, garbage = str(x2), repr(x2)
224
assert_(eq(numpy.sort(x1), sort(x2, fill_value=0)))
212
assert_(eq(np.sort(x1), sort(x2, fill_value=0)))
225
213
# tests of indexing
226
214
assert_(type(x2[1]) is type(x1[1]))
227
215
assert_(x1[1] == x2[1])
248
236
x4[:] = masked_array([1, 2, 3, 4], [0, 1, 1, 0])
249
237
assert_(allequal(getmask(x4), array([0, 1, 1, 0])))
250
238
assert_(allequal(x4, array([1, 2, 3, 4])))
251
x1 = numpy.arange(5) * 1.0
239
x1 = np.arange(5) * 1.0
252
240
x2 = masked_values(x1, 3.0)
253
241
assert_(eq(x1, x2))
254
242
assert_(allequal(array([0, 0, 0, 1, 0], MaskType), x2.mask))
255
243
assert_(eq(3.0, x2.fill_value))
256
244
x1 = array([1, 'hello', 2, 3], object)
257
x2 = numpy.array([1, 'hello', 2, 3], object)
245
x2 = np.array([1, 'hello', 2, 3], object)
260
248
self.assertEqual(type(s2), str)
439
427
def test_testTakeTransposeInnerOuter(self):
440
428
"Test of take, transpose, inner, outer products"
444
432
x = x.reshape(2, 3, 4)
445
433
y = y.reshape(2, 3, 4)
446
assert_(eq(numpy.transpose(y, (2, 0, 1)), transpose(x, (2, 0, 1))))
447
assert_(eq(numpy.take(y, (2, 0, 1), 1), take(x, (2, 0, 1), 1)))
448
assert_(eq(numpy.inner(filled(x, 0), filled(y, 0)),
434
assert_(eq(np.transpose(y, (2, 0, 1)), transpose(x, (2, 0, 1))))
435
assert_(eq(np.take(y, (2, 0, 1), 1), take(x, (2, 0, 1), 1)))
436
assert_(eq(np.inner(filled(x, 0), filled(y, 0)),
450
assert_(eq(numpy.outer(filled(x, 0), filled(y, 0)),
438
assert_(eq(np.outer(filled(x, 0), filled(y, 0)),
452
440
y = array(['abc', 1, 'def', 2, 3], object)