Jump to content

Module:ssy-IPA/testcases

From Wiktionary, the free dictionary

4 of 7 tests failed. (refresh)

TextExpectedActualDiffers at
test_hyphenation:
Faileddor-hodor-hodor‧ho4
Passedkwannakwan‧nakwan‧na
Failedqiraa-aqi‧raa-aqi‧raa‧a7
TextExpectedActualDiffers at
test_pron:
Passeddor-hödorˈhodorˈho
Failedkwannäkʷänˈnäkʷanˈna3
Failedqiraa-äkʼiräːˈʔäkʼiraːˈʔa5
Passedthüthˈtʼutʼˈtʼutʼ

local tests = require("Module:UnitTests")
local m_IPA = require("Module:ssy-IPA")
local lang = require("Module:languages").getByCode("ssy")

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

local function link(word) return require("Module:links").full_link({term = word, lang = lang}, nil, true) end

function tests:check_pron(word, expected)
	self:equals(
		link(word), m_IPA.pronunciation_phonemic(word), expected, options
	)
end

function tests:test_pron()
	local examples = {
        {"dor-hö", "dorˈho"},
        {"kwannä", "kʷänˈnä"},
        {"qiraa-ä", "kʼiräːˈʔä"},
        {"thüth", "ˈtʼutʼ" },
	}
	
	tests:iterate(examples, "check_pron")
end

function tests:test_hyphenation()
	local function format_hyphenation(hyphenation)
		return table.concat(hyphenation, "‧")
	end
	
	self:iterate(
		{
			{ "dor-ho", { "dor-ho" } },
			{ "kwanna", { "kwan", "na" } },
			{ "qiraa-a", { "qi", "raa-a" } },
		},
		function(self, term, expected)
			self:equals(
				link(term),
				format_hyphenation(m_IPA.syllabify(term)),
				format_hyphenation(expected)
			)
		end
	)
end

return tests