test(f5): model normalized yacimiento collision explicitly

This commit is contained in:
2026-09-08 22:38:40 -03:00
parent e92b1623c8
commit 8e2ed6e38a
@@ -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);
const literalAreasByYacimiento = new Map<string, Set<string>>();
const areasByYacimiento = new Map<string, Set<string>>();
for (const row of source.rows) {
const yacimiento = key(row.yacimiento);
const memberships = areasByYacimiento.get(yacimiento) ?? new Set<string>();
const literal = row.yacimiento.trim();
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));
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) {
const rows = source.rows.filter((row) => key(row.area) === area);