feat(env): Binary Alternation Curriculum (#278)

* binary alternation

---------

Co-authored-by: Andreas Koepf <andreas.koepf@provisio.com>
This commit is contained in:
Zafir Stojanovski 2025-03-07 22:44:32 +01:00 committed by GitHub
parent ce55d528ad
commit dfc28c94d6
3 changed files with 58 additions and 7 deletions

View file

@ -2,7 +2,11 @@
import pytest
from reasoning_gym.algorithmic.binary_alternation import BinaryAlternationConfig, BinaryAlternationDataset
from reasoning_gym.algorithmic.binary_alternation import (
BinaryAlternationConfig,
BinaryAlternationCurriculum,
BinaryAlternationDataset,
)
def test_binary_alternation_config_validation():
@ -102,3 +106,24 @@ def test_binary_alternation_answer():
# One shot example
string = "111000"
assert dataset._get_answer(string) == 1
def test_chain_sum_curriculum():
curriculum = BinaryAlternationCurriculum()
base_value = {"size": 150, "seed": 1}
base_cfg: BinaryAlternationConfig = curriculum.generate_configuration(base_value)
assert base_cfg.seed == 1
assert base_cfg.size == 150
assert base_cfg.min_n == 10 and base_cfg.max_n == 10
# test incrementing attribute levels
curriculum.increment_attr_level("n")
increased_cfg = curriculum.generate_configuration(base_value)
assert increased_cfg.min_n == 10 and increased_cfg.max_n == 50
# test decrementing attribute levels
curriculum.decrement_attr_level("n")
decreased_cfg = curriculum.generate_configuration(base_value)
assert decreased_cfg.min_n == 10 and decreased_cfg.max_n == 10