Module:Sandbox/BrandonXLF/Module:Map params/testcases: Difference between revisions
Appearance
Content deleted Content added
BrandonXLF (talk | contribs) Add space |
BrandonXLF (talk | contribs) Use unnamed parameters for sep |
||
Line 12: | Line 12: | ||
name = 'Separator', |
name = 'Separator', |
||
args = {'<nowiki>{{{1}}}</nowiki>', sep = '{{sp}}+{{sp}}'}, |
args = {'<nowiki>{{{1}}}</nowiki>', sep = '{{sp}}+{{sp}}'}, |
||
parentArgs = {'A', 'B', 'C'} |
|||
}, |
|||
{ |
|||
name = 'Whitespace separator', |
|||
args = {'<nowiki>* {{{1}}}</nowiki>', '\n'}, |
|||
parentArgs = {'A', 'B', 'C'} |
parentArgs = {'A', 'B', 'C'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'Conjunction', |
name = 'Conjunction', |
||
args = {'<nowiki>{{{1}}}</nowiki>', |
args = {'<nowiki>{{{1}}}</nowiki>', ' + ', conj = '{{sp}}={{sp}}'}, |
||
parentArgs = {'A', 'B', 'C'} |
parentArgs = {'A', 'B', 'C'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'Start', |
name = 'Start', |
||
args = {'<nowiki>{{{i}}} = {{{1}}}</nowiki>', |
args = {'<nowiki>{{{i}}} = {{{1}}}</nowiki>', ', ', start = 3}, |
||
parentArgs = {'A', 'B', 'C', 'D', 'E'} |
parentArgs = {'A', 'B', 'C', 'D', 'E'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'Extra', |
name = 'Extra', |
||
args = {'<nowiki>{{{1}}}{{{suffix}}}</nowiki>', |
args = {'<nowiki>{{{1}}}{{{suffix}}}</nowiki>', ' + ', extra = 'suffix'}, |
||
parentArgs = {'A', 'B', 'C', suffix = 'i'} |
parentArgs = {'A', 'B', 'C', suffix = 'i'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'Sparse', |
name = 'Sparse', |
||
args = {'<nowiki>{{{i}}} = {{{1}}}</nowiki>', |
args = {'<nowiki>{{{i}}} = {{{1}}}</nowiki>', ', ', sparse = 'y'}, |
||
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'} |
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'Sparse and start', |
name = 'Sparse and start', |
||
args = {'<nowiki>{{{i}}} = {{{1}}}</nowiki>', start = 3, |
args = {'<nowiki>{{{i}}} = {{{1}}}</nowiki>', start = 3, ', ', sparse = 'y'}, |
||
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'} |
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'Prefix', |
name = 'Prefix', |
||
args = {'<nowiki>{{{var}}}</nowiki>', |
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var'}, |
||
parentArgs = {var1 = 'A', var2 = 'B', var3 = 'C'} |
parentArgs = {var1 = 'A', var2 = 'B', var3 = 'C'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'No first number', |
name = 'No first number', |
||
args = {'<nowiki>{{{var}}}</nowiki>', |
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var'}, |
||
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'} |
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'First number required', |
name = 'First number required', |
||
args = {'<nowiki>{{{var}}}</nowiki>', |
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var', optnum = 'n'}, |
||
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'} |
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'Sparse prefix', |
name = 'Sparse prefix', |
||
args = {'<nowiki>{{{var}}}</nowiki>', |
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var', sparse = 'y'}, |
||
parentArgs = {var1 = 'A', var2 = 'B', var30 = 'C'} |
parentArgs = {var1 = 'A', var2 = 'B', var30 = 'C'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'Sparse no number first', |
name = 'Sparse no number first', |
||
args = {'<nowiki>{{{var}}}</nowiki>', |
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var', sparse = 'y'}, |
||
parentArgs = {var = 'A', var2 = 'B', var30 = 'C'} |
parentArgs = {var = 'A', var2 = 'B', var30 = 'C'} |
||
}, |
}, |
||
{ |
{ |
||
name = 'Sparse first number required', |
name = 'Sparse first number required', |
||
args = {'<nowiki>{{{var}}}</nowiki>', |
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var', sparse = 'y', opnum = 'n'}, |
||
parentArgs = {var = 'A', var2 = 'B', var30 = 'C'} |
parentArgs = {var = 'A', var2 = 'B', var30 = 'C'} |
||
}, |
}, |
||
Line 73: | Line 78: | ||
args = { |
args = { |
||
"<nowiki>{{{i}}}{{#if:{{{header|}}}|{{sp}}('''{{{header}}}''')}} = {{{item|''No item''}}}</nowiki>", |
"<nowiki>{{{i}}}{{#if:{{{header|}}}|{{sp}}('''{{{header}}}''')}} = {{{item|''No item''}}}</nowiki>", |
||
prefix1 = 'item', prefix2 = 'header', |
prefix1 = 'item', prefix2 = 'header', ', ', sparse = 'y' |
||
}, |
}, |
||
parentArgs = {item3 = 'ITM3', header3 = 'HDR3', item4 = 'ITM4', header5 = 'HDR5', item100 = 'ITM100'} |
parentArgs = {item3 = 'ITM3', header3 = 'HDR3', item4 = 'ITM4', header5 = 'HDR5', item100 = 'ITM100'} |
||
Line 81: | Line 86: | ||
args = { |
args = { |
||
"<nowiki>{{{i}}}{{#if:{{{header|}}}|{{sp}}('''{{{header}}}''')}} = {{{item}}}</nowiki>", |
"<nowiki>{{{i}}}{{#if:{{{header|}}}|{{sp}}('''{{{header}}}''')}} = {{{item}}}</nowiki>", |
||
prefix = 'item', extra = 'header(i)', |
prefix = 'item', extra = 'header(i)', ', ' |
||
}, |
}, |
||
parentArgs = {item1 = 'ITM1', header1 = 'HDR1', item2 = 'ITM2', header3 = 'HDR3'} |
parentArgs = {item1 = 'ITM1', header1 = 'HDR1', item2 = 'ITM2', header3 = 'HDR3'} |
||
Line 98: | Line 103: | ||
name = 'Call', |
name = 'Call', |
||
args = {call = '2x'}, |
args = {call = '2x'}, |
||
parentArgs = {'A', 'B', 'C'} |
|||
}, |
|||
{ |
|||
name = 'Call and whitespace separator', |
|||
args = {call = '2x', ' & '}, |
|||
parentArgs = {'A', 'B', 'C'} |
parentArgs = {'A', 'B', 'C'} |
||
} |
} |
||
Line 106: | Line 116: | ||
for k, v in TableTools.sortedPairs(args) do |
for k, v in TableTools.sortedPairs(args) do |
||
res = res .. '|' .. k .. '=' .. v |
res = res .. '|' .. (type(k) ~= 'number' and k .. '=' or '') .. v |
||
end |
end |
||
Revision as of 07:15, 6 September 2024
![]() | This is the test cases page for the module Module:Sandbox/BrandonXLF/Module:Map params. Results of the test cases. |
-- Unit tests for [[Module:{{ROOTPAGENAME}}]]. Click talk page to run tests,.
local p = {}
local TableTools = require('Module:TableTools')
local tests = {
{
name = 'Basic',
args = {'<nowiki>{{{1}}}</nowiki>'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'Separator',
args = {'<nowiki>{{{1}}}</nowiki>', sep = '{{sp}}+{{sp}}'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'Whitespace separator',
args = {'<nowiki>* {{{1}}}</nowiki>', '\n'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'Conjunction',
args = {'<nowiki>{{{1}}}</nowiki>', ' + ', conj = '{{sp}}={{sp}}'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'Start',
args = {'<nowiki>{{{i}}} = {{{1}}}</nowiki>', ', ', start = 3},
parentArgs = {'A', 'B', 'C', 'D', 'E'}
},
{
name = 'Extra',
args = {'<nowiki>{{{1}}}{{{suffix}}}</nowiki>', ' + ', extra = 'suffix'},
parentArgs = {'A', 'B', 'C', suffix = 'i'}
},
{
name = 'Sparse',
args = {'<nowiki>{{{i}}} = {{{1}}}</nowiki>', ', ', sparse = 'y'},
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'}
},
{
name = 'Sparse and start',
args = {'<nowiki>{{{i}}} = {{{1}}}</nowiki>', start = 3, ', ', sparse = 'y'},
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'}
},
{
name = 'Prefix',
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var'},
parentArgs = {var1 = 'A', var2 = 'B', var3 = 'C'}
},
{
name = 'No first number',
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var'},
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'}
},
{
name = 'First number required',
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var', optnum = 'n'},
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'}
},
{
name = 'Sparse prefix',
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var', sparse = 'y'},
parentArgs = {var1 = 'A', var2 = 'B', var30 = 'C'}
},
{
name = 'Sparse no number first',
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var', sparse = 'y'},
parentArgs = {var = 'A', var2 = 'B', var30 = 'C'}
},
{
name = 'Sparse first number required',
args = {'<nowiki>{{{var}}}</nowiki>', ' + ', prefix = 'var', sparse = 'y', opnum = 'n'},
parentArgs = {var = 'A', var2 = 'B', var30 = 'C'}
},
{
name = 'Multiple prefixes',
args = {
"<nowiki>{{{i}}}{{#if:{{{header|}}}|{{sp}}('''{{{header}}}''')}} = {{{item|''No item''}}}</nowiki>",
prefix1 = 'item', prefix2 = 'header', ', ', sparse = 'y'
},
parentArgs = {item3 = 'ITM3', header3 = 'HDR3', item4 = 'ITM4', header5 = 'HDR5', item100 = 'ITM100'}
},
{
name = 'Prefix extra',
args = {
"<nowiki>{{{i}}}{{#if:{{{header|}}}|{{sp}}('''{{{header}}}''')}} = {{{item}}}</nowiki>",
prefix = 'item', extra = 'header(i)', ', '
},
parentArgs = {item1 = 'ITM1', header1 = 'HDR1', item2 = 'ITM2', header3 = 'HDR3'}
},
{
name = 'No expand wikitext',
args = {'<nowiki>{{2x|{{{1}}}}}</nowiki>', expand = 'n'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'No expand without nowiki',
args = {'{{2x|{{{1}}}}}', expand = 'n'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'Call',
args = {call = '2x'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'Call and whitespace separator',
args = {call = '2x', ' & '},
parentArgs = {'A', 'B', 'C'}
}
}
function joinArgs(args)
local res = ''
for k, v in TableTools.sortedPairs(args) do
res = res .. '|' .. (type(k) ~= 'number' and k .. '=' or '') .. v
end
return res
end
function p.test(frame)
local out = ''
for _, cfg in ipairs(tests) do
out = out .. '==' .. cfg.name .. '==\n'
local paramsStr = joinArgs(cfg.args)
local parentParamsStr = joinArgs(cfg.parentArgs)
local sourceCode = '{{#invoke:Sandbox/BrandonXLF/Module:Map params|map' .. paramsStr .. '}}'
cfg.parentArgs.sourceCode = sourceCode
out = out .. frame:callParserFunction(
'#tag',
{'syntaxhighlight', sourceCode, lang = 'wikitext'}
) .. '\n'
out = out .. frame:callParserFunction(
'#tag',
{'syntaxhighlight', '{{_TEMPLATE_' .. parentParamsStr .. '}}', lang = 'wikitext'}
) .. '\n'
local res = frame:expandTemplate{
title = 'Template:Call wikitext',
args = cfg.parentArgs
}
out = out .. "<p>'''Live'''<br>" .. (res ~= '' and res or "''No output''") .. '</p>\n'
end
return out
end
return p