示例#1
0
 def test_constant_0(self):
     z = Construct((1, 0))
     o = Construct((0, 1))
     control = Construct(z.flat())
     target = Construct(z.flat())
     self.assertEqual(control, z)
     self.assertEqual(target, z)
     control = Construct(o.flat())
     target = Construct(z.flat())
     self.assertEqual(control, o)
     self.assertEqual(target, z)
示例#2
0
    def test_16_steps(self):
        """16 Step Circle Walk test"""
        z = Construct((1, 0))
        steps = [
            (0, 1),
            (sqrt(1 / 2), -sqrt(1 / 2)),
            (-sqrt(1 / 2), sqrt(1 / 2)),
            (0, -1),
            (-1, 0),
            (-sqrt(1 / 2), -sqrt(1 / 2)),
            (-sqrt(1 / 2), -sqrt(1 / 2)),
            (-1, 0),
            (0, -1),
            (-sqrt(1 / 2), sqrt(1 / 2)),
            (sqrt(1 / 2), -sqrt(1 / 2)),
            (0, 1),
            (1, 0),
            (sqrt(1 / 2), sqrt(1 / 2)),
            (sqrt(1 / 2), sqrt(1 / 2)),
            (1, 0),
        ]
        starting = Construct((z.flat()))
        for i in range(16):
            if i % 2:
                gate = 'Hadamard'
                z2 = self.hadamard(z)
            else:
                gate = '   XGate'
                z2 = self.xgate(z)

            z = z2
            self.assertEqual(z, Construct(steps[i]))
        self.assertEqual(z, starting)