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);
|
||||
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user