Module:tzm-IPA/testcases

All tests passed. (refresh)

TextExpectedActualDiffers at
test_pron_Ayt_Ndhir:
Passedⵜⴰⴼⵍⵙⴰⴼⵜ (taflsaft)θæfl̩sæ̝fθθæfl̩sæ̝fθ
Passedⴰⵡⵔⴰⵙ (awras)æ̝wræ̝sæ̝wræ̝s
Passedⵏⵓⵎⵉⴷⵢⴰ (numidya)n̪umi̞ðjɑn̪umi̞ðjɑ
Passedⵓⵟⵟⵓⵏ (uṭṭun)ʊ̙̞t̪ˤːʊ̙̞n̪ʊ̙̞t̪ˤːʊ̙̞n̪
Passedⴰⵎⴹⴰⵏ (amḍan)ɑ̝mðˤɑ̝n̪ɑ̝mðˤɑ̝n̪
Passedⵜⴰⴳⴷⴰⵣⴰⵍⵜ (tagdazalt)θæ̝ʝðæzæ̝lθθæ̝ʝðæzæ̝lθ
Passedⵜⴰⵍⵍⴰⵙⵜ (tallast)θæ̝lːæ̝sθθæ̝lːæ̝sθ
Passedⵉⵎⵓⵀⴰⵖ (imuhaɣ)imuhɑ̝ʁimuhɑ̝ʁ
Passedⴰⵎⵥⵥⵢⴰⵏ (amẓẓyan)ɑməzˤːjɑ̝n̪ɑməzˤːjɑ̝n̪
Passedⵉⵕⵥⵥⵉ (iṛẓẓi)ɪ̙rˤəzˤːɪ̙ɪ̙rˤəzˤːɪ̙
Passedⴰⵏⴰⵏⴰⵚ (ananaṣ)ɑn̪ɑn̪ɑ̝sˤɑn̪ɑn̪ɑ̝sˤ
Passedⴰⵎⵛⵛⴰⵇ (amccaq)æmət͡ʃːɑ̝qæmət͡ʃːɑ̝q
Passedⵜⵉⴳⵎⵎⵉ (tigmmi)θi(ʝ)m̩ːiθi(ʝ)m̩ːi
Passedⵡⵏⵥⵓⵍ (wnẓul)ʊ̙̞n̪zˤʊ̙̞lʊ̙̞n̪zˤʊ̙̞l
Passedⵜⵉⵏⴳⵍⵉⵣⵜ (tinglizt)θin̪i̞(ʝ)li̞sθθin̪i̞(ʝ)li̞sθ
Passedⵜⵉⵣⵉⵣⵡⵉⵜ (tizizwit)θizi̞zwi̞θθizi̞zwi̞θ
Passedⵜⵉⴷⴷⵓⴽⴽⵍⴰ (tiddukkla)θi̞d̪ːu̞cːlɑθi̞d̪ːu̞cːlɑ
Passedⴰⵛⴼⴼⴰⵢ (acffay)æʃəfːæ̝jæʃəfːæ̝j
Passedⴰⵛⴼⴼⴰⵢ ⴰⵙⵎⵎⴰⵎ (acffay asmmam)æʃəfːæ̝j æsm̩ːæ̝mæʃəfːæ̝j æsm̩ːæ̝m
Passedⴰⴱⴰⵙⵓⵔ (abasur)æβæsu̞ræβæsu̞r
Passedⴰⴱⴱⵓⵀⵍⵍⵓ (abbuhllu)æ̝bːuhl̩ːuæ̝bːuhl̩ːu
Passedⵜⴰⴼⵓⵏⴰⵙⵜ (tafunast)θæfun̪æ̝sθθæfun̪æ̝sθ
Passedⵜⵉⴼⵓⵏⴰⵙⵉⵏ (tifunasin)θifun̪æsi̞n̪θifun̪æsi̞n̪
Passedⴰⴱⴰⵛⵛⴰⴹ (abaccaḍ)ɑβɑ̝t͡ʃːɑ̝ðˤɑβɑ̝t͡ʃːɑ̝ðˤ
Passedⴰⴱⴱⵓⵖⵣⵍ (abbuɣzl)æ̝bːʊ̙̞ʁzl̩æ̝bːʊ̙̞ʁzl̩
Passedⴰⴱⴱⵓⵥⵥⵄ (abbuẓẓɛ)ɑ̝bːʊ̙̞zˤːəʕɑ̝bːʊ̙̞zˤːəʕ
Passedⴰⴱⴰⵔⴰⴳ (abarag)æβæræ̝ʝæβæræ̝ʝ
Passedⴰⴱⴰⵙⴰⵍ (abasal)æβæsæ̝læβæsæ̝l
Passedⵉⴱⴰⵙⴰⵍⵏ (ibasaln)iβæsæ̝l(ː)iβæsæ̝l(ː)
Passed (g)i̞(ʝ)i̞(ʝ)
Passedⵏⵙ (ns)n̪əsn̪əs
Passedⵟⵚ (ṭṣ)t̪ˤəsˤt̪ˤəsˤ
Passedⵅⴷⵎ (xdm)ʁðm̩ʁðm̩
Passedⵣⵄⴼ (zɛf)zʕəfzʕəf
Passedⴹⵎⵏ (ḍmn)ðˤmn̪̩ðˤmn̪̩
Passed (n)n̪̩n̪̩
Passedⵢⴳⵯⵜ (ygʷt)i̞wːəθi̞wːəθ
Passedⵢⴳⴰ (yga)i(ʝ)ɑi(ʝ)ɑ
Passedⵜⴰⴳⵯⵓⵜⵜ (tagʷutt)θæ̝wːu̞t̪(ː)θæ̝wːu̞t̪(ː)
Passedⴰⵖⵓ (aɣu)ɑ̝ʁːʊ̙ɑ̝ʁːʊ̙
Passedⵜⴰⵖⴰⴹⵜ (taɣaḍt)t̪ˤɑ̝ʁːɑ̝t̪ˤ(ː)t̪ˤɑ̝ʁːɑ̝t̪ˤ(ː)
Passedⵜⴰⵎⵟⵟⵓⵜⵜ (tamṭṭutt)t̪ˤɑmət̪ˤːʊ̙̞t̪ˤ(ː)t̪ˤɑmət̪ˤːʊ̙̞t̪ˤ(ː)
Passedⵜⴰⵎⴰⵣⵉⵖⵜ (tamaziɣt)θæmæzɪ̙̞χθθæmæzɪ̙̞χθ
Passedⵜⴰⵊⴹⵉⴹⵜ (tajḍiḍt)t̪ˤɑ̝ʒðˤɪ̙̞t̪ˤ(ː)t̪ˤɑ̝ʒðˤɪ̙̞t̪ˤ(ː)
Passedⵢⴳⵯⵜ ⵛ (ygʷt c)i̞wːət̪ ʃi̞wːət̪ ʃ
Passedⵢⴹⴰⵔⵏ (yḍarn)ɪ̙ðˤɑ̝rˤ(ː)ɪ̙ðˤɑ̝rˤ(ː)
Passedⴽⴽⵔⵏ (kkrn)cːr̩(ː)cːr̩(ː)
Passedⴽⴽⵔⵏⵜ (kkrnt)cːrn̪̩θcːrn̪̩θ
Passedⵏ ⵍⵅⵓⴹⵔⵜ (n lxuḍrt)lː‿χʊ̙ðˤr̩ˤt̪ˤlː‿χʊ̙ðˤr̩ˤt̪ˤ
Passedⵢ ⵢⵅⴰⵎⵏ (y yxamn)ɟː‿χɑmn̪̩ɟː‿χɑmn̪̩
Passedⴰⵢ ⵢⴰⵏⵏⴰⵢ (ay yannay)æ̝ɟː‿æ̝n̪ːæ̝jæ̝ɟː‿æ̝n̪ːæ̝j
Passedⵢ ⵡⴰⵛⴰⵍ (y wacal)ɡʷː‿æʃæ̝lɡʷː‿æʃæ̝l
Passedⴷⴷⴰⵡ ⵡⴰⵛⴰⵍ (ddaw wacal)d̪ːæ̝wː‿æʃæ̝ld̪ːæ̝wː‿æʃæ̝l
Passedⵢⵛⴰ (yca)iʃɑiʃɑ
Passedⵉⵇⵇⴰⵣ (iqqaz)ɪ̙̞qːɑ̝zɪ̙̞qːɑ̝z
Passedⵅⴷⵎⵏ (xdmn)χəðmn̪̩χəðmn̪̩
Passedⴱⴱⵢ (bby)bːi̞(j)bːi̞(j)
Passedⴱⴱⵉⵢ (bbiy)bːi̞(j)bːi̞(j)
Passedⴰⵏⵓⵉⵏⵓ (anuinu)æn̪un̪uæn̪un̪u
Passedⴷⴷⵓⴰⵜ (dduat)d̪ːujæ̝θd̪ːujæ̝θ
Passedⵢⵏⵉⴰⵜ (yniat)in̪(ij)æ̝θin̪(ij)æ̝θ
Passedⵢⵏⵉⴰⵙ (ynias)in̪(ij)æ̝sin̪(ij)æ̝s
Passedⵢⵏⵏⴰⴰⵙ (ynnaas)i̞n̪ː(ɑj)æ̝si̞n̪ː(ɑj)æ̝s
Passedⵢⵛⵛⴰ ⴰⴽⵙⵓⵎ (ycca aksum)i̞t͡ʃː‿æ̝çsu̞mi̞t͡ʃː‿æ̝çsu̞m
Passedⴽⵓ ⴰⵙⵙ (ku ass)çu‿jæ̝s(ː)çu‿jæ̝s(ː)
Passedⴱⵍⴰ ⴰⵙⵔⴷⵓⵏ (bla asrdun)βlɑ‿jæsr̩ðu̞n̪βlɑ‿jæsr̩ðu̞n̪
Passedⴽⵓ ⵓⵛⵛⵏ (ku uccn)çu‿ju̞t͡ʃːn̪̩çu‿ju̞t͡ʃːn̪̩
Passedⴰ ⴰⵔⵢⴰⵣ (a aryaz)ɑ‿jæ̝rjæ̝zɑ‿jæ̝rjæ̝z
Passedⴱⵍⴰ ⵓⴷⵉ (bla udi)βlɑ‿juðiβlɑ‿juði
Passedⴱⵍⴰ ⵢⵙⵔⴷⴰⵏ (bla ysrdan)βlɑ‿jsr̩ðæ̝n̪βlɑ‿jsr̩ðæ̝n̪
Passedⵜⴰⵖⴰⴹⵜ (taɣaḍt)t̪ˤɑ̝ʁːɑ̝t̪ˤ(ː)t̪ˤɑ̝ʁːɑ̝t̪ˤ(ː)
Passedⴰⵖⵓ (aɣu)ɑ̝ʁːʊ̙ɑ̝ʁːʊ̙
Passedⵛⵔⴰⴹ (craḍ)ʃrˤɑ̝ðˤʃrˤɑ̝ðˤ
Passedⴰⵔⵔⴰⵚ (arraṣ)ɑ̝rˤːɑ̝sˤɑ̝rˤːɑ̝sˤ
Passedⵢⴹⴰⵔⵏ (yḍarn)ɪ̙ðˤɑ̝rˤ(ː)ɪ̙ðˤɑ̝rˤ(ː)
Passedⵢ ⵡⴰⵛⴰⵍ (y wacal)ɡʷː‿æʃæ̝lɡʷː‿æʃæ̝l
Passedⴷⴷⴰⵡ ⵡⴰⵛⴰⵍ (ddaw wacal)d̪ːæ̝wː‿æʃæ̝ld̪ːæ̝wː‿æʃæ̝l
Passedⵢ ⵢⵅⴰⵎⵏ (y yxamn)ɟː‿χɑmn̪̩ɟː‿χɑmn̪̩
Passedⵏⵖ ()n̪əʁn̪əʁ
Passedⵏⴽⴽ (nkk)n̪əc(ː)n̪əc(ː)
Passedⵛⵛ (cc)ət͡ʃ(ː)ət͡ʃ(ː)
Passedⴱⴱⵉⵢ (bbiy)bːi̞(j)bːi̞(j)
Passedⴱⴱⵢ (bby)bːi̞(j)bːi̞(j)
Passedⵢⵏⵉⴰⵜ (yniat)in̪(ij)æ̝θin̪(ij)æ̝θ
Passedⴰⵢ ⵢⴰⵏⵏⴰⵢ (ay yannay)æ̝ɟː‿æ̝n̪ːæ̝jæ̝ɟː‿æ̝n̪ːæ̝j
Passedⴷⴷⴰⵡ ⵡⴰⵛⴰⵍ (ddaw wacal)d̪ːæ̝wː‿æʃæ̝ld̪ːæ̝wː‿æʃæ̝l
Passedⴰⵍⵍⵏ (alln)æ̝lːn̪̩æ̝lːn̪̩
Passedⵜⵙⵄⵓⴷ (tsɛud)θəsʕʊ̙̞ðθəsʕʊ̙̞ð
Passedⵍⴱⵃⵔ (lbḥr)ləβħr̩ləβħr̩
Passedⵣⵣⵔⵔⵉⵄⵜ (zzrriɛt)zːr̩ːɪ̙̞ʕθzːr̩ːɪ̙̞ʕθ

