예제 #1
0
    def test_append_fields_dtype_list(self):
        # Ticket #1676
        from numpy1.lib.recfunctions import append_fields

        base = np.array([1, 2, 3], dtype=np.int32)
        names = ['a', 'b', 'c']
        data = np.eye(3).astype(np.int32)
        dlist = [np.float64, np.int32, np.int32]
        try:
            append_fields(base, names, data, dlist)
        except Exception:
            raise AssertionError()
예제 #2
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)
예제 #3
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)
예제 #4
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)
예제 #5
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)
예제 #6
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)