string insertion curriculum (#305)

This commit is contained in:
Zafir Stojanovski 2025-03-09 18:11:29 +01:00 committed by GitHub
parent 91aa3f3ae2
commit e1e05884ee
3 changed files with 56 additions and 4 deletions

View file

@ -2,7 +2,11 @@
import pytest
from reasoning_gym.algorithmic.string_insertion import StringInsertionConfig, StringInsertionDataset
from reasoning_gym.algorithmic.string_insertion import (
StringInsertionConfig,
StringInsertionCurriculum,
StringInsertionDataset,
)
def test_string_insertion_config_validation():
@ -102,3 +106,24 @@ def test_string_insertion_answer():
answer = "['A', 'A', 'B', 'C', 'D', 'A', 'E', 'E', 'E', 'E', 'E', 'E', 'E', 'B', 'C', 'D', 'E', 'B', 'A', 'A', 'A', 'A', 'A']"
entry = {"answer": "AABCDAEEEEEEEBCDEBAAAAA"}
assert dataset.score_answer(answer, entry) == 0.1
def test_string_insertion_curriculum():
curriculum = StringInsertionCurriculum()
base_value = {"size": 150, "seed": 1}
base_cfg: StringInsertionConfig = 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 == 50
# 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 == 100
# 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 == 50