def test_add(self): """See if binary ufunc works for a LocalArray.""" d = Distribution.from_shape(comm=self.comm, shape=(16, 16)) a = LocalArray(d, dtype='int32') b = LocalArray(d, dtype='int32') a.fill(1) b.fill(1) c = localarray.add(a, b) self.assertTrue(np.all(c.ndarray == 2)) c = localarray.empty_like(a) c = localarray.add(a, b, c) self.assertTrue(np.all(c.ndarray == 2)) d0 = Distribution.from_shape(comm=self.comm, shape=(16, 16)) d1 = Distribution.from_shape(comm=self.comm, shape=(20, 20)) a = LocalArray(d0, dtype='int32') b = LocalArray(d1, dtype='int32') self.assertRaises(IncompatibleArrayError, localarray.add, a, b) d0 = Distribution.from_shape(comm=self.comm, shape=(16, 16)) d1 = Distribution.from_shape(comm=self.comm, shape=(20, 20)) a = LocalArray(d0, dtype='int32') b = LocalArray(d0, dtype='int32') c = LocalArray(d1, dtype='int32') self.assertRaises(IncompatibleArrayError, localarray.add, a, b, c)
def test_negative(self): """See if unary ufunc works for a LocalArray.""" d = Distribution.from_shape(comm=self.comm, shape=(16, 16)) a = LocalArray(d, dtype='int32') a.fill(1) b = localarray.negative(a) self.assertTrue(np.all(a.ndarray == -b.ndarray)) b = localarray.empty_like(a) b = localarray.negative(a, b) self.assertTrue(np.all(a.ndarray == -b.ndarray)) d2 = Distribution.from_shape(comm=self.comm, shape=(20, 20)) a = LocalArray(d, dtype='int32') b = LocalArray(d2, dtype='int32') self.assertRaises(IncompatibleArrayError, localarray.negative, b, a)