def test_validate_protoquil_reset_qubit(): prog = Program( RESET(2), ) with pytest.raises(ValueError): validate_protoquil(prog) assert not prog.is_protoquil()
def test_validate_protoquil_measure_last(): prog = Program( MEASURE(0), H(0), ) with pytest.raises(ValueError): validate_protoquil(prog) assert not prog.is_protoquil()
def test_validate_protoquil_reset_first(): prog = Program( H(0), RESET(), ) with pytest.raises(ValueError): validate_protoquil(prog) assert not prog.is_protoquil()
def test_validate_protoquil_with_pragma(): prog = Program( RESET(), H(1), Pragma('DELAY'), MEASURE(1) ) assert prog.is_protoquil()
def test_is_protoquil(): prog = Program(Declare('ro', 'BIT'), MEASURE(1, MemoryReference("ro", 0)), H(1), RESET()) validate_protoquil(prog) assert prog.is_protoquil() prog = Program(Declare('ro', 'BIT'), H(0), Y(1), CNOT(0, 1)) \ .measure(0, MemoryReference("ro", 0)) \ .if_then(MemoryReference("ro", 0), Program(X(0)), Program()) with pytest.raises(ValueError): validate_protoquil(prog) assert not prog.is_protoquil() prog = Program(Declare('ro', 'BIT'), ClassicalNot(MemoryReference("ro", 0))) with pytest.raises(ValueError): validate_protoquil(prog) assert not prog.is_protoquil()
def test_is_protoquil(): prog = Program(Declare("ro", "BIT"), MEASURE(1, MemoryReference("ro", 0)), H(1), RESET()) validate_protoquil(prog) assert prog.is_protoquil() prog = (Program(Declare("ro", "BIT"), H(0), Y(1), CNOT(0, 1)).measure( 0, MemoryReference("ro", 0)).if_then(MemoryReference("ro", 0), Program(X(0)), Program())) with pytest.raises(ValueError): validate_protoquil(prog) assert not prog.is_protoquil() prog = Program(Declare("ro", "BIT"), ClassicalNot(MemoryReference("ro", 0))) with pytest.raises(ValueError): validate_protoquil(prog) assert not prog.is_protoquil() prog = Program(DefCalibration("I", [], [Qubit(0)], []), I(0)) with pytest.raises(ValueError): validate_protoquil(prog) assert not prog.is_protoquil() assert prog.is_protoquil(quilt=True)