test_cd_flux_removal.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. """
  2. Cd通量移除接口测试脚本
  3. @description: 验证新创建的Cd通量移除计算接口是否正常工作
  4. """
  5. import sys
  6. import os
  7. sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
  8. from app.services.cd_flux_removal_service import CdFluxRemovalService
  9. import logging
  10. # 设置日志
  11. logging.basicConfig(level=logging.INFO)
  12. logger = logging.getLogger(__name__)
  13. def test_cd_flux_removal_service():
  14. """
  15. 测试Cd通量移除服务的各个功能
  16. """
  17. print("=== Cd通量移除服务测试 ===")
  18. service = CdFluxRemovalService()
  19. area = "韶关" # 使用默认的测试区域
  20. print(f"\n1. 测试籽粒移除计算...")
  21. try:
  22. grain_result = service.calculate_grain_removal_by_area(area)
  23. print(f"籽粒移除计算结果: {grain_result['success']}")
  24. if grain_result['success']:
  25. print(f" - 计算样本数: {grain_result['data']['statistics']['total_samples']}")
  26. print(f" - 平均通量: {grain_result['data']['statistics']['mean_flux']:.6f} g/ha/a")
  27. else:
  28. print(f" - 错误信息: {grain_result['message']}")
  29. except Exception as e:
  30. print(f" - 测试失败: {str(e)}")
  31. print(f"\n2. 测试秸秆移除计算...")
  32. try:
  33. straw_result = service.calculate_straw_removal_by_area(area)
  34. print(f"秸秆移除计算结果: {straw_result['success']}")
  35. if straw_result['success']:
  36. print(f" - 计算样本数: {straw_result['data']['statistics']['total_samples']}")
  37. print(f" - 平均通量: {straw_result['data']['statistics']['mean_flux']:.6f} g/ha/a")
  38. else:
  39. print(f" - 错误信息: {straw_result['message']}")
  40. except Exception as e:
  41. print(f" - 测试失败: {str(e)}")
  42. print(f"\n3. 测试同时计算...")
  43. try:
  44. both_result = service.calculate_both_removals_by_area(area)
  45. print(f"同时计算结果: {both_result['success']}")
  46. if both_result['success']:
  47. print(f" - 成功获取籽粒和秸秆移除数据")
  48. else:
  49. print(f" - 错误信息: {both_result['message']}")
  50. except Exception as e:
  51. print(f" - 测试失败: {str(e)}")
  52. print(f"\n=== 测试完成 ===")
  53. if __name__ == "__main__":
  54. test_cd_flux_removal_service()