Ejemplo n.º 1
0
 def test_singlerecord(self):
     (_, x, y, z) = self.data
     test = merge_arrays((x[0], y[0], z[0]), usemask=False)
     control = np.array([(1, 10, ('A', 1))],
                        dtype=[('f0', int), ('f1', int),
                               ('f2', [('A', '|S3'), ('B', float)])])
     assert_equal(test, control)
Ejemplo n.º 2
0
 def test_masked_binary_operations2(self):
     # Tests domained_masked_binary_operation
     (x, mx) = self.data
     xmx = masked_array(mx.data.__array__(), mask=mx.mask)
     assert_(isinstance(divide(mx, mx), msubarray))
     assert_(isinstance(divide(mx, x), msubarray))
     assert_equal(divide(mx, mx), divide(xmx, xmx))
Ejemplo n.º 3
0
 def test_different_field_order(self):
     # gh-8940
     a = np.zeros(3, dtype=[('a', 'i4'), ('b', 'f4'), ('c', 'u1')])
     b = np.ones(3, dtype=[('c', 'u1'), ('b', 'f4'), ('a', 'i4')])
     # this should not give a FutureWarning:
     j = join_by(['c', 'b'], a, b, jointype='inner', usemask=False)
     assert_equal(j.dtype.names, ['b', 'c', 'a1', 'a2'])
Ejemplo n.º 4
0
    def test_two_keys_two_vars(self):
        a = np.array(list(
            zip(np.tile([10, 11], 5), np.repeat(np.arange(5), 2),
                np.arange(50, 60), np.arange(10, 20))),
                     dtype=[('k', int), ('a', int), ('b', int), ('c', int)])

        b = np.array(list(
            zip(np.tile([10, 11], 5), np.repeat(np.arange(5), 2),
                np.arange(65, 75), np.arange(0, 10))),
                     dtype=[('k', int), ('a', int), ('b', int), ('c', int)])

        control = np.array([(10, 0, 50, 65, 10, 0), (11, 0, 51, 66, 11, 1),
                            (10, 1, 52, 67, 12, 2), (11, 1, 53, 68, 13, 3),
                            (10, 2, 54, 69, 14, 4), (11, 2, 55, 70, 15, 5),
                            (10, 3, 56, 71, 16, 6), (11, 3, 57, 72, 17, 7),
                            (10, 4, 58, 73, 18, 8), (11, 4, 59, 74, 19, 9)],
                           dtype=[('k', int), ('a', int), ('b1', int),
                                  ('b2', int), ('c1', int), ('c2', int)])
        test = join_by(['a', 'k'],
                       a,
                       b,
                       r1postfix='1',
                       r2postfix='2',
                       jointype='inner')
        assert_equal(test.dtype, control.dtype)
        assert_equal(test, control)
Ejemplo n.º 5
0
 def test_view_simple_dtype(self):
     (mrec, a, b, arr) = self.data
     ntype = (float, 2)
     test = mrec.view(ntype)
     assert_(isinstance(test, ma.MaskedArray))
     assert_equal(test, np.array(list(zip(a, b)), dtype=float))
     assert_(test[3, 1] is ma.masked)
Ejemplo n.º 6
0
 def test_pickling_subbaseclass(self):
     # Test pickling w/ a subclass of ndarray
     a = masked_array(np.matrix(list(range(10))), mask=[1, 0, 1, 0, 0] * 2)
     a_pickled = pickle.loads(a.dumps())
     assert_equal(a_pickled._mask, a._mask)
     assert_equal(a_pickled, a)
     assert_(isinstance(a_pickled._data, np.matrix))
