pub mod fpha_hyperplanes;
pub mod hydro_energy_productivity;
pub mod hydro_geometry;
pub mod hydro_reference_volumes;
pub mod production_models;
pub mod scalar_parameters;
pub use fpha_hyperplanes::{FphaHyperplaneRow, parse_fpha_hyperplanes};
pub use hydro_energy_productivity::{HydroEnergyProductivityRow, parse_hydro_energy_productivity};
pub use hydro_geometry::{HydroGeometryRow, parse_hydro_geometry};
pub use hydro_reference_volumes::{
HydroReferenceVolumeFractionRow, HydroReferenceVolumeFractions,
build_hydro_reference_volume_fractions, parse_hydro_reference_volume_fractions,
};
pub use production_models::{
FittingWindow, FphaColumnLayout, ProductionModelConfig, SeasonConfig, SelectionMode,
StageRange, parse_production_models,
};
pub use scalar_parameters::{load_scalar_parameters_json, parse_scalar_parameters_json};
use crate::LoadError;
use std::path::Path;
pub fn load_hydro_geometry(path: Option<&Path>) -> Result<Vec<HydroGeometryRow>, LoadError> {
match path {
None => Ok(Vec::new()),
Some(p) => parse_hydro_geometry(p),
}
}
pub fn load_production_models(
path: Option<&Path>,
) -> Result<Vec<ProductionModelConfig>, LoadError> {
match path {
None => Ok(Vec::new()),
Some(p) => parse_production_models(p),
}
}
pub fn load_fpha_hyperplanes(path: Option<&Path>) -> Result<Vec<FphaHyperplaneRow>, LoadError> {
match path {
None => Ok(Vec::new()),
Some(p) => parse_fpha_hyperplanes(p),
}
}
pub fn load_hydro_reference_volume_fractions(
path: Option<&Path>,
) -> Result<Vec<HydroReferenceVolumeFractionRow>, LoadError> {
match path {
None => Ok(Vec::new()),
Some(p) => parse_hydro_reference_volume_fractions(p),
}
}
pub fn load_hydro_energy_productivity(
path: Option<&Path>,
) -> Result<Vec<HydroEnergyProductivityRow>, LoadError> {
match path {
None => Ok(Vec::new()),
Some(p) => parse_hydro_energy_productivity(p),
}
}
#[cfg(test)]
#[allow(clippy::doc_markdown, clippy::unwrap_used, clippy::panic)]
mod tests {
use super::*;
#[test]
fn test_load_production_models_none_returns_empty() {
let result = load_production_models(None).unwrap();
assert!(result.is_empty(), "expected empty vec for None path");
}
#[test]
fn test_load_fpha_hyperplanes_none_returns_empty() {
let result = load_fpha_hyperplanes(None).unwrap();
assert!(result.is_empty(), "expected empty vec for None path");
}
#[test]
fn test_load_hydro_geometry_none_returns_empty() {
let result = load_hydro_geometry(None).unwrap();
assert!(result.is_empty(), "expected empty vec for None path");
}
#[test]
fn test_load_hydro_energy_productivity_none_returns_empty() {
let result = load_hydro_energy_productivity(None).unwrap();
assert!(result.is_empty(), "expected empty vec for None path");
}
}