Module:got-adjective/testcases

local gotadj = require("Module:got-adjective") local translit = require("Module:Goth-translit") local ScribuntoUnit = require("Module:ScribuntoUnit") local suite = ScribuntoUnit:new

local function mkframe(args) local parent = {} local child = {} parent.getParent = function (self) return nil end child.getParent = function (self) return parent end parent.args = args child.args = args return child end

local function tblhdr(stem) return class="wikitable inflection-table vsSwitcher" style="border-style: double; border-width: 3px;" cellspacing="1" ! class="vsToggleElement" style="background: #CCC; min-width: 44em; text-align: left;" colspan="4" |  .. stem end

local function inflhdr(inflection) return  .. inflection end
 * - class="vsHide"

local function numberhdr(number) return  .. number .. '\n' .. Masculine ! style="min-width: 12em;" | Feminine ! style="min-width: 12em;" | Neuter end
 * - class="vsHide"

local function casehdr(case) return !  .. case end
 * - class="vsHide"

local function entry(Latn) local nomacron = { ['ā'] = 'a', ['ē'] = 'e', ['ī'] = 'i', ['ō'] = 'o', ['ū'] = 'u'	} local Goth = {} for i, t in ipairs(Latn) do		Goth[i] = translit.tr_reverse(Latn[i]) end local result = { '| ' } for i, t in ipairs(Goth) do		if i > 1 then table.insert(result, ', ') end table.insert(result, ' ')		table.insert(result, t)		table.insert(result, ' ') end table.insert(result, ' ') for i, t in ipairs(Latn) do		local n = mw.ustring.gsub(t, "[āēīōū]", nomacron) if i > 1 then table.insert(result, ', ') end table.insert(result, ' ')		table.insert(result, t)		table.insert(result, ' ') end return table.concat(result) end

function suite:test_a_adjective self:assertEquals(table.concat({ tblhdr('A-stem '), inflhdr('Strong (indefinite) inflection '), numberhdr('Singular '), casehdr('Nominative '), entry{'agls'} , entry{'agla'}    , entry{'agl', 'aglata'}, casehdr('Accusative '), entry{'aglana'}, entry{'agla'}   , entry{'agl', 'aglata'}, casehdr('Genitive '), entry{'aglis'}  , entry{'aglaizōs'}, entry{'aglis'}        , casehdr('Dative ')  , entry{'aglamma'}, entry{'aglai'}   , entry{'aglamma'}      , numberhdr('Plural '), casehdr('Nominative '), entry{'aglai'}, entry{'aglōs'}   , entry{'agla'}         , casehdr('Accusative '), entry{'aglans'}, entry{'aglōs'}  , entry{'agla'}         , casehdr('Genitive '), entry{'aglaizē'}, entry{'aglaizō'} , entry{'aglaizē'}      , casehdr('Dative '), entry{'aglaim'}   , entry{'aglaim'}  , entry{'aglaim'}       , inflhdr('Weak (definite) inflection '), numberhdr('Singular '), casehdr('Nominative '), entry{'agla'} , entry{'aglō'}    , entry{'aglō'}         , casehdr('Accusative '), entry{'aglan'}, entry{'aglōn'}   , entry{'aglō'}         , casehdr('Genitive '), entry{'aglins'} , entry{'aglōns'}  , entry{'aglins'}       , casehdr('Dative ')  , entry{'aglin'}  , entry{'aglōn'}   , entry{'aglin'}        , numberhdr('Plural '), casehdr('Nominative '), entry{'aglans'}, entry{'aglōns'} , entry{'aglōna'}       , casehdr('Accusative '), entry{'aglans'}, entry{'aglōns'} , entry{'aglōna'}       , casehdr('Genitive '), entry{'aglanē'} , entry{'aglōnō'}  , entry{'aglanē'}       , casehdr('Dative ')  , entry{'aglam'}  , entry{'aglōm'}   , entry{'aglam'}        , '|}'	}, '\n'), gotadj.a(mkframe{"agl"})) end

return suite