Toggle menu
15
236
70
27.5K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Params/testcases: Difference between revisions

From Kenshi Wiki
Prd created the page Module:Params/testcases using a non-default content model "wikitext"
 
No edit summary
Line 1: Line 1:
[[File:Gelemental.svg|thumb|Here are some tools for testing {{ml|params|}} and [[Module:Params/sandbox|its sandbox version]].]]


This is the [[Wikipedia:Template sandbox and test cases|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 [[Special:PrefixIndex/Module:Params/testcases/|here]]. Several helper subtemplates come in two versions, one that depends on {{ml|params|}} and one that depends on {{ml|params/sandbox|}}. Example templates, used by the documentation page, are available at [[Module:Params/doc/examples|/doc/examples]].
== General tests ==
=== Multi-purpose helper subtemplates ===
==== Helper subtemplate {{[[Module:Params/testcases/tmulti|./tmulti]]}} ====
The {{[[Module:Params/testcases/tmulti|./tmulti]]}} subtemplate allows to simulate in one single call both the incoming parameters and the parameters manually concatenated to <code>{{ml|params|...|''function''|...}}</code>, using a single hyphen (<code>-</code>) 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
<syntaxhighlight lang="wikitext">{{module:params/testcases/tmulti|
setting|i/p|<br />|: |list|
-|hello|world|foo=bar}}</syntaxhighlight>
will simulate a call with {{para|1|hello}}, {{para|2|world}}, and {{para|foo|bar}} to a template whose content is <syntaxhighlight lang="wikitext" inline>{{#invoke:params|setting|i/p|<br />|: |list}}</syntaxhighlight>, thus producing:
{{module:params/testcases/tmulti|
setting|i/p|<br />|: |list|
-|hello|world|foo=bar}}
{{A note}} An identical subtemplate that uses [[Module:Params/sandbox]] instead of [[Module:Params]] is available at  {{[[Module:Params/testcases/tmulti sandbox|./tmulti sandbox]]}}.
=== Single-purpose helper subtemplates ===
==== Helper subtemplate {{[[Module:Params/testcases/tdelimiters|./tdelimiters]]}} ====
The {{[[Module:Params/testcases/tdelimiters|./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,
<syntaxhighlight lang="wikitext">{{module:params/testcases/tdelimiters|foo|bar|Jupiter|hello=world}}</syntaxhighlight>
generates
{{module:params/testcases/tdelimiters|foo|bar|Jupiter|hello=world}}
{{A note}} An identical subtemplate that uses [[Module:Params/sandbox]] instead of [[Module:Params]] is available at  {{[[Module:Params/testcases/tdelimiters sandbox|./tdelimiters sandbox]]}}.
==== Helper subtemplate {{[[Module:Params/testcases/tnumerical|./tnumerical]]}} ====
The {{[[Module:Params/testcases/tnumerical|./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 {{para|&#35;first}} and {{para|&#35;second}} special parameters to do its tests. For instance,
<syntaxhighlight lang="wikitext">{{module:params/testcases/tnumerical
| #first = 2
| #second = 2
| -2 = minus two
| 0 = zero
| 1 = one
| 2 = two
| 3 = three
| 19 = nineteen
| 20 = twenty
}}</syntaxhighlight>
generates
{{module:params/testcases/tnumerical
| #first = 2
| #second = 2
| -2 = minus two
| 0 = zero
| 1 = one
| 2 = two
| 3 = three
| 19 = nineteen
| 20 = twenty
}}
{{A note}} An identical subtemplate that uses [[Module:Params/sandbox]] instead of [[Module:Params]] is available at  {{[[Module:Params/testcases/tnumerical sandbox|./tnumerical sandbox]]}}.
==== Helper subtemplate {{[[Module:Params/testcases/tmaps|./tmaps]]}} ====
The {{[[Module:Params/testcases/tmaps|./tmaps]]}} subtemplate allows to test the behaviour of all the <code>mapping_*</code> and <code>renaming_*</code> 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.
{{A note}} An identical subtemplate that uses [[Module:Params/sandbox]] instead of [[Module:Params]] is available at  {{[[Module:Params/testcases/tmaps sandbox|./tmaps sandbox]]}}.
==== Helper subtemplate {{[[Module:Params/testcases/tcompare separated entries|./tcompare separated entries]]}} ====
The {{[[Module:Params/testcases/tcompare separated entries|./tcompare separated entries]]}} subtemplate compares the behaviours of [[Module:Params]] with that of [[Module:Separated entries]]. For instance,
<syntaxhighlight lang="wikitext">{{ module:params/testcases/tcompare separated entries | one | two | three | foo  | bar | Jupiter | hello = world }}</syntaxhighlight>
generates
{{ module:params/testcases/tcompare separated entries | one | two | three | foo  | bar | Jupiter | hello = world }}
== Testing individual functions ==
=== Testing the <code>[[Module:Params#list|list]]</code> function ===
==== Helper subtemplate {{[[Module:Params/testcases/techo|./techo]]}} ====
The {{[[Module:Params/testcases/techo|./techo]]}} subtemplate calls the {{mfl|params|list}} function to echo the code it was called with.
Example:
{{Automarkup|{{Make code|<<module:params/testcases/techo!hello!world!foo{{=}}bar>>}}}}
== Dummies ==
* Dummy submodules
** {{mfl|params/testcases/mdummy|echo sb}}
* Dummy subtemplates
** {{[[module:params/testcases/tdummy echo sb]]}}
== See also ==
* [[Module:Params/ChangeLog|ChangeLog of Module:Params]]
* {{rel|Module:Params/doc/examples}}
* <span class="plainlinks">[//en.wikipedia.org/w/index.php?title=Special:Search&search=insource%3A%2Finvoke%3Aparams%2F&limit=500&offset=0&ns0=1&ns1=1&ns2=1&ns3=1&ns4=1&ns5=1&ns6=1&ns7=1&ns8=1&ns9=1&ns10=1&ns11=1&ns12=1&ns13=1&ns14=1&ns15=1&ns100=1&ns101=1&ns118=1&ns119=1&ns710=1&ns711=1&ns829=1&sort=last_edit_desc Extensive “in source” search]</span>.
[[Category:Module test cases]]

Revision as of 04:55, 9 March 2025

Here are some tools for testing {{#invoke:params}} and its sandbox version.

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

Multi-purpose helper subtemplates

Helper subtemplate {{./tmulti}}

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

information Note: An identical subtemplate that uses Module:Params/sandbox instead of Module:Params is available at {{./tmulti sandbox}}.

Single-purpose helper subtemplates

Helper subtemplate {{./tdelimiters}}

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]

information Note: An identical subtemplate that uses Module:Params/sandbox instead of Module:Params is available at {{./tdelimiters sandbox}}.

Helper subtemplate {{./tnumerical}}

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 #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

information Note: An identical subtemplate that uses Module:Params/sandbox instead of Module:Params is available at {{./tnumerical sandbox}}.

Helper subtemplate {{./tmaps}}

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.

information Note: An identical subtemplate that uses Module:Params/sandbox instead of Module:Params is available at {{./tmaps sandbox}}.

Helper subtemplate {{./tcompare separated entries}}

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

Testing individual functions

Testing the list function

Helper subtemplate {{./techo}}

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

See also