Module:sce-pron/testcases

From Wiktionary, the free dictionary
Jump to navigation Jump to search

local tests = require("Module:UnitTests")
local m_IPA = require("Module:sce-pron")
local gsub = mw.ustring.gsub

local sce = require("Module:languages").getByCode("sce")
local function link(text)
	return require("Module:links").full_link { term = text, lang = sce }
end

local function respell(term)
    local original_term = term
    term = gsub(term, "'", ""):gsub("ŋ", "n")
    return term, original_term ~= term and term or nil
end

function tests:test_phonemic_IPA()
	local testcases = {
		{ "baer", "pɑˈɚ" },
		{ "tiigha", "tʰɯˈqɑ" },
		{ "niere", "njəˈrə" },
		{ "enzhegve", "ənt͡ʂəˈʁə" },
		{ "xiaojieruŋ", "ɕjɑwt͡ɕjəˈruŋ" },
		{ "'ershi", "ˈɚʂi", "zh" },
		{ "'ruhher", "ˈʐuhɚ", "zh" }
	}

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

	self:iterate(testcases, function(self, term, IPA, etyl)
		local respelt, is_respelt = respell(term)

		if is_respelt then
			self:equals(link(respelt) .. " (<code>" .. term .. "</code>)", m_IPA.IPA_m(term, etyl), IPA, options)
		else
			self:equals(link(term), m_IPA.IPA_m(term, etyl), IPA, options)
		end
	end)
end

return tests