X-Git-Url: https://git.ladys.computer/Pisces/blobdiff_plain/10f5f13665b3454942bc8b1c49c6d4c46a5ac560..fb3e0d562e2dbe9e3ea911a80bfdabc8851f92b2:/numeric.test.js diff --git a/numeric.test.js b/numeric.test.js index 96f51c1..dfb8063 100644 --- a/numeric.test.js +++ b/numeric.test.js @@ -19,16 +19,31 @@ import { clz32, max, min, + NEGATIVE_ZERO, + POSITIVE_ZERO, sgn, toBigInt, toFloat32, toIntegerOrInfinity, + toIntegralNumber, toIntN, toNumber, toNumeric, toUintN, } from "./numeric.js"; +describe("NEGATIVE_ZERO", () => { + it("[[Get]] is negative zero", () => { + assertStrictEquals(NEGATIVE_ZERO, -0); + }); +}); + +describe("POSITIVE_ZERO", () => { + it("[[Get]] is positive zero", () => { + assertStrictEquals(POSITIVE_ZERO, 0); + }); +}); + describe("abs", () => { it("[[Call]] returns the absolute value", () => { assertStrictEquals(abs(-1), 1); @@ -175,7 +190,37 @@ describe("toIntegerOrInfinity", () => { }); it("[[Call]] returns negative infinity for negative infinity", () => { - assertStrictEquals(toIntegerOrInfinity(Infinity), Infinity); + assertStrictEquals(toIntegerOrInfinity(-Infinity), -Infinity); + }); + + it("[[Call]] works with bigĀ·ints", () => { + assertStrictEquals(toIntegerOrInfinity(2n), 2); + }); +}); + +describe("toIntegralNumber", () => { + it("[[Call]] converts nan to zero", () => { + assertStrictEquals(toIntegralNumber(NaN), 0); + }); + + it("[[Call]] converts negative zero to positive zero", () => { + assertStrictEquals(toIntegralNumber(-0), 0); + }); + + it("[[Call]] drops the fractional part of negative numbers", () => { + assertStrictEquals(toIntegralNumber(-1.79), -1); + }); + + it("[[Call]] returns zero for infinity", () => { + assertStrictEquals(toIntegralNumber(Infinity), 0); + }); + + it("[[Call]] returns zero for negative infinity", () => { + assertStrictEquals(toIntegralNumber(-Infinity), 0); + }); + + it("[[Call]] works with bigĀ·ints", () => { + assertStrictEquals(toIntegralNumber(2n), 2); }); });