Module talk:ISO 3166/testcases
local p = {}
local arguments = {
{'Canada'},
{'United States'},
{'The United States of America'},
{'US'},
{'US', 'New York'},
{'USA', 'New York'},
{'US-New York'},
{'USA-New York'},
{'US-NY'},
{'USA-NY'},
{'United States', 'New York'},
{'United States', 'New York (State)'},
{'United States', 'New York (State)'},
{'United States', 'Test'},
{'Guinea-Bissau'},
{'Guinea-Bissau-L'},
{'Guinea-Bissau', 'L'},
{'United-States'},
{'United States-New-York'},
{'GuineaBissau'},
{'GuineaBissau-L'},
{'GuineaBissau', 'L'},
{'GB-ENG'},
{'GB-ENG-Greenwich'},
{'GB-ENG', 'Greenwich'},
{'Wales-Belfast'},
{'Northern Ireland-Belfast'},
{'UK-Stoke-on-Trent'},
{'GB-ENG-Stoke-on-Trent'},
{'UK', 'Stoke-on-Trent'},
{'UK', 'Stoke on Trent'},
{'THE PLACE'},
{''},
{'
India'},
{'
Canada'},
{C"A'NA‘DA(AAA)'},
{'Canada-'},
{'-Canada-'},
{'-Canada'},
{'Taiwan, Province of China'},
{'Taiwan'},
{'Republic of China'},
{'Republic of China', isoname='yes'},
{'TW'},
{'TWN'},
{'158'},
{'20'},
{'
People's Republic of China'},
{'[ [Canada ] ]'},
{'Áfghanistan'},
{'United States[1]'},
{'United States[2]'},
{'Russia', 'Sakha Republic'},
{'CA', 'BC', lang='fr'},
}
local function stripOnly(params, special)
local code = (special == 'code' and '' or '<td>')
if params[1] then
code = code..(special == 'sandbox' and '{{#invoke:ISO 3166/sandbox' or '{{#invoke:ISO 3166')..'|strip'..'|'..params[1]..'}}'
end
if params[2] then
code = code..' '..(special == 'sandbox' and '{{#invoke:ISO 3166/sandbox' or '{{#invoke:ISO 3166')..'|strip'..'|'..params[2]..'}}'
end
return code..(special == 'code' and '
' or '')
end local function makeCell(func, params, special) if func == 'strip' then return stripOnly(params, special) end local code =
code = code..(special == 'code' and '' or '<td>')..'{{'
code = code..(special == 'sandbox' and '#invoke:ISO 3166/sandbox' or '#invoke:ISO 3166')
code = code..'|'..func
for k,v in ipairs(params) do
code = code..'|'..v
end
for k,v in pairs(params) do
if type(k) ~= 'number' then
code = code..'|'..k..'='..v
end
end
code = code..'}}'..(special == 'code' and '
' or '')
return code end local function makeRow(frame, func, params) local out = out = out..makeCell(func, params) -- Live out = out..makeCell(func, params, 'sandbox') -- Sandbox out = out..makeCell(func, params, 'code') -- Code
return frame:preprocess(''..out..'') end function p.run(frame) local out = 'LiveSandboxCode'
for k,v in ipairs(arguments) do out = out..makeRow(frame, frame.args[1], v) end
return '
'..out..''
end return p