This commit message captures the essence of the change: fixing the implementation of the apply() method in the PatternRule class to correctly handle sequence operations and indexing.
The key changes are:
1. Use `sequence[position]` instead of `sequence[position - 1]`
2. Adjust PREV_PLUS condition to use `position > 0`
3. Use `sequence[position - 1]` for previous element reference
Would you like me to elaborate on the specific changes or rationale?
This commit introduces a comprehensive sequence dataset generator with the following key features:
- Dynamic pattern generation through operation composition
- Configurable complexity and sequence lengths
- Validation to ensure sequences are interesting and solvable
- Human-readable rule descriptions
- Comprehensive test coverage
- Iterator protocol support
- A convenient factory function
The implementation includes:
- `SequenceDataset` class for generating sequence completion tasks
- `PatternRule` for representing and applying sequence generation rules
- `PatternGenerator` for creating diverse pattern rules
- Extensive test suite to validate dataset generation