class TestArrayConversion(ParallelTestCase): """ Test array conversion methods. """ def setUp(self): # On Python3, an 'int' gets converted to 'np.int64' on copy, # so we force the numpy type to start with so we get back # the same thing. self.int_type = np.int64 self.distribution = Distribution.from_shape(comm=self.comm, shape=(4,)) self.int_larr = LocalArray(self.distribution, dtype=self.int_type) self.int_larr.fill(3) def test_astype(self): """ Test that astype() works as expected. """ # Convert int array to float. float_larr = self.int_larr.astype(float) for global_inds, value in ndenumerate(float_larr): self.assertEqual(value, 3.0) self.assertTrue(isinstance(value, float)) # No type specification for a copy. # Should get same type as we started with. int_larr2 = self.int_larr.astype(None) for global_inds, value in ndenumerate(int_larr2): self.assertEqual(value, 3) self.assertTrue(isinstance(value, self.int_type))
class TestArrayConversion(ParallelTestCase): """ Test array conversion methods. """ def setUp(self): # On Python3, an 'int' gets converted to 'np.int64' on copy, # so we force the numpy type to start with so we get back # the same thing. self.int_type = np.int64 self.distribution = Distribution.from_shape(comm=self.comm, shape=(4, )) self.int_larr = LocalArray(self.distribution, dtype=self.int_type) self.int_larr.fill(3) def test_astype(self): """ Test that astype() works as expected. """ # Convert int array to float. float_larr = self.int_larr.astype(float) for global_inds, value in ndenumerate(float_larr): self.assertEqual(value, 3.0) self.assertTrue(isinstance(value, float)) # No type specification for a copy. # Should get same type as we started with. int_larr2 = self.int_larr.astype(None) for global_inds, value in ndenumerate(int_larr2): self.assertEqual(value, 3) self.assertTrue(isinstance(value, self.int_type))
def test_astype_cbc(self): new_dtype = np.int8 d = Distribution(comm=self.comm, dim_data=self.ddpr[self.comm.Get_rank()]) a = LocalArray(d, dtype=np.int32) a.fill(12) b = a.astype(new_dtype) assert_localarrays_allclose(a, b, check_dtype=False) self.assertEqual(b.dtype, new_dtype) self.assertEqual(b.ndarray.dtype, new_dtype)
def test_astype_bn(self): new_dtype = np.float32 d = Distribution.from_shape(comm=self.comm, shape=(16, 16), dist=('b', 'n')) a = LocalArray(d, dtype=np.int_) a.fill(11) b = a.astype(new_dtype) assert_localarrays_allclose(a, b, check_dtype=False) self.assertEqual(b.dtype, new_dtype) self.assertEqual(b.ndarray.dtype, new_dtype)