Module:User:Kiril kovachev/tok-hyph/testcases

local tests = require("Module:UnitTests") local m_pron = require("Module:User:Kiril kovachev/tok-hyph")

local TokiPona = require("Module:languages").getByCode("tok") local Latin = require("Module:scripts").getByCode("Latn")

local function link(term) return require("Module:links").full_link{ term = term, lang = TokiPona, sc = Latin, tr = "-" } end

local function identity(x) return x end

local display_syllabification = identity

function tests:check_output_syllabification(term, expected) tests:equals(		link(term),		m_pron.syllabify(term),		mw.ustring.gsub(expected, "[.]", "‧"),		{ display = display_syllabification }	) end

function tests:test_syllabification -- Left side of elements: input to the function, which may include dots (.) for manual syllable division -- Right side of elements: expected output, with syllable breaks indicated with a dot local list = { {"a", "a"}, {"akesi", "a.ke.si"}, {"ala", "a.la"}, {"alasa", "a.la.sa"}, {"ale", "a.le"}, {"ali", "a.li"}, {"anpa", "an.pa"}, {"ante", "an.te"}, {"anu", "a.nu"}, {"awen", "a.wen"}, {"e", "e"}, {"en", "en"}, {"epiku", "e.pi.ku"}, {"esun", "e.sun"}, {"ijo", "i.jo"}, {"ike", "i.ke"}, {"ilo", "i.lo"}, {"insa", "in.sa"}, {"jaki", "ja.ki"}, {"jan", "jan"}, {"jasima", "ja.si.ma"}, {"jelo", "je.lo"}, {"jo", "jo"}, {"kala", "ka.la"}, {"kalama", "ka.la.ma"}, {"kama", "ka.ma"}, {"kasi", "ka.si"}, {"ken", "ken"}, {"kepeken", "ke.pe.ken"}, {"kijetesantakalu", "ki.je.te.san.ta.ka.lu"}, {"kili", "ki.li"}, {"kin", "kin"}, {"kipisi", "ki.pi.si"}, {"kiwen", "ki.wen"}, {"ko", "ko"}, {"kokosila", "ko.ko.si.la"}, {"kon", "kon"}, {"ku", "ku"}, {"kule", "ku.le"}, {"kulupu", "ku.lu.pu"}, {"kute", "ku.te"}, {"la", "la"}, {"lanpan", "lan.pan"}, {"lape", "la.pe"}, {"laso", "la.so"}, {"lawa", "la.wa"}, {"leko", "le.ko"}, {"len", "len"}, {"lete", "le.te"}, {"li", "li"}, {"lili", "li.li"}, {"linja", "lin.ja"}, {"lipu", "li.pu"}, {"loje", "lo.je"}, {"lon", "lon"}, {"luka", "lu.ka"}, {"lukin", "lu.kin"}, {"lupa", "lu.pa"}, {"ma", "ma"}, {"mama", "ma.ma"}, {"mani", "ma.ni"}, {"meli", "me.li"}, {"meso", "me.so"}, {"mi", "mi"}, {"mije", "mi.je"}, {"misikeke", "mi.si.ke.ke"}, {"moku", "mo.ku"}, {"moli", "mo.li"}, {"monsi", "mon.si"}, {"monsuta", "mon.su.ta"}, {"mu", "mu"}, {"mun", "mun"}, {"musi", "mu.si"}, {"mute", "mu.te"}, {"n", "n"}, {"namako", "na.ma.ko"}, {"nanpa", "nan.pa"}, {"nasa", "na.sa"}, {"nasin", "na.sin"}, {"nena", "ne.na"}, {"ni", "ni"}, {"nimi", "ni.mi"}, {"noka", "no.ka"}, {"o", "o"}, {"oko", "o.ko"}, {"olin", "o.lin"}, {"ona", "o.na"}, {"open", "o.pen"}, {"pakala", "pa.ka.la"}, {"pali", "pa.li"}, {"palisa", "pa.li.sa"}, {"pan", "pan"}, {"pana", "pa.na"}, {"pi", "pi"}, {"pilin", "pi.lin"}, {"pimeja", "pi.me.ja"}, {"pini", "pi.ni"}, {"pipi", "pi.pi"}, {"poka", "po.ka"}, {"poki", "po.ki"}, {"pona", "po.na"}, {"pu", "pu"}, {"sama", "sa.ma"}, {"seli", "se.li"}, {"selo", "se.lo"}, {"seme", "se.me"}, {"sewi", "se.wi"}, {"sijelo", "si.je.lo"}, {"sike", "si.ke"}, {"sin", "sin"}, {"sina", "si.na"}, {"sinpin", "sin.pin"}, {"sitelen", "si.te.len"}, {"soko", "so.ko"}, {"sona", "so.na"}, {"soweli", "so.we.li"}, {"suli", "su.li"}, {"suno", "su.no"}, {"supa", "su.pa"}, {"suwi", "su.wi"}, {"tan", "tan"}, {"taso", "ta.so"}, {"tawa", "ta.wa"}, {"telo", "te.lo"}, {"tenpo", "ten.po"}, {"toki", "to.ki"}, {"tomo", "to.mo"}, {"tonsi", "ton.si"}, {"tu", "tu"}, {"unpa", "un.pa"}, {"uta", "u.ta"}, {"utala", "u.ta.la"}, {"walo", "wa.lo"}, {"wan", "wan"}, {"waso", "wa.so"}, {"wawa", "wa.wa"}, {"weka", "we.ka"}, {"wile", "wi.le"} } --	Additions take this form –		{ "word (with no accent required)", "expected syllabification" },		{ "", "" },	Make sure to include the comma, or the module will return an error. self:iterate(list, "check_output_syllabification") end

return tests