35 of 73 tests failed. (refresh)
Text | Expected | Actual | |
---|---|---|---|
càne | ˈka.ne | ˈka.ne | |
bène | ˈbɛ.ne | ˈbɛ.ne | |
sóno | ˈso.no | ˈso.no | |
sòno | ˈsɔ.no | ˈsɔ.no | |
ho | ɔ | o | |
all' | all | ˈall‿ | |
English letter sequences | |||
smoking | ˈzmo.kiŋ | Error: Module:it-pronunciation:350: When stressed vowel is e or o, it must be marked é/è or ó/ò to indicate quality: smoking | |
gangster | ˈgaŋ.ster | ˈɡanɡ.ster | |
hòckey | ˈɔ.ke.i | ˈɔ.kej | |
hockeìstico | o.keˈis.ti.ko | o.keˈi.sti.ko | |
crawl | krɔl | ˈkrawl | |
y | |||
yo-yo | ˈjo.jo | ˈi.o ˈi.o | |
whisky | ˈwis.ki | ˈwi.ski | |
x | |||
Craxi | ˈkrak.si | ˈkrak.si | |
-izzare | |||
analizzare | a.na.lidˈd͡za.re | a.na.lidˈd͡za.re | |
nazionalizzare | nat.t͡sjo.na.lidˈd͡za.re | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: nazionaliddzàre | |
zonizzare | d͡zo.nidˈd͡za.re | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: zoniddzàre | |
rizzare | ritˈt͡sa.re | ridˈd͡za.re | |
c, g, sc | |||
cèlo | ˈt͡ʃɛ.lo | ˈt͡ʃɛ.lo | |
ciaccòna | t͡ʃakˈkɔ.na | t͡ʃakˈkɔ.na | |
fàccio | ˈfat.t͡ʃo | ˈfat.t͡ʃo | |
che | ke | ke | |
òcchio | ˈɔk.kjo | ˈɔk.kjo | |
òcchi | ˈɔk.ki | ˈɔk.ki | |
òggi | ˈɔd.d͡ʒi | ˈɔd.d͡ʒi | |
Sciàlpi | ˈʃal.pi | ˈʃal.pi | |
lasciàre | laʃˈʃa.re | laʃˈʃa.re | |
scleràre | skleˈra.re | skleˈra.re | |
ùscio | ˈuʃ.ʃo | ˈuʃ.ʃo | |
gn, gl | |||
ógni | ˈoɲ.ɲi | ˈoɲ.ɲi | |
gnòcco | ˈɲɔk.ko | ˈɲɔk.ko | |
gnagnà | ɲaɲˈɲa | ɲaɲˈɲa | |
vòglio | ˈvɔʎ.ʎo | ˈvɔʎ.ʎo | |
gli | ʎi | ʎi | |
inglése | inˈɡle.se | inˈɡle.ze | |
ng, nq, nch | |||
anche | ˈan.ke | ˈan.ke | |
dúnque | ˈdun.kwe | ˈdun.kwe | |
vóngola | ˈvon.ɡo.la | ˈvon.ɡo.la | |
s | |||
sguardo | ˈzɡwar.do | Error: Module:it-pronunciation:350: With more than two vowels and an unrecognized suffix, stress must be explicitly given: sguardo | |
sregolato | zre.ɡoˈla.to | zre.ɡoˈla.to | |
gira-sole | d͡ʒi.raˈso.le | Error: Module:it-pronunciation:350: When stressed vowel is e or o, it must be marked é/è or ó/ò to indicate quality: sole | |
desìdero | deˈsi.de.ro | deˈzi.de.ro | |
ròsa | ˈrɔ.za | ˈrɔ.za | |
z, zz | |||
fòrza | ˈfɔr.t͡sa | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: fòrza | |
ragàzza | raˈɡat.t͡sa | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: ragàzza | |
mèzzo | ˈmɛd.d͡zo | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: mèzzo | |
mèzzo | ˈmɛd.d͡zo | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: mèzzo | |
zanzara | d͡zanˈd͡za.ra | Error: Module:it-pronunciation:350: With more than two vowels and an unrecognized suffix, stress must be explicitly given: zanzara | |
nazione | natˈt͡sjo.ne | natˈt͡sjo.ne | |
spazzi | ˈspat.t͡si | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: spàzzi | |
zìo | ˈt͡si.o | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: zìo | |
agenzìa | a.d͡ʒenˈt͡si.a | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: agenzìa | |
grazie | ˈɡrat.t͡sje | Error: Module:it-pronunciation:350: With more than two vowels and an unrecognized suffix, stress must be explicitly given: grazie | |
azienda | adˈd͡zjen.da | Error: Module:it-pronunciation:350: With more than two vowels and an unrecognized suffix, stress must be explicitly given: azienda | |
romanzière | ro.manˈd͡zjɛ.re | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: romanzière | |
spazi | ˈspat.t͡si | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: spàzi | |
spazî | ˈspat.t͡si | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: spàzî | |
ozòno | odˈd͡zɔ.no | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: ozòno | |
semivowels | |||
quéllo | ˈkwel.lo | ˈkwel.lo | |
grànchio | ˈɡran.kjo | ˈɡran.kjo | |
capiènza | kaˈpjɛn.t͡sa | Error: Module:it-pronunciation:535: z must be respelled (d)dz or (t)ts: capiènza | |
niènte | ˈnjɛn.te | ˈnjɛn.te | |
sùo | ˈsu.o | ˈsu.o | |
può | ˈpwɔ | ˈpwɔ | |
nuòvo | ˈnwɔ.vo | ˈnwɔ.vo | |
devi-are | de.viˈa.re | Error: Module:it-pronunciation:350: When stressed vowel is e or o, it must be marked é/è or ó/ò to indicate quality: devi | |
televisione | te.le.viˈzjo.ne | te.le.viˈzjo.ne | |
Handling of words without accents | |||
sono | ˈso.no | Error: Module:it-pronunciation:350: When stressed vowel is e or o, it must be marked é/è or ó/ò to indicate quality: sono | |
cane | ˈka.ne | ˈka.ne | |
carta | ˈkar.ta | ˈkar.ta | |
Syllabification | |||
sottosvillupo | sot.to.zvilˈlu.po | Error: Module:it-pronunciation:350: With more than two vowels and an unrecognized suffix, stress must be explicitly given: sottosvillupo | |
manùbrio | maˈnu.brjo | maˈnu.brjo | |
àulico | ˈau.li.ko | ˈaw.li.ko |
local tests = require "Module:UnitTests"
setmetatable(_G, { __index = require "Module:it-pronunciation" })
local function tag_IPA(transcription)
if transcription:find "^Error" then
return transcription
else
return '<span class="IPA">' .. transcription .. '</span>'
end
end
local examples = {
{ "càne", "ˈka.ne", "ˈkäː.n̺e̞" },
{ "bène", "ˈbɛ.ne", "ˈbɛː.n̺e" },
{ "sóno", "ˈso.no", "ˈs̪oː.n̺o" },
{ "sòno", "ˈsɔ.no", "ˈs̪ɔː.n̺o" },
{ "ho", "ɔ", "" },
{"all'", "all", ""},
"English letter sequences",
{ "smoking", "ˈzmo.kiŋ", "" },
{ "gangster", "ˈgaŋ.ster", "" },
{ "hòckey", "ˈɔ.ke.i", "" },
{ "hockeìstico", "o.keˈis.ti.ko", "" },
{ "crawl", "krɔl", "" },
"y",
{ "yo-yo", "ˈjo.jo", "" },
{ "whisky", "ˈwis.ki", "" },
"x",
{ "Craxi", "ˈkrak.si", "" },
"-izzare",
{ "analizzare", "a.na.lidˈd͡za.re", ""},
{ "nazionalizzare", "nat.t͡sjo.na.lidˈd͡za.re", "" },
{ "zonizzare", "d͡zo.nidˈd͡za.re", "", true },
{ "rizzare", "ritˈt͡sa.re", ""},
"c, g, sc",
{ "cèlo", "ˈt͡ʃɛ.lo", "ˈt͡ʃɛː.lo" },
{ "ciaccòna", "t͡ʃakˈkɔ.na", "t͡ʃäkˈkɔː.n̺ä" },
{ "fàccio", "ˈfat.t͡ʃo", "ˈfät͡ʃ.t͡ʃo" }, -- ˈfat.t͡ʃo is too phonetic; other alternative, ˈfa.t͡ʃːo
{ "che", "ke", "k̟e" },
{ "òcchio", "ˈɔk.kjo", "ˈɔk̟.k̟jo" }, -- Good test for syllabification.
{ "òcchi", "ˈɔk.ki", "ˈɔk̟.k̟i" },
{ "òggi", "ˈɔd.d͡ʒi", "ˈɔd͡ʒ.d͡ʒi" }, -- ˈɔd.d͡ʒi is too phonetic; other alternative, ˈɔ.d͡ʒːi
{ "Sciàlpi", "ˈʃal.pi", "ˈʃäl.pi" },
{ "lasciàre", "laʃˈʃa.re", "läʃˈʃäː.r̺e̞" },
{ "scleràre", "skleˈra.re", "s̪kleˈr̺äː.r̺e̞" },
{ "ùscio", "ˈuʃ.ʃo", "ˈuʃ.ʃo" },
"gn, gl",
{ "ógni", "ˈoɲ.ɲi", "ˈoɲ.ɲi" },
{ "gnòcco", "ˈɲɔk.ko", "ˈɲɔk.ko" },
{ "gnagnà", "ɲaɲˈɲa", "ɲäɲˈɲä" }, -- probably not a real word
{ "vòglio", "ˈvɔʎ.ʎo", "ˈvɔʎ.ʎo" },
{ "gli", "ʎi", "ʎi" },
{ "inglése", "inˈɡle.se", "iŋˈɡleː.s̪e" },
"ng, nq, nch",
{ "anche", "ˈan.ke", "ˈäŋ.k̟e" },
{ "dúnque", "ˈdun.kwe", "ˈduŋ.kwe" },
{ "vóngola", "ˈvon.ɡo.la", "ˈvoŋ.ɡo.lä" },
"s",
{ "sguardo", "ˈzɡwar.do", "ˈzɡwär.do" },
{ "sregolato", "zre.ɡoˈla.to", "zre.ɡoˈläː.to" },
{ "gira-sole", "d͡ʒi.raˈso.le", "" },
{ "desìdero", "deˈsi.de.ro", "" },
{ "ròsa", "ˈrɔ.za", "" },
"z, zz",
{ "fòrza", "ˈfɔr.t͡sa", "ˈfɔr̺.t̪͡s̪ä" },
{ "ragàzza", "raˈɡat.t͡sa", "r̺äˈɡät̪͡s̪.t̪͡s̪ä" },
{ "mèzzo", "ˈmɛd.d͡zo", "ˈmɛd̪͡z̪.d̪͡z̪o" },
{ "mèzzo", "ˈmɛd.d͡zo", "ˈmɛd̪͡z̪.d̪͡z̪o", { 1 } },
{ "zanzara", "d͡zanˈd͡za.ra", "d̪͡z̪änˈd̪͡z̪äː.r̺ä", true },
-- ] says the z is geminate, while the English
-- and Italian Wiktionaries say it isn't. It sounds geminate in the soundfile.
{ "nazione", "natˈt͡sjo.ne" , "n̺ätˈt͡sjoː.n̺e" },
{ "spazzi", "ˈspat.t͡si", "ˈspät.t͡si" },
{ "zìo", "ˈt͡si.o", "" },
{ "agenzìa", "a.d͡ʒenˈt͡si.a", "" },
{ "grazie", "ˈɡrat.t͡sje", "" },
{ "azienda", "adˈd͡zjen.da", "", { 1 } },
{ "romanzière", "ro.manˈd͡zjɛ.re", "", { 1 } },
-- intervocalic "autogeminazione" ]
{ "spazi", "ˈspat.t͡si", "ˈspät.t͡si" },
{ "spazî", "ˈspat.t͡si", "ˈspät.t͡si" },
{ "ozòno", "odˈd͡zɔ.no", "", true },
"semivowels",
{ "quéllo", "ˈkwel.lo", "ˈkwel.lo" },
{ "grànchio", "ˈɡran.kjo", "ˈɡräŋ.k̟jo" },
{ "capiènza", "kaˈpjɛn.t͡sa", "käˈpjɛn̺.t͡sä" },
{ "niènte", "ˈnjɛn.te", "ˈnjɛn̪.t̪e" }, -- or ?
{ "sùo", "ˈsu.o", "ˈsuː.o" },
{ "può", "ˈpwɔ", "ˈpwɔ" },
{ "nuòvo", "ˈnwɔ.vo", "ˈn̺wɔː.vo" },
{ "devi-are", "de.viˈa.re", "" },
{ "televisione", "te.le.viˈzjo.ne", "" },
"Handling of words without accents",
{ "sono", "ˈso.no", "ˈsoː.n̺o" },
{ "cane", "ˈka.ne", "ˈkäː.n̺e̞" },
{ "carta", "ˈkar.ta", "ˈkär̺.t̪ä" },
"Syllabification",
{ "sottosvillupo", "sot.to.zvilˈlu.po", "sot.to.zvilˈluː.po" },
{ "manùbrio", "maˈnu.brjo", "mäˈn̺u.brjo" }, -- Is u long here?
{ "àulico", "ˈau.li.ko", "" }
--[[
-- For new examples:
{ "", "", "" },
-- respelling, phonemic, phonetic
]]
}
function tests:test_to_phonemic()
self:iterate(examples,
function (self, example, expected, _, voiced_z)
local success, result = pcall(to_phonemic,example,example)
if not success then
result = ("Error: %s"):format(result)
else
result = result.phonemic
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 and "s" or "",
table.concat(voiced_z, ", "),
voiced_z and "are" or "is")
end]]
self:equals(example, 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 and "s" or "",
table.concat(voiced_z, ", "),
voiced_z and "are" or "is")
end
self:equals(example .. voiced_text, result, expected, { display = tag_IPA })
end)
end]]
return tests