test(f5): model normalized yacimiento collision explicitly
This commit is contained in:
@@ -48,14 +48,25 @@ test('F5 territory preload is exactly the authorized Tablas de yacimiento y area
|
|||||||
}
|
}
|
||||||
assert.equal([...literalNamesByKey.values()].filter((items) => items.size > 1).length, 1);
|
assert.equal([...literalNamesByKey.values()].filter((items) => items.size > 1).length, 1);
|
||||||
|
|
||||||
|
const literalAreasByYacimiento = new Map<string, Set<string>>();
|
||||||
const areasByYacimiento = new Map<string, Set<string>>();
|
const areasByYacimiento = new Map<string, Set<string>>();
|
||||||
for (const row of source.rows) {
|
for (const row of source.rows) {
|
||||||
const yacimiento = key(row.yacimiento);
|
const literal = row.yacimiento.trim();
|
||||||
const memberships = areasByYacimiento.get(yacimiento) ?? new Set<string>();
|
const literalMemberships = literalAreasByYacimiento.get(literal) ?? new Set<string>();
|
||||||
|
literalMemberships.add(key(row.area));
|
||||||
|
literalAreasByYacimiento.set(literal, literalMemberships);
|
||||||
|
|
||||||
|
const normalized = key(row.yacimiento);
|
||||||
|
const memberships = areasByYacimiento.get(normalized) ?? new Set<string>();
|
||||||
memberships.add(key(row.area));
|
memberships.add(key(row.area));
|
||||||
areasByYacimiento.set(yacimiento, memberships);
|
areasByYacimiento.set(normalized, memberships);
|
||||||
}
|
}
|
||||||
assert.equal([...areasByYacimiento.values()].filter((items) => items.size > 1).length, 10);
|
const literalMembershipSurplus = [...literalAreasByYacimiento.values()]
|
||||||
|
.reduce((total, memberships) => total + Math.max(0, memberships.size - 1), 0);
|
||||||
|
const normalizedMembershipSurplus = [...areasByYacimiento.values()]
|
||||||
|
.reduce((total, memberships) => total + Math.max(0, memberships.size - 1), 0);
|
||||||
|
assert.equal(literalMembershipSurplus, 10);
|
||||||
|
assert.equal(normalizedMembershipSurplus, 11);
|
||||||
|
|
||||||
for (const area of areas) {
|
for (const area of areas) {
|
||||||
const rows = source.rows.filter((row) => key(row.area) === area);
|
const rows = source.rows.filter((row) => key(row.area) === area);
|
||||||
|
|||||||
Reference in New Issue
Block a user