Module:ar-IPA/testcases

local tests = require("Module:UnitTests") local m_IPA = require("Module:ar-pronunciation")

local function tag_IPA(IPA) return ' ' .. IPA .. ' ' end

local function not_Latin(text) return not string.find(text, "[a-z]") end

local options = { display = tag_IPA, show_difference = true } function tests:check_output(term, expected, comment) options.comment = comment local is_Arabic = not_Latin(term) self:equals(		is_Arabic and m_IPA.link(term) or term,		m_IPA.toIPA(is_Arabic and { Arabic = term } or { tr = term}, true),		expected,		options	) end

function tests:test_Arabic local examples = { { "طَبَّ", "tˤab.ba" }, { "رُوسِيَا", "ruː.si.jaː" }, { "أَنْتَ", "ʔan.ta" }, { "ذٰلِكَ", "ðaː.li.ka" }, { "صَغِير", "sˤa.ɣiːr" }, { "إِصْبَع", "ʔisˤ.baʕ" }, { "عَلَى", "ʕa.laː" }, { "جَزِيرَة", "d͡ʒa.ziː.ra" }, { "أَرْبَعَة", "ʔar.ba.ʕa" }, { "حُبّ", "ħubb" }, { "عَرَبِيّ", "ʕa.ra.bijj" }, { "خَاصّ", "xaːsˤsˤ" }, { "خَاصَّة", "xaːsˤ.sˤa" }, { "يَوْمُ ٱلِٱثْنَيْنِ", "jaw.mu liθ.naj.ni", "" }, { "تُدُووِلَ", "tu.duː.wi.la" }, "Allah", { "اللّٰه", "aɫ.ɫaːh", "special case" }, { "عَبْدُ اللّٰه", "ʕab.du‿ɫ.ɫaːh", "special case" }, { "لِلّٰه", "lil.laːh", "special case of the special case" }, "Phrases", {			"الْمَمْلَكَة الْعَرَبِيَّة السُّعُودِيَّة", "al.mam.la.ka‿l.ʕa.ra.bij.ja‿s.su.ʕuː.dij.ja" },		{"مَعَ اَلسَّلَامَة", "ma.ʕa‿s.sa.laː.ma"}, {			"لٰكِنَّ الرَّئِيسَ كَانَ أَذْكَى مِمَّا تَوَقَّعَ النَّاسُ", "laː.kin.na‿r.ra.ʔiː.sa kaː.na ʔað.kaː mim.maː ta.waq.qa.ʕa‿n.naː.su" },		{ "بِسْمِ اللهِ الرَّحْمٰنِ الرَّحِيمِ", "bis.mi‿l.laː.hi‿r.raħ.maː.ni‿r.ra.ħiː.mi" }, { "إِنْ شَاءَ ٱللَٰهُ", "ʔin ʃaː.ʔa‿ɫ.ɫaː.hu" }, { "بِٱلْهَنَاءِ وَٱلشِّفَاء", "bil.ha.naː.ʔi waʃ.ʃi.faːʔ" }, "vowel shortening", { "فِي الْبَيْت", "fi‿l.bajt" }, { "مَا ٱسْمُك", "ma‿s.muk" }, { "ذُو الْقَرْنَيْن", "ðu‿l.qar.najn" }, { "إِلَّا الله", "ʔil.la‿ɫ.ɫaːh" }, { "فِي ٱتِّحَادِنَا", "fi‿t.ti.ħaː.di.naː" }, { "فِي الله", "fi‿l.laːh" }, --	Copy the following to add more examples:		{ "", "" }, }	self:iterate(examples, "check_output") end

function tests:test1_transliteration local examples = { { "tilivizyōn", "ti.li.viz.joːn" }, { "ʾinglīziyy", "ʔinɡliː.zijj" }, --	Copy the following to add more examples:		{ "", "" }, }	self:iterate(examples, "check_output") end

return tests