def test_supported_format(): lexer = QasmLexer() lexer.input("OPENQASM 2.0;") token = lexer.token() assert token is not None assert token.type == "FORMAT_SPEC" assert token.value == '2.0'
def test_qelib_inc(): lexer = QasmLexer() lexer.input('include "qelib1.inc";') token = lexer.token() assert token is not None assert token.type == "QELIBINC" assert token.value == 'include "qelib1.inc";'
def test_natural_numbers(number: str): lexer = QasmLexer() lexer.input(number) token = lexer.token() assert token is not None assert token.type == "NATURAL_NUMBER" assert token.value == int(number)
def test_valid_ids(identifier: str): lexer = QasmLexer() lexer.input(identifier) token = lexer.token() assert token is not None assert token.type == "ID" assert token.value == identifier
def test_numbers(number: str): lexer = QasmLexer() lexer.input(number) token = lexer.token() assert token is not None assert token.type == "NUMBER" assert token.value == float(number)
def test_measurement(): lexer = QasmLexer() lexer.input("measure q -> c;") token = lexer.token() assert token.type == "MEASURE" assert token.value == 'measure' token = lexer.token() assert token.type == "ID" assert token.value == 'q' token = lexer.token() assert token.type == "ARROW" assert token.value == '->' token = lexer.token() assert token.type == "ID" assert token.value == 'c' token = lexer.token() assert token.type == ";" assert token.value == ';'
def test_creg(): lexer = QasmLexer() lexer.input('creg [8];') token = lexer.token() assert token.type == "CREG" assert token.value == "creg" token = lexer.token() assert token.type == "[" assert token.value == "[" token = lexer.token() assert token.type == "NATURAL_NUMBER" assert token.value == 8 token = lexer.token() assert token.type == "]" assert token.value == "]" token = lexer.token() assert token.type == ";" assert token.value == ";"
def test_qreg(): lexer = QasmLexer() lexer.input('qreg [5];') token = lexer.token() assert token.type == "QREG" assert token.value == "qreg" token = lexer.token() assert token.type == "[" assert token.value == "[" token = lexer.token() assert token.type == "NATURAL_NUMBER" assert token.value == 5 token = lexer.token() assert token.type == "]" assert token.value == "]" token = lexer.token() assert token.type == ";" assert token.value == ";"
def test_empty_circuit(): lexer = QasmLexer() lexer.input("") assert lexer.token() is None
def test_error(): lexer = QasmLexer() lexer.input('θ') with pytest.raises(QasmException, match="Illegal character 'θ' at line 1"): lexer.token()
def test_pi(): lexer = QasmLexer() lexer.input('pi') token = lexer.token() assert token.type == "PI" assert token.value == np.pi