fish_farm_env / tests /test_models.py
rahul24raj's picture
Upload folder using huggingface_hub
585cd37 verified
"""Tests for Pydantic models — requires openenv-core installed."""
import pytest
try:
from agentic_rl.models import FarmAction, FarmObservation, FarmState
HAS_OPENENV = True
except ImportError:
HAS_OPENENV = False
@pytest.mark.skipif(not HAS_OPENENV, reason="openenv-core not installed locally")
class TestFarmAction:
def test_default_action_valid(self):
action = FarmAction()
assert 0.0 <= action.feeding_rate <= 1.0
assert 0.0 <= action.aeration_rate <= 1.0
def test_action_schema_has_descriptions(self):
schema = FarmAction.model_json_schema()
assert "feeding_rate" in schema["properties"]
assert "description" in schema["properties"]["feeding_rate"]
@pytest.mark.skipif(not HAS_OPENENV, reason="openenv-core not installed locally")
class TestFarmObservation:
def test_observation_has_required_fields(self):
obs = FarmObservation(
done=False, reward=0.5,
avg_fish_weight=50.0, population=10000,
temperature=28.0, dissolved_oxygen=7.0,
ph=7.5, ammonia=0.1, nitrite=0.05,
day_in_cycle=1, time_of_day=8,
)
assert obs.done is False
assert obs.reward == 0.5
def test_observation_includes_feedback(self):
obs = FarmObservation(
done=False, reward=0.0,
avg_fish_weight=50.0, population=10000,
temperature=28.0, dissolved_oxygen=7.0,
ph=7.5, ammonia=0.1, nitrite=0.05,
day_in_cycle=1, time_of_day=8,
feedback="Fish are feeding eagerly."
)
assert "eagerly" in obs.feedback
@pytest.mark.skipif(not HAS_OPENENV, reason="openenv-core not installed locally")
class TestFarmState:
def test_state_has_episode_id(self):
state = FarmState(episode_id="test-123")
assert state.episode_id == "test-123"