mirror of
https://github.com/denoland/deno.git
synced 2024-12-27 17:49:08 -05:00
Support for deep Map
equality with asserts#equal
(#3236)
This commit is contained in:
parent
8f571ef166
commit
64957d92ef
2 changed files with 49 additions and 0 deletions
|
@ -81,6 +81,19 @@ export function equal(c: unknown, d: unknown): boolean {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
if (a && b && a instanceof Map && b instanceof Map) {
|
||||
if (a.size !== b.size) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (const [key, value] of a) {
|
||||
if (!compare(value, b.get(key))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
// Have to render RegExp & Date for string comparison
|
||||
// unless it's mistreated as object
|
||||
if (
|
||||
|
|
|
@ -47,6 +47,42 @@ test(function testingEqual(): void {
|
|||
assert(!equal(new Set([1, 2]), new Set([3, 2, 1])));
|
||||
assert(!equal(new Set([1, 2, 3]), new Set([4, 5, 6])));
|
||||
assert(equal(new Set("denosaurus"), new Set("denosaurussss")));
|
||||
assert(equal(new Map(), new Map()));
|
||||
assert(
|
||||
equal(
|
||||
new Map([["foo", "bar"], ["baz", "baz"]]),
|
||||
new Map([["foo", "bar"], ["baz", "baz"]])
|
||||
)
|
||||
);
|
||||
assert(
|
||||
equal(
|
||||
new Map([["foo", new Map([["bar", "baz"]])]]),
|
||||
new Map([["foo", new Map([["bar", "baz"]])]])
|
||||
)
|
||||
);
|
||||
assert(
|
||||
equal(
|
||||
new Map([["foo", { bar: "baz" }]]),
|
||||
new Map([["foo", { bar: "baz" }]])
|
||||
)
|
||||
);
|
||||
assert(
|
||||
equal(
|
||||
new Map([["foo", "bar"], ["baz", "qux"]]),
|
||||
new Map([["baz", "qux"], ["foo", "bar"]])
|
||||
)
|
||||
);
|
||||
assert(equal(new Map([["foo", ["bar"]]]), new Map([["foo", ["bar"]]])));
|
||||
assert(!equal(new Map([["foo", "bar"]]), new Map([["bar", "baz"]])));
|
||||
assert(
|
||||
!equal(new Map([["foo", "bar"]]), new Map([["foo", "bar"], ["bar", "baz"]]))
|
||||
);
|
||||
assert(
|
||||
!equal(
|
||||
new Map([["foo", new Map([["bar", "baz"]])]]),
|
||||
new Map([["foo", new Map([["bar", "qux"]])]])
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
test(function testingNotEquals(): void {
|
||||
|
|
Loading…
Reference in a new issue