This test checks a few Number.toPrecision cases, including 15145: (0.999).toPrecision(1) returns incorrect result.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS (0.999).toPrecision(1) is "1"
PASS (0.999).toPrecision(2) is "1.0"
PASS (0.999).toPrecision(3) is "0.999"
PASS (0.0).toPrecision(4) is "0.000"
PASS (-0.0).toPrecision(4) is "0.000"
PASS (0.0).toPrecision() is "0"
PASS (-0.0).toPrecision() is "0"
PASS (1234.567).toPrecision() is "1234.567"
PASS (1234.567).toPrecision(0) threw exception RangeError: toPrecision() argument must be between 1 and 21.
PASS (1234.567).toPrecision(null) threw exception RangeError: toPrecision() argument must be between 1 and 21.
PASS (1234.567).toPrecision(false) threw exception RangeError: toPrecision() argument must be between 1 and 21.
PASS (1234.567).toPrecision('foo') threw exception RangeError: toPrecision() argument must be between 1 and 21.
PASS (1234.567).toPrecision(-1) threw exception RangeError: toPrecision() argument must be between 1 and 21.
PASS (1234.567).toPrecision(1) is "1e+3"
PASS (1234.567).toPrecision(true) is "1e+3"
PASS (1234.567).toPrecision('1') is "1e+3"
PASS (1234.567).toPrecision(2) is "1.2e+3"
PASS (1234.567).toPrecision(2.9) is "1.2e+3"
PASS (1234.567).toPrecision(5) is "1234.6"
FAIL (1234.567).toPrecision(21) should be 1234.56700000000000728. Was 1234.56700000000000000.
FAIL (1234.567).toPrecision(22) should be 1234.567000000000007276. Threw exception RangeError: toPrecision() argument must be between 1 and 21
FAIL (1234.567).toPrecision(100) should be 1234.567000000000007275957614183425903320312500000000000000000000000000000000000000000000000000000000. Threw exception RangeError: toPrecision() argument must be between 1 and 21
PASS (1234.567).toPrecision(101) threw exception RangeError: toPrecision() argument must be between 1 and 21.
PASS (1234.567).toPrecision(posInf) threw exception RangeError: toPrecision() argument must be between 1 and 21.
PASS (1234.567).toPrecision(negInf) threw exception RangeError: toPrecision() argument must be between 1 and 21.
PASS (1234.567).toPrecision(nan) threw exception RangeError: toPrecision() argument must be between 1 and 21.
PASS posInf.toPrecision() is "Infinity"
PASS negInf.toPrecision() is "-Infinity"
PASS nan.toPrecision() is "NaN"
PASS successfullyParsed is true

TEST COMPLETE

