Jump to content

Module:be-pronunciation/testcases

From Wiktionary, the free dictionary

5 of 43 tests failed. (refresh)

TextExpectedActual
test_all:
Passedмільён (milʹjón)mʲiˈlʲjonmʲiˈlʲjon
Passedяе́чка (jajéčka)jaˈjet͡ʂkajaˈjet͡ʂka
Passedзямля́ (zjamljá)zʲamˈlʲazʲamˈlʲa
Passedдзе́сяць (dzjésjacʹ)ˈd͡zʲesʲat͡sʲˈd͡zʲesʲat͡sʲ
Passedаўто́бус (aŭtóbus)au̯ˈtobusau̯ˈtobus
Passedжыццё (žyccjó)ʐɨˈt͡sʲːoʐɨˈt͡sʲːo
Passedра́дыё (rádyjo)ˈradɨjoˈradɨjo
Passedгэ́тая (hétaja)ˈɣɛtajaˈɣɛtaja
Passedвакза́л (vakzál)vaɡˈzaɫvaɡˈzaɫ
Passedмазгі́ (mazhí)mazˈɡʲimazˈɡʲi
Passedдзве́ры (dzvjéry)ˈd͡zʲvʲerɨˈd͡zʲvʲerɨ
Passedадхо́д (adxód)atˈxotatˈxot
Passedдо́шцы (dóšcy)ˈdost͡sɨˈdost͡sɨ
Passedрэ́чцы (réčcy)ˈrɛt͡sːɨˈrɛt͡sːɨ
Passedлі́чба (líčba)ˈlʲid͡ʐbaˈlʲid͡ʐba
Passedзжаць (zžacʹ)ʐːat͡sʲʐːat͡sʲ
Passedпераво́зчык (pjeravózčyk)pʲeraˈvoʂt͡ʂɨkpʲeraˈvoʂt͡ʂɨk
Passedадся́чы (adsjáčy)at͡sʲˈsʲat͡ʂɨat͡sʲˈsʲat͡ʂɨ
Passedадцёрты (adcjórty)aˈt͡sʲːortɨaˈt͡sʲːortɨ
Passedпацвёльваць (pacvjólʹvacʹ)pat͡sʲˈvʲolʲvat͡sʲpat͡sʲˈvʲolʲvat͡sʲ
Passedсвет (svjet)sʲvʲetsʲvʲet
Passedна́зве (názvje)ˈnazvʲeˈnazvʲe
Passedсалаўі́ (salaŭí)saɫau̯ˈjisaɫau̯ˈji
Passedб’ю (bʺju)bjubju
Passedтрамбо́н (trambón)tramˈbontramˈbon
Passedпарцье́ (parcʹjé)parˈt͡sʲjeparˈt͡sʲje
Passedз’я́ва (zʺjáva)ˈzʲjavaˈzʲjava
Failedжарсцве́ць (žarscvjécʹ)ʐarsʲˈt͡sʲvʲet͡sʲʐarsʲt͡sʲˈvʲet͡sʲ
Passedмя́ккі (mjákki)ˈmʲakʲːiˈmʲakʲːi
Passedмундзі́р (mundzír)munʲˈd͡zʲirmunʲˈd͡zʲir
Failedмо̀вазна́ўства (mòvaznáŭstva)ˌmovaˈznau̯stvaˌmovazˈnau̯stva
Passedзайме́ннік (zajmjénnik)zajˈmʲenʲːikzajˈmʲenʲːik
PassedЗлу́чаныя Шта́ты Аме́рыкі (Zlúčanyja Štáty Amjéryki)ˈzɫut͡ʂanɨja ˈʂtatɨ aˈmʲerɨkʲiˈzɫut͡ʂanɨja ˈʂtatɨ aˈmʲerɨkʲi
PassedО́сла (Ósla)ˈosɫaˈosɫa
TextExpectedActual
test_confirmed_problems_with_known_desired_output:
Failedбязглу́зды (bjazhlúzdy)bʲazɣˈɫuzdɨbʲazɡˈɫuzdɨ
Failedпадча́с (padčás)paˈt͡ʂːaspatˈː͡ʂas
Failedдо́свед (dósvjed)ˈdosʲvʲetˈdosvʲet
TextExpectedActual
test_w:
Passedво́ўк (vóŭk)ˈvou̯kˈvou̯k
Passedрука́ў (rukáŭ)ruˈkau̯ruˈkau̯
Passedаўто́рак (aŭtórak)au̯ˈtorakau̯ˈtorak
Passedпаўаўтама́т (paŭaŭtamát)pawau̯taˈmatpawau̯taˈmat
Passedба́ўэр (báŭer)ˈbawɛrˈbawɛr
Passedпаўэрлі́фтынг (paŭerlíftynh)pawɛrˈlʲiftɨnxpawɛrˈlʲiftɨnx

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