Testing helpers:{~n} str is {str}{~n} int is {int}{~n} alpha is {alpha}{~n} beta is {beta}{~n} {@lt key=str value="master"}str is less than "master"{:else}str is greater than or equal to "master"{/lt}{~n} {@lt key=str value="7"}str is less than "7"{:else}str is greater than or equal to "7"{/lt}{~n} {@lt key=int value="7"}int is less than "7"{:else}int is greater than or equal to "7"{/lt}{~n} {@lt key=int value=7}int is less than 7{:else}int is greater than or equal to 7{/lt}{~n} {@lt key=int value=6}int is less than 6{:else}int is greater than or equal to 6{/lt}{~n} {@lt key=alpha value=beta}alpha is less than beta{:else}alpha is greater than or equal to beta{/lt}{~n} {@lt value=beta}missing key is true{:else}missing key is false{/lt}{~n} {@lt value=gamma}missing key and non-existent value is true{:else}missing key and non-existent value is false{/lt}{~n} {@lt key=alpha}missing value is true{:else}missing value is false{/lt}{~n} {@lt key=gamma}missing value and non-existent key is true{:else}missing value and non-existent key is false{/lt}{~n} {@lt key="master" value="master"}"master" is less than "master"{:else}"master" is greater than or equal to "master"{/lt}{~n} {@lt key=null}null is less than a missing value{:else}null is greater than or equal to a missing value{/lt}{~n} {@lt key=null value=gamma}null is less than a non-existent value{:else}null is greater than or equal to a non-existent value{/lt}{~n} {@lt}no parameters is true{:else}no parameters is false{/lt}{~n} {@lt key="a" value="]"}"a" is less than "]"{:else}"a" is greater than or equal to "]"{/lt}{~n} {@lt key="a" value="A"}"a" is less than "A"{:else}"a" is greater than or equal to "A"{/lt}{~n} {@lt key="a" value="}"}"a" is less than "}"{:else}"a" is greater than or equal to "}"{/lt}{~n} {@lt key="☃" value="☄"}"☃" is less than "☄"{:else}"☃" is greater than or equal to "☄"{/lt}{~n} {@lt key=true_value value=false_value}true is less than false{:else}true is greater than or equal to false{/lt}{~n} {@lt key=array_lower value=array_higher}[3,5,7] is less than [8,9]{:else}[3,5,7] is greater than or equal to [8,9]{/lt}{~n} {@lt key=array_higher value=array_lower}[8,9] is less than [3,5,7]{:else}[8,9] is greater than or equal to [3,5,7]{/lt}{~n} {! non-scalar and copied value tests !} {@lt key=array_lower value=array_lower}array_lower is less than array_lower{:else}array_lower is greater than or equal to array_lower{/lt}{~n} {@lt key=array_lower value=copy_array_lower}array_lower is less than copy_array_lower{:else}array_lower is greater than or equal to copy_array_lower{/lt}{~n} {@lt key=some_obj value=some_obj}some_obj is less than some_obj{:else}some_obj is greater than or equal to some_obj{/lt}{~n} {@lt key=some_obj value=copy_some_obj}some_obj is less than copy_some_obj{:else}some_obj is greater than or equal to copy_some_obj{/lt}{~n} {@lt key=some_obj value=other_obj}some_obj is less than other_obj{:else}some_obj is greater than or equal to other_obj{/lt}{~n} {@lt key=array_of_some_obj value=array_of_some_obj}array_of_some_obj is less than array_of_some_obj{:else}array_of_some_obj is greater than or equal to array_of_some_obj{/lt}{~n} {@lt key=array_of_some_obj value=copy_array_of_some_obj}array_of_some_obj is less than copy_array_of_some_obj{:else}array_of_some_obj is greater than or equal to copy_array_of_some_obj{/lt}{~n} {@lt key=array_of_some_obj value=array_of_other_obj}array_of_some_obj is less than array_of_other_obj{:else}array_of_some_obj is greater than or equal to array_of_other_obj{/lt}{~n}