Skip to main content

Dynamic Systems Testing Framework (DSTF)

quality

DSTF is regression and unit testing for the behaviour of time-dependent systems: Modelica libraries, FMUs, Julia models, or anything Python can compute. It finds a library's tests, simulates them with a backend — Dymola, OpenModelica, FMPy, Julia or Python, or one a plug-in adds — and scores each result against a stored baseline by the criteria you write. It reports a verdict per test on the command line, as JUnit XML for CI, and as a dashboard and a page per test in the browser.

DSTF is in beta: the command line and the testing.json keys may still change between minor versions; the changelog says when.

Install

$ uv tool install dynamic-systems-testing-framework

or pipx install dynamic-systems-testing-framework. The command is dstf. The author extra adds dstf author, a browser tool for writing criteria beside the plots they score; fmpy and om add what the FMPy and OpenModelica backends drive.

A first run

The Python example library needs no simulator. From a clone of this repository, in a Python environment with numpy and scipy:

$ git clone https://github.com/ORNL-Modelica/DynamicSystemsTestingFramework.git
$ cd DynamicSystemsTestingFramework
$ python3 -m pip install numpy scipy
$ dstf --config examples/python/PythonTestingLib/Resources/ReferenceResults/testing.json run

It runs three tests, compares each with its stored baseline, prints a verdict per test and opens the dashboard:

The dashboard: one row per test with its status, worst NRMSE, criteria passed and times

Documentation

https://dstf.readthedocs.io/ — a first run, setting up testing.json for your library, adding tests, reading results, baselines, criteria, CI, a page per simulator, writing a backend plug-in, and a reference of every command, key and comparison mode.

Changelog and licence

What changed in each version is in CHANGELOG.md. DSTF is released under the MIT licence: LICENSE.

Metadata

Release files for dynamic-systems-testing-framework 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dynamic-systems-testing-framework 1.1.0
File Size Uploaded
dynamic_systems_testing_framework-1.1.0.tar.gz 1.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dynamic-systems-testing-framework 1.1.0
File Interpreter ABI Platform
dynamic_systems_testing_framework-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.8 MB

Release files / dynamic_systems_testing_framework-1.1.0.tar.gz

Download URL dynamic_systems_testing_framework-1.1.0.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
737660e63a18e5e5c78e00c77a31a0ed354ae42f500a4ff71c33e7f456f766f3
BLAKE2b-256 checksum
How to use checksums
a4230a5b19c97f7bf8f4a9b3a43759a981b53ce79da38c5e838ea45056c939ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / dynamic_systems_testing_framework-1.1.0-py3-none-any.whl

Download URL dynamic_systems_testing_framework-1.1.0-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
0ab18c53083c15ec74016222dfbd9622f8240267cfd538fa43227ba49f740152
BLAKE2b-256 checksum
How to use checksums
48302d6248f522fbb3121ff9ffc4bb6a6abc509bc5c9888599500079f882128b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page