Article snapshot taken from Wikipedia with creative commons attribution-sharealike license.
Give it a read and then ask your questions in the chat.
We can research this topic together.
-- Example Unit tests for ]. Click talk page to run tests.
local p = require 'Module:UnitTests'
local m_Language = require 'Module:Language'
function p:iterate(examples, func)
if type(examples) ~= 'table' then
error('First argument of iterate should be a table, not ' .. type(examples) .. '.')
end
if type(func) == 'string' then
func = self
for i, example in ipairs(examples) do
if type(example) == 'table' then
func(self, unpack(example))
else
error('iterate does not know what to do with example number ' .. i .. ', whose type is ' .. type(example) .. '.')
end
end
else
error('Second argument of iterate should be a string, not ' .. type(func) .. '.')
end
end
local decompose = mw.ustring.toNFD
function p:check_makeEntryName(languageCode, word, expected)
self:equals(
word,
decompose(m_Language.makeEntryName(word, languageCode)),
decompose(expected))
end
p = function (self)
local examples = {
{ "la", "homō", "homo" },
{ "grc", "δημοκρᾰτῐ́ᾱ", "δημοκρατία" },
}
self:iterate(examples, "check_makeEntryName")
end
return p