예제 #1
0
 def test_two_mode(self):
     q = QuadOperator('p2 q0')
     b = get_boson_operator(q, hbar=self.hbar)
     expected = -1j*self.hbar/2 \
         * (BosonOperator('0') + BosonOperator('0^')) \
         * (BosonOperator('2') - BosonOperator('2^'))
     self.assertTrue(b == expected)
예제 #2
0
 def test_two_term(self):
     q = QuadOperator('p0 q0') + QuadOperator('q0 p0')
     b = get_boson_operator(q, hbar=self.hbar)
     expected = -1j*self.hbar/2 \
         * ((BosonOperator('0') + BosonOperator('0^'))
            * (BosonOperator('0') - BosonOperator('0^'))
            + (BosonOperator('0') - BosonOperator('0^'))
            * (BosonOperator('0') + BosonOperator('0^')))
     self.assertTrue(b == expected)
예제 #3
0
 def test_p(self):
     q = QuadOperator('p2')
     b = get_boson_operator(q, hbar=self.hbar)
     expected = BosonOperator('2') - BosonOperator('2^')
     expected *= -1j * numpy.sqrt(self.hbar / 2)
     self.assertTrue(b == expected)
예제 #4
0
 def test_x(self):
     q = QuadOperator('q0')
     b = get_boson_operator(q, hbar=self.hbar)
     expected = BosonOperator('0') + BosonOperator('0^')
     expected *= numpy.sqrt(self.hbar / 2)
     self.assertTrue(b == expected)
예제 #5
0
 def test_identity(self):
     q = QuadOperator('')
     b = get_boson_operator(q)
     self.assertTrue(b == BosonOperator.identity())
예제 #6
0
 def test_zero(self):
     q = QuadOperator()
     b = get_boson_operator(q)
     self.assertTrue(b == BosonOperator.zero())
예제 #7
0
 def test_invalid_op(self):
     op = BosonOperator()
     with self.assertRaises(TypeError):
         _ = get_boson_operator(op)