Module:IPA/testcases

ពីWiktionary

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