Simplify enemy event grounding ownership
This commit is contained in:
@@ -104,15 +104,27 @@ func TestGroundingResolvesGeneratedReferencesAndSceneEligibility(t *testing.T) {
|
||||
if got := string(resolved.PromptInputs()[NPCRegistryReferenceSlot].Content); got != `{"npcs":[{"name":"Grimjaw"}]}` {
|
||||
t.Fatalf("generated NPC projection = %s", got)
|
||||
}
|
||||
if resolved.SceneMatch(combatChunk()) != (sceneregistry.ChunkMatch{State: sceneregistry.MatchExact, Kind: dnd.SceneKindNarrative}) {
|
||||
t.Fatalf("generated scene match = %#v", resolved.SceneMatch(combatChunk()))
|
||||
match, err := resolver.SceneMatch(generated, combatChunk())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if resolved.SceneMatch(&source.Chunk{ID: "other", Ref: combatChunk().Ref}).State != sceneregistry.MatchMissing {
|
||||
if match != (sceneregistry.ChunkMatch{State: sceneregistry.MatchExact, Kind: dnd.SceneKindNarrative}) {
|
||||
t.Fatalf("generated scene match = %#v", match)
|
||||
}
|
||||
match, err = resolver.SceneMatch(generated, &source.Chunk{ID: "other", Ref: combatChunk().Ref})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if match.State != sceneregistry.MatchMissing {
|
||||
t.Fatal("missing scene was not reported")
|
||||
}
|
||||
mismatched := combatChunk()
|
||||
mismatched.Ref.EndUnitID++
|
||||
if resolved.SceneMatch(mismatched).State != sceneregistry.MatchMismatched {
|
||||
match, err = resolver.SceneMatch(generated, mismatched)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if match.State != sceneregistry.MatchMismatched {
|
||||
t.Fatal("mismatched scene was not reported")
|
||||
}
|
||||
|
||||
@@ -123,8 +135,12 @@ func TestGroundingResolvesGeneratedReferencesAndSceneEligibility(t *testing.T) {
|
||||
if got := string(static.PromptInputs()[NPCRegistryReferenceSlot].Content); got != `{"npcs":[{"name":"Ashfang"}]}` {
|
||||
t.Fatalf("static NPC projection changed after generated resolution: %s", got)
|
||||
}
|
||||
if static.SceneMatch(combatChunk()) != (sceneregistry.ChunkMatch{State: sceneregistry.MatchExact, Kind: dnd.SceneKindCombat}) {
|
||||
t.Fatalf("static scene match = %#v", static.SceneMatch(combatChunk()))
|
||||
match, err = resolver.SceneMatch(contracts.ReferenceSet{}, combatChunk())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if match != (sceneregistry.ChunkMatch{State: sceneregistry.MatchExact, Kind: dnd.SceneKindCombat}) {
|
||||
t.Fatalf("static scene match = %#v", match)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,8 +160,13 @@ func TestGroundingRejectsMissingAndInvalidReferences(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if _, err := resolver.Resolve(contracts.ReferenceSet{}); err == nil || !strings.Contains(err.Error(), test.want) {
|
||||
t.Fatalf("Resolve() error = %v, want missing %q reference", err, test.slot)
|
||||
if test.slot == SceneDescriptionReferenceSlot {
|
||||
_, err = resolver.SceneMatch(contracts.ReferenceSet{}, combatChunk())
|
||||
} else {
|
||||
_, err = resolver.Resolve(contracts.ReferenceSet{})
|
||||
}
|
||||
if err == nil || !strings.Contains(err.Error(), test.want) {
|
||||
t.Fatalf("grounding error = %v, want missing %q reference", err, test.slot)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user