def test_is_normal_ordered_empty(self):
     op = FermionOperator() * 2
     self.assertTrue(op.is_normal_ordered())
 def test_number_operator_site(self):
     op = number_operator(3, 2, 1j)
     self.assertTrue(op.isclose(FermionOperator(((2, 1), (2, 0))) * 1j))
 def test_number_operator_nosite(self):
     op = number_operator(4)
     expected = (FermionOperator(((0, 1), (0, 0))) + FermionOperator(
         ((1, 1), (1, 0))) + FermionOperator(
             ((2, 1), (2, 0))) + FermionOperator(((3, 1), (3, 0))))
     self.assertTrue(op.isclose(expected))
 def test_freeze_orbitals_nonvanishing(self):
     op = FermionOperator(((1, 1), (1, 0), (0, 1), (2, 0)))
     op_frozen = freeze_orbitals(op, [1])
     expected = FermionOperator(((0, 1), (1, 0)), -1)
     self.assertTrue(op_frozen.isclose(expected))
 def test_freeze_orbitals_vanishing(self):
     op = FermionOperator(((1, 1), (2, 0)))
     op_frozen = freeze_orbitals(op, [], [2])
     self.assertEquals(len(op_frozen.terms), 0)
 def test_is_molecular_term_three(self):
     op = FermionOperator(((0, 1), (2, 1), (4, 0)))
     self.assertFalse(op.is_molecular_term())
 def test_is_molecular_term_out_of_order(self):
     op = FermionOperator(((0, 1), (2, 0), (1, 1), (3, 0)))
     self.assertTrue(op.is_molecular_term())
 def test_is_molecular_term_downup_badspin(self):
     op = FermionOperator(((2, 0), (3, 1)))
     self.assertFalse(op.is_molecular_term())
 def test_is_molecular_term_downup(self):
     op = FermionOperator(((2, 0), (4, 1)))
     self.assertTrue(op.is_molecular_term())
 def test_is_molecular_term_FermionOperator(self):
     op = FermionOperator()
     self.assertTrue(op.is_molecular_term())
 def test_normal_ordered_multi(self):
     op = FermionOperator(((2, 0), (1, 1), (2, 1)))
     expected = (-FermionOperator(
         ((2, 1), (1, 1), (2, 0))) - FermionOperator(((1, 1), )))
     self.assertTrue(expected.isclose(normal_ordered(op)))
 def test_normal_ordered_double_create_separated(self):
     op = FermionOperator(((3, 1), (2, 0), (3, 1)))
     expected = FermionOperator((), 0.0)
     self.assertTrue(expected.isclose(normal_ordered(op)))