Module:Params/testcases

This is the testcases page for checking the behaviour of Module:Params.
As the module provides most of its functionalities only when called by templates, this page uses helper subtemplates to do its tests. You can find a complete list of these here. Several helper subtemplates come in two versions, one that depends on {{#invoke:params}} and one that depends on {{#invoke:params/sandbox}}. Example templates, used by the documentation page, are available at /doc/examples.
General tests
[edit]Helper subtemplate {{./tdelimiters}}
[edit]The {{./tdelimiters}} subtemplate allows to test the behaviour of delimiter strings between the arguments it was called with, invoking several functions of the module at once. For instance,
{{module:params/testcases/tdelimiters|foo|bar|Jupiter|hello=world}}
generates
list | [HEADER][1=foo], [2=bar], [3=Jupiter] and [hello=world][FOOTER] |
---|---|
list_values | [HEADER][foo], [bar], [Jupiter] and [world][FOOTER] |
for_each | [HEADER][1=foo], [2=bar], [3=Jupiter] and [hello=world][FOOTER] |
call_for_each | [HEADER][1=1][2=foo], [1=2][2=bar], [1=3][2=Jupiter] and [1=hello][2=world][FOOTER] |
invoke_for_each | [HEADER][1=1][2=foo], [1=2][2=bar], [1=3][2=Jupiter] and [1=hello][2=world][FOOTER] |
magic_for_each | [HEADER][foo], [bar], [Jupiter] and [world][FOOTER] |
call_for_each_value | [HEADER][1=foo], [1=bar], [1=Jupiter] and [1=world][FOOTER] |
invoke_for_each_value | [HEADER][1=foo], [1=bar], [1=Jupiter] and [1=world][FOOTER] |
magic_for_each_value | [HEADER][foo], [bar], [Jupiter] and [world][FOOTER] |
Note: An identical subtemplate that uses Module:Params/sandbox instead of Module:Params is available at {{./tdelimiters sandbox}}.
Helper subtemplate {{./tnumerical}}
[edit]The {{./tnumerical}} subtemplate allows to test the behaviour of functions that focus on numerical and sequential arguments. As these require at most two arguments, the template uses the |#first=
and |#second=
special parameters to do its tests. For instance,
{{module:params/testcases/tnumerical| #first = 2 | #second = 2 | -2 = minus two | 0 = zero | 1 = one | 2 = two | 3 = three | 19 = nineteen | 20 = twenty }}
generates
Function name | Result for |#first=2 and |#second=2 |
---|---|
squeezing | |1=minus two|2=zero|3=one|4=two|5=three|6=nineteen|7=twenty |
filling_the_gaps | |-2=minus two|-1=|0=zero|1=one|2=two|3=three|4=|5=|6=|7=|8=|9=|10=|11=|12=|13=|14=|15=|16=|17=|18=|19=nineteen|20=twenty |
clearing | |1=one|2=two|3=three |
cutting|2|2] | |-2=minus two|0=zero|16=nineteen|17=twenty |
cropping|2|2 | |0=zero|1=one|2=two|3=three |
purging|2|2 | |-2=minus two|0=zero|1=one|17=nineteen|18=twenty |
backpurging|2|2 | |-2=minus two|0=zero|1=three|17=nineteen|18=twenty |
rotating | |1=twenty|2=nineteen|18=three|19=two|20=one|21=zero|23=minus two |
sorting_sequential_values | |-2=minus two|0=zero|1=one|2=three|3=two|19=nineteen|20=twenty |
Note: An identical subtemplate that uses Module:Params/sandbox instead of Module:Params is available at {{./tnumerical sandbox}}.
The {{./tmaps}} subtemplate allows to test the behaviour of all the mapping_*
and renaming_*
class of modifiers. As the template generates a very large page its expansion is not shown here. For more information please visit its documentation page.
Note: An identical subtemplate that uses Module:Params/sandbox instead of Module:Params is available at {{./tmaps sandbox}}.
Helper subtemplate {{./tcompare separated entries}}
[edit]The {{./tcompare separated entries}} subtemplate compares the behaviours of Module:Params with that of Module:Separated entries. For instance,
{{module:params/testcases/tcompare separated entries| one | two | three | foo | bar | Jupiter | hello = world }}
generates
Without a last separator:
{{#invoke:separated entries|main|separator=+}} | one+two+three+foo+bar+Jupiter |
{{#invoke:params|sequential|squeezing|trimming_values|setting|i|+|list_values}} | one+two+three+foo+bar+Jupiter |
With a last separator (::
):
{{#invoke:params|sequential|squeezing|trimming_values|setting|i/l|+|::|list_values}} | one+two+three+foo+bar::Jupiter |
{{#invoke:separated entries|main|separator=+|conjunction=::}} | one+two+three+foo+bar::Jupiter |
With a last separator (::
) and cutting the first three parameters:
{{#invoke:params|sequential|cutting|3|0|squeezing|trimming_values|setting|i/l|+|::|list_values}} | foo+bar::Jupiter |
{{#invoke:separated entries|main|separator=+|conjunction=::|start=4}} | foo+bar::Jupiter |
The {{./tcoins}} subtemplate allows to experiment with the coins
and unique_coins
functions, which are called with the following arguments: one|two|three|foo=bar|hello=world
. Therefore, transcluding the template with,
{{Module:Params/testcases/tcoins|foo|hello|2|3|foo}}
generates
coins | unique_coins |
---|---|
bar world two three bar | bar world two three |
Note: An identical subtemplate that uses Module:Params/sandbox instead of Module:Params is available at {{./tcoins sandbox}}.
Testing individual functions
[edit]The {{./techo}} subtemplate calls the {{#invoke:params|list}} function to echo the code it was called with.
Example:
Markup | Renders as |
---|---|
{{module:params/testcases/techo|hello|world|foo=bar}} | {{Module:Params/testcases/techo|1=hello|2=world|foo=bar}} |
Dummies
[edit]- Dummy submodules
- Dummy subtemplates
Deprecated tools
[edit]The following tools have been developed with older versions of Module:Params in mind and have been later superseded by new functionalities in the module. They are kept here for historical reasons.
The {{./tmulti}} subtemplate allows to simulate in one single call both the incoming parameters and the parameters manually concatenated to {{#invoke:params|...|function|...}}
, using a single hyphen (-
) as a delimiter between the two groups. This allows to make general experiments directly from the preview window without having to edit separate templates.
For instance, writing
{{module:params/testcases/tmulti| setting|i/p|<br/>|: |list| -|hello|world|foo=bar}}
will simulate a call with |1=hello
, |2=world
, and |foo=bar
to a template whose content is {{#invoke:params|setting|i/p|<br/>|: |list}}
, thus producing:
1: hello
2: world
foo: bar
Note: An identical subtemplate that uses Module:Params/sandbox instead of Module:Params is available at {{./tmulti sandbox}}.