Ejemplo n.º 7
0
    def test_fromrecords(self):
        # Test construction from records.
        (mrec, nrec, ddtype) = self.data
        #......
        palist = [(1, 'abc', 3.7000002861022949, 0),
                  (2, 'xy', 6.6999998092651367, 1),
                  (0, ' ', 0.40000000596046448, 0)]
        pa = recfromrecords(palist, names='c1, c2, c3, c4')
        mpa = fromrecords(palist, names='c1, c2, c3, c4')
        assert_equal_records(pa, mpa)
        #.....
        _mrec = fromrecords(nrec)
        assert_equal(_mrec.dtype, mrec.dtype)
        for field in _mrec.dtype.names:
            assert_equal(getattr(_mrec, field), getattr(mrec._data, field))

        _mrec = fromrecords(nrec.tolist(), names='c1,c2,c3')
        assert_equal(_mrec.dtype, [('c1', int), ('c2', float), ('c3', '|S5')])
        for (f, n) in zip(('c1', 'c2', 'c3'), ('a', 'b', 'c')):
            assert_equal(getattr(_mrec, f), getattr(mrec._data, n))

        _mrec = fromrecords(mrec)
        assert_equal(_mrec.dtype, mrec.dtype)
        assert_equal_records(_mrec._data, mrec.filled())
        assert_equal_records(_mrec._mask, mrec._mask)
Ejemplo n.º 8
0
 def test_addfield(self):
     # Tests addfield
     (mrec, nrec, ddtype) = self.data
     (d, m) = ([100, 200, 300], [1, 0, 0])
     mrec = addfield(mrec, ma.array(d, mask=m))
     assert_equal(mrec.f3, d)
     assert_equal(mrec.f3._mask, m)
Ejemplo n.º 9
0
 def test_simple_flexible(self):
     # Test recursive_fill_fields on flexible-array
     a = np.array([(1, 10.), (2, 20.)], dtype=[('A', int), ('B', float)])
     b = np.zeros((3, ), dtype=a.dtype)
     test = recursive_fill_fields(a, b)
     control = np.array([(1, 10.), (2, 20.), (0, 0.)],
                        dtype=[('A', int), ('B', float)])
     assert_equal(test, control)
Ejemplo n.º 10
0
 def test_w_singlefield(self):
     # Test single field
     test = merge_arrays(
         (np.array([1, 2]).view([('a', int)]), np.array([10., 20., 30.])), )
     control = ma.array([(1, 10.), (2, 20.), (-1, 30.)],
                        mask=[(0, 0), (0, 0), (1, 0)],
                        dtype=[('a', int), ('f1', float)])
     assert_equal(test, control)
Ejemplo n.º 11
0
 def test_compressed(self):
     a = masked_array(np.matrix([1, 2, 3, 4]), mask=[0, 0, 0, 0])
     b = a.compressed()
     assert_equal(b, a)
     assert_(isinstance(b, np.matrix))
     a[0, 0] = masked
     b = a.compressed()
     assert_equal(b, [[2, 3, 4]])
Ejemplo n.º 12
0
 def test_join_subdtype(self):
     # tests the bug in https://stackoverflow.com/q/44769632/102441
     from numpy1.lib import recfunctions as rfn
     foo = np.array([(1, )], dtype=[('key', int)])
     bar = np.array([(1, np.array([1, 2, 3]))],
                    dtype=[('key', int), ('value', 'uint16', 3)])
     res = join_by('key', foo, bar)
     assert_equal(res, bar.view(ma.MaskedArray))
Ejemplo n.º 13
0
 def test_data_subclassing(self):
     # Tests whether the subclass is kept.
     x = np.arange(5)
     m = [0, 0, 1, 0, 0]
     xsub = SubArray(x)
     xmsub = masked_array(xsub, mask=m)
     assert_(isinstance(xmsub, MaskedArray))
     assert_equal(xmsub._data, xsub)
     assert_(isinstance(xmsub._data, SubArray))
Ejemplo n.º 14
0
    def test_get_names_flat(self):
        # Test get_names_flat
        ndtype = np.dtype([('A', '|S3'), ('B', float)])
        test = get_names_flat(ndtype)
        assert_equal(test, ('A', 'B'))

        ndtype = np.dtype([('a', int), ('b', [('ba', float), ('bb', int)])])
        test = get_names_flat(ndtype)
        assert_equal(test, ('a', 'b', 'ba', 'bb'))
