Harden and streamline H3 reference matching
This commit is contained in:
@@ -509,6 +509,19 @@ class DumasH3LongVideosHelperTests(unittest.TestCase):
|
||||
self.assertIn("Persistent wardrobe/style for Mara: red jacket.", context)
|
||||
self.assertIn("Character notes for Mara: wears a long grey coat.", context)
|
||||
|
||||
def test_reference_context_matches_location_names_without_picture_tag(self):
|
||||
refs = [
|
||||
{"kind": "location", "image": "img2", "name": "Hangar", "aliases": ["loading bay"], "description": "wet concrete floor", "general": "cold industrial lighting"},
|
||||
]
|
||||
|
||||
context = self.module._reference_context_for_text(
|
||||
"[Generation 1] They argue in the hangar near the loading bay.",
|
||||
refs,
|
||||
)
|
||||
|
||||
self.assertIn("Location context for Hangar: wet concrete floor.", context)
|
||||
self.assertIn("Location notes for Hangar: cold industrial lighting.", context)
|
||||
|
||||
def test_run_uses_legacy_ref_image_inputs_when_new_slots_are_empty(self):
|
||||
calls = {}
|
||||
original_parse_resolution = self.module.parse_resolution
|
||||
@@ -634,6 +647,37 @@ class DumasH3LongVideosHelperTests(unittest.TestCase):
|
||||
self.assertIn("Persistent appearance for Mara: silver hair.", context)
|
||||
self.assertNotIn("Persistent wardrobe/style for Mara: red jacket.", context)
|
||||
|
||||
def test_resolve_prompt_refs_adds_named_location_refs(self):
|
||||
refs = [
|
||||
{"kind": "location", "image": "img2", "name": "Hangar", "description": "wet concrete floor"},
|
||||
]
|
||||
|
||||
rewritten, matched, dropped = self.module.resolve_prompt_refs(
|
||||
"[Generation 1] They wait in the hangar.",
|
||||
refs,
|
||||
)
|
||||
|
||||
self.assertEqual(rewritten, "[Generation 1] They wait in the hangar.")
|
||||
self.assertEqual(dropped, [])
|
||||
self.assertEqual(len(matched), 1)
|
||||
self.assertEqual(matched[0]["name"], "Hangar")
|
||||
|
||||
def test_resolve_tagged_refs_drops_reference_without_image(self):
|
||||
refs = [
|
||||
{"kind": "character", "image": None, "name": "Mara"},
|
||||
{"kind": "character", "image": "img2", "name": "Jon"},
|
||||
]
|
||||
|
||||
rewritten, matched, dropped = self.module.resolve_tagged_refs(
|
||||
"[Generation 1] <Picture 1> faces <Picture 2>.",
|
||||
refs,
|
||||
)
|
||||
|
||||
self.assertEqual(rewritten, "[Generation 1] faces <Picture 1>.")
|
||||
self.assertEqual(dropped, [1])
|
||||
self.assertEqual(len(matched), 1)
|
||||
self.assertEqual(matched[0]["name"], "Jon")
|
||||
|
||||
def test_reference_context_injects_immediately_after_generation_label(self):
|
||||
block = (
|
||||
"[Generation 1] Classic sitcom lighting and staging. "
|
||||
|
||||
Reference in New Issue
Block a user