adaptivetesting
An open-source Python package for simplified, customizable Computerized Adaptive Testing (CAT) using Bayesian methods.
Key Features
- Bayesian Methods: Built-in support for Bayesian ability estimation with customizable priors
- Flexible Architecture: Object-oriented design with abstract classes for easy extension
- Item Response Theory: Full support for 1PL, 2PL, 3PL, and 4PL models, GRM, GPCM
- Multiple Estimators:
- Maximum Likelihood Estimation (MLE)
- Bayesian Modal Estimation (BM)
- Expected A Posteriori (EAP)
- Item Selection Strategies: Maximum information criterion
- Content Balancing: Maximum Priority Index, Weighted Penalty Model
- Exposure Control: Randomesque Item Selection, Maximum Priority Index
- Simulation Framework: Comprehensive tools for CAT simulation and evaluation
- Real-world Application: Direct transition from simulation to production testing
- Stopping Criteria: Support for standard error and test length criteria
- Data Management: Built-in support for CSV and pickle data formats
Installation
Install from PyPI using pip:
pip install adaptivetesting
For the latest development version:
pip install git+https://github.com/condecon/adaptivetesting
Documentation
You can find our documentation in the GitHub wiki.
Contributing
We welcome contributions! Please see our GitHub repository for:
- Issue tracking
- Feature requests
- Pull request guidelines
- Development setup
Research and Applications
This package is designed for researchers and practitioners in:
- Educational assessment
- Psychological testing
- Cognitive ability measurement
- Adaptive learning systems
- Psychometric research
The package facilitates the transition from research simulation to real-world testing applications without requiring major code modifications.
Citation
If you use this package for your academic work, please provide the following reference: Engicht, J., Bee, R. M., & Koch, T. (2025). Customizable Bayesian Adaptive Testing with Python – The adaptivetesting Package. Open Science Framework. https://doi.org/10.31219/osf.io/d2xge_v1
@online{engichtCustomizableBayesianAdaptive2025,
title = {Customizable {{Bayesian Adaptive Testing}} with {{Python}} – {{The}} Adaptivetesting {{Package}}},
author = {Engicht, Jonas and Bee, R. Maximilian and Koch, Tobias},
date = {2025-08-06},
eprinttype = {Open Science Framework},
doi = {10.31219/osf.io/d2xge_v1},
url = {https://osf.io/d2xge_v1},
pubstate = {prepublished}
}
License
This project is licensed under the terms specified in the LICENSE file.
Metadata
Release files for adaptivetesting 1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| adaptivetesting-1.2.1.tar.gz | 67.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| adaptivetesting-1.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 165.8 kB
Release files / adaptivetesting-1.2.1.tar.gz
| Download URL | adaptivetesting-1.2.1.tar.gz |
|---|---|
| Size | 67.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e7034a5675bd2d94ae5548424f4dc9b83409f98cb8e18acdfd20b90d6a27bd0
|
|
BLAKE2b-256 checksum How to use checksums |
bd748ca5d7c8a2ad26fe69afee7b7f2d20ca8d4662a0d1160431f14a54f058fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / adaptivetesting-1.2.1-py3-none-any.whl
| Download URL | adaptivetesting-1.2.1-py3-none-any.whl |
|---|---|
| Size | 98.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
57dda94eaf2cca1e54c615aecc79fe569b46054b1a4ff5120806b9890a31403c
|
|
BLAKE2b-256 checksum How to use checksums |
4b128a1c136e1a86fe250351148b3d1585fdd9c85726b2ebd0e16bcf7ecda279
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|