Ejemplo n.º 15
0
 def test_view_flexible_type(self):
     (mrec, a, b, arr) = self.data
     alttype = [('A', float), ('B', float)]
     test = mrec.view(alttype)
     assert_(isinstance(test, MaskedRecords))
     assert_equal_records(test, arr.view(alttype))
     assert_(test['B'][3] is masked)
     assert_equal(test.dtype, np.dtype(alttype))
     assert_(test._fill_value is None)
Ejemplo n.º 16
0
 def test_pickling(self):
     # Test pickling
     base = self.base.copy()
     mrec = base.view(mrecarray)
     _ = pickle.dumps(mrec)
     mrec_ = pickle.loads(_)
     assert_equal(mrec_.dtype, mrec.dtype)
     assert_equal_records(mrec_._data, mrec._data)
     assert_equal(mrec_._mask, mrec._mask)
     assert_equal_records(mrec_._mask, mrec._mask)
Ejemplo n.º 17
0
 def test_rename_fields(self):
     # Test rename fields
     a = np.array([(1, (2, [3.0, 30.])), (4, (5, [6.0, 60.]))],
                  dtype=[('a', int),
                         ('b', [('ba', float), ('bb', (float, 2))])])
     test = rename_fields(a, {'a': 'A', 'bb': 'BB'})
     newdtype = [('A', int), ('b', [('ba', float), ('BB', (float, 2))])]
     control = a.view(newdtype)
     assert_equal(test.dtype, newdtype)
     assert_equal(test, control)
Ejemplo n.º 18
0
 def test_append_to_objects(self):
     "Test append_fields when the base array contains objects"
     obj = self.data['obj']
     x = np.array([(obj, 1.), (obj, 2.)],
                  dtype=[('A', object), ('B', float)])
     y = np.array([10, 20], dtype=int)
     test = append_fields(x, 'C', data=y, usemask=False)
     control = np.array([(obj, 1.0, 10), (obj, 2.0, 20)],
                        dtype=[('A', object), ('B', float), ('C', int)])
     assert_equal(test, control)
Ejemplo n.º 19
0
 def test_append_single(self):
     # Test simple case
     (_, x, _, _) = self.data
     test = append_fields(x, 'A', data=[10, 20, 30])
     control = ma.array(
         [(1, 10), (2, 20), (-1, 30)],
         mask=[(0, 0), (0, 0), (1, 0)],
         dtype=[('f0', int), ('A', int)],
     )
     assert_equal(test, control)
Ejemplo n.º 20
0
    def test_solo(self):
        # Test stack_arrays on single arrays
        (_, x, _, _) = self.data
        test = stack_arrays((x, ))
        assert_equal(test, x)
        assert_(test is x)

        test = stack_arrays(x)
        assert_equal(test, x)
        assert_(test is x)
Ejemplo n.º 21
0
 def test_view(self):
     # Test view w/ flexible dtype
     iterator = list(zip(np.arange(10), np.random.rand(10)))
     data = np.array(iterator)
     a = masked_array(iterator, dtype=[('a', float), ('b', float)])
     a.mask[0] = (1, 0)
     test = a.view((float, 2), np.matrix)
     assert_equal(test, data)
     assert_(isinstance(test, np.matrix))
     assert_(not isinstance(test, MaskedArray))
Ejemplo n.º 22
0
 def test_append_on_flex(self):
     # Test append_fields on flexible type arrays
     z = self.data[-1]
     test = append_fields(z, 'C', data=[10, 20, 30])
     control = ma.array(
         [('A', 1., 10), ('B', 2., 20), (-1, -1., 30)],
         mask=[(0, 0, 0), (0, 0, 0), (1, 1, 0)],
         dtype=[('A', '|S3'), ('B', float), ('C', int)],
     )
     assert_equal(test, control)
Ejemplo n.º 23
0
 def test_append_double(self):
     # Test simple case
     (_, x, _, _) = self.data
     test = append_fields(x, ('A', 'B'), data=[[10, 20, 30], [100, 200]])
     control = ma.array(
         [(1, 10, 100), (2, 20, 200), (-1, 30, -1)],
         mask=[(0, 0, 0), (0, 0, 0), (1, 0, 1)],
         dtype=[('f0', int), ('A', int), ('B', int)],
     )
     assert_equal(test, control)
