Source code for dran.fitting.validation
# =========================================================================== #
# File: validation.py #
# Author: Pfesesani V. van Zyl #
# Email: pfesi24@gmail.com #
# =========================================================================== #
# Library imports
# --------------------------------------------------------------------------- #
import logging
import numpy as np
# =========================================================================== #
[docs]
def validate_xy(x: np.ndarray, y: np.ndarray, log: logging.Logger) -> int:
"""
Returns:
flag int. 0 means pass.
Raises:
ValueError on invalid inputs.
"""
log.debug("Validating x, y inputs")
x = np.asarray(x)
y = np.asarray(y)
if x.ndim != 1 or y.ndim != 1:
raise ValueError("x and y must be 1D arrays.")
if x.size != y.size:
raise ValueError("x and y must have the same length.")
if x.size < 5:
raise ValueError("Not enough samples to fit beam. Need >= 5.")
if not np.all(np.isfinite(x)) or not np.all(np.isfinite(y)):
raise ValueError("Found non-finite values in x or y.")
log.debug("Input validation passed")
return 0