from __future__ import annotations import unittest try: from autofarm.performance_scope import ( SCENARIO_IDLE, optimization_packages, run_real_field_benchmark_scenario, ) from autofarm.planning.policy import cached_field_topology_for_zones from autofarm.sim.engine import build_real_field_environment PERFORMANCE_IMPORT_ERROR: ModuleNotFoundError | None = None except ModuleNotFoundError as exc: # pragma: no cover - dependency availability varies by local runtime PERFORMANCE_IMPORT_ERROR = exc @unittest.skipIf( PERFORMANCE_IMPORT_ERROR is not None, f"performance scope dependencies unavailable: {PERFORMANCE_IMPORT_ERROR}", ) class PerformanceScopeTest(unittest.TestCase): def test_optimization_packages_cover_required_fields(self) -> None: packages = optimization_packages() self.assertEqual([package["package_id"] for package in packages], ["A", "B", "C", "D"]) for package in packages: self.assertTrue(package["affected_code_paths"]) self.assertIn("why_behavior_is_unchanged", package) self.assertIn("expected_latency_reduction", package) self.assertIn("validation_method", package) self.assertIn("rollback_criteria", package) def test_cached_field_topology_reuses_same_object_for_equivalent_zone_lists(self) -> None: env = build_real_field_environment() first = cached_field_topology_for_zones(env.zone_states) second = cached_field_topology_for_zones(list(env.zone_states)) self.assertIs(first, second) self.assertTrue(first.all_pairs_precomputed) def test_real_field_benchmark_smoke(self) -> None: result = run_real_field_benchmark_scenario(scenario_name=SCENARIO_IDLE, steps=1) self.assertEqual(result["scenario"], SCENARIO_IDLE) self.assertEqual(result["step_count"], 1) self.assertIn("engine_step_ms", result) self.assertIn("total_app_step_ms", result) self.assertIn("speed_assessments", result) self.assertIn("hotspot_ranking", result) if __name__ == "__main__": unittest.main()