This module provides basic set operations. Most of codes are just translated from JavaScript code in MDN to TypeScript.
Check if the setA
has no elements in common with setB
.
import { assertEquals } from "https://deno.land/std/assert/mod.ts";
import { isDisjoint } from "https://deno.land/x/set_operations@$MODULE_VERSION/mod.ts";
Deno.test("isDisjoint works properly", () => {
assertEquals(isDisjoint(new Set("abc"), new Set("def")), true);
assertEquals(isDisjoint(new Set("abc"), new Set("cde")), false);
});
Check if every elements in setA
is in the setB
.
import { assertEquals } from "https://deno.land/std/assert/mod.ts";
import { isSubset } from "https://deno.land/x/set_operations@$MODULE_VERSION/mod.ts";
Deno.test("isSubset works properly", () => {
assertEquals(isSubset(new Set("abc"), new Set("abcdef")), true);
assertEquals(isSubset(new Set("abc"), new Set("def")), false);
assertEquals(isSubset(new Set("abcdef"), new Set("abc")), false);
});
Check if every elements in setB
is in the setA
.
import { assertEquals } from "https://deno.land/std/assert/mod.ts";
import { isSuperset } from "https://deno.land/x/set_operations@$MODULE_VERSION/mod.ts";
Deno.test("isSuperset works properly", () => {
assertEquals(isSuperset(new Set("abc"), new Set("abcdef")), false);
assertEquals(isSuperset(new Set("abc"), new Set("def")), false);
assertEquals(isSuperset(new Set("abcdef"), new Set("abc")), true);
});
Create a new set with elements from the setA
and the setB
.
import { assertEquals } from "https://deno.land/std/assert/mod.ts";
import { union } from "https://deno.land/x/set_operations@$MODULE_VERSION/mod.ts";
Deno.test("union works properly", () => {
assertEquals(union(new Set("abc"), new Set("def")), new Set("abcdef"));
assertEquals(union(new Set("abcdef"), new Set("def")), new Set("abcdef"));
assertEquals(union(new Set("abc"), new Set("abcdef")), new Set("abcdef"));
});
Create a new set with elements common to the setA
and the setB
.
import { assertEquals } from "https://deno.land/std/assert/mod.ts";
import { intersection } from "https://deno.land/x/set_operations@$MODULE_VERSION/mod.ts";
Deno.test("intersection works properly", () => {
assertEquals(intersection(new Set("abc"), new Set("def")), new Set());
assertEquals(intersection(new Set("abcdef"), new Set("def")), new Set("def"));
assertEquals(intersection(new Set("abc"), new Set("abcdef")), new Set("abc"));
});
Create a new set with elements in the setA
that are not in the setB
.
import { assertEquals } from "https://deno.land/std/assert/mod.ts";
import { difference } from "https://deno.land/x/set_operations@$MODULE_VERSION/mod.ts";
Deno.test("difference works properly", () => {
assertEquals(difference(new Set("abc"), new Set("def")), new Set("abc"));
assertEquals(difference(new Set("abcdef"), new Set("def")), new Set("abc"));
assertEquals(difference(new Set("abc"), new Set("abcdef")), new Set());
});
Create a new set with elements in either the setA
or setB
but not both.
import { assertEquals } from "https://deno.land/std/assert/mod.ts";
import { symmetricDifference } from "https://deno.land/x/set_operations@$MODULE_VERSION/mod.ts";
Deno.test("symmetricDifference works properly", () => {
assertEquals(
symmetricDifference(new Set("abc"), new Set("def")),
new Set("abcdef"),
);
assertEquals(
symmetricDifference(new Set("abcdef"), new Set("def")),
new Set("abc"),
);
assertEquals(
symmetricDifference(new Set("abc"), new Set("abcdef")),
new Set("def"),
);
});
The code follows MIT license written in LICENSE. Contributors need to agree that any modifications sent in this repository follow the license.