diff --git a/README.md b/README.md index 1f2d9a79..e551dffc 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ The goal is to generate virtually infinite data with adjustable complexity. - `WordReversalDataset`: Reverse word order in text spans #### Cognition Tasks -- `SequenceDataset`: Generate number sequences with discoverable patterns +- `NumberSequenceDataset`: Generate number sequences with discoverable patterns #### Logic Tasks - `PropositionalLogicDataset`: Generate propositional logic reasoning problems @@ -103,9 +103,9 @@ Example data: #### Sequence Completion Generates number sequence completion tasks with dynamic pattern generation: ```python -from reasoning_gym.cognition import SequenceDataset, SequenceConfig +from reasoning_gym.cognition import NumberSequenceDataset, NumberSequenceConfig -config = SequenceConfig( +config = NumberSequenceConfig( min_terms=4, # Minimum visible terms max_terms=8, # Maximum visible terms min_value=-100, # Minimum allowed number @@ -115,7 +115,7 @@ config = SequenceConfig( seed=42 # For reproducibility ) -dataset = SequenceDataset(config) +dataset = NumberSequenceDataset(config) for item in dataset: print(item) ``` diff --git a/reasoning_gym/cognition/__init__.py b/reasoning_gym/cognition/__init__.py index bbb00ad2..e6cb9bce 100644 --- a/reasoning_gym/cognition/__init__.py +++ b/reasoning_gym/cognition/__init__.py @@ -6,6 +6,6 @@ Cognition tasks for training reasoning capabilities: - Working memory """ -from .sequences import SequenceConfig, SequenceDataset, sequence_dataset +from .number_sequences import NumberSequenceConfig, NumberSequenceDataset, sequence_dataset -__all__ = ["SequenceDataset", "SequenceConfig", "sequence_dataset"] +__all__ = ["NumberSequenceDataset", "NumberSequenceConfig", "sequence_dataset"] diff --git a/reasoning_gym/cognition/sequences.py b/reasoning_gym/cognition/number_sequences.py similarity index 96% rename from reasoning_gym/cognition/sequences.py rename to reasoning_gym/cognition/number_sequences.py index 311396b2..cfd80815 100644 --- a/reasoning_gym/cognition/sequences.py +++ b/reasoning_gym/cognition/number_sequences.py @@ -20,7 +20,7 @@ class Operation(Enum): @dataclass -class SequenceConfig: +class NumberSequenceConfig: """Configuration for sequence generation""" min_terms: int = 4 # Minimum visible terms @@ -151,10 +151,10 @@ class PatternGenerator: return True -class SequenceDataset(ProceduralDataset): +class NumberSequenceDataset(ProceduralDataset): """Generates number sequence completion tasks with dynamic pattern generation""" - def __init__(self, config: SequenceConfig): + def __init__(self, config: NumberSequenceConfig): self.config = config self.config.validate() super().__init__(seed=config.seed, size=config.size) @@ -208,9 +208,9 @@ def sequence_dataset( max_complexity: int = 3, seed: Optional[int] = None, size: int = 500, -) -> SequenceDataset: - """Create a SequenceDataset with the given configuration.""" - config = SequenceConfig( +) -> NumberSequenceDataset: + """Create a NumberSequenceDataset with the given configuration.""" + config = NumberSequenceConfig( min_terms=min_terms, max_terms=max_terms, min_value=min_value, @@ -219,4 +219,4 @@ def sequence_dataset( seed=seed, size=size, ) - return SequenceDataset(config) + return NumberSequenceDataset(config) diff --git a/tests/test_sequences.py b/tests/test_number_sequences.py similarity index 72% rename from tests/test_sequences.py rename to tests/test_number_sequences.py index 883be954..5438f4de 100644 --- a/tests/test_sequences.py +++ b/tests/test_number_sequences.py @@ -1,20 +1,20 @@ import pytest -from reasoning_gym.cognition.sequences import Operation, PatternGenerator, PatternRule, SequenceConfig, SequenceDataset +from reasoning_gym.cognition.number_sequences import Operation, PatternRule, NumberSequenceConfig, NumberSequenceDataset def test_sequence_config_validation(): """Test that invalid configs raise appropriate errors""" with pytest.raises(AssertionError): - config = SequenceConfig(min_terms=3) # Too few terms + config = NumberSequenceConfig(min_terms=3) # Too few terms config.validate() with pytest.raises(AssertionError): - config = SequenceConfig(min_terms=6, max_terms=5) + config = NumberSequenceConfig(min_terms=6, max_terms=5) config.validate() with pytest.raises(AssertionError): - config = SequenceConfig(min_value=100, max_value=0) + config = NumberSequenceConfig(min_value=100, max_value=0) config.validate() @@ -37,9 +37,9 @@ def test_pattern_rule(): def test_sequence_dataset_deterministic(): """Test that dataset generates same items with same seed""" - config = SequenceConfig(seed=42, size=10) - dataset1 = SequenceDataset(config) - dataset2 = SequenceDataset(config) + config = NumberSequenceConfig(seed=42, size=10) + dataset1 = NumberSequenceDataset(config) + dataset2 = NumberSequenceDataset(config) for i in range(len(dataset1)): assert dataset1[i] == dataset2[i] @@ -47,8 +47,8 @@ def test_sequence_dataset_deterministic(): def test_sequence_dataset_items(): """Test basic properties of generated items""" - config = SequenceConfig(min_terms=4, max_terms=6, max_complexity=2, size=50, seed=42) - dataset = SequenceDataset(config) + config = NumberSequenceConfig(min_terms=4, max_terms=6, max_complexity=2, size=50, seed=42) + dataset = NumberSequenceDataset(config) for i in range(len(dataset)): item = dataset[i] @@ -67,8 +67,8 @@ def test_sequence_dataset_items(): def test_sequence_dataset_iteration(): """Test that iteration respects dataset size""" - config = SequenceConfig(size=5, seed=42) - dataset = SequenceDataset(config) + config = NumberSequenceConfig(size=5, seed=42) + dataset = NumberSequenceDataset(config) items = list(dataset) assert len(items) == config.size