优化engine

This commit is contained in:
2026-08-24 10:01:21 +08:00
parent 91a443d990
commit fd8c0c37ad
16 changed files with 4486 additions and 74 deletions
+8 -2
View File
@@ -53,7 +53,7 @@ class ProfileSchemaTests(unittest.TestCase):
with self.assertRaisesRegex(ValueError, "features\\[0\\]\\.atomic_id"):
validate_cdsl(cdsl, self.engine)
def test_semantic_validator_accepts_deferred_features_but_runtime_rejects_them(self) -> None:
def test_semantic_validator_preserves_deferred_features_but_runtime_checks_current_capabilities(self) -> None:
cdsl = {
"schema": "cad.cdsl.llm.v1", "schema_version": "1.1.0", "part_id": "deferred-fillet",
"meta": {"unit": "mm"},
@@ -68,7 +68,7 @@ class ProfileSchemaTests(unittest.TestCase):
}
result = self.engine.validate_semantic_cdsl(cdsl)
self.assertEqual(result["deferred_feature_ids"], ["f01"])
with self.assertRaisesRegex(ValueError, "deferred"):
with self.assertRaisesRegex(ValueError, "missing_selector"):
validate_cdsl(cdsl, self.engine)
def test_rejects_bare_hole_coordinate_arrays_before_rebuild(self) -> None:
@@ -105,6 +105,12 @@ class ProfileSchemaTests(unittest.TestCase):
with self.assertRaisesRegex(RuntimeError, "CDSL-only rebuild failed: unsupported atomic_id: extrude"):
self.engine.run_rebuild(cdsl, out_step)
def test_product_revision_path_uses_the_cdsl_only_entry_point(self) -> None:
source = (Path(__file__).resolve().parents[2] / "backend" / "app" / "services" / "engine_service.py").read_text(encoding="utf-8")
build_revision_source = source[source.index("def build_revision"):]
self.assertIn("engine.run_cdsl_only(cdsl_copy, step_path)", build_revision_source)
self.assertNotIn("engine.run_rebuild(cdsl_copy, step_path)", build_revision_source)
def test_all_official_samples_match_the_engine_schema(self) -> None:
samples = sorted(self.settings.library_root.glob("samples/**/model.cdsl.json"))
self.assertGreater(len(samples), 0)