Files
PrimAITE/tests/test_train_eval_episode_steps.py

47 lines
1.6 KiB
Python

import pytest
from primaite import getLogger
from primaite.config.lay_down_config import dos_very_basic_config_path
from tests import TEST_CONFIG_ROOT
from tests.conftest import run_generic
_LOGGER = getLogger(__name__)
@pytest.mark.parametrize(
"temp_primaite_session",
[[TEST_CONFIG_ROOT / "train_episode_step.yaml", dos_very_basic_config_path()]],
indirect=True,
)
def test_eval_steps_differ_from_training(temp_primaite_session):
"""Uses PrimaiteSession class to compare number of episodes used for training and evaluation."""
with temp_primaite_session as train_session:
env = train_session.env
train_session.learn()
"""
Train_episode_step.yaml main config:
num_train_steps = 1
num_eval_steps = 10
When the YAML file changes from TRAIN to EVAL the episode step changes and uses the other config value.
The test is showing that 10 steps are running for evaluation and NOT 1 step as EVAL has been selected in the config.
"""
assert env.episode_steps == 10 # 30
# assert env.actual_episode_count == 10 # should be 10
@pytest.mark.parametrize(
"temp_primaite_session",
[[TEST_CONFIG_ROOT / "train_episode_step.yaml", dos_very_basic_config_path()]],
indirect=True,
)
def test_train_eval_config_option(temp_primaite_session):
"""Uses PrimaiteSession class to test number of episodes and steps used for TRAIN and EVAL option."""
with temp_primaite_session as train_session:
env = train_session.env
run_generic(env, env.training_config)
print(env.actual_episode_count, env.step_count, env.total_step_count)