Module:ro-pronunciation/testcases
Appearance
- This module testcase page lacks a documentation subpage. Please create it.
- Useful links: root page • root page’s subpages • links • transclusions • tested module • sandbox
local tests = require "Module:UnitTests"
setmetatable(_G, { __index = require "Module:ro-pronunciation" })
local function tag_IPA(transcription)
if transcription:find "^Error" then
return transcription
else
return '<span class="IPA">' .. transcription .. '</span>'
end
end
local examples = {
{ 'copíl' , 'koˈpil','' },
{ 'copíi' , 'koˈpij','' },
{ 'copíii' , 'koˈpi.ji','' },
{ 'lupi' , "lupʲ",'' },
{ 'șárpe' , "ˈʃar.pe",'' },
{ 'țáră' , "ˈt͡sa.rə",'' },
{ 'înăuntru' , "ɨ.nəˈun.tru",'' },
{ 'xilofón' , "ksi.loˈfon",'' },
{ 'quarc' , "kwark",'' },
{ 'fiert' , "fjert",'' },
{ 'viteză' , "viˈte.zə",'' },
{ 'viteáză' , "viˈte̯a.zə",'' },
{ 'minge' , "ˈmin.d͡ʒe",'' },
{ 'mingeac' , "minˈd͡ʒe̯ak",'' },
{ 'ghețár' , "ɡeˈt͡sar",'' },
{ 'ghíndă' , "ˈɡin.də",'' },
{ 'jargón' , "ʒarˈɡon",'' },
{ 'cireáșă' , "t͡ʃiˈre̯a.ʃə",'' },
{ 'cétină' , "ˈt͡ʃe.ti.nə",'' },
{ 'chiar' , "kjar",'' },
{ 'chestie' , "ˈkes.ti.e",'' },
{ 'mlădíță' , "mləˈdi.t͡sə",'' },
{ 'târșă' , "ˈtɨr.ʃə",'' },
{ 'oaie' , "ˈo̯a.je",'' },
{ 'râu' , "rɨw",'' },
{ 'continuu' , "konˈti.nuw",'' },
{ 'câine' , "ˈkɨj.ne",'' },
{ 'mea' , "me̯a",'' },
{ 'socoteai' , "so.koˈte̯aj",'' },
{ 'leoaică' , "leˈo̯aj.kə",'' },
{ 'accelerasem', "ak.t͡ʃe.leˈra.sem",''},
{ 'creează', "kreˈe̯a.zə",''},
{ 'crează', "ˈkre̯a.zə",''},
{ 'beau' , "be̯aw",'' },
{ 'suiau' , "suˈjaw",'' },
{ 'piei' , "pjej",'' },
{ 'pleoape' , "ˈple̯o̯a.pe",'' },
{ 'creioane' , "kreˈjo̯a.ne",'' },
{ 'sculptură' , "skulpˈtu.rə",'' },
{ 'poezíe' , "po.eˈzi.e",'' },
}
function tests:test_to_phonemic()
self:iterate(examples,
function (self, example, expected, _, voiced_z)
local success, result = pcall(to_phonemic, example, voiced_z)
if not success then
result = ("Error: %s"):format(result)
end
local voiced_text
if not voiced_z then
voiced_text = ""
elseif type(voiced_z) == "boolean" then
if voiced_z then
voiced_text = " (all z sequences are voiced)"
else
voiced_text = " (no z sequences are voiced)"
end
else
voiced_text = (" (z sequence%s %s %s voiced)"):format(
voiced_z[2] and "s" or "",
table.concat(voiced_z, ", "),
voiced_z[2] and "are" or "is")
end
self:equals(example .. voiced_text, result, expected, { display = tag_IPA })
end)
end
function tests:test_to_phonetic()
self:iterate(examples,
function (self, example, _, expected, voiced_z)
if expected == "" then
return
end
local success, result = pcall(to_phonetic, example, voiced_z)
if not success then
result = ("Error: %s"):format(result)
end
local voiced_text
if not voiced_z then
voiced_text = ""
elseif type(voiced_z) == "boolean" then
if voiced_z then
voiced_text = " (all z sequences are voiced)"
else
voiced_text = " (no z sequences are voiced)"
end
else
voiced_text = (" (z sequence%s %s %s voiced)"):format(
voiced_z[2] and "s" or "",
table.concat(voiced_z, ", "),
voiced_z[2] and "are" or "is")
end
self:equals(example .. voiced_text, result, expected, { display = tag_IPA })
end)
end
return tests