def test_tensor_operator(self, coeff, label): """Test tensor and expand methods with ScalarOp and Operator. ({coeff}, {label})""" dim = 3 iden = ScalarOp(dim, coeff=coeff) op = Operator.from_label(label) with self.subTest(msg="{}.expand(Operator({}))".format(iden, label)): val = iden.expand(op) target = iden.to_operator().expand(op) self.assertOperator(val, (3, 2), target) with self.subTest(msg="Operator({}).expand({})".format(label, iden)): val = op.expand(iden) target = op.expand(iden.to_operator()) self.assertOperator(val, (2, 3), target) with self.subTest(msg="{}.tensor(Operator({}))".format(iden, label)): val = iden.tensor(op) target = iden.to_operator().tensor(op) self.assertOperator(val, (2, 3), target) with self.subTest(msg="Operator({}).tensor({})".format(label, iden)): val = op.tensor(iden) target = op.tensor(iden.to_operator()) self.assertOperator(val, (3, 2), target)
def test_tensor_scalar(self, coeff1, coeff2): """Test tensor method with two ScalarOp. {coeff1}, {coeff2})""" dims1 = (3, 2) dims2 = (2, 4) op1 = ScalarOp(dims1, coeff=coeff1) op2 = ScalarOp(dims2, coeff=coeff2) val = op1.tensor(op2) target = coeff1 * coeff2 self.assertScalarOp(val, dims2 + dims1, target)