[[rnd(5.6)], [6.00]],
[[rnd(-5.4)], [-5.00]],
[[rnd(-5.6)], [-6.00]],
+ [[rnd(5.56, .1)], [5.60]],
+ [[rnd(-5.56, .1)], [-5.60]],
+ [[rnd(.5)], [1.00]],
+ [[rnd(.5 - 2**-53)], [1.00]],
+ [[rnd(.5 - 2**-52)], [1.00]],
+ [[rnd(.5 - 2**-51)], [1.00]],
+ [[rnd(.5 - 2**-45)], [0.00]],
+ [[rnd(.5 - 2**-45, 1, 10)], [1.00]],
[[rnd('x')], [error],
- [error: DEBUG EVALUATE: Type mismatch invoking RND(number) as rnd(string).]],
+ [error: DEBUG EVALUATE: Function invocation rnd(string) does not match any known function. Candidates are:
+RND(number)
+RND(number, number)
+RND(number, number, number).]],
[[trunc(1.2)], [1.00]],
[[trunc(1.9)], [1.00]],
[[rindex('abcbcde', 'abc', 1)], [5.00]],
[[rindex('abcbcde', 'bccb', 2)], [4.00]],
[[rindex('abcbcde', 'bcbc', 2)], [4.00]],
+ [[rindex('abcbcde', 'bcbc', 0)], [sysmis]],
[[rindex('abcbcde', 'bcbc', $sysmis)], [sysmis]],
[[rindex('abcbcde', 'bcbcg', 2)], [sysmis]],
[[rindex('abcbcde', 'bcbcg', $sysmis)], [sysmis]],
[[lower(1)], [error],
[error: DEBUG EVALUATE: Type mismatch invoking LOWER(string) as lower(number).]])
+CHECK_EXPR_EVAL([replace],
+ [[replace('banana', 'an', 'AN')], ["bANANa"]],
+ [[replace('banana', 'an', 'a')], ["baaa"]],
+ [[replace('banana', 'an', '')], ["ba"]],
+ [[replace('banana', 'na', '')], ["ba"]],
+ [[replace('banana', 'ba', 'BA')], ["BAnana"]],
+ [[replace('banana', 'na', 'xyzzy')], ["baxyzzyxyzzy"]],
+ [[replace('banana', 'an', 'xyzzy', 1)], ["bxyzzyana"]],
+ [[replace('banana', 'an', 'xyzzy', 1.5)], ["bxyzzyana"]],
+ [[replace('banana', 'bananana', 'xyzzy')], ["banana"]],
+ [[replace('banana', '', 'xyzzy')], ["banana"]],
+ [[replace('banana', 'ba', '', 0)], ["banana"]],
+ [[replace('banana', 'ba', '', -1)], ["banana"]],
+ [[replace('banana', 'ba', '', $sysmis)], ["banana"]])
+
CHECK_EXPR_EVAL([lpad number ltrim lpad rtrim rpad string substr upcase],
[[lpad('abc', -1)], [""]],
[[lpad('abc', 0)], ["abc"]],