local tests = require("Module:UnitTests")
local m_IPA = require("Module:tzm-IPA")

local sc = require("Module:scripts").getByCode("Tfng")
local lang = require("Module:languages").getByCode("tzm")

function link(term)
    return require("Module:links").full_link {term = term, lang = lang, sc = sc}
end

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

function tests:check_pron_ayt_ndhir(term, expected)
    tests:equals(link(term), m_IPA.pronunciation_phonetic(term, "Ayt Ndhir"), expected, options)
end

function tests:test_pron_Ayt_Ndhir()
    local examples = {
--Fenakhay's testcases
        {"ⵜⴰⴼⵍⵙⴰⴼⵜ", "θæfl̩sæ̝fθ"},
        {"ⴰⵡⵔⴰⵙ", "æ̝wræ̝s"},
        {"ⵏⵓⵎⵉⴷⵢⴰ", "n̪umi̞ðjɑ"},
        {"ⵓⵟⵟⵓⵏ", "ʊ̙̞t̪ˤːʊ̙̞n̪"},
        {"ⴰⵎⴹⴰⵏ", "ɑ̝mðˤɑ̝n̪"},
        {"ⵜⴰⴳⴷⴰⵣⴰⵍⵜ", "θæ̝ʝðæzæ̝lθ"},
        {"ⵜⴰⵍⵍⴰⵙⵜ", "θæ̝lːæ̝sθ"},
        {"ⵉⵎⵓⵀⴰⵖ", "imuhɑ̝ʁ"},
        {"ⴰⵎⵥⵥⵢⴰⵏ", "ɑməzˤːjɑ̝n̪"},
        {"ⵉⵕⵥⵥⵉ", "ɪ̙rˤəzˤːɪ̙"},
        {"ⴰⵏⴰⵏⴰⵚ", "ɑn̪ɑn̪ɑ̝sˤ"},
        {"ⴰⵎⵛⵛⴰⵇ", "æmət͡ʃːɑ̝q"},
        {"ⵜⵉⴳⵎⵎⵉ", "θi(ʝ)m̩ːi"},
        {"ⵡⵏⵥⵓⵍ", "ʊ̙̞n̪zˤʊ̙̞l"},
        {"ⵜⵉⵏⴳⵍⵉⵣⵜ", "θin̪i̞(ʝ)li̞sθ"},
        {"ⵜⵉⵣⵉⵣⵡⵉⵜ", "θizi̞zwi̞θ"},
        {"ⵜⵉⴷⴷⵓⴽⴽⵍⴰ", "θi̞d̪ːu̞cːlɑ"},
        {"ⴰⵛⴼⴼⴰⵢ", "æʃəfːæ̝j"},
        {"ⴰⵛⴼⴼⴰⵢ ⴰⵙⵎⵎⴰⵎ", "æʃəfːæ̝j æsm̩ːæ̝m"},
        {"ⴰⴱⴰⵙⵓⵔ", "æβæsu̞r"},
        {"ⴰⴱⴱⵓⵀⵍⵍⵓ", "æ̝bːuhl̩ːu"},
        {"ⵜⴰⴼⵓⵏⴰⵙⵜ", "θæfun̪æ̝sθ"},
        {"ⵜⵉⴼⵓⵏⴰⵙⵉⵏ", "θifun̪æsi̞n̪"},
        {"ⴰⴱⴰⵛⵛⴰⴹ", "ɑβɑ̝t͡ʃːɑ̝ðˤ"},
        {"ⴰⴱⴱⵓⵖⵣⵍ", "æ̝bːʊ̙̞ʁzl̩"},
        {"ⴰⴱⴱⵓⵥⵥⵄ", "ɑ̝bːʊ̙̞zˤːəʕ"},
        {"ⴰⴱⴰⵔⴰⴳ", "æβæræ̝ʝ"},
        {"ⴰⴱⴰⵙⴰⵍ", "æβæsæ̝l"},
        {"ⵉⴱⴰⵙⴰⵍⵏ", "iβæsæ̝l(ː)"},
        {"ⴳ", "i̞(ʝ)"},
        {"ⵏⵙ", "n̪əs"},
        {"ⵟⵚ", "t̪ˤəsˤ"},
        {"ⵅⴷⵎ", "ʁðm̩"},
        {"ⵣⵄⴼ", "zʕəf"},
        {"ⴹⵎⵏ", "ðˤmn̪̩"},
        {"ⵏ", "n̪̩"},
--Examples from Penchoen's grammar
        {"ⵢⴳⵯⵜ", "i̞wːəθ"},--a
        {"ⵢⴳⴰ", "i(ʝ)ɑ"},--a
        {"ⵜⴰⴳⵯⵓⵜⵜ", "θæ̝wːu̞t̪(ː)"},--a
        {"ⴰⵖⵓ", "ɑ̝ʁːʊ̙"},--a
        {"ⵜⴰⵖⴰⴹⵜ", "t̪ˤɑ̝ʁːɑ̝t̪ˤ(ː)"},--a
        {"ⵜⴰⵎⵟⵟⵓⵜⵜ", "t̪ˤɑmət̪ˤːʊ̙̞t̪ˤ(ː)"},--b
        {"ⵜⴰⵎⴰⵣⵉⵖⵜ", "θæmæzɪ̙̞χθ"},--c
        {"ⵜⴰⵊⴹⵉⴹⵜ", "t̪ˤɑ̝ʒðˤɪ̙̞t̪ˤ(ː)"},--d
        {"ⵢⴳⵯⵜ ⵛ", "i̞wːət̪ ʃ"},--e
        {"ⵢⴹⴰⵔⵏ", "ɪ̙ðˤɑ̝rˤ(ː)"},--f
        {"ⴽⴽⵔⵏ", "cːr̩(ː)"},--f
        {"ⴽⴽⵔⵏⵜ", "cːrn̪̩θ"},--f
        {"ⵏ ⵍⵅⵓⴹⵔⵜ", "lː‿χʊ̙ðˤr̩ˤt̪ˤ"},--g
        {"ⵢ ⵢⵅⴰⵎⵏ", "ɟː‿χɑmn̪̩"},--h
        {"ⴰⵢ ⵢⴰⵏⵏⴰⵢ", "æ̝ɟː‿æ̝n̪ːæ̝j"},--h
        {"ⵢ ⵡⴰⵛⴰⵍ", "ɡʷː‿æʃæ̝l"},--h
        {"ⴷⴷⴰⵡ ⵡⴰⵛⴰⵍ", "d̪ːæ̝wː‿æʃæ̝l"},--h
        {"ⵢⵛⴰ", "iʃɑ"},--i
        {"ⵉⵇⵇⴰⵣ", "ɪ̙̞qːɑ̝z"},--l
        {"ⵅⴷⵎⵏ", "χəðmn̪̩"},--o
        {"ⴱⴱⵢ", "bːi̞(j)"},--q
        {"ⴱⴱⵉⵢ", "bːi̞(j)"},--q
        {"ⴰⵏⵓⵉⵏⵓ", "æn̪un̪u"},--r
        {"ⴷⴷⵓⴰⵜ", "d̪ːujæ̝θ"},--r
        {"ⵢⵏⵉⴰⵜ", "in̪(ij)æ̝θ"},--r
        {"ⵢⵏⵉⴰⵙ", "in̪(ij)æ̝s"},--r
        {"ⵢⵏⵏⴰⴰⵙ", "i̞n̪ː(ɑj)æ̝s"},--r
        {"ⵢⵛⵛⴰ ⴰⴽⵙⵓⵎ", "i̞t͡ʃː‿æ̝çsu̞m"},--s
        {"ⴽⵓ ⴰⵙⵙ", "çu‿jæ̝s(ː)"},--t
        {"ⴱⵍⴰ ⴰⵙⵔⴷⵓⵏ", "βlɑ‿jæsr̩ðu̞n̪"},--t
        {"ⴽⵓ ⵓⵛⵛⵏ", "çu‿ju̞t͡ʃːn̪̩"},--t
        {"ⴰ ⴰⵔⵢⴰⵣ", "ɑ‿jæ̝rjæ̝z"},--t
        {"ⴱⵍⴰ ⵓⴷⵉ", "βlɑ‿juði"},--t
        {"ⴱⵍⴰ ⵢⵙⵔⴷⴰⵏ", "βlɑ‿jsr̩ðæ̝n̪"},--t
--rule-relevant testcases
        {"ⵜⴰⵖⴰⴹⵜ", "t̪ˤɑ̝ʁːɑ̝t̪ˤ(ː)"},--a:consonant cluster in coda
        {"ⴰⵖⵓ", "ɑ̝ʁːʊ̙"},--a:vowel initial word
        {"ⵛⵔⴰⴹ", "ʃrˤɑ̝ðˤ"},--b:regressive spread CVCˤ
        {"ⴰⵔⵔⴰⵚ", "ɑ̝rˤːɑ̝sˤ"},--b:regressive spread to tense CCVCˤ
        {"ⵢⴹⴰⵔⵏ", "ɪ̙ðˤɑ̝rˤ(ː)"},--b:progressive spread to tense CˤVCC
        {"ⵢ ⵡⴰⵛⴰⵍ", "ɡʷː‿æʃæ̝l"},--h:/j w/ conflation
        {"ⴷⴷⴰⵡ ⵡⴰⵛⴰⵍ", "d̪ːæ̝wː‿æʃæ̝l"},--h:/w w/ conflation
        {"ⵢ ⵢⵅⴰⵎⵏ", "ɟː‿χɑmn̪̩"},--i:disable /j/>/i/ \ #_j
        --{"ⵎⵎⵜ", "mːəθ"},--j:with initial schwa
        {"ⵏⵖ", "n̪əʁ"},--o:possibility of consonant before schwa (3rd)
        {"ⵏⴽⴽ", "n̪əc(ː)"},--o:adaptation to tense (1st)
        {"ⵛⵛ", "ət͡ʃ(ː)"},--o:adaptation to tense (3rd)
        {"ⴱⴱⵉⵢ", "bːi̞(j)"},--Q:diphthong
        {"ⴱⴱⵢ", "bːi̞(j)"},--Q:diphthong from schwa + glide
        {"ⵢⵏⵉⴰⵜ", "in̪(ij)æ̝θ"},--Q:not when already parentheses
        {"ⴰⵢ ⵢⴰⵏⵏⴰⵢ", "æ̝ɟː‿æ̝n̪ːæ̝j"},--tensing:make C C > Cː‿ instead of ‿Cː
        {"ⴷⴷⴰⵡ ⵡⴰⵛⴰⵍ", "d̪ːæ̝wː‿æʃæ̝l"},--tensing:[wː] now tense counterpart of /w w/
        {"ⴰⵍⵍⵏ", "æ̝lːn̪̩"},--/n/ not assimilated before already-tense /l/ and /r/
        {"ⵜⵙⵄⵓⴷ", "θəsʕʊ̙̞ð"},--[ʕ] doesn't make voiced the precedent consonant
        {"ⵍⴱⵃⵔ", "ləβħr̩"},--[ħ] doesn't make voiceless the precedent consonant
        {"ⵣⵣⵔⵔⵉⵄⵜ", "zːr̩ːɪ̙̞ʕθ"},--[ʕ] doesn't become voiced in spite of the next consonant
    }

    tests:iterate(examples, "check_pron_ayt_ndhir")
end

return tests