Documentation for this module may be created at မေႃႇၵျူး:pl-IPA/testcases/doc

local tests = require('Module:UnitTests')
local m_IPA = require("Module:pl-IPA")
local lang = require("Module:languages").getByCode("pl")

local function tag_IPA(IPA)
	return '<span class="IPA">' .. IPA .. '</span>'
end

local options = { display = tag_IPA }
function tests:check_ipa(word, expected, respelling)
	self:equals(
			require("Module:links").full_link({ term = word, lang = lang }, nil, true) .. (respelling and (" (respelled " .. respelling .. ")") or ""), m_IPA.convert_to_IPA(respelling or word), expected, options
	)
end

function tests:test_ipa()
	local examples = {
		{ 'klacz', 'klat͡ʂ' },
		{ 'odrzut', 'ˈɔd.ʐut' },
		{ 'zupa', 'ˈzu.pa' },
		{ 'przeżytek', 'pʂɛˈʐɨ.tɛk' },
		{ 'awers', 'ˈa.vɛrs' },
		{ 'abażur', 'aˈba.ʐur' },
		{ 'haczyk', 'ˈxa.t͡ʂɨk' },
		{ 'różdżka', 'ˈruʂ.t͡ʂka' },
		{ 'będąc', 'ˈbɛn.dɔnt͡s' },
		{ 'względnie', 'ˈvzɡlɛn.dɲɛ' },
		{ 'łódka', 'ˈwut.ka' },
		{ 'także', 'ˈtaɡ.ʐɛ' },
		{ 'jakby', 'ˈjaɡ.bɨ' },
		{ 'krzak', 'kʂak' },
		{ 'odtworzyć', 'ɔtˈtfɔ.ʐɨt͡ɕ' },
		{ 'dach domu', 'daɣ ˈdɔ.mu' },
		{ 'liść zielony', 'liʑd͡ʑ ʑɛˈlɔ.nɨ' },
		{ 'kawka', 'ˈkaf.ka' },
		{ 'wybór', 'ˈvɨ.bur' },
		{ 'rząd', 'ʐɔnt' },
		{ 'wagary', 'vaˈɡa.rɨ' },
		{ 'afrykański', 'af.rɨˈkaɲ.ski' },
		{ 'kwazinorma', 'kfa.ziˈnɔr.ma', 'kwaz-inorma' },
		{ 'naukowiec', 'na.uˈkɔ.vjɛt͡s', 'na-ukowiec' },
		{ 'dżawa', 'ˈd͡ʐa.va' },
		{ 'klechda', 'ˈklɛɣ.da' },
		{ 'zaawansowany', 'za.a.van.sɔˈva.nɨ' },
		{ 'powstrzymać', 'pɔfˈstʂɨ.mat͡ɕ' },
		{ 'babski', 'ˈbap.ski' },
		{ 'przeświadczyć', 'pʂɛˈɕfjat.t͡ʂɨt͡ɕ', 'przeˈświad.czyć' },
		{ 'suchokwiat', 'suˈxɔk.fjat' },
		{ 'zewnętrzny', 'zɛvˈnɛn.tʂnɨ' },
		{ 'nie od razu Rzym zbudowano', 'ɲɛ ɔdˈra.zu ʐɨm zbu.dɔˈva.nɔ', 'nie od-razu Rzym zbudowano' },
		{ 'natura ciągnie wilka do lasu', 'naˈtu.ra ˈt͡ɕɔŋ.ɡɲɛ ˈvil.ka dɔ ˈla.su' },
		{ 'ugryźć się w język', 'ˈuɡ.rɨɕt͡ɕ ɕɛ ˈvjɛw̃.zɨk', 'ugryźć się w-język' },
		{ 'bank', 'baŋk' },
		{ 'okienko', 'ɔˈkjɛŋ.kɔ' },
		{ 'panienka', 'paˈɲɛŋ.ka' },
		{ 'bolonka', 'bɔˈlɔŋ.ka' },
		{ 'chemikalia', 'xɛ.miˈka.lja' },
		{ 'zagłębić', 'zaˈɡwɛm.bit͡ɕ', 'zaˈɡłę.bić' },
		{ 'postępować', 'pɔ.stɛmˈpɔ.vat͡ɕ', 'po.stęˈpo.wać' },
		{ 'partia', 'ˈpar.tja', },
		{ 'Holandia', 'xɔˈlan.dja' },
		{ 'radio', 'ˈra.djɔ' },
		{ 'ankieta', 'aŋˈkjɛ.ta' },
		{ 'szankier', 'ˈʂaŋ.kjɛr' },
		{ 'wąchać', 'ˈvɔw̃.xat͡ɕ' },
		{ 'węch', 'vɛw̃x' },
		{ 'szklanki', 'ˈʂklaŋ.ki' },
		{ 'slangi', 'ˈslaŋ.ɡi' },
		{ 'wziął', 'vʑɔw' },
		{ 'wzięli', 'ˈvʑɛ.li' },
		{ 'ciął', 't͡ɕɔw' },
		{ 'cięli', 'ˈt͡ɕɛ.li' },
		{ 'zgiął', 'zɡjɔw' },
		{ 'zgięli', 'ˈzɡjɛ.li' },
		{ 'objawić', 'ɔbˈja.vit͡ɕ' },
		{ 'grałybyśmy', 'ˈɡra.wɨ.bɨɕ.mɨ' },
		{ 'grałbym', 'ˈɡraw.bɨm' },
		{ 'rynsztok', 'ˈrɨn.ʂtɔk' },
		{ 'sens', 'sɛns' },
		{ 'enzym', 'ˈɛn.zɨm' },
		{ 'instytut', 'inˈstɨ.tut' },
	}

	self:iterate(examples, "check_ipa")
end

return tests