Exemple #1
0
    def test_factory_slice(self):
        local_vars = {'qr': QRegister(3), 'n': 1}
        node = ast.parse("a = QRegister(qr[0], qr[1])").body[0]
        a = QRegister.factory(node, local_vars)
        self.assertEqual(len(a), 2)
        self.assertEqual(a.qubits, [1,2])

        node = ast.parse("a = QRegister(qr[0:2])").body[0]
        a = QRegister.factory(node, local_vars)
        self.assertEqual(len(a), 2)
        self.assertEqual(a.qubits, [1,2])

        node = ast.parse("a = QRegister(qr[:2])").body[0]
        a = QRegister.factory(node, local_vars)
        self.assertEqual(len(a), 2)
        self.assertEqual(a.qubits, [1,2])

        node = ast.parse("a = QRegister(qr[1:])").body[0]
        a = QRegister.factory(node, local_vars)
        self.assertEqual(len(a), 2)
        self.assertEqual(a.qubits, [2,3])

        node = ast.parse("a = QRegister(qr[n:])").body[0]
        a = QRegister.factory(node, local_vars)
        self.assertEqual(len(a), 2)
        self.assertEqual(a.qubits, [2,3])

        node = ast.parse("a = QRegister(qr[-1:])").body[0]
        a = QRegister.factory(node, local_vars)
        self.assertEqual(len(a), 1)
        self.assertEqual(a.qubits, [3])

        node = ast.parse("a = QRegister(qr[0::2])").body[0]
        a = QRegister.factory(node, local_vars)
        self.assertEqual(len(a), 2)
        self.assertEqual(a.qubits, [1,3])
Exemple #2
0
 def test_factory(self):
     node = ast.parse("a = QRegister('q1', 'q5')").body[0]
     a = QRegister.factory(node, {})
     self.assertEqual(len(a), 2)
     self.assertEqual(a.qubits, [1,5])