All notable changes to this project are documented in this file.
- Code Quality
- Updated RuboCop configuration to handle new cops and resolve style warnings
- Fixed operator precedence ambiguity in Three-Parameter Model calculations
- Added MFA requirement to gemspec metadata (RuboCop requirement)
- This release maintains full backward compatibility with previous versions
- All 46 existing tests continue to pass
- Comprehensive performance benchmarking suite remains available via
bundle exec rake benchmark:all
-
Missing Data Strategies
- Introduced a
missing_strategyparameter for Rasch, TwoParameterModel, and ThreeParameterModel to handlenilresponses::ignore(default) – skip missing responses in log-likelihood and gradients.:treat_as_incorrect– interpretnilas0.:treat_as_correct– interpretnilas1.
- Updated RSpec tests to cover each strategy and ensure graceful handling of missing responses.
- Introduced a
-
Expanded Test Coverage
- Added tests for repeated fits, deterministic seeding, larger random datasets, and new edge cases (all-correct/all-incorrect).
- Improved specs for parameter clamping (discriminations, guessing in 2PL/3PL).
-
Adaptive Learning Rate Enhancements
- Enhanced convergence checks combining log-likelihood changes and average parameter updates.
- Clearer revert-and-decay logic if the likelihood decreases on a given step.
- Documentation / README
- Updated the README to reflect new missing data strategies, advanced usage (adaptive learning rate, parameter clamping), and test instructions.
- Added examples showcasing how to set
missing_strategyfor each model.
- This release remains backward-compatible with
0.1.xin terms of existing usage; the default:ignoremissing-data approach matches prior behavior. - If upgrading, simply update your gem and enjoy the new features.
- For more details, see the updated README and expanded test suites.
(If you have older versions below 0.2.0, you can keep them documented similarly, e.g., ## [0.1.x] ..., under this new entry.)