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)
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)