Source code for testing.output_validation.hdf5
"""HDF5 integration-output validators."""
from operator import methodcaller
from simtools.sim_events import validate_run_outputs
from simtools.testing import assertions
[docs]
def validate_datasets(path, required=None, minimum_rows=None):
"""Validate configured HDF5 datasets and their minimum row counts."""
if path.suffix.lower() not in (".hdf5", ".h5"):
raise AssertionError(f"HDF5 dataset checks require an HDF5 output file, got {path}.")
if required:
assertions.assert_hdf5_datasets(path, required)
if minimum_rows:
assertions.assert_hdf5_dataset_min_rows(path, minimum_rows)
[docs]
def validate_product(path, product):
"""Validate one structured HDF5 product using its registered validator."""
validator_name = f"validate_{product}_file"
try:
methodcaller(validator_name, path)(validate_run_outputs)
except AttributeError as exc:
raise ValueError(f"Unsupported HDF5 product '{product}'.") from exc
except TypeError as exc:
raise ValueError(f"HDF5 product validator '{validator_name}' is not callable.") from exc