test_generation.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. """Quick test for P2-M2 generation endpoints."""
  2. from fastapi.testclient import TestClient
  3. from app.main import app
  4. client = TestClient(app)
  5. # 1. Scan parameters
  6. r = client.get("/api/scan-parameters")
  7. data = r.json()
  8. print(f"[1] scan-parameters: {r.status_code}, total={data['total']}")
  9. for p in data["parameters"]:
  10. print(f" {p['name']} ({p['category']}): {p['default_start']}-{p['default_stop']} {p['unit']}")
  11. # 2. Recommend range for Airgap with BC
  12. r2 = client.post("/api/recommend-range", json={
  13. "parameter_name": "Airgap",
  14. "boundary_conditions": {"outer_diameter_mm": 76, "target_torque_nm": 2.0},
  15. })
  16. print(f"\n[2] recommend-range Airgap: {r2.status_code}")
  17. print(f" {r2.json()}")
  18. # 3. Generate plan from BC
  19. r3 = client.post("/api/generate-plan", json={
  20. "boundary_conditions": {
  21. "topology": "SSSR",
  22. "outer_diameter_mm": 76,
  23. "inner_diameter_mm": 40,
  24. "speed_rpm": 5000,
  25. "current_a": 21,
  26. "magnet_temp_c": 100,
  27. },
  28. "model_path": "models/MARS-12S10P_SSSR_D76-C150_V5.0-0819.mot",
  29. })
  30. print(f"\n[3] generate-plan: {r3.status_code}")
  31. plan = r3.json()
  32. print(f" name: {plan['name']}")
  33. print(f" topology: {plan['topology']}")
  34. print(f" estimated_points: {plan['estimated_points']}")
  35. print(f" estimated_time_min: {plan['estimated_time_min']}")
  36. for v in plan["variables"]:
  37. print(f" {v['name']}: start={v['start']}, stop={v['stop']}, step={v['step']}, values={v['values']}")
  38. print(f" notes: {v['recommendation_notes']}")
  39. # 4. Generate plan with specific parameters
  40. r4 = client.post("/api/generate-plan", json={
  41. "boundary_conditions": {"outer_diameter_mm": 76, "current_a": 21},
  42. "parameter_names": ["Airgap", "RMSCurrent"],
  43. })
  44. print(f"\n[4] generate-plan (custom params): {r4.status_code}")
  45. plan4 = r4.json()
  46. print(f" variables: {[v['name'] for v in plan4['variables']]}")
  47. print(f" points: {plan4['estimated_points']}")
  48. print("\n=== ALL GENERATION TESTS PASSED ===")