Module:izh-conj/testcases

local tests = require('Module:UnitTests') local m_izh_conj = require('Module:izh-conj')

local data = { {		["type"] = "ampua", ["grad1"] = "mp", ["grad2"] = "mm", ["inf1"] = "ampua", ["inf2_ine"] = "ampujees", ["inf3_ill"] = "ampumaa", ["inf4_nom"] = "ampumiin", ["pres_1sg"] = "ammun", ["pres_2sg"] = "ammut", ["pres_3sg"] = "ampuu", ["pres_1pl"] = "ammumma", ["pres_2pl"] = "ammutta", ["pres_3pl"] = { "ampuut", "ampuvat", "ammutaa" }, ["pres_pasv"] = "ammutaa", ["past_1sg"] = "ammuin", ["past_2sg"] = "ammuit", ["past_3sg"] = "ampui", ["past_1pl"] = "ammuimma", ["past_2pl"] = "ammuitta", ["past_3pl"] = { "ampuit", "ampuivat", "ammuttii" }, ["past_pasv"] = "ammuttii", },	{		["type"] = "ampua", ["grad1"] = "k", ["grad2"] = "", ["inf1"] = "näkkyä", ["inf2_ine"] = "näkyjees", ["inf3_ill"] = "näkymää", ["inf4_nom"] = "näkymiin", ["pres_1sg"] = "näyn", ["pres_2sg"] = "näyt", ["pres_3sg"] = "näkkyy", ["pres_1pl"] = "näymmä", ["pres_2pl"] = "näyttä", ["pres_3pl"] = { "näkkyyt", "näkyvät", "näytää" }, ["pres_pasv"] = "näytää", ["past_1sg"] = "näyin", ["past_2sg"] = "näyit", ["past_3sg"] = "näkyi", ["past_1pl"] = "näyimmä", ["past_2pl"] = "näyittä", ["past_3pl"] = { "näkkyit", "näkyivät", "näyttii" }, ["past_pasv"] = "näyttii", },	{		["type"] = "kirjuttaa", ["grad1"] = "tt", ["grad2"] = "t", ["inf1"] = "näyttää", ["inf2_ine"] = "näyttäjees", ["inf3_ill"] = "näyttämää", ["inf4_nom"] = "näyttämiin", ["pres_1sg"] = "näytän", ["pres_2sg"] = "näytät", ["pres_3sg"] = "näyttää", ["pres_1pl"] = "näytämmä", ["pres_2pl"] = "näytättä", ["pres_3pl"] = { "näyttäät", "näyttävät", "näytetää" }, ["pres_pasv"] = "näytetää", ["past_1sg"] = "näytin", ["past_2sg"] = "näytit", ["past_3sg"] = "näytti", ["past_1pl"] = "näytimmä", ["past_2pl"] = "näytittä", ["past_3pl"] = { "näyttiit", "näyttivät", "näytettii" }, ["past_pasv"] = "näytettii", },	{		["type"] = "kirjuttaa", ["grad1"] = "t", ["grad2"] = "", ["inf1"] = "pittää", ["inf2_ine"] = "pitäjees", ["inf3_ill"] = "pitämää", ["inf4_nom"] = "pitämiin", ["pres_1sg"] = "piän", ["pres_2sg"] = "piät", ["pres_3sg"] = "pittää", ["pres_1pl"] = "piämmä", ["pres_2pl"] = "piättä", ["pres_3pl"] = { "pittäät", "pitävät", "pietää" }, ["pres_pasv"] = "pietää", ["past_1sg"] = "piin", ["past_2sg"] = "piit", ["past_3sg"] = "piti", ["past_1pl"] = "piimmä", ["past_2pl"] = "piittä", ["past_3pl"] = { "pittiit", "pitivät", "piettii" }, ["past_pasv"] = "piettii", },	{		["type"] = "kyntää", ["grad1"] = "nt", ["grad2"] = "nn", ["inf1"] = "kyntää", ["inf2_ine"] = "kyntäjees", ["inf3_ill"] = "kyntämää", ["inf4_nom"] = "kyntämiin", ["pres_1sg"] = "kynnän", ["pres_2sg"] = "kynnät", ["pres_3sg"] = "kyntää", ["pres_1pl"] = "kynnämmä", ["pres_2pl"] = "kynnättä", ["pres_3pl"] = { "kyntäät", "kyntävät", "kynnetää" }, ["pres_pasv"] = "kynnetää", ["past_1sg"] = "kynsin", ["past_2sg"] = "kynsit", ["past_3sg"] = "kynsi", ["past_1pl"] = "kynsimmä", ["past_2pl"] = "kynsittä", ["past_3pl"] = { "kynsiit", "kynsivät", "kynnettii" }, ["past_pasv"] = "kynnettii", },	{		["type"] = "antaa", ["grad1"] = "nt", ["grad2"] = "nn", ["inf1"] = "antaa", ["inf2_ine"] = "antajees", ["inf3_ill"] = "antamaa", ["inf4_nom"] = "antamiin", ["pres_1sg"] = "annan", ["pres_2sg"] = "annat", ["pres_3sg"] = "antaa", ["pres_1pl"] = "annamma", ["pres_2pl"] = "annatta", ["pres_3pl"] = { "antaat", "antavat", "annetaa" }, ["pres_pasv"] = "annetaa", ["past_1sg"] = "annoin", ["past_2sg"] = "annoit", ["past_3sg"] = "antoi", ["past_1pl"] = "annoimma", ["past_2pl"] = "annoitta", ["past_3pl"] = { "antoit", "antoivat", "annettii" }, ["past_pasv"] = "annettii", },	{		["type"] = "antaa", ["grad1"] = "j", ["grad2"] = "j", ["inf1"] = "aijaa", ["inf2_ine"] = "ajajees", ["inf3_ill"] = "ajamaa", ["inf4_nom"] = "ajamiin", ["pres_1sg"] = "ajan", ["pres_2sg"] = "ajat", ["pres_3sg"] = "aijaa", ["pres_1pl"] = "ajamma", ["pres_2pl"] = "ajatta", ["pres_3pl"] = { "aijaat", "ajavat", "ajetaa" }, ["pres_pasv"] = "ajetaa", ["past_1sg"] = "ajoin", ["past_2sg"] = "ajoit", ["past_3sg"] = "ajoi", ["past_1pl"] = "ajoimma", ["past_2pl"] = "ajoitta", ["past_3pl"] = { "aijoit", "ajoivat", "ajettii" }, ["past_pasv"] = "ajettii", },	{		["type"] = "laskia", ["grad1"] = "sk", ["grad2"] = "s", ["inf1"] = "laskia", ["inf2_ine"] = "laskijees", ["inf3_ill"] = "laskomaa", ["inf4_nom"] = "laskomiin", ["pres_1sg"] = "lasen", ["pres_2sg"] = "laset", ["pres_3sg"] = "laskoo", ["pres_1pl"] = "lasemma", ["pres_2pl"] = "lasetta", ["pres_3pl"] = { "laskoot", "laskevat", "lasetaa" }, ["pres_pasv"] = "lasetaa", ["past_1sg"] = "lasin", ["past_2sg"] = "lasit", ["past_3sg"] = "laski", ["past_1pl"] = "lasimma", ["past_2pl"] = "lasitta", ["past_3pl"] = { "laskiit", "laskivat", "lasettii" }, ["past_pasv"] = "lasettii", },	{		["type"] = "laskia", ["grad1"] = "k", ["grad2"] = "", ["inf1"] = "lukkia", ["inf2_ine"] = "lukijees", ["inf3_ill"] = "lukomaa", ["inf4_nom"] = "lukomiin", ["pres_1sg"] = "luen", ["pres_2sg"] = "luet", ["pres_3sg"] = "lukkoo", ["pres_1pl"] = "luemma", ["pres_2pl"] = "luetta", ["pres_3pl"] = { "lukkoot", "lukevat", "luetaa" }, ["pres_pasv"] = "luetaa", ["past_1sg"] = "luin", ["past_2sg"] = "luit", ["past_3sg"] = "luki", ["past_1pl"] = "luimma", ["past_2pl"] = "luitta", ["past_3pl"] = { "lukkiit", "lukivat", "luettii" }, ["past_pasv"] = "luettii", },	{		["type"] = "tuntia", ["grad1"] = "nt", ["grad2"] = "nn", ["inf1"] = "tuntia", ["inf2_ine"] = "tuntijees", ["inf3_ill"] = "tuntomaa", ["inf4_nom"] = "tuntomiin", ["pres_1sg"] = "tunnen", ["pres_2sg"] = "tunnet", ["pres_3sg"] = "tuntoo", ["pres_1pl"] = "tunnemma", ["pres_2pl"] = "tunnetta", ["pres_3pl"] = { "tuntoot", "tuntevat", "tunnetaa" }, ["pres_pasv"] = "tunnetaa", ["past_1sg"] = "tunsin", ["past_2sg"] = "tunsit", ["past_3sg"] = "tunsi", ["past_1pl"] = "tunsimma", ["past_2pl"] = "tunsitta", ["past_3pl"] = { "tunsiit", "tunsivat", "tunnettii" }, ["past_pasv"] = "tunnettii", },	{		["type"] = "tuntia", ["grad1"] = "ht", ["grad2"] = "h", ["inf1"] = "lähtiä", ["inf2_ine"] = "lähtijees", ["inf3_ill"] = "lähtömää", ["inf4_nom"] = "lähtömiin", ["pres_1sg"] = "lähen", ["pres_2sg"] = "lähet", ["pres_3sg"] = "lähtöö", ["pres_1pl"] = "lähemmä", ["pres_2pl"] = "lähettä", ["pres_3pl"] = { "lähtööt", "lähtevät", "lähetää" }, ["pres_pasv"] = "lähetää", ["past_1sg"] = "läksin", ["past_2sg"] = "läksit", ["past_3sg"] = "läksi", ["past_1pl"] = "läksimmä", ["past_2pl"] = "läksittä", ["past_3pl"] = { "läksiit", "läksivät", "lähettii" }, ["past_pasv"] = "lähettii", },	{		["type"] = "oppia", ["grad1"] = "pp", ["grad2"] = "p", ["inf1"] = "oppia", ["inf2_ine"] = "oppijees", ["inf3_ill"] = "oppimaa", ["inf4_nom"] = "oppimiin", ["pres_1sg"] = "opin", ["pres_2sg"] = "opit", ["pres_3sg"] = "oppii", ["pres_1pl"] = "opimma", ["pres_2pl"] = "opitta", ["pres_3pl"] = { "oppiit", "oppivat", "opitaa" }, ["pres_pasv"] = "opitaa", ["past_1sg"] = "opin", ["past_2sg"] = "opit", ["past_3sg"] = "oppi", ["past_1pl"] = "opimma", ["past_2pl"] = "opitta", ["past_3pl"] = { "oppiit", "oppivat", "opittii" }, ["past_pasv"] = "opittii", },	{		["type"] = "oppia", ["grad1"] = "k", ["grad2"] = "", ["inf1"] = "sukkia", ["inf2_ine"] = "sukijees", ["inf3_ill"] = "sukimaa", ["inf4_nom"] = "sukimiin", ["pres_1sg"] = "suin", ["pres_2sg"] = "suit", ["pres_3sg"] = "sukkii", ["pres_1pl"] = "suimma", ["pres_2pl"] = "suitta", ["pres_3pl"] = { "sukkiit", "sukivat", "suitaa" }, ["pres_pasv"] = "suitaa", ["past_1sg"] = "suin", ["past_2sg"] = "suit", ["past_3sg"] = "suki", ["past_1pl"] = "suimma", ["past_2pl"] = "suitta", ["past_3pl"] = { "sukkiit", "sukivat", "suittii" }, ["past_pasv"] = "suittii", },	{		["type"] = "voija", ["inf1"] = "voija", ["inf2_ine"] = "voijees", ["inf3_ill"] = "voimaa", ["inf4_nom"] = "voimiin", ["pres_1sg"] = "voin", ["pres_2sg"] = "voit", ["pres_3sg"] = "voip", ["pres_1pl"] = "voimma", ["pres_2pl"] = "voitta", ["pres_3pl"] = { "voivat", "voijaa" }, ["pres_pasv"] = "voijaa", ["past_1sg"] = "voin", ["past_2sg"] = "voit", ["past_3sg"] = "voi", ["past_1pl"] = "voimma", ["past_2pl"] = "voitta", ["past_3pl"] = { "voivat", "voitii" }, ["past_pasv"] = "voitii", },	{		["type"] = "jäävvä", ["inf1"] = "jäävvä", ["inf2_ine"] = "jäävvees", ["inf3_ill"] = "jäämää", ["inf4_nom"] = "jäämiin", ["pres_1sg"] = "jään", ["pres_2sg"] = "jäät", ["pres_3sg"] = "jääp", ["pres_1pl"] = "jäämmä", ["pres_2pl"] = "jäättä", ["pres_3pl"] = { "jäävät", "jäävvää" }, ["pres_pasv"] = "jäävvää", ["past_1sg"] = "jäin", ["past_2sg"] = "jäit", ["past_3sg"] = "jäi", ["past_1pl"] = "jäimmä", ["past_2pl"] = "jäittä", ["past_3pl"] = { "jäivät", "jäätii" }, ["past_pasv"] = "jäätii", },	{		["type"] = "käyvvä", ["inf1"] = "käyvvä", ["inf2_ine"] = "käyvvees", ["inf3_ill"] = "käymää", ["inf4_nom"] = "käymiin", ["pres_1sg"] = "käyn", ["pres_2sg"] = "käyt", ["pres_3sg"] = "käyp", ["pres_1pl"] = "käymmä", ["pres_2pl"] = "käyttä", ["pres_3pl"] = { "käyvät", "käyvvää" }, ["pres_pasv"] = "käyvvää", ["past_1sg"] = "käin", ["past_2sg"] = "käit", ["past_3sg"] = "käi", ["past_1pl"] = "käimmä", ["past_2pl"] = "käittä", ["past_3pl"] = { "käivät", "käytii" }, ["past_pasv"] = "käytii", },	{		["type"] = "pessä", ["inf1"] = "pessä", ["inf2_ine"] = "pessees", ["inf3_ill"] = "pesömää", ["inf4_nom"] = "pesömiin", ["pres_1sg"] = "pesen", ["pres_2sg"] = "peset", ["pres_3sg"] = "pessöö", ["pres_1pl"] = "pesemmä", ["pres_2pl"] = "pesettä", ["pres_3pl"] = { "pessööt", "pesevät", "pessää" }, ["pres_pasv"] = "pessää", ["past_1sg"] = "pesin", ["past_2sg"] = "pesit", ["past_3sg"] = "pesi", ["past_1pl"] = "pesimmä", ["past_2pl"] = "pesittä", ["past_3pl"] = { "pessiit", "pesivät", "pestii" }, ["past_pasv"] = "pestii", },	{		["type"] = "kuulla", ["inf1"] = "kuulla", ["inf2_ine"] = "kuullees", ["inf3_ill"] = "kuulomaa", ["inf4_nom"] = "kuulomiin", ["pres_1sg"] = "kuulen", ["pres_2sg"] = "kuulet", ["pres_3sg"] = "kuuloo", ["pres_1pl"] = "kuulemma", ["pres_2pl"] = "kuuletta", ["pres_3pl"] = { "kuuloot", "kuulevat", "kuullaa" }, ["pres_pasv"] = "kuullaa", ["past_1sg"] = "kuulin", ["past_2sg"] = "kuulit", ["past_3sg"] = "kuuli", ["past_1pl"] = "kuulimma", ["past_2pl"] = "kuulitta", ["past_3pl"] = { "kuuliit", "kuulivat", "kuultii" }, ["past_pasv"] = "kuultii", },	{		["type"] = "valita", ["inf1"] = "valita", ["inf2_ine"] = "valitees", ["inf3_ill"] = "valitsommaa", ["inf4_nom"] = "valitsommiin", ["pres_1sg"] = "valitsen", ["pres_2sg"] = "valitset", ["pres_3sg"] = "valitsoo", ["pres_1pl"] = "valitsemma", ["pres_2pl"] = "valitsetta", ["pres_3pl"] = { "valitsoot", "valitsevat", "valitaa" }, ["pres_pasv"] = "valitaa", ["past_1sg"] = "valitsin", ["past_2sg"] = "valitsit", ["past_3sg"] = "valitsi", ["past_1pl"] = "valitsimma", ["past_2pl"] = "valitsitta", ["past_3pl"] = { "valitsiit", "valitsivat", "valittii" }, ["past_pasv"] = "valittii", },	{		["type"] = "joossa", ["inf1"] = "joossa", ["inf2_ine"] = "joossees", ["inf3_ill"] = "jooksomaa", ["inf4_nom"] = "jooksomiin", ["pres_1sg"] = "jooksen", ["pres_2sg"] = "jookset", ["pres_3sg"] = "jooksoo", ["pres_1pl"] = "jooksemma", ["pres_2pl"] = "jooksetta", ["pres_3pl"] = { "jooksoot", "jooksevat", "joossaa" }, ["pres_pasv"] = "joossaa", ["past_1sg"] = "jooksin", ["past_2sg"] = "jooksit", ["past_3sg"] = "jooksi", ["past_1pl"] = "jooksimma", ["past_2pl"] = "jooksitta", ["past_3pl"] = { "jooksiit", "jooksivat", "joostii" }, ["past_pasv"] = "joostii", },	{		["type"] = "valeta", ["grad1"] = "", ["grad2"] = "k", ["inf1"] = "valeta", ["inf2_ine"] = "valetees", ["inf3_ill"] = "valkenommaa", ["inf4_nom"] = "valkenommiin", ["pres_1sg"] = "valkenen", ["pres_2sg"] = "valkenet", ["pres_3sg"] = "valkenoo", ["pres_1pl"] = "valkenemma", ["pres_2pl"] = "valkenetta", ["pres_3pl"] = { "valkenoot", "valkenevat", "valetaa" }, ["pres_pasv"] = "valetaa", ["past_1sg"] = "valkenin", ["past_2sg"] = "valkenit", ["past_3sg"] = "valkeni", ["past_1pl"] = "valkenimma", ["past_2pl"] = "valkenitta", ["past_3pl"] = { "valkeniit", "valkenivat", "valettii" }, ["past_pasv"] = "valettii", },	{		["type"] = "maata", ["grad1"] = "", ["grad2"] = "k", ["inf1"] = "maata", ["inf2_ine"] = "maatees", ["inf3_ill"] = "makkaamaa", ["inf4_nom"] = "makkaamiin", ["pres_1sg"] = "makkaan", ["pres_2sg"] = "makkaat", ["pres_3sg"] = "makajaa", ["pres_1pl"] = "makkaamma", ["pres_2pl"] = "makkaatta", ["pres_3pl"] = { "makajaat", "makkaavat", "maataa" }, ["pres_pasv"] = "maataa", ["past_1sg"] = "makaisin", ["past_2sg"] = { "makaisit", "makkaist" }, ["past_3sg"] = "makais", ["past_1pl"] = "makaisimma", ["past_2pl"] = "makaisitta", ["past_3pl"] = { "makaisiit", "makaisivat", "maattii" }, ["past_pasv"] = "maattii", },	{		["type"] = "laskiissa", ["inf1"] = "laskiissa", ["inf2_ine"] = "laskiissees", ["inf3_ill"] = "laskiimaa", ["inf4_nom"] = "laskiimiin", ["pres_1sg"] = "laskiin", ["pres_2sg"] = "laskiit", ["pres_3sg"] = "laskiijaa", ["pres_1pl"] = "laskiimma", ["pres_2pl"] = "laskiitta", ["pres_3pl"] = { "laskiijaat", "laskiivat", "laskiissaa" }, ["pres_pasv"] = "laskiissaa", ["past_1sg"] = "laskiisin", ["past_2sg"] = { "laskiisit", "laskiist" }, ["past_3sg"] = "laskiis", ["past_1pl"] = "laskiisimma", ["past_2pl"] = "laskiisitta", ["past_3pl"] = { "laskiisiit", "laskiisivat", "laskiistii" }, ["past_pasv"] = "laskiistii", },	{		["type"] = "laskiissa", ["inf1"] = "uppoossa", ["inf2_ine"] = "uppoossees", ["inf3_ill"] = "uppoomaa", ["inf4_nom"] = "uppoomiin", ["pres_1sg"] = "uppoon", ["pres_2sg"] = "uppoot", ["pres_3sg"] = "uppoojaa", ["pres_1pl"] = "uppoomma", ["pres_2pl"] = "uppootta", ["pres_3pl"] = { "uppoojaat", "uppoovat", "uppoossaa" }, ["pres_pasv"] = "uppoossaa", ["past_1sg"] = "uppoisin", ["past_2sg"] = { "uppoisit", "uppoist" }, ["past_3sg"] = "uppois", ["past_1pl"] = "uppoisimma", ["past_2pl"] = "uppoisitta", ["past_3pl"] = { "uppoisiit", "uppoisivat", "uppoostii" }, ["past_pasv"] = "uppoostii", },	{		["type"] = "praavihussa", ["inf1"] = "praavihussa", ["inf2_ine"] = "praavihussees", ["inf3_ill"] = "praavihummaa", ["inf4_nom"] = "praavihummiin", ["pres_1sg"] = "praavihun", ["pres_2sg"] = "praavihut", ["pres_3sg"] = "praavihuu", ["pres_1pl"] = "praavihumma", ["pres_2pl"] = "praavihutta", ["pres_3pl"] = { "praavihuut", "praavihuvat", "praavihussaa" }, ["pres_pasv"] = "praavihussaa", ["past_1sg"] = "praavihuin", ["past_2sg"] = "praavihuit", ["past_3sg"] = "praavihui", ["past_1pl"] = "praavihuimma", ["past_2pl"] = "praavihuitta", ["past_3pl"] = { "praavihuit", "praavihuivat", "praavihustii" }, ["past_pasv"] = "praavihustii", }, }

local function format_forms(forms) if type(forms) == "string" then return forms elseif not forms[1] then return forms.form else local results = {} for i, form in ipairs(forms) do			results[i] = format_forms(form) end if #results == 1 then return results[1] end return results end end

local function evaluate(word) local conj = m_izh_conj.raw(word.inf1, word.type, word.grad1, word.grad2) local result = {} for k, v in pairs(word) do		if conj[k] then result[k] = format_forms(conj[k]) else result[k] = word[k] end end return result end

function tests:test_izh_conj for _, word in ipairs(data) do		self:equals_deep(			word.inf1,			evaluate(word),			word,			{ show_table_difference = true }		) end end

return tests