import unionIntersect from "./unionIntersect"; const tests = [ [ "merges identical arrays", [ [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], ], [1, 2, 3, 4, 5], ], [ "merges arrays with smaller initial array", [ [1, 2, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], ], [1, 2, 4, 5], ], [ "merges arrays with larger initial array", [ [1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], ], [1, 2, 3, 4, 5], ], [ "merges arrays with empty initial array", [ [], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], ], [], ], [ "merges arrays with empty array", [ [1, 2, 3, 4, 5], [], [1, 2, 3, 4, 5], ], [], ], [ "merges arrays with empty array", [ [1, 2, 3, 4, 5], [], [1, 2, 3, 4, 5], ], [], ], [ "merges arrays with no overlap", [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ], [], ], [ "merges arrays with some overlap", [ [1, 2, 3, 4, 5, 6], [4, 5, 6, 7, 8, 9], [6, 7, 8, 9, 10, 11, 12], ], [6], ], [ "does not support objects", [ [{ key: "value" }, { key: "value2" }], [{ key: "value" }, { key: "value3" }], [{ key: "value" }, { key: "value4" }], ], [], ], ]; describe("unionIntersect", () => { tests.forEach(([desc, arrays, expected]) => { it(desc, () => { expect(unionIntersect(...arrays)).toStrictEqual(expected); }); }); });