Caesar cipher curriculum (#302)

* caesar cipher curriculum + tests
This commit is contained in:
vncntt 2025-03-08 23:23:32 -08:00 committed by GitHub
parent e0f8ef061d
commit fc908d4cf4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 83 additions and 4 deletions

View file

@ -2,7 +2,7 @@
import pytest
from reasoning_gym.algorithmic.caesar_cipher import CaesarCipherConfig, CaesarCipherDataset
from reasoning_gym.algorithmic.caesar_cipher import CaesarCipherConfig, CaesarCipherCurriculum, CaesarCipherDataset
def test_caesar_cipher_config_validation():
@ -98,3 +98,48 @@ def test_caesar_cipher_iteration():
# Test multiple iterations yield same items
assert items == list(dataset)
def test_caesar_cipher_curriculum():
curriculum = CaesarCipherCurriculum()
base_value = {"size": 150, "seed": 1}
base_cfg: CaesarCipherConfig = curriculum.generate_configuration(base_value)
assert base_cfg.seed == 1
assert base_cfg.size == 150
assert base_cfg.min_rotation == base_cfg.max_rotation == 5
assert base_cfg.min_words == base_cfg.max_words == 5
curriculum.increment_attr_level("rotation")
cfg = curriculum.generate_configuration(base_value)
assert cfg.min_rotation == 5
assert cfg.max_rotation == 10
curriculum.increment_attr_level("words")
cfg = curriculum.generate_configuration(base_value)
assert cfg.min_words == 5
assert cfg.max_words == 10
curriculum.increment_attr_level("rotation")
curriculum.increment_attr_level("words")
cfg = curriculum.generate_configuration(base_value)
assert cfg.min_rotation == 5
assert cfg.max_rotation == 15
assert cfg.min_words == 5
assert cfg.max_words == 15
curriculum.increment_attr_level("rotation")
curriculum.increment_attr_level("words")
cfg = curriculum.generate_configuration(base_value)
assert cfg.min_rotation == 5
assert cfg.max_rotation == 25
assert cfg.min_words == 5
assert cfg.max_words == 25
curriculum.decrement_attr_level("rotation")
curriculum.decrement_attr_level("words")
cfg = curriculum.generate_configuration(base_value)
assert cfg.min_rotation == 5
assert cfg.max_rotation == 15
assert cfg.min_words == 5
assert cfg.max_words == 15