ineedvalidation
Declare which physical case, evidence tier and response quantity a test exercises; collect the declarations across repositories into an evidence ledger; lint and render a validation hierarchy from node notes plus that ledger.
The vocabulary follows Oberkampf and Roy, Verification and Validation in Scientific Computing (2010): a validation hierarchy of unit, benchmark, subsystem and system cases, and a strict separation between verification (the code solves the equations correctly) and validation (the equations describe the measured world).
Marking a test
import ineedvalidation as inv
@inv.case("free-space-propagation", "A", srq="on-axis intensity")
def test_matches_closed_form():
...
@inv.case("free-space-propagation", "B", ref="other-code")
def test_matches_independent_code():
...
@inv.seam("optics", "detector")
def test_photon_scale_anchor():
...
@inv.regression
def test_frozen_output():
...
Tiers: A code verification, B cross-code benchmark, C solution verification, D validation against measured data. Regression tests are excluded from every tier.
The markers register through a pytest plugin entry point, so installing the package is the only setup a repository needs.
Collecting the evidence
$ pytest --inv-evidence evidence/mylib.json
One JSON file per repository lists every marked test, its case, its tier and the outcome it reached. A table in pyproject.toml can assign a case and tier by test path, so the tagging cost is per directory rather than per test.
Linting and rendering a hierarchy
$ ineedvalidation lint hierarchy/
$ ineedvalidation render hierarchy/
The hierarchy is a directory of Markdown notes with YAML frontmatter, one per case. The lint checks the notes for internal consistency and checks them against the collected tests in both directions: a case no node owns, a node with no tests, a response quantity a node does not list, or a validation level claimed without a passing test that supports it. The renderer draws the tiered figure through d2, with named views and optional hand-edited overrides for figures that have to look right in a talk.
Status
Pre-alpha. The markers, the evidence collector, the hierarchy lint and the renderer work; the API is not yet stable.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ineedvalidation-0.0.1.tar.gz.
File metadata
- Download URL: ineedvalidation-0.0.1.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d82ddb003c28f1d5acd8a3edd5d664b24c1693f023716b5ccefe9e0dc674153
|
|
| MD5 |
8829b73dbad29ffac194d3e5eb222148
|
|
| BLAKE2b-256 |
3b4a4cc6f259f00f82bba663be0d7fbc3003b2094f9e9452c89286dabfc4fd82
|
Provenance
The following attestation bundles were made for ineedvalidation-0.0.1.tar.gz:
Publisher:
publish-to-pypi.yml on CoreySpohn/ineedvalidation
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ineedvalidation-0.0.1.tar.gz -
Subject digest:
9d82ddb003c28f1d5acd8a3edd5d664b24c1693f023716b5ccefe9e0dc674153 - Sigstore transparency entry: 2798056479
- Sigstore integration time:
-
Permalink:
CoreySpohn/ineedvalidation@9907fa734346a8f87980ebc89d7caf3a1304f1c8 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/CoreySpohn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9907fa734346a8f87980ebc89d7caf3a1304f1c8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ineedvalidation-0.0.1-py3-none-any.whl.
File metadata
- Download URL: ineedvalidation-0.0.1-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58ef54285f55f7578591dac507f5db60e854c7b7b180ccadce6f31d0278c5af0
|
|
| MD5 |
901e470caa53e85e4563270e6550a454
|
|
| BLAKE2b-256 |
2f0d577986b856e065da7c699d7222aec6d81f6f71fcfbf3cd540e5f62e75f09
|
Provenance
The following attestation bundles were made for ineedvalidation-0.0.1-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on CoreySpohn/ineedvalidation
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ineedvalidation-0.0.1-py3-none-any.whl -
Subject digest:
58ef54285f55f7578591dac507f5db60e854c7b7b180ccadce6f31d0278c5af0 - Sigstore transparency entry: 2798056619
- Sigstore integration time:
-
Permalink:
CoreySpohn/ineedvalidation@9907fa734346a8f87980ebc89d7caf3a1304f1c8 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/CoreySpohn
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9907fa734346a8f87980ebc89d7caf3a1304f1c8 -
Trigger Event:
push
-
Statement type: