How can a wide variety of scientific disciplines, modeling technologies, and data types be engaged in systematic testing?
We provide SciUnit, a Pythonic framework for data-driven unit testing that separates the interface from the implementation, respecting the diversity of conventions for modeling and data collection.
SciUnit is a discipline-agnostic framework for model validation, handling all of the testing workflow by using a implementation-independent interface to models. SciUnit also contains code for visualization of model results, and command line tools for incorporating testing into continuous integration workflows.
The conference paper
my_model = MyModel(**my_args) # Instantiate a class that wraps your model of interest. my_test = MyTest(**my_params) # Instantiate a test that you write. score = my_test.judge() # Runs the test and return a rich score containing test results and more.
- Applies to any scientific domain
- Makes no assumptions about model implementation
- Implementation satisfied by modular Capabilities
- Flexible, drop-in scoring framework
- Rich test score visualizations
- Model parameter optimization
- Contingent test parameterization and execution
- Tight Jupyter integration
- Command line tools for headless systems
Community participation is encouraged!
Reproducible Research ID