def testTensorSerialize(self): from mars.tensor import split t = ones((10, 10, 8), chunks=(3, 3, 5)) serials = self._pb_serial(t) dt = self._pb_deserial(serials)[t.data] self.assertEqual(dt.params.raw_chunks, (3, 3, 5)) serials = self._json_serial(t) dt = self._json_deserial(serials)[t.data] self.assertEqual(dt.params.raw_chunks, (3, 3, 5)) t2, _ = split(t, 2) serials = self._pb_serial(t2) dt = self._pb_deserial(serials)[t2.data] self.assertEqual(dt.op.indices_or_sections, 2) t2, _, _ = split(t, ones(2, chunks=2)) serials = self._pb_serial(t2) dt = self._pb_deserial(serials)[t2.data] with build_mode(): self.assertIn(dt.op.indices_or_sections, dt.inputs)
def testSetTensorInputs(self): t1 = tensor([1, 2], chunks=2) t2 = tensor([2, 3], chunks=2) t3 = t1 + t2 t1c = copy(t1) t2c = copy(t2) self.assertIsNot(t1c, t1) self.assertIsNot(t2c, t2) self.assertIs(t3.op.lhs, t1.data) self.assertIs(t3.op.rhs, t2.data) self.assertEqual(t3.op.inputs, [t1.data, t2.data]) self.assertEqual(t3.inputs, [t1.data, t2.data]) with self.assertRaises(ValueError): t3.inputs = [] t1 = tensor([1, 2], chunks=2) t2 = tensor([True, False], chunks=2) t3 = t1[t2] t1c = copy(t1) t2c = copy(t2) t3c = copy(t3) t3c.inputs = [t1c, t2c] with build_mode(): self.assertIs(t3c.op.input, t1c.data) self.assertIs(t3c.op.indexes[0], t2c.data)
def testBuildMode(self): t1 = ones((2, 3), chunk_size=2) self.assertTrue(t1 == 2) with build_mode(): self.assertFalse(t1 == 2)