test dict
This commit is contained in:
@@ -18,9 +18,6 @@ test("Dictionary", () => {
|
|||||||
setEntrySave(dict, "bar", 0);
|
setEntrySave(dict, "bar", 0);
|
||||||
deleteEntrySave(dict, "bar");
|
deleteEntrySave(dict, "bar");
|
||||||
|
|
||||||
console.table(dict.entries);
|
|
||||||
console.table(dict.indices);
|
|
||||||
|
|
||||||
expect(getEntry(dict, "foo")).toBe(42);
|
expect(getEntry(dict, "foo")).toBe(42);
|
||||||
expect(getEntry(dict, "bar")).toBe(undefined);
|
expect(getEntry(dict, "bar")).toBe(undefined);
|
||||||
expect(dict.indices.size).toBe(dict.entries.length);
|
expect(dict.indices.size).toBe(dict.entries.length);
|
||||||
@@ -31,3 +28,37 @@ test("Dictionary", () => {
|
|||||||
});
|
});
|
||||||
expect(sum).toBe(48);
|
expect(sum).toBe(48);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("Dictionary don't mutate, when used 'save', while iterating", () => {
|
||||||
|
const dict: Dictionary<string, number> = createDictionary([
|
||||||
|
["a", 1],
|
||||||
|
["b", 2],
|
||||||
|
["c", 3],
|
||||||
|
]);
|
||||||
|
|
||||||
|
let sum = 0;
|
||||||
|
forEntry(dict, (value, __, index) => {
|
||||||
|
if (index < 1) {
|
||||||
|
setEntrySave(dict, "d", 4);
|
||||||
|
setEntrySave(dict, "e", 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
sum += value;
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(sum).toBe(6);
|
||||||
|
expect(dict.indices.size === 5).toEqual(dict.entries.length === 5);
|
||||||
|
|
||||||
|
sum = 0;
|
||||||
|
forEntry(dict, (value, __, index) => {
|
||||||
|
if (index < 1) {
|
||||||
|
deleteEntrySave(dict, "d");
|
||||||
|
deleteEntrySave(dict, "e");
|
||||||
|
}
|
||||||
|
|
||||||
|
sum += value;
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(sum).toBe(15);
|
||||||
|
expect(dict.indices.size === 3).toEqual(dict.entries.length === 3);
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user