Index enemy event duplicate identities
This commit is contained in:
@@ -83,6 +83,21 @@ func TestNormalizeUsesExplicitKindOrderAndPreservesDistinctObservations(t *testi
|
||||
}
|
||||
}
|
||||
|
||||
func TestNormalizePreservesDistinctEvidenceWhenEncodedKeysCoincide(t *testing.T) {
|
||||
invalidSourceID := string([]byte{'s', 0xff})
|
||||
replacementSourceID := "s\uFFFD"
|
||||
document := &source.SourceDocument{ID: invalidSourceID, Units: []source.SourceUnit{{ID: 1}}}
|
||||
input := dnd.EnemyEventList{Events: []dnd.EnemyEvent{
|
||||
{Name: "Ashfang", Kind: dnd.EnemyEventKindEngaged, SourceRefs: []source.SourceRef{{SourceID: invalidSourceID, StartUnitID: 1, EndUnitID: 1}}},
|
||||
{Name: "Ashfang", Kind: dnd.EnemyEventKindEngaged, SourceRefs: []source.SourceRef{{SourceID: replacementSourceID, StartUnitID: 1, EndUnitID: 1}}},
|
||||
}}
|
||||
|
||||
result, err := newNormalizer(t, npcReferences(t)).Normalize(context.Background(), normalizeRequest(document, input, contracts.ReferenceSet{}))
|
||||
if err != nil || len(result.Value.Events) != 2 || hasWarning(result.Warnings, ReasonCodeDuplicateCollapsed) {
|
||||
t.Fatalf("Normalize() = %#v, %v; want distinct evidence observations retained", result, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNormalizeIsIdempotentAndPreservesEmptyRepresentation(t *testing.T) {
|
||||
normalizer := newNormalizer(t, npcReferences(t))
|
||||
for _, input := range []dnd.EnemyEventList{{}, {Events: []dnd.EnemyEvent{}}} {
|
||||
|
||||
Reference in New Issue
Block a user