mirror of
https://github.com/open-thought/reasoning-gym.git
synced 2026-04-29 17:35:16 +00:00
Merge remote-tracking branch 'origin/main' into feat/curr-adj
This commit is contained in:
commit
4b9c155cef
9 changed files with 158 additions and 9 deletions
|
|
@ -2,7 +2,7 @@ from random import Random
|
|||
|
||||
import pytest
|
||||
|
||||
from reasoning_gym.arc import Arc1DConfig, Arc1DDataset
|
||||
from reasoning_gym.arc import Arc1DConfig, Arc1DCurriculum, Arc1DDataset
|
||||
|
||||
|
||||
def test_arc_1d_config_validation():
|
||||
|
|
@ -41,6 +41,7 @@ def test_arc_1d_items():
|
|||
assert "question" in item
|
||||
assert "answer" in item
|
||||
assert "metadata" in item
|
||||
assert "difficulty" in item["metadata"]
|
||||
|
||||
# Check metadata contents
|
||||
metadata = item["metadata"]
|
||||
|
|
@ -142,3 +143,44 @@ def test_arc_1d_generate_all_tasks():
|
|||
break
|
||||
assert i < 20
|
||||
print(task_name, j, i, x)
|
||||
|
||||
|
||||
def test_arc_1d_curriculum():
|
||||
"""Test the curriculum for complex arithmetic."""
|
||||
curriculum = Arc1DCurriculum()
|
||||
base_value = {"size": 150, "seed": 1}
|
||||
|
||||
base_cfg: Arc1DCurriculum = curriculum.generate_configuration(base_value)
|
||||
|
||||
assert base_cfg.seed == 1
|
||||
assert base_cfg.size == 150
|
||||
assert base_cfg.min_size == 10
|
||||
assert base_cfg.max_size == 25
|
||||
|
||||
# Test and validate increase in levels
|
||||
curriculum.increment_attr_level("size")
|
||||
|
||||
increased_cfg: Arc1DCurriculum = curriculum.generate_configuration(base_value)
|
||||
assert increased_cfg.min_size == 10
|
||||
assert increased_cfg.max_size == 50
|
||||
|
||||
# Test and validate decrease in levels
|
||||
curriculum.decrement_attr_level("size")
|
||||
|
||||
decreased_cfg: Arc1DCurriculum = curriculum.generate_configuration(base_value)
|
||||
assert decreased_cfg.min_size == 10
|
||||
assert decreased_cfg.max_size == 25
|
||||
|
||||
# Test upper bound boundary condition
|
||||
for _ in range(10):
|
||||
curriculum.increment_attr_level("size")
|
||||
upper_bound_cfg: Arc1DCurriculum = curriculum.generate_configuration(base_value)
|
||||
assert upper_bound_cfg.min_size == 10
|
||||
assert upper_bound_cfg.max_size == 100
|
||||
|
||||
# Test lower bound boundary condition
|
||||
for _ in range(10):
|
||||
curriculum.decrement_attr_level("size")
|
||||
lower_bound_cfg: Arc1DCurriculum = curriculum.generate_configuration(base_value)
|
||||
assert lower_bound_cfg.min_size == 10
|
||||
assert lower_bound_cfg.max_size == 25
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
|
||||
from reasoning_gym.logic.knights_knaves import KnightsKnavesConfig, KnightsKnavesDataset
|
||||
from reasoning_gym.logic.knights_knaves import KnightsKnavesConfig, KnightsKnavesCurriculum, KnightsKnavesDataset
|
||||
|
||||
|
||||
def test_config_validation():
|
||||
|
|
@ -234,3 +234,42 @@ def test_depth_constraint_specific_problem():
|
|||
solutions = KnightsKnavesDataset.find_solution(test_statements)
|
||||
assert len(solutions) == 1, "Should have exactly one solution"
|
||||
assert solutions[0] == (True, False, False)
|
||||
|
||||
|
||||
def test_curriculum():
|
||||
curriculum = KnightsKnavesCurriculum()
|
||||
|
||||
assert len(curriculum.attributes) == 3
|
||||
|
||||
base_value = {"size": 150, "seed": 1}
|
||||
|
||||
base_cfg = curriculum.generate_configuration(base_value)
|
||||
|
||||
assert base_cfg.seed == 1
|
||||
assert base_cfg.size == 150
|
||||
assert base_cfg.n_people == 2
|
||||
assert base_cfg.depth_constraint == 2
|
||||
|
||||
# test incrementing attribute levels
|
||||
curriculum.increment_attr_level("n_people")
|
||||
curriculum.increment_attr_level("depth_constraint")
|
||||
curriculum.increment_attr_level("width_constraint")
|
||||
|
||||
increased_cfg = curriculum.generate_configuration(base_value)
|
||||
assert increased_cfg.n_people == 3
|
||||
assert increased_cfg.depth_constraint == 3
|
||||
assert increased_cfg.width_constraint == 3
|
||||
# test decrementing attribute level
|
||||
curriculum.decrement_attr_level("n_people")
|
||||
partially_decreased_cfg = curriculum.generate_configuration(base_value)
|
||||
assert partially_decreased_cfg.n_people == 2
|
||||
assert partially_decreased_cfg.depth_constraint == 3
|
||||
assert partially_decreased_cfg.width_constraint == 3
|
||||
|
||||
curriculum.increment_attr_level("n_people")
|
||||
curriculum.increment_attr_level("depth_constraint")
|
||||
curriculum.increment_attr_level("width_constraint")
|
||||
increased_cfg = curriculum.generate_configuration(base_value)
|
||||
assert increased_cfg.n_people == 3
|
||||
assert increased_cfg.depth_constraint == 4
|
||||
assert increased_cfg.width_constraint == 4
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue