/* Any copyright is dedicated to the Public Domain.
* https : //creativecommons.org/publicdomain/zero/1.0/
*/
"use strict" ;
const { Dedupe } = ChromeUtils.importESModule(
"resource:///modules/Dedupe.sys.mjs"
);
add_task(async function test_dedupe_group() {
let instance = new Dedupe();
// Should remove duplicates inside the groups
let beforeItems = [
[1 , 1 , 1 ],
[2 , 2 , 2 ],
[3 , 3 , 3 ],
];
let afterItems = [[1 ], [2 ], [3 ]];
Assert .deepEqual(
instance.group(...beforeItems),
afterItems,
"Should remove duplicates inside the groups"
);
// Should remove duplicates between groups, favoring earlier groups
beforeItems = [
[1 , 2 , 3 ],
[2 , 3 , 4 ],
[3 , 4 , 5 ],
];
afterItems = [[1 , 2 , 3 ], [4 ], [5 ]];
Assert .deepEqual(
instance.group(...beforeItems),
afterItems,
"Should remove duplicates between groups"
);
// Should remove duplicates from groups of objects
instance = new Dedupe(item => item.id);
beforeItems = [
[{ id: 1 }, { id: 1 }, { id: 2 }],
[{ id: 1 }, { id: 3 }, { id: 2 }],
[{ id: 1 }, { id: 2 }, { id: 5 }],
];
afterItems = [[{ id: 1 }, { id: 2 }], [{ id: 3 }], [{ id: 5 }]];
Assert .deepEqual(
instance.group(...beforeItems),
afterItems,
"Should remove duplicates from groups of objects"
);
});
Messung V0.5 in Prozent C=93 H=98 G=95
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-08-26)
¤
*© Formatika GbR, Deutschland