Module:IPA/testcases
Documentation for this module may be created at Module:IPA/testcases/doc
local tests = require('Module:UnitTests')
local m_IPA = require('Module:IPA')
local testcases = {
-- [ XSAMPA ] = IPA ;
-- en: [[dictionary]]
['/"dIkS@n(@)r\\i/' ] = '/ˈdɪkʃən(ə)ɹi/';
['/"dIkS@nEr\\i/' ] = '/ˈdɪkʃənɛɹi/' ;
-- en: [[battleship]]
['["b{tl=SIp]' ] = '[ˈbætl̩ʃɪp]' ;
-- en: [[murder]]
['["m3`d@`]' ] = '[ˈmɝdɚ]' ;
-- en: [[dazzle]]
['/"d{zl=/' ] = '/ˈdæzl̩/' ;
-- en: [[change]]
-- ['/ʧeɪnʤ/' ] = '/t͡ʃeInd͡ʒ/' ;
-- en: [[change]]
['/t__SeInd__Z/' ] = '/t͡ʃeɪnd͡ʒ/' ;
-- uk: [[Україна]]
['/ukrA"jInA/' ] = '/ukrɑˈjɪnɑ/' ;
-- fa: [[نوروز]]
['[n{u_^"4o:z]' ] = '[næu̯ˈɾoːz]' ;
['[nou_^"4u:z]' ] = '[nou̯ˈɾuːz]' ;
['[no:"4u:z]' ] = '[noːˈɾuːz]' ;
['[n{u_^"48:z]' ] = '[næu̯ˈɾɵːz]' ;
-- cmn: [[新年]]
['[s\\In_T_TniEn_M_T]'] = '[ɕɪn˥˥niɛn˧˥]' ;
-- ga: [[báid]]
['[b_GA:d_j]' ] = '[bˠɑːdʲ]' ;
-- ga: [[bád]]
['[b_GA:d_d_G]' ] = '[bˠɑːd̪ˠ]' ;
}
local function format_ipa(ipa)
return '<span class="IPA" lang="">' .. ipa .. '</span>'
end
local function format_xsampa(xsampa)
return '<code>' .. xsampa .. '</code>'
end
function tests:test_convert_xsampa_to_ipa()
for xsampa, ipa in pairs(testcases) do
self:equals(format_xsampa(xsampa), format_ipa(m_IPA.XSAMPA_to_IPA(xsampa)), format_ipa(ipa))
end
end
function tests:test_convert_ipa_to_xsampa()
for xsampa, ipa in pairs(testcases) do
self:equals(format_ipa(ipa), format_xsampa(m_IPA.IPA_to_XSAMPA(ipa)), format_xsampa(xsampa))
end
end
function tests:test_roundtrip_ipa()
for xsampa, ipa in pairs(testcases) do
self:equals(format_ipa(ipa), format_ipa(m_IPA.XSAMPA_to_IPA(m_IPA.IPA_to_XSAMPA(ipa))), format_ipa(ipa))
end
end
function tests:test_roundtrip_xsampa()
for xsampa, ipa in pairs(testcases) do
self:equals(format_xsampa(xsampa), format_xsampa(m_IPA.IPA_to_XSAMPA(m_IPA.XSAMPA_to_IPA(xsampa))), format_xsampa(xsampa))
end
end
return tests