Module:Sandbox/BrandonXLF/Module:Map params/testcases: Difference between revisions
Appearance
Content deleted Content added
BrandonXLF (talk | contribs) Show code in display |
BrandonXLF (talk | contribs) Up to Sparse prefix |
||
Line 1: | Line 1: | ||
-- Unit tests for [[Module:{{ROOTPAGENAME}}]]. Click talk page to run tests,. |
-- Unit tests for [[Module:{{ROOTPAGENAME}}]]. Click talk page to run tests,. |
||
local p = {} |
local p = {} |
||
local TableTools = require('Module:TableTools') |
|||
local tests = { |
local tests = { |
||
Line 37: | Line 38: | ||
args = {'<nowiki>{{{i}}} = {{{@}}}</nowiki>', start = 3, sep = ',{{sp}}', sparse = 'y'}, |
args = {'<nowiki>{{{i}}} = {{{@}}}</nowiki>', start = 3, sep = ',{{sp}}', sparse = 'y'}, |
||
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'} |
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'} |
||
}, |
|||
{ |
|||
name = 'Prefix', |
|||
args = {'<nowiki>{{{var}}}</nowiki>', sep = '{{sp}}+{{sp}}', prefix = 'var'}, |
|||
parentArgs = {var1 = 'A', var2 = 'B', var3 = 'C'} |
|||
}, |
|||
{ |
|||
name = 'No first number', |
|||
args = {'<nowiki>{{{var}}}</nowiki>', sep = '{{sp}}+{{sp}}', prefix = 'var'}, |
|||
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'} |
|||
}, |
|||
{ |
|||
name = 'First number required', |
|||
args = {'<nowiki>{{{var}}}</nowiki>', sep = '{{sp}}+{{sp}}', prefix = 'var', optnum = 'n'}, |
|||
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'} |
|||
}, |
|||
{ |
|||
name = 'Sparse prefix', |
|||
args = {'<nowiki>{{{var}}}</nowiki>', sep = '{{sp}}+{{sp}}', prefix = 'var', sparse = 'y'}, |
|||
parentArgs = {var = 'A', var2 = 'B', var30 = 'C'} |
|||
} |
} |
||
} |
} |
||
function joinArgs(args) |
|||
local res = '' |
|||
⚫ | |||
⚫ | |||
⚫ | |||
return res |
|||
end |
|||
function p.test(frame) |
function p.test(frame) |
||
Line 46: | Line 77: | ||
out = out .. '==' .. cfg.name .. '==\n' |
out = out .. '==' .. cfg.name .. '==\n' |
||
local paramsStr = joinArgs(cfg.args) |
|||
⚫ | |||
local parentParamsStr = joinArgs(cfg.parentArgs) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
sourceCode = sourceCode .. '}}' |
|||
cfg.parentArgs.sourceCode = sourceCode |
cfg.parentArgs.sourceCode = sourceCode |
||
out = out .. frame:callParserFunction('#tag', |
out = out .. frame:callParserFunction( |
||
'#tag', |
|||
{'syntaxhighlight', sourceCode, lang = 'wikitext'} |
|||
) .. '\n' |
|||
out = out .. frame:callParserFunction( |
|||
'#tag', |
|||
{'syntaxhighlight', '{{_TEMPLATE_' ..parentParamsStr .. '}}', lang = 'wikitext'} |
|||
⚫ | |||
local res = frame:expandTemplate{ |
|||
title = 'Template:Call wikitext', |
title = 'Template:Call wikitext', |
||
args = cfg.parentArgs |
args = cfg.parentArgs |
||
⚫ | |||
⚫ | |||
⚫ | |||
out = out .. "<p><div>'''Live'''</div>" .. (res ~= '' and res or "''No output''") .. '</p>\n' |
|||
end |
end |
||
Revision as of 06:55, 5 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>{{{@}}}</nowiki>'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'Separator',
args = {'<nowiki>{{{@}}}</nowiki>', sep = '{{sp}}+{{sp}}'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'Conjunction',
args = {'<nowiki>{{{@}}}</nowiki>', sep = '{{sp}}+{{sp}}', conj = '{{sp}}={{sp}}'},
parentArgs = {'A', 'B', 'C'}
},
{
name = 'Start',
args = {'<nowiki>{{{i}}} = {{{@}}}</nowiki>', start = 3, sep = ',{{sp}}'},
parentArgs = {'A', 'B', 'C', 'D', 'E'}
},
{
name = 'Extra',
args = {'<nowiki>{{{@}}}{{{suffix}}}</nowiki>', extra = 'suffix', sep = '{{sp}}+{{sp}}'},
parentArgs = {'A', 'B', 'C', suffix = 'i'}
},
{
name = 'Sparse',
args = {'<nowiki>{{{i}}} = {{{@}}}</nowiki>', sep = ',{{sp}}', sparse = 'y'},
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'}
},
{
name = 'Sparse and start',
args = {'<nowiki>{{{i}}} = {{{@}}}</nowiki>', start = 3, sep = ',{{sp}}', sparse = 'y'},
parentArgs = {'A', 'B', 'C', 'D', [1000] = 'E'}
},
{
name = 'Prefix',
args = {'<nowiki>{{{var}}}</nowiki>', sep = '{{sp}}+{{sp}}', prefix = 'var'},
parentArgs = {var1 = 'A', var2 = 'B', var3 = 'C'}
},
{
name = 'No first number',
args = {'<nowiki>{{{var}}}</nowiki>', sep = '{{sp}}+{{sp}}', prefix = 'var'},
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'}
},
{
name = 'First number required',
args = {'<nowiki>{{{var}}}</nowiki>', sep = '{{sp}}+{{sp}}', prefix = 'var', optnum = 'n'},
parentArgs = {var = 'A', var2 = 'B', var3 = 'C'}
},
{
name = 'Sparse prefix',
args = {'<nowiki>{{{var}}}</nowiki>', sep = '{{sp}}+{{sp}}', prefix = 'var', sparse = 'y'},
parentArgs = {var = 'A', var2 = 'B', var30 = 'C'}
}
}
function joinArgs(args)
local res = ''
for k, v in TableTools.sortedPairs(args) do
res = res .. '|' .. k .. '=' .. 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><div>'''Live'''</div>" .. (res ~= '' and res or "''No output''") .. '</p>\n'
end
return out
end
return p