string manipulation curriculum (#306)

This commit is contained in:
Zafir Stojanovski 2025-03-09 18:12:35 +01:00 committed by GitHub
parent e1e05884ee
commit 7c7c783883
3 changed files with 69 additions and 3 deletions

View file

@ -2,7 +2,11 @@
import pytest
from reasoning_gym.algorithmic.string_manipulation import StringManipulationConfig, StringManipulationDataset
from reasoning_gym.algorithmic.string_manipulation import (
StringManipulationConfig,
StringManipulationCurriculum,
StringManipulationDataset,
)
def test_string_manipulation_config_validation():
@ -255,3 +259,28 @@ def test_string_manipulation_answer():
)
]
assert dataset._get_all_transforms("acab", rules)[-1] == "zzab"
def test_string_manipulation_curriculum():
curriculum = StringManipulationCurriculum()
base_value = {"size": 150, "seed": 1}
base_cfg: StringManipulationConfig = curriculum.generate_configuration(base_value)
assert base_cfg.seed == 1
assert base_cfg.size == 150
assert base_cfg.min_string_length == 10 and base_cfg.max_string_length == 10
assert base_cfg.min_num_rules == 5 and base_cfg.max_num_rules == 5
# test incrementing attribute levels
curriculum.increment_attr_level("string_length")
curriculum.increment_attr_level("num_rules")
increased_cfg = curriculum.generate_configuration(base_value)
assert increased_cfg.min_string_length == 10 and increased_cfg.max_string_length == 50
assert increased_cfg.min_num_rules == 5 and increased_cfg.max_num_rules == 10
# test decrementing attribute level for string_length again
curriculum.decrement_attr_level("string_length")
partially_decreased_cfg = curriculum.generate_configuration(base_value)
assert partially_decreased_cfg.min_string_length == 10 and partially_decreased_cfg.max_string_length == 10
assert partially_decreased_cfg.min_num_rules == 5 and partially_decreased_cfg.max_num_rules == 10