def test_reduce(self):
        """Test reduce"""
        fer_op = FermionicOp("N") + FermionicOp("E") + FermionicOp("N")
        reduced_op = fer_op.reduce()
        self.assertSetEqual(frozenset(reduced_op.to_list()),
                            frozenset([("N", 2), ("E", 1)]))

        fer_op = FermionicOp(("+", 1)) + FermionicOp(("-", 1j)) + FermionicOp(
            ("+", 1j))
        reduced_op = fer_op.reduce()
        self.assertSetEqual(frozenset(reduced_op.to_list()),
                            frozenset([("+", 1 + 1j), ("-", 1j)]))
예제 #2
0
    def test_reduce(self):
        """Test reduce"""
        with self.subTest("reduce integer"):
            fer_op = FermionicOp("N") + FermionicOp("E") + FermionicOp("N")
            reduced_op = fer_op.reduce()
            targ = FermionicOp([("N", 2), ("E", 1)])
            self.assertFermionEqual(reduced_op, targ)

        with self.subTest("reduce complex"):
            fer_op = FermionicOp(
                "+") + 1j * FermionicOp("-") + 1j * FermionicOp("+")
            reduced_op = fer_op.reduce()
            targ = FermionicOp([("+", 1 + 1j), ("-", 1j)])
            self.assertFermionEqual(reduced_op, targ)