blob: 64fa17cb00cb65a4b1f2efba15b904c0bf0a4f10 (
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
28
29
30
31
32
33
34
35
36
37
|
"""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)
def test_ppmck_invalid_token():
tokens = tokenize("A t120 l4 o4 x c", "ppmck")
assert any(t.type == TokenType.INVALID for t in tokens)
def test_pyxel_invalid_token():
tokens = tokenize("0: T120 L4 O4 X C", "pyxel")
assert any(t.type == TokenType.INVALID for t in tokens)
|