local tests = require('Module:UnitTests')
local m_IPA = require('Module:be-pronunciation')
local Belarusian = require("Module:languages").getByCode("be")
local Cyrillic = require("Module:scripts").getByCode("Cyrl")
local function link(term)
return require("Module:links").full_link{ term = term, lang = Belarusian, sc = Cyrillic }
end
local function tag_IPA(IPA)
return '<span class="IPA">' .. IPA .. '</span>'
end
function tests:check_output(term, expected)
tests:equals(
link(term),
m_IPA.toIPA(term),
expected,
{ display = tag_IPA }
)
end
function tests:test_all()
local list = {
{ "мільён", "mʲiˈlʲjon" },
{ "яе́чка", "jaˈjet͡ʂka" },
{ "зямля́", "zʲamˈlʲa" },
{ "дзе́сяць", "ˈd͡zʲesʲat͡sʲ" },
{ "аўто́бус", "au̯ˈtobus" },
{ "жыццё", "ʐɨˈt͡sʲːo" },
{ "ра́дыё", "ˈradɨjo" },
{ "гэ́тая", "ˈɣɛtaja" },
{ "вакза́л", "vaɡˈzaɫ" },
{ "мазгі́", "mazˈɡʲi" },
{ "дзве́ры", "ˈd͡zʲvʲerɨ" },
{ "адхо́д", "atˈxot" },
{ "до́шцы", "ˈdost͡sɨ" },
{ "рэ́чцы", "ˈrɛt͡sːɨ" },
{ "лі́чба", "ˈlʲid͡ʐba" },
{ "зжаць", "ʐːat͡sʲ" },
{ "пераво́зчык", "pʲeraˈvoʂt͡ʂɨk" },
{ "адся́чы", "at͡sʲˈsʲat͡ʂɨ" },
{ "адцёрты", "aˈt͡sʲːortɨ" },
{ "пацвёльваць", "pat͡sʲˈvʲolʲvat͡sʲ" },
{ "свет", "sʲvʲet" },
{ "на́зве", "ˈnazvʲe" },
{ "салаўі́", "saɫau̯ˈji" },
{ "б’ю", "bju" },
{ "трамбо́н", "tramˈbon" },
{ "парцье́", "parˈt͡sʲje" },
{ "з’я́ва", "ˈzʲjava" },
{ "жарсцве́ць", "ʐarsʲˈt͡sʲvʲet͡sʲ" },
{ "мя́ккі", "ˈmʲakʲːi" },
{ "мундзі́р", "munʲˈd͡zʲir" },
{ "мо̀вазна́ўства", "ˌmovaˈznau̯stva" },
{ "займе́ннік", "zajˈmʲenʲːik" },
{ "Злу́чаныя Шта́ты Аме́рыкі", "ˈzɫut͡ʂanɨja ˈʂtatɨ aˈmʲerɨkʲi" },
{ "О́сла", "ˈosɫa" },
}
--[[
Additions take this form –
{ "word with acutes", "IPA" },
{ "", "" },
Make sure to include the comma, or the module will return an error.
]]
self:iterate(list, "check_output")
end
function tests:test_w()
self:check_output("во́ўк", "ˈvou̯k")
self:check_output("рука́ў", "ruˈkau̯")
self:check_output("аўто́рак", "au̯ˈtorak")
self:check_output("паўаўтама́т", "pawau̯taˈmat")
self:check_output("ба́ўэр", "ˈbawɛr")
self:check_output("паўэрлі́фтынг", "pawɛrˈlʲiftɨnx")
end
function tests:test_confirmed_problems_with_known_desired_output()
self:check_output("бязглу́зды", "bʲazɣˈɫuzdɨ")
self:check_output("падча́с", "paˈt͡ʂːas")
self:check_output("до́свед", "ˈdosʲvʲet") -- but "ɛ" vs. "e" is an open question
end
return tests