优化skill,添加特征树、编辑窗口
This commit is contained in:
@@ -20,13 +20,18 @@ class CadRouterTests(unittest.TestCase):
|
||||
def parse(self, *args: str):
|
||||
return route_module.build_parser().parse_args(list(args))
|
||||
|
||||
def test_routes_gear_to_simplecadapi(self) -> None:
|
||||
def test_new_standard_part_routes_to_simplecadapi(self) -> None:
|
||||
result = route_module.route(self.parse("生成一个模数 2 的人字齿轮"))
|
||||
self.assertEqual("simplecadapi", result["selected_backend"])
|
||||
self.assertTrue(result["routing_policy"]["keyword_backend_scoring"])
|
||||
self.assertEqual(
|
||||
"herringbone_gear",
|
||||
result["routing_policy"]["standard_part_match"]["type"],
|
||||
)
|
||||
|
||||
def test_routes_new_standard_factories_to_simplecadapi(self) -> None:
|
||||
def test_catalogued_standard_factories_route_to_simplecadapi(self) -> None:
|
||||
for request in (
|
||||
"生成一个 M8 六角螺栓",
|
||||
"生成一个六角螺栓本体",
|
||||
"生成一个 08B 滚子链轮",
|
||||
"生成一个模数 2 的直齿锥齿轮",
|
||||
):
|
||||
@@ -34,26 +39,26 @@ class CadRouterTests(unittest.TestCase):
|
||||
result = route_module.route(self.parse(request))
|
||||
self.assertEqual("simplecadapi", result["selected_backend"])
|
||||
|
||||
def test_routes_semantic_units_and_tolerances_to_simplecadapi(self) -> None:
|
||||
result = route_module.route(
|
||||
self.parse("生成参数化法兰,保留语义标签、毫米单位和公差链")
|
||||
)
|
||||
self.assertEqual("simplecadapi", result["selected_backend"])
|
||||
self.assertIn(
|
||||
"semantic_graph_and_replay",
|
||||
result["routing_policy"]["requirements"],
|
||||
)
|
||||
|
||||
def test_routes_custom_freeform_surface_to_build123d(self) -> None:
|
||||
def test_non_catalogued_part_routes_to_build123d(self) -> None:
|
||||
result = route_module.route(
|
||||
self.parse("生成带 NURBS 自由曲面的定制外壳")
|
||||
)
|
||||
self.assertEqual("build123d", result["selected_backend"])
|
||||
|
||||
def test_routes_connecting_rod_to_build123d(self) -> None:
|
||||
def test_custom_mechanical_part_routes_to_build123d(self) -> None:
|
||||
result = route_module.route(self.parse("生成中心距 120mm 的发动机连杆"))
|
||||
self.assertEqual("build123d", result["selected_backend"])
|
||||
|
||||
def test_standard_part_words_used_as_features_do_not_route_to_simplecadapi(self) -> None:
|
||||
for request in (
|
||||
"生成带 8 个螺栓孔的轮毂法兰",
|
||||
"生成带轴承座的机加工壳体",
|
||||
"生成齿轮安装法兰盘",
|
||||
):
|
||||
with self.subTest(request=request):
|
||||
result = route_module.route(self.parse(request))
|
||||
self.assertEqual("build123d", result["selected_backend"])
|
||||
|
||||
def test_existing_step_stays_step_first(self) -> None:
|
||||
result = route_module.route(self.parse("修改现有零件的孔径", "--existing-model"))
|
||||
self.assertEqual("build123d", result["selected_backend"])
|
||||
@@ -106,7 +111,9 @@ class CadRouterTests(unittest.TestCase):
|
||||
self.assertEqual(
|
||||
{
|
||||
"primary_format": "step",
|
||||
"editable_contract": "DesignIR 3.0",
|
||||
"editable_contract": "DesignIR 3.0 normalized contract",
|
||||
"editable_contract_role": "contract_after_backend_generation",
|
||||
"authoritative_geometry_source": "build123d native Python source",
|
||||
},
|
||||
result["artifact_contract"],
|
||||
)
|
||||
@@ -125,10 +132,7 @@ class CadRouterTests(unittest.TestCase):
|
||||
self.assertIn("explicit backend override", selected["reasons"])
|
||||
|
||||
def test_probe_reports_simplecadapi_202_capability_contract(self) -> None:
|
||||
result = route_module.route(self.parse("生成一个齿轮", "--probe"))
|
||||
simplecad = result["availability"]["simplecadapi"]
|
||||
self.assertTrue(simplecad["available"])
|
||||
self.assertTrue(simplecad["compatible"])
|
||||
simplecad = route_module.probe_backends()["simplecadapi"]
|
||||
self.assertEqual("2.0.2", simplecad["minimum_version"])
|
||||
|
||||
def test_generalized_experience_is_loaded_without_case_geometry(self) -> None:
|
||||
@@ -422,7 +426,7 @@ class CadRouterTests(unittest.TestCase):
|
||||
plan["experience_query_plan"]["requires_source_inspection"]
|
||||
)
|
||||
self.assertEqual(
|
||||
"DesignIR 3.0", result["artifact_contract"]["editable_contract"]
|
||||
"DesignIR 3.0 normalized contract", result["artifact_contract"]["editable_contract"]
|
||||
)
|
||||
self.assertEqual(
|
||||
"DesignIR 3.0 / SurfaceIR",
|
||||
|
||||
Reference in New Issue
Block a user