def test_parse_one_number():
    expect = Token(ltype=Ltype.NUMBER, value=123)

    actualToken, gene = parse_one(to_char_gen("123"))

    assert expect.value == actualToken.value
    assert expect.ltype == actualToken.ltype
    def test_parser_one_executable_name():
        expect = Token(ltype=Ltype.EXECUTABLE_NAME, value=i[0])

        actualToken, gene = parse_one(to_char_gen(i[1]))

        assert expect.value == actualToken.value
        assert expect.ltype == actualToken.ltype
def test_parse_one_literal_name():
    expect = Token(ltype=Ltype.LITERAL_NAME, value="add")

    actualToken, gene = parse_one(to_char_gen("/add"))

    assert expect.value == actualToken.value
    assert expect.ltype == actualToken.ltype
def test_parse_one_empty_should_return_END_OF_FILE():
    expect = Token(ltype=Ltype.END_OF_FILE, value="")

    actualToken, gene = parse_one(to_char_gen(""))

    assert expect.ltype == actualToken.ltype
    assert expect.value == actualToken.value
def test_elem_literal_name():
    expect_elem = Element(Etype.LITERAL_NAME, value="add")

    actual_elem = next(to_elems(to_char_gen("/add")))

    assert expect_elem.etype == actual_elem.etype
    assert expect_elem.value == actual_elem.value
def test_elem_executable_name():
    expect_elem = Element(Etype.EXECUTABLE_NAME, value="add")

    actual_elem = next(to_elems(to_char_gen("add")))

    assert expect_elem.etype == actual_elem.etype
    assert expect_elem.value == actual_elem.value
def test_parse_one_close_curly():
    expect = Token(ltype=Ltype.CLOSE_CURLY, value="}")

    actualToken, gene = parse_one(to_char_gen("}"))

    assert expect.ltype == actualToken.ltype
def test_parse_one_open_curly():
    expect = Token(ltype=Ltype.OPEN_CURLY, value="{")

    actualToken, gene = parse_one(to_char_gen("{"))

    assert expect.ltype == actualToken.ltype
def test_elem_number():
    expect_elem = Element(Etype.NUMBER, value=123)
    actual_elem = next(to_elems(to_char_gen("123")))

    assert expect_elem.etype == actual_elem.etype
    assert expect_elem.value == actual_elem.value
def test_elem_not_exist():
    with pytest.raises(StopIteration):
        next(to_elems(to_char_gen("")))