Skip to main content

adaptivetesting is a Python package that can be used to simulate and evaluate custom CAT scenarios as well as implement them in real-world testing scenarios from a single codebase

Project description

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

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adaptivetesting-1.2.tar.gz (67.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adaptivetesting-1.2-py3-none-any.whl (97.9 kB view details)

Uploaded Python 3

File details

Details for the file adaptivetesting-1.2.tar.gz.

File metadata

  • Download URL: adaptivetesting-1.2.tar.gz
  • Upload date:
  • Size: 67.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for adaptivetesting-1.2.tar.gz
Algorithm Hash digest
SHA256 1a80a58a2f657a8dc1d663974bb5d020564c4ab7fddf008ffb944345ce1256f7
MD5 c2d99996c87df5b7cdc6090a764082b7
BLAKE2b-256 b4364bec0002b4e0751e349a91f487949290f814a9fb4782a3c88b20b399956a

See more details on using hashes here.

File details

Details for the file adaptivetesting-1.2-py3-none-any.whl.

File metadata

  • Download URL: adaptivetesting-1.2-py3-none-any.whl
  • Upload date:
  • Size: 97.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for adaptivetesting-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 80e343d344ffb0085d8e81585426a5567ed24e864003aa8588ab3ae801da9a8f
MD5 a320c539cf97b541bd67716a8a761a96
BLAKE2b-256 a2b5296ab9c1ef44d2121f8f66ee671e0a71c0d033ae1390c565fdd5028e750e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page