feat(env): Isomorphic Strings Curriculum (#292)

* isomorphic strings curriculum

---------

Co-authored-by: Andreas Köpf <andreas.koepf@xamla.com>
This commit is contained in:
Zafir Stojanovski 2025-03-08 01:56:14 +01:00 committed by GitHub
parent a7dd5f6680
commit e69ed78c26
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 65 additions and 8 deletions

View file

@ -4,7 +4,11 @@ import json
import pytest
from reasoning_gym.algorithmic.isomorphic_strings import IsomorphicStringsConfig, IsomorphicStringsDataset
from reasoning_gym.algorithmic.isomorphic_strings import (
IsomorphicStringsConfig,
IsomorphicStringsCurriculum,
IsomorphicStringsDataset,
)
def test_isomorphic_strings_config_validation():
@ -106,3 +110,24 @@ def test_isomorphic_strings_answer():
"",
)
assert dataset._check_isomorphic(s, t) == True
def test_isomorphic_strings_curriculum():
curriculum = IsomorphicStringsCurriculum()
base_value = {"size": 150, "seed": 1}
base_cfg: IsomorphicStringsConfig = 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
# test incrementing attribute levels
curriculum.increment_attr_level("string_length")
increased_cfg = curriculum.generate_configuration(base_value)
assert increased_cfg.min_string_length == 10 and increased_cfg.max_string_length == 50
# test incrementing attribute levels again
curriculum.increment_attr_level("string_length")
increased_cfg = curriculum.generate_configuration(base_value)
assert increased_cfg.min_string_length == 10 and increased_cfg.max_string_length == 100