示例#1
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)
示例#2
0
 def test_wmasked_arrays(self):
     # Test merge_arrays masked arrays
     (_, x, _, _) = self.data
     mx = ma.array([1, 2, 3], mask=[1, 0, 0])
     test = merge_arrays((x, mx), usemask=True)
     control = ma.array([(1, 1), (2, 2), (-1, 3)],
                        mask=[(0, 1), (0, 0), (1, 0)],
                        dtype=[('f0', int), ('f1', int)])
     assert_equal(test, control)
     test = merge_arrays((x, mx), usemask=True, asrecarray=True)
     assert_equal(test, control)
     assert_(isinstance(test, MaskedRecords))
示例#3
0
    def test_flatten(self):
        # Test standard & flexible
        (_, x, _, z) = self.data
        test = merge_arrays((x, z), flatten=True)
        control = np.array([(1, 'A', 1.), (2, 'B', 2.)],
                           dtype=[('f0', int), ('A', '|S3'), ('B', float)])
        assert_equal(test, control)

        test = merge_arrays((x, z), flatten=False)
        control = np.array([(1, ('A', 1.)), (2, ('B', 2.))],
                           dtype=[('f0', int),
                                  ('f1', [('A', '|S3'), ('B', float)])])
        assert_equal(test, control)
示例#4
0
    def test_w_shorter_flex(self):
        # Test merge_arrays w/ a shorter flexndarray.
        z = self.data[-1]

        # Fixme, this test looks incomplete and broken
        #test = merge_arrays((z, np.array([10, 20, 30]).view([('C', int)])))
        #control = np.array([('A', 1., 10), ('B', 2., 20), ('-1', -1, 20)],
        #                   dtype=[('A', '|S3'), ('B', float), ('C', int)])
        #assert_equal(test, control)

        # Hack to avoid pyflakes warnings about unused variables
        merge_arrays((z, np.array([10, 20, 30]).view([('C', int)])))
        np.array([('A', 1., 10), ('B', 2., 20), ('-1', -1, 20)],
                 dtype=[('A', '|S3'), ('B', float), ('C', int)])
示例#5
0
    def test_solo(self):
        # Test merge_arrays on a single array.
        (_, x, _, z) = self.data

        test = merge_arrays(x)
        control = np.array([(1, ), (2, )], dtype=[('f0', int)])
        assert_equal(test, control)
        test = merge_arrays((x, ))
        assert_equal(test, control)

        test = merge_arrays(z, flatten=False)
        assert_equal(test, z)
        test = merge_arrays(z, flatten=True)
        assert_equal(test, z)
示例#6
0
    def test_standard(self):
        # Test standard & standard
        # Test merge arrays
        (_, x, y, _) = self.data
        test = merge_arrays((x, y), usemask=False)
        control = np.array([(1, 10), (2, 20), (-1, 30)],
                           dtype=[('f0', int), ('f1', int)])
        assert_equal(test, control)

        test = merge_arrays((x, y), usemask=True)
        control = ma.array([(1, 10), (2, 20), (-1, 30)],
                           mask=[(0, 0), (0, 0), (1, 0)],
                           dtype=[('f0', int), ('f1', int)])
        assert_equal(test, control)
        assert_equal(test.mask, control.mask)
示例#7
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)
示例#8
0
    def test_flatten_wflexible(self):
        # Test flatten standard & nested
        (w, x, _, _) = self.data
        test = merge_arrays((x, w), flatten=True)
        control = np.array([(1, 1, 2, 3.0), (2, 4, 5, 6.0)],
                           dtype=[('f0', int), ('a', int), ('ba', float),
                                  ('bb', int)])
        assert_equal(test, control)

        test = merge_arrays((x, w), flatten=False)
        controldtype = [('f0', int),
                        ('f1', [('a', int), ('b', [('ba', float),
                                                   ('bb', int)])])]
        control = np.array([(1., (1, (2, 3.0))), (2, (4, (5, 6.0)))],
                           dtype=controldtype)
        assert_equal(test, control)
示例#9
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)