feat(env): Prime Factorization (#344)

* prime factorization

* lint
This commit is contained in:
Zafir Stojanovski 2025-03-13 21:02:20 +01:00 committed by GitHub
parent 36a7ca1150
commit 4f45c8d655
3 changed files with 52 additions and 4 deletions

View file

@ -2,7 +2,11 @@
import pytest
from reasoning_gym.arithmetic.prime_factorization import PrimeFactorizationConfig, PrimeFactorizationDataset
from reasoning_gym.arithmetic.prime_factorization import (
PrimeFactorizationConfig,
PrimeFactorizationCurriculum,
PrimeFactorizationDataset,
)
def test_prime_factorization_config_validation():
@ -124,3 +128,24 @@ def is_prime(n: int) -> bool:
if n % i == 0:
return False
return True
def test_prime_factorization_curriculum():
curriculum = PrimeFactorizationCurriculum()
base_value = {"size": 150, "seed": 1}
base_cfg: PrimeFactorizationConfig = curriculum.generate_configuration(base_value)
assert base_cfg.seed == 1
assert base_cfg.size == 150
assert base_cfg.min_value == 10 and base_cfg.max_value == 1_000
# test incrementing attribute levels
curriculum.increment_attr_level("value")
increased_cfg = curriculum.generate_configuration(base_value)
assert increased_cfg.min_value == 10 and increased_cfg.max_value == 10_000
# test decrementing attribute level for value again
curriculum.decrement_attr_level("value")
partially_decreased_cfg = curriculum.generate_configuration(base_value)
assert partially_decreased_cfg.min_value == 10 and partially_decreased_cfg.max_value == 1_000