Module:Lang/testcases/ISO 639-3-3 tag from name explained

local p = require('Module:UnitTests')

local lang_data = mw.loadData ('Module:Lang/data'); -- language name override and transliteration tool-tip tableslocal lang_table = lang_data.lang_name_table.lang;local override_table = lang_data.override;

local code_mask = '^[o-z]%l%l'; -- used to limit number of tests

--

local function test_patterns_get local tpats = -- collect test patterns here for tag, names in pairs (lang_table) do local pattern = ; -- here we assemble the test pattern for -- 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 only to the pattern table.insert (pattern, tag); -- add the 'expected result' else table.insert (pattern, names[1]); -- add first only to the pattern table.insert (pattern, tag); -- add the 'expected result' 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 doneend

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('', , , test_patterns,)end;

return p