Módulo:Lang/tests/ISO 639-3-3 tag from name
< Módulo:Lang · tests
Este módulo no tiene página de documentación[crear]
local p = require('Módulo:UnitTests')
local lang_data = mw.loadData ('Módulo:Lang/data'); -- language name override and transliteration tool-tip tables
local lang_table = lang_data.lang_name_table.lang;
local lang_es_table = lang_data.lang_name_table.lang_es;
local override_table = lang_data.override;
local code_mask = '^[q-z]%l%l'; -- used to limit number of tests
--[[--------------------------< T E S T _ P A T T E R N S _ G E T >--------------------------------------------
build a table of test patterns where each entry in the table is a table with two members:
{"<name>", "<tag>"}
]]
local function test_patterns_get ()
local tpats = {} -- collect test patterns here
local complete = {}
for k,v in pairs(lang_table) do complete[k] = v end
for k,v in pairs(lang_es_table) do complete[k] = v end
for tag, names in pairs (complete) do
local pattern = {}; -- here we assemble the test pattern for <name>
-- if 2 == tag:len() then -- no limits for two-character codes
if tag:find (code_mask) then -- if tag within limits (three-character codes)
if override_table[tag] then
table.insert (pattern, override_table[tag][1]); -- add first <name> only to the pattern
table.insert (pattern, tag); -- add the 'expected result' <tag>
elseif lang_es_table[tag] then
table.insert (pattern, lang_es_table[tag][1]); -- add first <name> only to the pattern
table.insert (pattern, tag); -- add the 'expected result' <tag>
else
table.insert (pattern, names[1]); -- add first <name> only to the pattern
table.insert (pattern, tag); -- add the 'expected result' <tag>
end
table.insert (tpats, pattern); -- accumulate in list of patterns
end
end
local function comp (a, b) -- local function used by table.sort()
return a[2] < b[2]; -- ascending sort by code (because test limits are by code)
end
table.sort (tpats, comp); -- make the list pretty
return tpats; -- and done
end
local test_patterns = test_patterns_get();
--[[--------------------------< T E S T _ T A G _ F R O M _ N A M E >------------------------------------------
]]
function p:test_tag_from_name_iso_639_3_3()
self:preprocess_equals_preprocess_many('{{#invoke:Lang/zona de pruebas|tag_from_name|', '}}', '', '', test_patterns, {nowiki=1})
end;
return p