Module:tok-hyph/testcases

All tests passed. (refresh)

TextExpectedActual
test_syllabification:
Passedaaa
Passedakesia‧ke‧sia‧ke‧si
Passedalaa‧laa‧la
Passedalasaa‧la‧saa‧la‧sa
Passedalea‧lea‧le
Passedalia‧lia‧li
Passedanpaan‧paan‧pa
Passedantean‧tean‧te
Passedanua‧nua‧nu
Passedawena‧wena‧wen
Passedeee
Passedenenen
Passedepikue‧pi‧kue‧pi‧ku
Passedesune‧sune‧sun
Passedijoi‧joi‧jo
Passedikei‧kei‧ke
Passediloi‧loi‧lo
Passedinsain‧sain‧sa
Passedjakija‧kija‧ki
Passedjanjanjan
Passedjasimaja‧si‧maja‧si‧ma
Passedjeloje‧loje‧lo
Passedjojojo
Passedkalaka‧laka‧la
Passedkalamaka‧la‧maka‧la‧ma
Passedkamaka‧maka‧ma
Passedkasika‧sika‧si
Passedkenkenken
Passedkepekenke‧pe‧kenke‧pe‧ken
Passedkijetesantakaluki‧je‧te‧san‧ta‧ka‧luki‧je‧te‧san‧ta‧ka‧lu
Passedkiliki‧liki‧li
Passedkinkinkin
Passedkipisiki‧pi‧siki‧pi‧si
Passedkiwenki‧wenki‧wen
Passedkokoko
Passedkokosilako‧ko‧si‧lako‧ko‧si‧la
Passedkonkonkon
Passedkukuku
Passedkuleku‧leku‧le
Passedkulupuku‧lu‧puku‧lu‧pu
Passedkuteku‧teku‧te
Passedlalala
Passedlanpanlan‧panlan‧pan
Passedlapela‧pela‧pe
Passedlasola‧sola‧so
Passedlawala‧wala‧wa
Passedlekole‧kole‧ko
Passedlenlenlen
Passedletele‧tele‧te
Passedlilili
Passedlilili‧lili‧li
Passedlinjalin‧jalin‧ja
Passedlipuli‧puli‧pu
Passedlojelo‧jelo‧je
Passedlonlonlon
Passedlukalu‧kalu‧ka
Passedlukinlu‧kinlu‧kin
Passedlupalu‧palu‧pa
Passedmamama
Passedmamama‧mama‧ma
Passedmanima‧nima‧ni
Passedmelime‧lime‧li
Passedmesome‧some‧so
Passedmimimi
Passedmijemi‧jemi‧je
Passedmisikekemi‧si‧ke‧kemi‧si‧ke‧ke
Passedmokumo‧kumo‧ku
Passedmolimo‧limo‧li
Passedmonsimon‧simon‧si
Passedmonsutamon‧su‧tamon‧su‧ta
Passedmumumu
Passedmunmunmun
Passedmusimu‧simu‧si
Passedmutemu‧temu‧te
Passednnn
Passednamakona‧ma‧kona‧ma‧ko
Passednanpanan‧panan‧pa
Passednasana‧sana‧sa
Passednasinna‧sinna‧sin
Passednenane‧nane‧na
Passedninini
Passednimini‧mini‧mi
Passednokano‧kano‧ka
Passedooo
Passedokoo‧koo‧ko
Passedolino‧lino‧lin
Passedonao‧nao‧na
Passedopeno‧peno‧pen
Passedpakalapa‧ka‧lapa‧ka‧la
Passedpalipa‧lipa‧li
Passedpalisapa‧li‧sapa‧li‧sa
Passedpanpanpan
Passedpanapa‧napa‧na
Passedpipipi
Passedpilinpi‧linpi‧lin
Passedpimejapi‧me‧japi‧me‧ja
Passedpinipi‧nipi‧ni
Passedpipipi‧pipi‧pi
Passedpokapo‧kapo‧ka
Passedpokipo‧kipo‧ki
Passedponapo‧napo‧na
Passedpupupu
Passedsamasa‧masa‧ma
Passedselise‧lise‧li
Passedselose‧lose‧lo
Passedsemese‧mese‧me
Passedsewise‧wise‧wi
Passedsijelosi‧je‧losi‧je‧lo
Passedsikesi‧kesi‧ke
Passedsinsinsin
Passedsinasi‧nasi‧na
Passedsinpinsin‧pinsin‧pin
Passedsitelensi‧te‧lensi‧te‧len
Passedsokoso‧koso‧ko
Passedsonaso‧naso‧na
Passedsoweliso‧we‧liso‧we‧li
Passedsulisu‧lisu‧li
Passedsunosu‧nosu‧no
Passedsupasu‧pasu‧pa
Passedsuwisu‧wisu‧wi
Passedtantantan
Passedtasota‧sota‧so
Passedtawata‧wata‧wa
Passedtelote‧lote‧lo
Passedtenpoten‧poten‧po
Passedtokito‧kito‧ki
Passedtomoto‧moto‧mo
Passedtonsiton‧siton‧si
Passedtututu
Passedunpaun‧paun‧pa
Passedutau‧tau‧ta
Passedutalau‧ta‧lau‧ta‧la
Passedwalowa‧lowa‧lo
Passedwanwanwan
Passedwasowa‧sowa‧so
Passedwawawa‧wawa‧wa
Passedwekawe‧kawe‧ka
Passedwilewi‧lewi‧le

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