Module:eo-pron/testcases

local tests = require('Module:UnitTests') local m_eo_ipa = require('Module:eo-pron')

local function format_ipa(ipa) return ' ' .. ipa .. ' ' end

local function link(word) return '' .. word .. '' end

function tests:check_ipa(word, expected, artificial) return self:equals(		'IPA: ' .. link(word),		format_ipa(m_eo_ipa.IPA(word)), format_ipa(expected)	) end

function tests:check_hyphenation(word, expected, artificial) return self:equals(		'Hyphenation: ' .. link(word),		m_eo_ipa.hyphenation(word), expected) end

function tests:check_letters(word, expected, artificial) return self:equals(		'Letters: ' .. link(word),		m_eo_ipa.letters(word), expected) end

function tests:check_rhyme(word, expected, artificial) return self:equals(		'Rhyme: ' .. link(word),		m_eo_ipa.rhyme(word), expected) end

function tests:check_ipa_artif(word, expected, artificial) return self:equals(		' ',		format_ipa(m_eo_ipa.IPA(word)), format_ipa(expected)	) end

function tests:test_pron local examples1 = { { 'aĉeti', '/aˈt͡ʃeti/' }, { 'alkohola', '/alkoˈhola/' }, { 'Eŭropo', '/ewˈropo/' }, { 'facila', '/faˈt͡sila/' }, { 'honoro', '/hoˈnoro/' }, { 'familio', '/famiˈlio/' }, { 'mi', '/mi/' }, { 'b', '/bo/' }, { 'ĥ', '/xo/' }, { 'ĉ', '/t͡ʃo/' }, { 'a', '/a/' }, { 'u', '/u/' }, { 'ŭ', '/wo/' }, { 'ili', '/ˈili/' }, { 'borantajn', '/boˈrantajn/' }, { 'Rio-de-Ĵanejro', '/ˈrio de ʒaˈnejro/' }, { 'eklipsi', '/eˈklipsi/' }, { 'feldspato', '/feldsˈpato/' }, { 'vandalismo', '/vandaˈlismo/' }, { 'eksplodo', '/eksˈplodo/' }, { 'k.t.p.', '/ko to po/' }, { 'T-ĉemizo', '/to t͡ʃeˈmizo/' }, { 'ludejo', '/luˈdejo/' }, { 'ŭonbulismo', '/wonbuˈlismo/' }, { 'ŭaŭ', '/waw/' }, { 'poŭpo', '/ˈpowpo/' }, { 'ankaŭ', '/ˈankaw/' }, { "jam temp' está", "/jam temp esˈta/" }, }	self:iterate(examples1, 'check_ipa') local examples2 = { { 'bela', 'b-e-l-a' }, { 'ajaŭejeŭojuj', 'a-j-a-ŭ-e-j-e-ŭ-o-j-u-j' }, { 'auj', 'a-u-j' }, { 'uja', 'u-j-a' }, { 'fujaf', 'f-u-j-a-f' }, { "A", 'A' }, { "ludejo", "l-u-d-e-j-o" }, }	self:iterate(examples2, 'check_letters') local examples3 = { { 'bela', 'be‧la' }, { 'domoj', 'do‧moj' }, { 'knaboj', 'kna‧boj' }, { 'gvidi', 'gvi‧di' }, { 'tablo', 'ta‧blo' }, { 'akra', 'a‧kra' }, { 'agrabla', 'a‧gra‧bla' }, { 'suspekti', 'sus‧pek‧ti' }, { 'ekzisti', 'ek‧zis‧ti' }, { 'ekzameno', 'ek‧za‧me‧no' }, { 'ekzemplo', 'ek‧zem‧plo' }, { 'escepte', 'es‧cep‧te' }, { 'angla', 'an‧gla' }, { 'fingro', 'fin‧gro' }, { 'svingi', 'svin‧gi' }, { 'longa', 'lon‧ga' }, { 'dungi', 'dun‧gi' }, { 'ekskurso', 'eks‧kur‧so' }, { 'eksplodi', 'eks‧plo‧di' }, { 'ellabori', 'el‧la‧bo‧ri' }, { 'forrajdi', 'for‧raj‧di' }, { 'alkohola', 'al‧ko‧ho‧la' }, { 'familio', 'fa‧mi‧li‧o' }, { 'abolicii', 'a‧bo‧li‧ci‧i' }, { 'biokomputiko', 'bi‧o‧kom‧pu‧ti‧ko' }, { 'A', 'A' }, { 'bombus', 'bom‧bus' }, { 'striko', 'stri‧ko' }, { 'Centr-Afrika Respubliko', 'Cen‧tr A‧fri‧ka Res‧pu‧bli‧ko' }, { 'Georgo', 'Ge‧or‧go' }, { 'lunlumon', 'lun‧lu‧mon' }, { 'vesperstelo', 'ves‧per‧ste‧lo' }, { 'ŭonbulismo', 'ŭon‧bu‧lis‧mo' }, { 'ankaŭ', 'an‧kaŭ' }, { 'najlo', 'naj‧lo' }, { 'antaŭen', 'an‧taŭ‧en' }, { 'antaŭiri', 'an‧taŭ‧i‧ri' }, { 'antaŭa', 'an‧taŭ‧a' }, { 'antaŭu', 'an‧taŭ‧u' }, { 'antaŭo', 'an‧taŭ‧o' }, }	self:iterate(examples3, 'check_hyphenation') local examples4 = { { 'knabo', 'abo' }, { 'frata', 'ata' }, { 'Afganistano', 'ano' }, { 'aliancano', 'ano' }, { 'ekspediciano', 'ano' }, { 'feldspato', 'ato' }, { 'biokomputiko', 'iko' }, { 'bela', 'ela' }, { 'novaĵoj', 'aʒoj' }, { 'Rio-de-Ĵanejro', 'ejro' }, }	self:iterate(examples4, 'check_rhyme') end

return tests