feat:新增登录功能
This commit is contained in:
@@ -174,6 +174,44 @@ class EvidenceV2ToCdslTests(unittest.TestCase):
|
||||
self.assertTrue(comparison["numeric_geometry_match"])
|
||||
self.assertTrue(comparison["topology_counts_match"])
|
||||
|
||||
def _chamfer_only_fixture(self, dimensions: list[float], props: dict | None = None) -> dict:
|
||||
return {
|
||||
"schema": "solidworks.cad_evidence.v2",
|
||||
"status": "complete_with_blockers",
|
||||
"self_validation": {"feature_contracts": []},
|
||||
"features": [{
|
||||
"sequence": 1, "name": "Chamfer", "effective_type": "Chamfer", "stable_id": "chamfer",
|
||||
"definition_properties": {"values": props or {}},
|
||||
"definition_methods": {"values": {}}, "parents": [], "selections": [],
|
||||
"dimensions": [{"system_value": value} for value in dimensions],
|
||||
}],
|
||||
}
|
||||
|
||||
def test_chamfer_exports_radian_angle_instead_of_silent_equidistant_distance(self) -> None:
|
||||
# Distance-Angle 倒角:dimensions=[0.001m, 0.785398],无 EdgeChamferAngle 属性,
|
||||
# 走 raw 兜底路径。角度 system value 为弧度,distance_mm 按米→毫米换算。
|
||||
fixture = self._chamfer_only_fixture([0.001, 0.785398])
|
||||
cdsl, _ = convert_evidence(fixture, source_name="chamfer-angle.solidworks_evidence_v2.json")
|
||||
params = next(item for item in cdsl["features"] if item["atomic_id"] == "chamfer")["params"]
|
||||
self.assertAlmostEqual(params["distance_mm"], 1.0, places=9)
|
||||
self.assertNotIn("distance_2_mm", params)
|
||||
self.assertAlmostEqual(params["angle_rad"], 0.785398, places=5)
|
||||
|
||||
def test_chamfer_prefers_edge_chamfer_angle_property(self) -> None:
|
||||
fixture = self._chamfer_only_fixture([0.001, 0.785398], props={"EdgeChamferAngle": 1.047197551})
|
||||
cdsl, _ = convert_evidence(fixture, source_name="chamfer-prop.solidworks_evidence_v2.json")
|
||||
params = next(item for item in cdsl["features"] if item["atomic_id"] == "chamfer")["params"]
|
||||
self.assertAlmostEqual(params["distance_mm"], 1.0, places=9)
|
||||
self.assertAlmostEqual(params["angle_rad"], 1.047197551, places=6)
|
||||
|
||||
def test_chamfer_keeps_equidistant_form_when_angle_is_missing(self) -> None:
|
||||
fixture = self._chamfer_only_fixture([0.001])
|
||||
cdsl, _ = convert_evidence(fixture, source_name="chamfer-eq.solidworks_evidence_v2.json")
|
||||
params = next(item for item in cdsl["features"] if item["atomic_id"] == "chamfer")["params"]
|
||||
self.assertAlmostEqual(params["distance_mm"], 1.0, places=9)
|
||||
self.assertNotIn("angle_rad", params)
|
||||
self.assertNotIn("distance_2_mm", params)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user