PASS DOM.evaluate("5 mod -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 1
PASS DOM.evaluate("-5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -1
PASS DOM.evaluate("-5 mod -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -1
+PASS DOM.evaluate("1 mod 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("0 mod 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("(0 div 0) mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("2 mod (0 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("(1 div 0) mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("(1 div 0) mod 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("(1 div 0) mod (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("42 mod (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 42
+PASS DOM.evaluate("0.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 0.5
+PASS DOM.evaluate("-0.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -0.5
+PASS DOM.evaluate("2.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 0.5
+PASS DOM.evaluate("-2.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -0.5
+PASS DOM.evaluate("5 mod 3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 2
+PASS DOM.evaluate("5 mod -3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 2
+PASS DOM.evaluate("-5 mod 3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -2
+PASS DOM.evaluate("-5 mod -3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -2
PASS DOM.evaluate("5 + 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 7
PASS DOM.evaluate("3 + -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 1
PASS DOM.evaluate("(1 div 0) + (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is Infinity
PASS DOM.evaluate("5 <= number('NaN')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("5 > number('NaN')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("5 >= number('NaN')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
-FAIL DOM.evaluate("5 < @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
-FAIL DOM.evaluate("5 <= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
+PASS DOM.evaluate("5 < @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS DOM.evaluate("5 <= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
PASS DOM.evaluate("5 > @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("5 >= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
-FAIL DOM.evaluate("'-5' * '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be -10. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'-4' * '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 8. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'0' * '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 0. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'1' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 1. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'3.1415926535' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 3.1415926535. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be NaN. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'Hi' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be NaN. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'NaN' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be NaN. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'• = middle dot' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be NaN. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'0' div '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 0. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'1' div '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 1. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'-5' div '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be -2.5. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'-4' div '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 2. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'0' div '0'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be NaN. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'1' div '0'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be Infinity. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'-1' div '0'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be -Infinity. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'0' mod '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 0. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'5' mod '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 1. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'5' mod '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 1. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'-5' mod '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be -1. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'-5' mod '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be -1. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'5' + '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 7. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'3' + '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 1. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'5' - '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 3. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("'3' - '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 5. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("-'5'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be -5. Threw exception Error: TYPE_ERR: DOM XPath Exception 52
-FAIL DOM.evaluate("-'-2')", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue should be 2. Threw exception Error: INVALID_EXPRESSION_ERR: DOM XPath Exception 51
+PASS DOM.evaluate("'-5' * '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -10
+PASS DOM.evaluate("'-4' * '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 8
+PASS DOM.evaluate("'0' * '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 0
+PASS DOM.evaluate("'1' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 1
+PASS DOM.evaluate("'3.1415926535' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 3.1415926535
+PASS DOM.evaluate("'' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("'Hi' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("'NaN' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("'• = middle dot' * '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("'0' div '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 0
+PASS DOM.evaluate("'1' div '1'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 1
+PASS DOM.evaluate("'-5' div '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -2.5
+PASS DOM.evaluate("'-4' div '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 2
+PASS DOM.evaluate("'0' div '0'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("'1' div '0'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is Infinity
+PASS DOM.evaluate("'-1' div '0'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -Infinity
+PASS DOM.evaluate("'0' mod '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 0
+PASS DOM.evaluate("'5' mod '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 1
+PASS DOM.evaluate("'5' mod '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 1
+PASS DOM.evaluate("'-5' mod '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -1
+PASS DOM.evaluate("'-5' mod '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -1
+PASS DOM.evaluate("'5' + '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 7
+PASS DOM.evaluate("'3' + '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 1
+PASS DOM.evaluate("'5' - '2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 3
+PASS DOM.evaluate("'3' - '-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 5
+PASS DOM.evaluate("-'5'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is -5
+PASS DOM.evaluate("-'-2'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue is 2
PASS DOM.evaluate("'5' = '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
PASS DOM.evaluate("'5' = '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'-5' = '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
PASS DOM.evaluate("31 < '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'5' < '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'31' < '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
-FAIL DOM.evaluate("5 <= '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
+PASS DOM.evaluate("5 <= '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
PASS DOM.evaluate("31 <= '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
-FAIL DOM.evaluate("'5' <= '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
+PASS DOM.evaluate("'5' <= '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
PASS DOM.evaluate("'31' <= '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("5 > '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
-FAIL DOM.evaluate("31 > '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
+PASS DOM.evaluate("31 > '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
PASS DOM.evaluate("'5' > '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
-FAIL DOM.evaluate("'31' > '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
+PASS DOM.evaluate("'31' > '5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
PASS DOM.evaluate("5 < '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("31 < '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'5' < '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("31 <= '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'5' <= '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'31' <= '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
-FAIL DOM.evaluate("5 > '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
-FAIL DOM.evaluate("31 > '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
-FAIL DOM.evaluate("'5' > '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
-FAIL DOM.evaluate("'31' > '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
+PASS DOM.evaluate("5 > '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS DOM.evaluate("31 > '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS DOM.evaluate("'5' > '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS DOM.evaluate("'31' > '-5'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
PASS DOM.evaluate("'5' < 'Hi'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'5' <= 'Hi'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'5' > 'Hi'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'5' >= 'Hi'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
-FAIL DOM.evaluate("'5' < @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
-FAIL DOM.evaluate("'5' <= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue should be true (of type boolean). Was false (of type boolean).
+PASS DOM.evaluate("'5' < @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS DOM.evaluate("'5' <= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is true
PASS DOM.evaluate("'5' > @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS DOM.evaluate("'5' >= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue is false
PASS successfullyParsed is true
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../../js/resources/js-test-style.css">
+<script src="../../../js/resources/js-test-pre.js"></script>
+<script src="test.js"></script>
+</head>
+<body>
+<div id="console"></div>
+
+<script>
+/*
+ IEEE 754 says:
+
+ +-Infinity * +-Infinity = +-Infinity
+ +-Infinity * 0 = NaN
+
+ n div +-Infinity = 0
+ +-nonzero div 0 = +-Infinity
+ +-Infinity div +-Infinity = NaN
+ +-0 div +-0 = NaN
+
+ Infinity + Infinity = Infinity
+ Infinity - Infinity = NaN
+*/
+ shouldBe('DOM.evaluate("-5 * 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-10');
+ shouldBe('DOM.evaluate("-4 * -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '8');
+ shouldBe('DOM.evaluate("0 * 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("(1 div 0) * (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
+ shouldBe('DOM.evaluate("(-1 div 0) * (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
+ shouldBe('DOM.evaluate("(1 div 0) * (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-Infinity');
+ shouldBe('DOM.evaluate("0 div 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("-5 div 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-2.5');
+ shouldBe('DOM.evaluate("-4 div -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
+ shouldBe('DOM.evaluate("0 div 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("1 div 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
+ shouldBe('DOM.evaluate("-1 div 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-Infinity');
+ shouldBe('DOM.evaluate("0 div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("1 div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("-1 div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("0 div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("1 div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("-1 div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("(1 div 0) div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("(1 div 0) div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("(-1 div 0) div (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("(-1 div 0) div (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("0 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
+ shouldBe('DOM.evaluate("5 mod -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
+ shouldBe('DOM.evaluate("-5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-1');
+ shouldBe('DOM.evaluate("-5 mod -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-1');
+ shouldBe('DOM.evaluate("1 mod 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("0 mod 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("(0 div 0) mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("2 mod (0 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("(1 div 0) mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("(1 div 0) mod 0", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("(1 div 0) mod (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("42 mod (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '42');
+ shouldBe('DOM.evaluate("0.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0.5');
+ shouldBe('DOM.evaluate("-0.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-0.5');
+ shouldBe('DOM.evaluate("2.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0.5');
+ shouldBe('DOM.evaluate("-2.5 mod 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-0.5');
+ shouldBe('DOM.evaluate("5 mod 3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
+ shouldBe('DOM.evaluate("5 mod -3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
+ shouldBe('DOM.evaluate("-5 mod 3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-2');
+ shouldBe('DOM.evaluate("-5 mod -3", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-2');
+
+ shouldBe('DOM.evaluate("5 + 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '7');
+ shouldBe('DOM.evaluate("3 + -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
+ shouldBe('DOM.evaluate("(1 div 0) + (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
+ shouldBe('DOM.evaluate("5 - 2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '3');
+ shouldBe('DOM.evaluate("3 - -2", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '5');
+ shouldBe('DOM.evaluate("(1 div 0) - (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+
+ shouldBe('DOM.evaluate("- 5", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-5');
+ shouldBe('DOM.evaluate("- (- 2)", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
+
+ shouldBe('DOM.evaluate("5 = 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 = -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("-5 = -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("0 = 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("(1 div 0) = (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("(-1 div 0) = (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 = (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 = number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("number(\'NaN\') = number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 = @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("31 = @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+
+ shouldBe('DOM.evaluate("5 != 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 != -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("-5 != -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("0 != 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("(1 div 0) != (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("(-1 div 0) != (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 != (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 != number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("number(\'NaN\') != number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 != @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("31 != @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+
+ shouldBe('DOM.evaluate("5 < 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 <= 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 > 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 >= 5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 < -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 <= -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 > -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 >= -5", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 < 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 <= 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 > 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 >= 0", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 < (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 <= (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 > (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 >= (1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 < (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 <= (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 > (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 >= (-1 div 0)", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 < number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 <= number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 > number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 >= number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 < @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 <= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 > @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 >= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+
+ shouldBe('DOM.evaluate("\'-5\' * \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-10');
+ shouldBe('DOM.evaluate("\'-4\' * \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '8');
+ shouldBe('DOM.evaluate("\'0\' * \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("\'1\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
+ shouldBe('DOM.evaluate("\'3.1415926535\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '3.1415926535');
+ shouldBe('DOM.evaluate("\'\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("\'Hi\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("\'NaN\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("\'\u2022 = middle dot\' * \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("\'0\' div \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("\'1\' div \'1\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
+ shouldBe('DOM.evaluate("\'-5\' div \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-2.5');
+ shouldBe('DOM.evaluate("\'-4\' div \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
+ shouldBe('DOM.evaluate("\'0\' div \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'NaN');
+ shouldBe('DOM.evaluate("\'1\' div \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', 'Infinity');
+ shouldBe('DOM.evaluate("\'-1\' div \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-Infinity');
+ shouldBe('DOM.evaluate("\'0\' mod \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '0');
+ shouldBe('DOM.evaluate("\'5\' mod \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
+ shouldBe('DOM.evaluate("\'5\' mod \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
+ shouldBe('DOM.evaluate("\'-5\' mod \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-1');
+ shouldBe('DOM.evaluate("\'-5\' mod \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-1');
+
+ shouldBe('DOM.evaluate("\'5\' + \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '7');
+ shouldBe('DOM.evaluate("\'3\' + \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '1');
+ shouldBe('DOM.evaluate("\'5\' - \'2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '3');
+ shouldBe('DOM.evaluate("\'3\' - \'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '5');
+
+ shouldBe('DOM.evaluate("-\'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '-5');
+ shouldBe('DOM.evaluate("-\'-2\'", CHILD1, null, XPathResult.ANY_TYPE, null).numberValue', '2');
+
+ shouldBe('DOM.evaluate("\'5\' = \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'5\' = \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'-5\' = \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'0\' = \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'Hi\' = \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'5\' = \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' = \'NaN\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'NaN\' = \'NaN\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'5\' = @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'31\' = @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+
+ shouldBe('DOM.evaluate("\'5\' != \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' != \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'-5\' != \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'0\' != \'0\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' != \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'5\' != number(\'NaN\')", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'NaN\' != \'NaN\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' != @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'31\' != @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+
+ shouldBe('DOM.evaluate("5 < \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("31 < \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' < \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'31\' < \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 <= \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("31 <= \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' <= \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'31\' <= \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 > \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("31 > \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'5\' > \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'31\' > \'5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("5 < \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("31 < \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' < \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'31\' < \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 <= \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("31 <= \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' <= \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'31\' <= \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("5 > \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("31 > \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'5\' > \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'31\' > \'-5\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'5\' < \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' <= \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' > \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' >= \'Hi\'", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' < @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'5\' <= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'true');
+ shouldBe('DOM.evaluate("\'5\' > @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+ shouldBe('DOM.evaluate("\'5\' >= @attr31", CHILD1, null, XPathResult.ANY_TYPE, null).booleanValue', 'false');
+
+ var successfullyParsed = true;
+
+</script>
+<script src="../../../js/resources/js-test-post.js"></script>
+</body>
+</html>