import pytest

from ukr.wfst import normalize


@pytest.mark.parametrize('spoken,expected', [
    ("один", 'один'),
    ("мінус один", 'мінус один'),
    ("дев'ять", "дев'ять"),
    ("сорок одні", '41'),
    ("мінус тринадцять", '-13'),
    ("тринадцять", '13'),
    ("чотирнадцять", '14'),
    ("сто чотирнадцять", '114'),
    ("ста чотирнадцять", '114'),
    ("сто сорок один", '141'),
    ("сто", '100'),
    ("двісті один", '201'),
    ("п'ятсот десять", '510'),
    ("одна тисяча сто один", '1101'),
    ("двадцять дві тисячі", '22000'),
    ("двадцять п'ять тисяч", '25000'),
    ("двадцять дві тисячі сто один", '22101'),
    ("двадцять дві тисячі сто один", '22101'),
    ("дві тисячі двадцять два", '2022'),
    ("дві тисячі два", '2002'),
    ("десять тисячі два", '10002'),
    ("двісті двадцять", '220'),
    ("тисячу двісті двадцять", '1220'),
    ("тисяча дев'ятсот сімдесят", '1970'),
    ("одна тисяча дев'ятсот сімдесят", '1970'),
    ("одна тисяча дев'ятсот сімдесят", '1970'),
])
def test_cardinal(spoken, expected):
    assert normalize(spoken) == expected
