local tests = require("Module:UnitTests")
local m_tl_utils = require("Module:tl-utilities")
local function tag_spelling(spelling)
return spelling
end
local function display_text(text)
return ("]"):format(text, text)
end
function tests:check_utilities(text, expected, actual)
self:equals(
display_text(text),
expected,
actual,
{ display = tag_spelling }
)
end
function tests:test_prefixes()
local examples = {
{"tayo", m_tl_utils.add_affix("tayo", "mag-"), "magtayo"},
{"alok", m_tl_utils.add_affix("alok", "mag-"), "mag-alok"},
{"drama", m_tl_utils.add_affix("drama", "mag-"), "magdrama"},
{"ngiti", m_tl_utils.add_affix("ngiti", "pag-"), "pagngiti"},
{"USA", m_tl_utils.add_affix("USA", "mag-"), "mag-USA"},
{"alam", m_tl_utils.add_affix("alam", "pa-"), "paalam"},
{"higa", m_tl_utils.add_affix("higa", "pa-"), "pahiga"},
{"dumi", m_tl_utils.add_affix("dumi", "ma-"), "marumi"},
{"69", m_tl_utils.add_affix("69", "pag-"), "pag-69"},
{"Quezon", m_tl_utils.add_affix("Quezon", "taga-"), "taga-Quezon"},
{"kaliwa", m_tl_utils.add_affix("kaliwa", "mang-"), "mangkaliwa"},
{"kaliwa", m_tl_utils.add_affix("kaliwa", "mang-", { = "partial"}), "mangkaliwa"},
{"kaliwa", m_tl_utils.add_affix("kaliwa", "mang-", { = "total"}), "mangaliwa"},
{"kakaliwa", m_tl_utils.add_affix("kakaliwa", "mang-"), "mangkakaliwa"},
{"kakaliwa", m_tl_utils.add_affix("kakaliwa", "mang-", { = "partial"}), "mangkakaliwa"},
{"kakaliwa", m_tl_utils.add_affix("kakaliwa", "mang-", { = "total"}), "mangangaliwa"},
{"gasgas", m_tl_utils.add_affix("gasgas", "mang-"), "manggasgas"},
{"gasgas", m_tl_utils.add_affix("gasgas", "mang-", { = "partial"}), "manggasgas"},
{"gasgas", m_tl_utils.add_affix("gasgas", "mang-", { = "total"}), "mangasgas"},
{"gagasgas", m_tl_utils.add_affix("gagasgas", "mang-"), "manggagasgas"},
{"gagasgas", m_tl_utils.add_affix("gagasgas", "mang-", { = "partial"}), "manggagasgas"},
{"gagasgas", m_tl_utils.add_affix("gagasgas", "mang-", { = "total"}), "mangangasgas"},
{"ulo", m_tl_utils.add_affix("ulo", "pang-"), "pang-ulo"},
{"ulo", m_tl_utils.add_affix("ulo", "pang-", { = "partial"}), "pang-ulo"},
{"ulo", m_tl_utils.add_affix("ulo", "pang-", { = "total"}), "pangulo"},
{"uusap", m_tl_utils.add_affix("uusap", "pang-"), "pang-uusap"},
{"uusap", m_tl_utils.add_affix("uusap", "pang-", { = "partial"}), "pang-uusap"},
{"uusap", m_tl_utils.add_affix("uusap", "pang-", { = "total"}), "pangungusap"},
{"bato", m_tl_utils.add_affix("bato", "pang-"), "pangbato"},
{"bato", m_tl_utils.add_affix("bato", "pang-", { = "partial"}), "pambato"},
{"bato", m_tl_utils.add_affix("bato", "pang-", { = "total"}), "pamato"},
{"babato", m_tl_utils.add_affix("babato", "pang-"), "pangbabato"},
{"babato", m_tl_utils.add_affix("babato", "pang-", { = "partial"}), "pambabato"},
{"babato", m_tl_utils.add_affix("babato", "pang-", { = "total"}), "pamamato"},
{"punas", m_tl_utils.add_affix("punas", "pang-"), "pangpunas"},
{"punas", m_tl_utils.add_affix("punas", "pang-", { = "partial"}), "pampunas"},
{"punas", m_tl_utils.add_affix("punas", "pang-", { = "total"}), "pamunas"},
{"pupunas", m_tl_utils.add_affix("pupunas", "pang-"), "pangpupunas"},
{"pupunas", m_tl_utils.add_affix("pupunas", "pang-", { = "partial"}), "pampupunas"},
{"pupunas", m_tl_utils.add_affix("pupunas", "pang-", { = "total"}), "pamumunas"},
{"problema", m_tl_utils.add_affix("problema", "mang-"), "mangproblema"},
{"problema", m_tl_utils.add_affix("problema", "mang-", { = "partial"}), "mamproblema"},
{"problema", m_tl_utils.add_affix("problema", "mang-", { = "total"}), "mamroblema"},
{"dilaw", m_tl_utils.add_affix("dilaw", "mang-"), "mangdilaw"},
{"dilaw", m_tl_utils.add_affix("dilaw", "mang-", { = "partial"}), "mandilaw"},
{"dilaw", m_tl_utils.add_affix("dilaw", "mang-", { = "total"}), "manilaw"},
{"daramit", m_tl_utils.add_affix("daramit", "pang-"), "pangdaramit"},
{"daramit", m_tl_utils.add_affix("daramit", "pang-", { = "partial"}), "pandaramit"},
{"daramit", m_tl_utils.add_affix("daramit", "pang-", { = "total"}), "pananamit"},
{"sagot", m_tl_utils.add_affix("sagot", "mang-"), "mangsagot"},
{"sagot", m_tl_utils.add_affix("sagot", "mang-", { = "partial"}), "mansagot"},
{"sagot", m_tl_utils.add_affix("sagot", "mang-", { = "total"}), "managot"},
{"tugtog", m_tl_utils.add_affix("tugtog", "mang-"), "mangtugtog"},
{"tugtog", m_tl_utils.add_affix("tugtog", "mang-", { = "partial"}), "mantugtog"},
{"tugtog", m_tl_utils.add_affix("tugtog", "mang-", { = "total"}), "manugtog"},
{"luto", m_tl_utils.add_affix("luto", "pang-"), "pangluto"},
{"luto", m_tl_utils.add_affix("luto", "pang-", { = "partial"}), "panluto"},
{"luto", m_tl_utils.add_affix("luto", "pang-", { = "total"}), "panluto"},
{"ngalan", m_tl_utils.add_affix("ngalan", "pang-"), "pangngalan"},
{"ngalan", m_tl_utils.add_affix("ngalan", "pang-", { = "partial"}), "pangngalan"},
{"ngalan", m_tl_utils.add_affix("ngalan", "pang-", { = "total"}), "pangngalan"},
{ "Pilipinas", m_tl_utils.add_affix("Pilipinas", "pang-", {
= "partial"
}), "pam-Pilipinas"},
{"pulis", m_tl_utils.add_affix("pulis", "pam-", {
= true
}), "pam-pulis"},
}
self:iterate(examples, "check_utilities")
end
function tests:test_infixes()
local examples = {
{ "inom", m_tl_utils.add_affix("inom", "-um-"), "uminom"},
{ "laki", m_tl_utils.add_affix("laki", "-um-"), "lumaki"},
{ "kain", m_tl_utils.add_affix("kain", "-in-"), "kinain"},
{ "agaw", m_tl_utils.add_affix("agaw", "-in-"), "inagaw"},
{ "sulat", m_tl_utils.add_affix("sulat", "-ungm-"), "sungmulat"},
{ "nguya", m_tl_utils.add_affix("nguya", "-um-"), "ngumuya"},
{ "tropa", m_tl_utils.add_affix("tropa", "-in-"), "tinropa"},
{ "tropa", m_tl_utils.add_affix("tropa", "-in-", { = true}), "trinopa"},
{ "buwisit", m_tl_utils.add_affix("buwisit", "-um-"), "bumuwisit"},
{ "pwesto", m_tl_utils.add_affix("pwesto", "-um-"), "pumwesto"},
{ "pwesto", m_tl_utils.add_affix("pwesto", "-um-", { = true}), "pwumesto"},
{ "diyaket", m_tl_utils.add_affix("diyaket", "-in-"), "diniyaket"},
{ "dyaket", m_tl_utils.add_affix("dyaket", "-in-"), "dinyaket"},
{ "dyaket", m_tl_utils.add_affix("dyaket", "-in-", { = true}), "dyinaket"},
{ "jaket", m_tl_utils.add_affix("jaket", "-in-"), "jinaket"},
{ "siyampu", m_tl_utils.add_affix("siyampu", "-in-"), "siniyampu"},
{ "syampu", m_tl_utils.add_affix("syampu", "-in-"), "sinyampu"},
{ "syampu", m_tl_utils.add_affix("syampu", "-in-", { = true}), "syinampu"},
{ "shampu", m_tl_utils.add_affix("shampu", "-in-"), "shinampu"},
{ "tsismis", m_tl_utils.add_affix("tsismis", "-in-"), "tsinismis"},
{ "chismis", m_tl_utils.add_affix("chismis", "-in-"), "chinismis"},
{ "Sotto", m_tl_utils.add_affix("Sotto", "-in-"), "Sinotto"},
{ "hukay", m_tl_utils.add_affix("hukay", "-al-", { = true}), "h-al-ukay"},
}
self:iterate(examples, "check_utilities")
end
function tests:test_suffixes()
local examples = {
{ "ipit", m_tl_utils.add_affix("ipit", "-in"), "ipitin"},
{ "yabang", m_tl_utils.add_affix("yabang", "-an"), "yabangan"},
{ "saksák", m_tl_utils.add_affix("saksák", "-an"), "saksakan"},
{ "lista", m_tl_utils.add_affix("lista", "-an"), "listahan"},
{ "upa", m_tl_utils.add_affix("upa", "-han"), "upahan"},
{ "lupà", m_tl_utils.add_affix("lupà", "-in"), "lupain"},
{ "sulong", m_tl_utils.add_affix("sulong", "-an"), "sulungan"},
{ "deretso", m_tl_utils.add_affix("deretso", "-in"), "deretsuhin"},
{ "tawa", m_tl_utils.add_affix("tawa", "-an"), "tawahan"},
{ "tawa", m_tl_utils.add_affix("tawa", "-nan"), "tawanan"},
{ "leeg", m_tl_utils.add_affix("leeg", "-an"), "leegan"},
{ "bili", m_tl_utils.add_affix("bili", "-in"), "bilihin"},
{ "kuryente", m_tl_utils.add_affix("kuryente", "-in"), "kuryentihin"},
{ "bord", m_tl_utils.add_affix("bord", "-an"), "bordan"},
{ "kuwelyo", m_tl_utils.add_affix("kuwelyo", "-in"), "kuwelyuhin"},
{ "suot", m_tl_utils.add_affix("suot", "-in"), "suotin"},
{ "buô", m_tl_utils.add_affix("buô", "-in"), "buoin"},
{ "loob", m_tl_utils.add_affix("loob", "-in"), "loobin"},
{ "sunod", m_tl_utils.add_affix("sunod", "-in"), "sunurin"},
{ "lapad", m_tl_utils.add_affix("lapad", "-an"), "laparan"},
{ "hagdan", m_tl_utils.add_affix("hagdan", "-an"), "hagdanan"},
{ "babae", m_tl_utils.add_affix("babae", "-ng"), "babaeng"},
{ "munti", m_tl_utils.add_affix("munti", "-ng"), "munting"},
{ "haba", m_tl_utils.add_affix("haba", "-ng"), "habang"},
{ "pandan", m_tl_utils.add_affix("pandan", "-ng"), "pandang"},
}
self:iterate(examples, "check_utilities")
end
function tests:test_circumfix()
local examples = {
{ "pintas", m_tl_utils.add_affix("pintas", "ka- -an"), "kapintasan"},
{ "araw", m_tl_utils.add_affix("araw", "tala- -an"), "talaarawan"},
{ "isa", m_tl_utils.add_affix("isa", "ka- -an"), "kaisahan"},
{ "bahalà", m_tl_utils.add_affix("bahalà", "pam- -an", { = "total"}), "pamahalaan"}
}
self:iterate(examples, "check_utilities")
end
function tests:test_suffixes()
local examples = {
{ "ipit", m_tl_utils.add_affix("ipit", "-in"), "ipitin"},
{ "yabang", m_tl_utils.add_affix("yabang", "-an"), "yabangan"},
{ "saksák", m_tl_utils.add_affix("saksák", "-an"), "saksakan"},
{ "lista", m_tl_utils.add_affix("lista", "-an"), "listahan"},
{ "upa", m_tl_utils.add_affix("upa", "-han"), "upahan"},
{ "lupà", m_tl_utils.add_affix("lupà", "-in"), "lupain"},
{ "sulong", m_tl_utils.add_affix("sulong", "-an"), "sulungan"},
{ "deretso", m_tl_utils.add_affix("deretso", "-in"), "deretsuhin"},
{ "tawa", m_tl_utils.add_affix("tawa", "-an"), "tawahan"},
{ "tawa", m_tl_utils.add_affix("tawa", "-nan"), "tawanan"},
{ "leeg", m_tl_utils.add_affix("leeg", "-an"), "leegan"},
{ "bili", m_tl_utils.add_affix("bili", "-in"), "bilihin"},
{ "kuryente", m_tl_utils.add_affix("kuryente", "-in"), "kuryentihin"},
{ "bord", m_tl_utils.add_affix("bord", "-an"), "bordan"},
{ "kuwelyo", m_tl_utils.add_affix("kuwelyo", "-in"), "kuwelyuhin"},
{ "suot", m_tl_utils.add_affix("suot", "-in"), "suotin"},
{ "buô", m_tl_utils.add_affix("buô", "-in"), "buoin"},
{ "loob", m_tl_utils.add_affix("loob", "-in"), "loobin"},
{ "sunod", m_tl_utils.add_affix("sunod", "-in"), "sunurin"},
{ "lapad", m_tl_utils.add_affix("lapad", "-an"), "laparan"},
{ "hagdan", m_tl_utils.add_affix("hagdan", "-an"), "hagdanan"},
{ "babae", m_tl_utils.add_affix("babae", "-ng"), "babaeng"},
{ "munti", m_tl_utils.add_affix("munti", "-ng"), "munting"},
{ "haba", m_tl_utils.add_affix("haba", "-ng"), "habang"},
{ "pandan", m_tl_utils.add_affix("pandan", "-ng"), "pandang"},
}
self:iterate(examples, "check_utilities")
end
function tests:test_reduplication()
local examples = {
{ "agos", m_tl_utils.reduplicate("agos"), "aagos"},
{ "ulan", m_tl_utils.reduplicate("ulan"), "uulan"},
{ "galing", m_tl_utils.reduplicate("galing"), "gagaling"},
{ "dapa", m_tl_utils.reduplicate("dapa"), "darapa"},
{ "ngiti", m_tl_utils.reduplicate("ngiti"), "ngingiti"},
{ "takbo", m_tl_utils.reduplicate("takbo"), "tatakbo"},
{ "drama", m_tl_utils.reduplicate("drama"), "dadrama"},
{ "plahiyo", m_tl_utils.reduplicate("plahiyo"), "paplahiyo"},
{ "kuwento", m_tl_utils.reduplicate("kuwento"), "kukuwento"},
{ "kwento", m_tl_utils.reduplicate("kwento"), "kekwento"},
{ "siyota", m_tl_utils.reduplicate("siyota"), "sisiyota"},
{ "syota", m_tl_utils.reduplicate("syota"), "sosyota"},
{ "shota", m_tl_utils.reduplicate("shota"), "shoshota"},
{ "tsismis", m_tl_utils.reduplicate("tsismis"), "tsitsismis"},
{ "diyalekto", m_tl_utils.reduplicate("diyalekto", nil, { = "d"}), "didiyalekto"},
{ "dyip", m_tl_utils.reduplicate("dyip"), "dyidyip"},
{ "van", m_tl_utils.reduplicate("van"), "vavan"},
{ "chapstik", m_tl_utils.reduplicate("chapstik"), "chachapstik"},
{ "bahay", m_tl_utils.reduplicate("bahay", 2), "bahay-bahay"},
{ "daan", m_tl_utils.reduplicate("daan", 2), "daan-daan"},
{ "dati", m_tl_utils.reduplicate("dati", 2), "dati-dati"},
{ "bituin", m_tl_utils.reduplicate("bituin", 2), "bitu-bituin"},
{ "asawa", m_tl_utils.reduplicate("asawa", "all"), "asawa-asawa"},
{ "dalandan", m_tl_utils.reduplicate("dalandan", 2), "dala-dalandan"},
{ "Maynila", m_tl_utils.reduplicate("Maynila"), "ma-Maynila"},
{ "Pilipino", m_tl_utils.reduplicate("Pilipino", 2), "Pili-Pilipino"},
{ "dati", m_tl_utils.reduplicate("dati", "all", { = "r"}), "dati-rati"},
{ "German", m_tl_utils.reduplicate("German", 1, { = "dyerman"}), "dye-German"},
{ "correct", m_tl_utils.reduplicate("correct", 1, { = "korek"}), "ko-correct"},
{ "dictation", m_tl_utils.reduplicate("dictation", 2, { = "dikteysyon"}), "dikte-dictation"},
{ "croissant", m_tl_utils.reduplicate("croissant", 1, { = "kroysant"}), "ko-croissant"},
}
self:iterate(examples, "check_utilities")
end
return tests