Ejemplo n.º 24
0
    def test_solo_w_flatten(self):
        # Test merge_arrays on a single array w & w/o flattening
        w = self.data[0]
        test = merge_arrays(w, flatten=False)
        assert_equal(test, w)

        test = merge_arrays(w, flatten=True)
        control = np.array([(1, 2, 3.0), (4, 5, 6.0)],
                           dtype=[('a', int), ('ba', float), ('bb', int)])
        assert_equal(test, control)
Ejemplo n.º 25
0
    def test_matrix(self):
        # Test consistency with unmasked version.  If we ever deprecate
        # matrix, this test should either still pass, or both actual and
        # expected should fail to be build.
        actual = mr_['r', 1, 2, 3]
        expected = np.ma.array(np.r_['r', 1, 2, 3])
        assert_array_equal(actual, expected)

        # outer type is masked array, inner type is matrix
        assert_equal(type(actual), type(expected))
        assert_equal(type(actual.data), type(expected.data))
Ejemplo n.º 26
0
    def test_inner_join(self):
        # Basic test of join_by
        a, b = self.a, self.b

        test = join_by('a', a, b, jointype='inner')
        control = np.array([(5, 55, 65, 105, 100), (6, 56, 66, 106, 101),
                            (7, 57, 67, 107, 102), (8, 58, 68, 108, 103),
                            (9, 59, 69, 109, 104)],
                           dtype=[('a', int), ('b1', int), ('b2', int),
                                  ('c', int), ('d', int)])
        assert_equal(test, control)
Ejemplo n.º 27
0
 def test_byview(self):
     # Test creation by view
     base = self.base
     mbase = base.view(mrecarray)
     assert_equal(mbase.recordmask, base.recordmask)
     assert_equal_records(mbase._mask, base._mask)
     assert_(isinstance(mbase._data, recarray))
     assert_equal_records(mbase._data, base._data.view(recarray))
     for field in ('a', 'b', 'c'):
         assert_equal(base[field], mbase[field])
     assert_equal_records(mbase.view(mrecarray), mbase)
Ejemplo n.º 28
0
 def test_masked_flexible(self):
     # Test recursive_fill_fields on masked flexible-array
     a = ma.array([(1, 10.), (2, 20.)],
                  mask=[(0, 1), (1, 0)],
                  dtype=[('A', int), ('B', float)])
     b = ma.zeros((3, ), dtype=a.dtype)
     test = recursive_fill_fields(a, b)
     control = ma.array([(1, 10.), (2, 20.), (0, 0.)],
                        mask=[(0, 1), (1, 0), (0, 0)],
                        dtype=[('A', int), ('B', float)])
     assert_equal(test, control)
Ejemplo n.º 29
0
 def test_append_on_nested(self):
     # Test append_fields on nested fields
     w = self.data[0]
     test = append_fields(w, 'C', data=[10, 20, 30])
     control = ma.array(
         [(1, (2, 3.0), 10), (4, (5, 6.0), 20), (-1, (-1, -1.), 30)],
         mask=[(0, (0, 0), 0), (0, (0, 0), 0), (1, (1, 1), 0)],
         dtype=[('a', int), ('b', [('ba', float), ('bb', int)]),
                ('C', int)],
     )
     assert_equal(test, control)
Ejemplo n.º 30
0
    def test_same_name_different_dtypes_key(self):
        a_dtype = np.dtype([('key', 'S5'), ('value', '<f4')])
        b_dtype = np.dtype([('key', 'S10'), ('value', '<f4')])
        expected_dtype = np.dtype([('key', 'S10'), ('value1', '<f4'),
                                   ('value2', '<f4')])

        a = np.array([('Sarah', 8.0), ('John', 6.0)], dtype=a_dtype)
        b = np.array([('Sarah', 10.0), ('John', 7.0)], dtype=b_dtype)
        res = join_by('key', a, b)

        assert_equal(res.dtype, expected_dtype)