更新功能
This commit is contained in:
@@ -193,6 +193,37 @@ class EngineRuntimeFoundationTests(unittest.TestCase):
|
||||
self.assertEqual(resolution.status, "ambiguous")
|
||||
self.assertEqual(resolution.diagnostic.code, "selector_ambiguous")
|
||||
|
||||
def test_selector_resolver_prefers_exact_runtime_stable_id(self) -> None:
|
||||
registry = TopologyRegistry()
|
||||
geometry = {"curve_type": "circle", "center_mm": [0, 0, 0]}
|
||||
registry.register(TopologyRecord("body:b:edge:18", "edge", "boss", "body:b", geometry))
|
||||
registry.register(TopologyRecord("body:b:edge:20", "edge", "boss", "body:b", geometry))
|
||||
|
||||
resolution = registry.resolve({
|
||||
"kind": "edge",
|
||||
"stable_id": "body:b:edge:18",
|
||||
"owner_feature_id": "boss",
|
||||
"snapshot_id": "cad_test/rev_001",
|
||||
"geometry": geometry,
|
||||
}, active_body_id="body:b")
|
||||
|
||||
self.assertEqual(resolution.status, "resolved")
|
||||
self.assertEqual(resolution.record.record_id, "body:b:edge:18")
|
||||
|
||||
def test_snapshot_stable_id_rejects_geometry_that_changed(self) -> None:
|
||||
registry = TopologyRegistry()
|
||||
registry.register(TopologyRecord(
|
||||
"body:b:edge:18", "edge", "boss", "body:b",
|
||||
{"curve_type": "circle", "center_mm": [0, 0, 0]},
|
||||
))
|
||||
resolution = registry.resolve({
|
||||
"kind": "edge", "stable_id": "body:b:edge:18", "owner_feature_id": "boss",
|
||||
"snapshot_id": "cad_test/rev_001",
|
||||
"geometry": {"curve_type": "circle", "center_mm": [1, 0, 0]},
|
||||
}, active_body_id="body:b")
|
||||
self.assertEqual(resolution.status, "not_found")
|
||||
self.assertEqual(resolution.diagnostic.code, "selector_geometry_mismatch")
|
||||
|
||||
def test_selector_resolver_normalizes_legacy_solidworks_plane_evidence(self) -> None:
|
||||
registry = TopologyRegistry()
|
||||
registry.register(TopologyRecord(
|
||||
|
||||
Reference in New Issue
Block a user