[[1 OR $false], [true]],
[[1 OR $sysmis], [true]],
[[2 OR $sysmis], [sysmis],
- [error: DEBUG EVALUATE: An operand of the logical disjunction ("OR") operator was found to have a value other than 0 (false), 1 (true), or the system-missing value. The result was forced to 0.]],
+ [error: DEBUG EVALUATE: An operand of the logical disjunction (`OR') operator was found to have a value other than 0 (false), 1 (true), or the system-missing value. The result was forced to 0.]],
[[2 AND $sysmis], [false],
- [error: DEBUG EVALUATE: An operand of the logical conjunction ("AND") operator was found to have a value other than 0 (false), 1 (true), or the system-missing value. The result was forced to 0.]],
+ [error: DEBUG EVALUATE: An operand of the logical conjunction (`AND') operator was found to have a value other than 0 (false), 1 (true), or the system-missing value. The result was forced to 0.]],
[['string' AND $sysmis], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying logical conjunction ("AND") operator: cannot convert string to boolean.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying logical conjunction (`AND') operator: cannot convert string to boolean.]],
[[0 AND $sysmis], [false]],
[[(1>2) + 1], [1.00]],
[[$true + $false], [1.00]])
[[$sysmis + 1], [sysmis]],
[[7676 + $sysmis], [sysmis]],
[[('foo') + 5], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying addition ("+") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying addition (`+') operator: cannot convert string to number.]],
dnl Arithmetic concatenation requires CONCAT:
[[('foo') + ('bar')], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying addition ("+") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying addition (`+') operator: cannot convert string to number.]],
dnl Lexical concatenation succeeds:
[['foo' + 'bar'], ["foobar"]],
[[1 +3 - 2 +4 -5], [1.00]],
[[1 - $true], [0.00]],
[[$true - 4/3], [-0.33]],
[['string' - 1e10], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying subtraction ("-") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying subtraction (`-') operator: cannot convert string to number.]],
[[9.5 - ''], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying subtraction ("-") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying subtraction (`-') operator: cannot convert string to number.]],
[[1 - 2], [-1.00]],
[[52 -23], [29.00]])
[[2**8], [256.00]],
[[(2**3)**4], [4096.00]],
[[2**3**4], [4096.00],
- [warning: DEBUG EVALUATE: The exponentiation operator ("**") is left-associative, even though right-associative semantics are more useful. That is, "a**b**c" equals "(a**b)**c", not as "a**(b**c)". To disable this warning, insert parentheses.]])
+ [warning: DEBUG EVALUATE: The exponentiation operator (`**') is left-associative, even though right-associative semantics are more useful. That is, `a**b**c' equals `(a**b)**c', not as `a**(b**c)'. To disable this warning, insert parentheses.]])
CHECK_EXPR_EVAL([unary minus],
[[2+-3], [-1.00]],
[[not $false], [true]],
[[not 0], [true]],
[[not 2.5], [true],
- [error: DEBUG EVALUATE: An operand of the logical negation ("NOT") operator was found to have a value other than 0 (false), 1 (true), or the system-missing value. The result was forced to 0.]],
+ [error: DEBUG EVALUATE: An operand of the logical negation (`NOT') operator was found to have a value other than 0 (false), 1 (true), or the system-missing value. The result was forced to 0.]],
[[not $true], [false]],
[[not 1], [false]],
[[not $sysmis], [sysmis]],
[[~ $false], [true]],
[[~ 0], [true]],
[[~ 2.5], [true],
- [error: DEBUG EVALUATE: An operand of the logical negation ("NOT") operator was found to have a value other than 0 (false), 1 (true), or the system-missing value. The result was forced to 0.]],
+ [error: DEBUG EVALUATE: An operand of the logical negation (`NOT') operator was found to have a value other than 0 (false), 1 (true), or the system-missing value. The result was forced to 0.]],
[[~ $true], [false]],
[[~ 1], [false]],
[[~ $sysmis], [sysmis]])
[[1 eq 2], [false]],
[[2 = 3], [false]],
[[1 eq 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric equality ("EQ") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric equality (`EQ') operator: cannot convert string to number.]],
[[5 eq 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric equality ("EQ") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric equality (`EQ') operator: cannot convert string to number.]],
[['baz' = 10], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string equality ("=") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string equality (`=') operator: cannot convert number to string.]],
[['quux' = 5.55], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string equality ("=") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string equality (`=') operator: cannot convert number to string.]],
[['foobar' = 'foobar'], [true]],
[['quux' = 'bar'], [false]],
[['bar ' = 'bar'], [true]],
dnl Check precedence:
[[1 + 2 = 3], [true]],
[[1 >= 2 = 2 ge 3], [false],
- [warning: DEBUG EVALUATE: Chaining relational operators (e.g. "a < b < c") will not produce the mathematically expected result. Use the AND logical operator to fix the problem (e.g. "a < b AND b < c"). If chaining is really intended, parentheses will disable this warning (e.g. "(a < b) < c".)]],
+ [warning: DEBUG EVALUATE: Chaining relational operators (e.g. `a < b < c') will not produce the mathematically expected result. Use the AND logical operator to fix the problem (e.g. `a < b AND b < c'). If chaining is really intended, parentheses will disable this warning (e.g. `(a < b) < c'.)]],
dnl Mathematically true:
[[3 ne 2 ~= 1], [false],
- [warning: DEBUG EVALUATE: Chaining relational operators (e.g. "a < b < c") will not produce the mathematically expected result. Use the AND logical operator to fix the problem (e.g. "a < b AND b < c"). If chaining is really intended, parentheses will disable this warning (e.g. "(a < b) < c".)]],
+ [warning: DEBUG EVALUATE: Chaining relational operators (e.g. `a < b < c') will not produce the mathematically expected result. Use the AND logical operator to fix the problem (e.g. `a < b AND b < c'). If chaining is really intended, parentheses will disable this warning (e.g. `(a < b) < c'.)]],
[[3 > 2 > 1], [false],
- [warning: DEBUG EVALUATE: Chaining relational operators (e.g. "a < b < c") will not produce the mathematically expected result. Use the AND logical operator to fix the problem (e.g. "a < b AND b < c"). If chaining is really intended, parentheses will disable this warning (e.g. "(a < b) < c".)]],
+ [warning: DEBUG EVALUATE: Chaining relational operators (e.g. `a < b < c') will not produce the mathematically expected result. Use the AND logical operator to fix the problem (e.g. `a < b AND b < c'). If chaining is really intended, parentheses will disable this warning (e.g. `(a < b) < c'.)]],
[[1 <= 2], [true]],
[[2.5 <= 1.5], [false]],
[[2 le 2], [true]],
dnl Make sure <= token can't be split:
[[2 < = 2], [error],
- [error: DEBUG EVALUATE: Syntax error in expression at `='.]],
+ [error: DEBUG EVALUATE: Syntax error at `='.]],
[[1 <= 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric less-than-or-equal-to ("<=") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric less-than-or-equal-to (`<=') operator: cannot convert string to number.]],
[[5 <= 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric less-than-or-equal-to ("<=") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric less-than-or-equal-to (`<=') operator: cannot convert string to number.]],
[['baz' <= 10], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string less-than-or-equal-to ("<=") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string less-than-or-equal-to (`<=') operator: cannot convert number to string.]],
[['quux' <= 5.55], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string less-than-or-equal-to ("<=") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string less-than-or-equal-to (`<=') operator: cannot convert number to string.]],
[['0123' <= '0123'], [true]],
[['0123' <= '0124'], [true]],
[['0124' le '0123'], [false]],
[[3.5 lt 4], [true]],
[[4 lt 3.5], [false]],
[[1 lt 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric less than ("<") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric less than (`<') operator: cannot convert string to number.]],
[[5 lt 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric less than ("<") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric less than (`<') operator: cannot convert string to number.]],
[['baz' < 10], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string less than ("<") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string less than (`<') operator: cannot convert number to string.]],
[['quux' < 5.55], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string less than ("<") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string less than (`<') operator: cannot convert number to string.]],
[['0123' lt '0123'], [false]],
[['0123' < '0124'], [true]],
[['0124' lt '0123'], [false]],
[[2 ge 2], [true]],
dnl Make sure >= token can't be split:
[[2 > = 2], [error],
- [error: DEBUG EVALUATE: Syntax error in expression at `='.]],
+ [error: DEBUG EVALUATE: Syntax error at `='.]],
[[1 >= 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric greater-than-or-equal-to (">=") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric greater-than-or-equal-to (`>=') operator: cannot convert string to number.]],
[[5 ge 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric greater-than-or-equal-to (">=") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric greater-than-or-equal-to (`>=') operator: cannot convert string to number.]],
[['baz' ge 10], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string greater-than-or-equal-to (">=") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string greater-than-or-equal-to (`>=') operator: cannot convert number to string.]],
[['quux' >= 5.55], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string greater-than-or-equal-to (">=") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string greater-than-or-equal-to (`>=') operator: cannot convert number to string.]],
[['0123' ge '0123'], [true]],
[['0123' >= '0124'], [false]],
[['0124' >= '0123'], [true]],
[[3.5 gt 4], [false]],
[[4 gt 3.5], [true]],
[[1 gt 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric greater than (">") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric greater than (`>') operator: cannot convert string to number.]],
[[5 gt 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric greater than (">") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric greater than (`>') operator: cannot convert string to number.]],
[['baz' > 10], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string greater than (">") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string greater than (`>') operator: cannot convert number to string.]],
[['quux' > 5.55], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string greater than (">") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string greater than (`>') operator: cannot convert number to string.]],
[['0123' gt '0123'], [false]],
[['0123' > '0124'], [false]],
[['0124' gt '0123'], [true]],
[[1 <> 2], [true]],
[[2 ne 3], [true]],
[[1 ~= 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric inequality ("<>") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric inequality (`<>') operator: cannot convert string to number.]],
[[5 <> 'foobar'], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying numeric inequality ("<>") operator: cannot convert string to number.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying numeric inequality (`<>') operator: cannot convert string to number.]],
[['baz' ne 10], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string inequality ("<>") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string inequality (`<>') operator: cannot convert number to string.]],
[['quux' ~= 5.55], [error],
- [error: DEBUG EVALUATE: Type mismatch while applying string inequality ("<>") operator: cannot convert number to string.]],
+ [error: DEBUG EVALUATE: Type mismatch while applying string inequality (`<>') operator: cannot convert number to string.]],
[['foobar' <> 'foobar'], [false]],
[['quux' ne 'bar'], [true]],
[['bar ' <> 'bar'], [false]],
[['asdfj ' ne 'asdf'], [true]],
dnl <> token can't be split:
[[1 < > 1], [error],
- [error: DEBUG EVALUATE: Syntax error in expression at `GT'.]],
+ [error: DEBUG EVALUATE: Syntax error at `GT'.]],
dnl # ~= token can't be split:
[[1 ~ = 1], [error],
- [error: DEBUG EVALUATE: Syntax error expecting end of command at `NOT'.]])
+ [error: DEBUG EVALUATE: Syntax error at `NOT': expecting end of command.]])
CHECK_EXPR_EVAL([exp lg10 ln sqrt abs mod mod10 rnd trunc],
[[exp(10)], [22026.47]],