X-Git-Url: https://git.ladys.computer/Pisces/blobdiff_plain/00a99e780024dae2f15b5def2064f9d29d738e9f..refs/heads/current:/collection.test.js?ds=inline diff --git a/collection.test.js b/collection.test.js index 544f454..c066932 100644 --- a/collection.test.js +++ b/collection.test.js @@ -16,14 +16,7 @@ import { it, spy, } from "./dev-deps.js"; -import { - findIndexedEntry, - isArrayIndexString, - isArraylikeObject, - isCollection, - isConcatSpreadable, - isIntegerIndexString, -} from "./collection.js"; +import { findIndexedEntry, isCollection } from "./collection.js"; describe("findIndexedEntry", () => { it("[[Call]] returns undefined if no matching entry exists", () => { @@ -81,83 +74,6 @@ describe("findIndexedEntry", () => { }); }); -describe("isArrayIndexString", () => { - it("[[Call]] returns false for nonstrings", () => { - assertStrictEquals(isArrayIndexString(1), false); - }); - - it("[[Call]] returns false for noncanonical strings", () => { - assertStrictEquals(isArrayIndexString(""), false); - assertStrictEquals(isArrayIndexString("01"), false); - assertStrictEquals(isArrayIndexString("9007199254740993"), false); - }); - - it("[[Call]] returns false for nonfinite numbers", () => { - assertStrictEquals(isArrayIndexString("NaN"), false); - assertStrictEquals(isArrayIndexString("Infinity"), false); - assertStrictEquals(isArrayIndexString("-Infinity"), false); - }); - - it("[[Call]] returns false for negative numbers", () => { - assertStrictEquals(isArrayIndexString("-0"), false); - assertStrictEquals(isArrayIndexString("-1"), false); - }); - - it("[[Call]] returns false for nonintegers", () => { - assertStrictEquals(isArrayIndexString("0.25"), false); - assertStrictEquals(isArrayIndexString("1.1"), false); - }); - - it("[[Call]] returns false for numbers greater than or equal to -1 >>> 0", () => { - assertStrictEquals(isArrayIndexString(String(-1 >>> 0)), false); - assertStrictEquals( - isArrayIndexString(String((-1 >>> 0) + 1)), - false, - ); - }); - - it("[[Call]] returns true for array lengths less than -1 >>> 0", () => { - assertStrictEquals(isArrayIndexString("0"), true); - assertStrictEquals( - isArrayIndexString(String((-1 >>> 0) - 1)), - true, - ); - }); -}); - -describe("isArraylikeObject", () => { - it("[[Call]] returns false for primitives", () => { - assertStrictEquals(isArraylikeObject("failure"), false); - }); - - it("[[Call]] returns false if length throws", () => { - assertStrictEquals( - isArraylikeObject({ - get length() { - throw void {}; - }, - }), - false, - ); - }); - - it("[[Call]] returns false if length is not a number and cannot be converted to one", () => { - assertStrictEquals(isArraylikeObject({ length: 1n }), false); - }); - - it("[[Call]] returns true if length is convertable to a number", () => { - assertStrictEquals(isArraylikeObject({ length: -0 }), true); - assertStrictEquals(isArraylikeObject({ length: 1 }), true); - assertStrictEquals(isArraylikeObject({ length: -1.25 }), true); - assertStrictEquals( - isArraylikeObject({ length: 9007199254740992 }), - true, - ); - assertStrictEquals(isArraylikeObject({ length: Infinity }), true); - assertStrictEquals(isArraylikeObject({ length: "success" }), true); - }); -}); - describe("isCollection", () => { it("[[Call]] returns false for primitives", () => { assertStrictEquals(isCollection("failure"), false); @@ -224,83 +140,3 @@ describe("isCollection", () => { ); }); }); - -describe("isConcatSpreadable", () => { - it("[[Call]] returns false for primitives", () => { - assertStrictEquals(isConcatSpreadable("failure"), false); - }); - - it("[[Call]] returns false if [Symbol.isConcatSpreadable] is null or false", () => { - assertStrictEquals( - isConcatSpreadable( - Object.assign([], { [Symbol.isConcatSpreadable]: null }), - ), - false, - ); - assertStrictEquals( - isConcatSpreadable( - Object.assign([], { [Symbol.isConcatSpreadable]: false }), - ), - false, - ); - }); - - it("[[Call]] returns true if [Symbol.isConcatSpreadable] is undefined and the object is an array", () => { - assertStrictEquals( - isConcatSpreadable( - Object.assign([], { [Symbol.isConcatSpreadable]: undefined }), - ), - true, - ); - }); - - it("[[Call]] returns true if [Symbol.isConcatSpreadable] is true", () => { - assertStrictEquals( - isConcatSpreadable({ [Symbol.isConcatSpreadable]: true }), - true, - ); - }); -}); - -describe("isIntegerIndexString", () => { - it("[[Call]] returns false for nonstrings", () => { - assertStrictEquals(isIntegerIndexString(1), false); - }); - - it("[[Call]] returns false for noncanonical strings", () => { - assertStrictEquals(isIntegerIndexString(""), false); - assertStrictEquals(isIntegerIndexString("01"), false); - assertStrictEquals( - isIntegerIndexString("9007199254740993"), - false, - ); - }); - - it("[[Call]] returns false for nonfinite numbers", () => { - assertStrictEquals(isIntegerIndexString("NaN"), false); - assertStrictEquals(isIntegerIndexString("Infinity"), false); - assertStrictEquals(isIntegerIndexString("-Infinity"), false); - }); - - it("[[Call]] returns false for negative numbers", () => { - assertStrictEquals(isIntegerIndexString("-0"), false); - assertStrictEquals(isIntegerIndexString("-1"), false); - }); - - it("[[Call]] returns false for nonintegers", () => { - assertStrictEquals(isIntegerIndexString("0.25"), false); - assertStrictEquals(isIntegerIndexString("1.1"), false); - }); - - it("[[Call]] returns false for numbers greater than or equal to 2 ** 53", () => { - assertStrictEquals( - isIntegerIndexString("9007199254740992"), - false, - ); - }); - - it("[[Call]] returns true for safe canonical integer strings", () => { - assertStrictEquals(isIntegerIndexString("0"), true); - assertStrictEquals(isIntegerIndexString("9007199254740991"), true); - }); -});