Skip to content

Qartod manual suites - #325

Draft
abkfenris wants to merge 2 commits into
fx-water-level-suitesfrom
qartod-manual-suites
Draft

abkfenris wants to merge 2 commits into
fx-water-level-suitesfrom
qartod-manual-suites

Conversation

@abkfenris

@abkfenris abkfenris commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Adds dynamic QARTOD test suites from the manuals using the fx parsing language in YAML.

Standards:

  • mass_concentration_of_oxygen_in_sea_water
  • sea_surface_height_above_geopotential_datum
  • sea_surface_temperature
  • sea_water_ph_reported_on_total_scale
  • sea_water_practical_salinity
  • sea_water_temperature
  • wind_speed

Replaces #321 (recreated as a same-repo stacked PR with linear history).

@abkfenris
abkfenris added this pull request to stack #324 October 14, 2026 14:42
@abkfenris abkfenris mentioned this pull request Oct 14, 2026
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Javascript size report

Size
Base (fx-water-level-suites) 1122.4 KB
PR 1183.7 KB
Delta +61.2 KB (+5.5%)

❌ Size increased +5.5% — exceeds the 5% threshold.

@abkfenris abkfenris left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be possible to generate only a subset of test configs, and interpret what arguments/constants are needed for just those configs.

Currently:

cargo run qc config sea_surface_temperature qartod_manual mean=5 std=3 sensor_min=1 sensor_max=1
5
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s
     Running `target/debug/standard_knowledge qc config sea_surface_temperature qartod_manual mean=5 std=3 sensor_min=1 sensor_max=15`
Error generating configuration: Missing required argument: min_var_fail

In theory the gross_range_test shouldn't need min_var_fail

https://github.com/ioos/standard_knowledge/pull/325/changes#diff-45ab8f55b2e6f356b047ab8f8bbc83efcebfba6b39d24d16321d1a50379ab987R204-R206

If a --tests=gross_range_test,flat_line_test type of argument that could limit to specific tests to get it to pass, and if that's not passed, list what variables are needed for which test in the error, rather than just the first missing argument.

claude and others added 2 commits November 10, 2026 19:04
Adds ioos_qc's attenuated_signal_test to the config schema, and a
qartod_manual suite for the standards covered by the Temperature and
Salinity, Water Level, Dissolved Oxygen, pH and Winds manuals. Each
derives its thresholds with fx expressions from statistics of a
historical record that the caller passes as arguments, following the
manuals' recipes (for example N_DEV x SD over TIM_DEV for rate of
change, converted to units per second).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LuWEgV29DBhxXmYcc8jnmJ
…gument

`qc config --tests gross_range_test,flat_line_test` (and
TestSuite.scaffold(arguments, tests=[...]) in Python) builds only those
tests, and only requires the arguments and `let` constants they read.
The missing-argument error now lists, for each argument, the tests that
need it.

Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-fable-5-2
@abkfenris
abkfenris force-pushed the qartod-manual-suites branch from 63a7438 to 1e4accd Compare November 11, 2026 00:28

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants