summaryrefslogtreecommitdiff
path: root/tests/test_lexer.py
blob: 1bb2213a9f8d25bf1cf1620defb17d3dab43b638 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""Tests for the MML lexer."""

from mml_composemusic_mcp.lexer import TokenType, tokenize


def test_ppmck_tokens():
    source = "A t150 l8 o4 v15 q2\nc d e f"
    tokens = tokenize(source, "ppmck")
    types = [t.type for t in tokens]
    assert TokenType.TRACK_HEADER in types
    assert TokenType.TEMPO in types
    assert TokenType.NOTE in types


def test_pyxel_tokens():
    source = "0: T150 L8 O4 V100 @1\nC D E F"
    tokens = tokenize(source, "pyxel")
    types = [t.type for t in tokens]
    assert TokenType.TRACK_HEADER in types
    assert TokenType.AT in types
    assert TokenType.NOTE in types


def test_pyxel_repeat():
    tokens = tokenize("[ C D ]2", "pyxel")
    assert any(t.type == TokenType.REPEAT_START for t in tokens)
    assert any(t.type == TokenType.REPEAT_END for t in tokens)