def test_multiple_instantiate(): p = Program() q = p.alloc() p.inst(H(q)) p.free(q) assert p.out() == 'H 0\n' assert p.out() == 'H 0\n'
def test_alloc_free(): p = Program() q1 = p.alloc() p.inst(H(q1)) p.free(q1) q2 = p.alloc() p.inst(H(q2)) p.free(q2) assert p.resource_manager.live_qubits == [] assert p.out() == "H 0\nH 0\n"
def test_alloc_free(): p = Program() p.inst(H(0)) # H 0 q1 = p.alloc() # q1 = 1 q2 = p.alloc() # q2 = 3 p.inst(CNOT(q1, q2)) # CNOT 1 3 p.inst(H(2)) q3 = p.alloc() # q3 = 4 p.inst(X(q3)) # X 4 p.free(q1) # remove 1 q4 = p.alloc() # q4 = 1 p.inst(Y(q4)) # Y 1 p.free(q2) p.free(q3) p.free(q4) assert p.resource_manager.live_qubits == [] assert p.out() == "H 0\n" \ "CNOT 1 3\n" \ "H 2\n" \ "X 4\n" \ "Y 1\n"