Spaces:
Sleeping
Sleeping
| # tests/conftest.py | |
| """pytest fixtures for AquaGuard-RL tests.""" | |
| import sys | |
| import os | |
| import pytest | |
| # Add src to path | |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src")) | |
| def env(): | |
| """Create and return a fresh AquaGuardEnvironment instance.""" | |
| from server.aquaguard_environment import AquaGuardEnvironment | |
| return AquaGuardEnvironment() | |
| def env_reset(env): | |
| """Return environment after reset with baseline task.""" | |
| obs = env.reset(task="baseline", seed=42) | |
| return env, obs | |
| def default_action(): | |
| """Return a default valid AquaGuardAction.""" | |
| from models import AquaGuardAction | |
| return AquaGuardAction() | |
| def conservative_action(): | |
| """Return a water-conservative action.""" | |
| from models import AquaGuardAction | |
| return AquaGuardAction( | |
| crop_allocation={ | |
| "rice": 0.15, "wheat": 0.20, "millet": 0.30, | |
| "pulses": 0.20, "oilseeds": 0.10, "vegetables": 0.05, | |
| }, | |
| water_quotas={"zone_a": 600, "zone_b": 550, "zone_c": 500}, | |
| irrigation_methods={"zone_a": "drip", "zone_b": "drip", "zone_c": "drip"}, | |
| extraction_limits={"zone_a": 15.0, "zone_b": 12.0, "zone_c": 10.0}, | |
| subsidy_adjustments={"rice": -0.15, "wheat": -0.05, "millet": 0.15, "pulses": 0.10}, | |
| justification="Reducing water-intensive crops, deploying drip irrigation.", | |
| ) |