Skip to main content

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

ineedvalidation-0.0.1.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

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

ineedvalidation-0.0.1-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

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

Hashes for ineedvalidation-0.0.1.tar.gz
Algorithm Hash digest
SHA256 9d82ddb003c28f1d5acd8a3edd5d664b24c1693f023716b5ccefe9e0dc674153
MD5 8829b73dbad29ffac194d3e5eb222148
BLAKE2b-256 3b4a4cc6f259f00f82bba663be0d7fbc3003b2094f9e9452c89286dabfc4fd82

See more details on using hashes here.

Provenance

The following attestation bundles were made for ineedvalidation-0.0.1.tar.gz:

Publisher: publish-to-pypi.yml on CoreySpohn/ineedvalidation

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for ineedvalidation-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 58ef54285f55f7578591dac507f5db60e854c7b7b180ccadce6f31d0278c5af0
MD5 901e470caa53e85e4563270e6550a454
BLAKE2b-256 2f0d577986b856e065da7c699d7222aec6d81f6f71fcfbf3cd540e5f62e75f09

See more details on using hashes here.

Provenance

The following attestation bundles were made for ineedvalidation-0.0.1-py3-none-any.whl:

Publisher: publish-to-pypi.yml on CoreySpohn/ineedvalidation

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 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