Jump to content

Module:grc-headword/testcases

Wiktionary වෙතින්

1 of 0 tests failed. (refresh)

TextExpectedActual
test:
nouns
Script error during testing: Module:template_link:79: attempt to call upvalue 'parse_template_name' (a nil value)
stack traceback:
	[C]: in function 'parse_template_name'
	Module:template_link:79: in function 'render_title'
	Module:template_link:154: in function 'show_template'
	Module:grc-headword/testcases:27: in function 'display'
	Module:grc-headword/testcases:39: in function 'func'
	Module:UnitTests:295: in function 'iterate'
	Module:grc-headword/testcases:110: in function <Module:grc-headword/testcases:43>
	(tail call): ?
	[C]: in function 'xpcall'
	Module:UnitTests:369: in function <Module:UnitTests:328>
	(tail call): ?
	mw.lua:527: in function <mw.lua:507>
	[C]: ?
	[C]: in function 'expandTemplate'
	mw.lua:333: in function 'expandTemplate'
	Module:documentation:895: in function 'chunk'
	mw.lua:527: in function <mw.lua:507>
	[C]: ?

local tests = require("Module:UnitTests")

-- arguments: parent_frame, frame, pagename?
local test_headword = require("Module:grc-headword").test

local show_template = require("Module:template link").format_link
local clone = require("Module:table").shallowcopy

-- For now the categories don't really need testing.
local to_be_removed = { "categories", "pos_category" }

local function remove_keys(t, keys)
	for _, key in ipairs(keys) do
		t[key] = nil
	end
	return t
end

local function tag_and_link(term)
	return '<span class="Polyt" lang="grc">[[' .. term .. '#Ancient Greek|' .. term .. ']]</span>'
end

local abbrevs = { adjectives = "adj", participles = "part" }
local function display(frame, parent_frame, pagename)
	parent_frame = clone(parent_frame)
	local name = ("grc-" .. (abbrevs[frame[1]] or frame[1]) .. (frame[2] and "-" .. frame[2] or "")):gsub("s$", "")
	return tag_and_link(pagename) .. ":<br>" .. show_template(name, parent_frame)
end

local options = {
	nowiki = true,
	display = function (text)
		return "<code>" .. text:gsub("&#(%d+);", string.char):gsub("(%a[%w_]*=%b{},) ", "%1<br>") .. "</code>"
	end,
}
function tests:check(frame, parent_frame, pagename, expected)
	local data = test_headword(frame, parent_frame, pagename)
	remove_keys(data, to_be_removed)
	self:equals_deep(display(frame, parent_frame, pagename),
		data, expected, options)
end

function tests:test()
	local examples = {
		"nouns",
		{
			{ "nouns" }, { "δήμου", "m", "second" }, "δῆμος",
			{genders={"m"}, heads={"δῆμος"}, inflections={{"δήμου", label="genitive"}}, no_redundant_head_cat=true}
		},
		{
			{ "nouns" }, { "ῐ̔́ππος", "ῐ̔́ππου", "m", "second" }, "ἵππος",
			{genders={"m"}, heads={"ῐ̔́ππος"}, inflections={{"ῐ̔́ππου", label="genitive"}}, no_redundant_head_cat=false}
		},
		"indeclinable nouns",
		{
			{ "proper nouns" }, { "Γαβρῑήλ", "m" }, "Γαβριήλ",
			{heads={"Γαβρῑήλ"}, genders={"m"}, inflections={{label="[[Appendix:Glossary#indeclinable|indeclinable]]"}}, no_redundant_head_cat=false}
		},
		{
			{ "proper nouns" }, { "m" }, "Γαβριήλ",
			{heads={"Γαβριήλ"}, genders={"m"}, inflections={{label="[[Appendix:Glossary#indeclinable|indeclinable]]"}}, no_redundant_head_cat=true}
		},
		{
			{ "proper nouns" }, { head = "Γαβρῑήλ", g = "m" }, "Γαβριήλ",
			{heads={"Γαβρῑήλ"}, genders={"m"}, inflections={{label="[[Appendix:Glossary#indeclinable|indeclinable]]"}}, no_redundant_head_cat=false}
		},
		"verbs",
		{
			{ "verbs" }, { "ῐ̔́στημῐ" }, "ἵστημι",
			{genders={}, heads={"ῐ̔́στημῐ"}, inflections={}}
		},
		"particles",
		{
			{ "particles" }, { disc = 1 }, "γε",
			{genders={}, heads={"γε"}, inflections={{label="discourse particle"}}}
		},
		"adjectives and participles",
		{
			{ "adjectives", "1&2" }, { "σή", "σόν" }, "σός",
			{genders={"m"}, heads={"σός"}, inflections={{"σή", label="feminine"}, {"σόν", label="neuter"}}}
		},
		{
			{ "participles", "1&2" }, { "στᾰ́μενος", "στᾰμένη", "στᾰ́μενον" }, "στάμενος",
			{genders={"m"}, heads={"στᾰ́μενος"}, inflections={{"στᾰμένη", label="feminine"}, {"στᾰ́μενον", label="neuter"}}}
		},
		{
			{ "adjectives", "1&3" }, { "βᾰρῠ́ς", "βᾰρεῖᾰ", "βᾰρῠ́" }, "βαρύς",
			{genders={"m"}, heads={"βᾰρῠ́ς"}, inflections={{"βᾰρεῖᾰ", label="feminine"}, {"βᾰρῠ́", label="neuter"}}}
		},
		{
			{ "participles", "1&3" }, { "στᾱ́ς", "στᾶσᾰ", "στᾰ́ν" }, "στάς",
			{genders={"m"}, heads={"στᾱ́ς"}, inflections={{"στᾶσᾰ", label="feminine"}, {"στᾰ́ν", label="neuter"}}}
		},
		{
			{ "adjectives", "2nd" }, { "ᾰ̓́δῐκος", "ᾰ̓́δῐκον" }, "ἄδικος",
			{genders={"m", "f"}, heads={"ᾰ̓́δῐκος"}, inflections={{"ᾰ̓́δῐκον", label="neuter"}}}
		},
		{
			{ "adjectives", "3rd" }, { "ῠ̔γῐής", "ῠ̔γῐές" }, "ὑγιής",
			{genders={"m", "f"}, heads={"ῠ̔γῐής"}, inflections={{"ῠ̔γῐές", label="neuter"}}}
		},
		--[[
		{
			{}, {}, "",
			{}
		},
		--]]
	}
	
	self:iterate(examples, "check")
end

return tests
"https://si.wiktionary.org/w/index.php?title=Module:grc-headword/testcases&oldid=168646" වෙතින් සම්ප්‍රවේශනය කෙරිණි