예제 #1
0
    def test_normal_ordered_triple(self):
        op_132 = FermionOperator(((1, 1), (3, 0), (2, 0)))
        op_123 = FermionOperator(((1, 1), (2, 0), (3, 0)))
        op_321 = FermionOperator(((3, 0), (2, 0), (1, 1)))

        self.assertTrue(op_132 == normal_ordered(-op_123))
        self.assertTrue(op_132 == normal_ordered(op_132))
        self.assertTrue(op_132 == normal_ordered(op_321))
예제 #2
0
 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 == normal_ordered(op))
예제 #3
0
 def test_normal_ordered_double_create_separated(self):
     op = FermionOperator(((3, 1), (2, 0), (3, 1)))
     expected = FermionOperator((), 0.0)
     self.assertTrue(expected == normal_ordered(op))
예제 #4
0
 def test_normal_ordered_offsite_reversed(self):
     op = FermionOperator(((3, 0), (2, 1)))
     expected = -FermionOperator(((2, 1), (3, 0)))
     self.assertTrue(expected == normal_ordered(op))
예제 #5
0
 def test_normal_ordered_offsite(self):
     op = FermionOperator(((3, 1), (2, 0)))
     self.assertTrue(op == normal_ordered(op))
예제 #6
0
 def test_normal_ordered_number_reversed(self):
     n_term_rev2 = FermionOperator(((2, 0), (2, 1)))
     number_op2 = number_operator(3, 2)
     expected = FermionOperator(()) - number_op2
     self.assertTrue(normal_ordered(n_term_rev2) == expected)
예제 #7
0
 def test_normal_ordered_number(self):
     number_op2 = FermionOperator(((2, 1), (2, 0)))
     self.assertTrue(number_op2 == normal_ordered(number_op2))
예제 #8
0
 def test_normal_ordered_two_term(self):
     op_b = FermionOperator(((2, 0), (4, 0), (2, 1)), -88.)
     normal_ordered_b = normal_ordered(op_b)
     expected = (FermionOperator(((4, 0), ), 88.) + FermionOperator(
         ((2, 1), (4, 0), (2, 0)), 88.))
     self.assertTrue(normal_ordered_b == expected)
예제 #9
0
 def test_normal_ordered_single_term(self):
     op = FermionOperator('4 3 2 1') + FermionOperator('3 2')
     self.assertTrue(op == normal_ordered(op))