stock-trek 0.2.3

Stock Trek time-series analysis
Documentation
#[cfg(feature = "python")]
use pyo3::{exceptions::PyRuntimeError, pyfunction, PyResult};

#[cfg(feature = "python")]
#[pyfunction]
pub fn augmented_dickey_fuller(
    time_series_values: Vec<f64>,
    maximum_lag: usize,
) -> PyResult<(f64, f64)> {
    let result =
        crate::statistics::hypothesis::augmented_dickey_fuller(&time_series_values, maximum_lag)
            .map_err(|e| PyRuntimeError::new_err(e.to_string()))?;
    Ok(result)
}

#[cfg(feature = "python")]
#[pyfunction]
pub fn kwiatkowski_phillips_schmidt_shin(time_series_values: Vec<f64>) -> PyResult<(f64, f64)> {
    let result =
        crate::statistics::hypothesis::kwiatkowski_phillips_schmidt_shin(&time_series_values)
            .map_err(|e| PyRuntimeError::new_err(e.to_string()))?;
    Ok(result)
}

#[cfg(feature = "python")]
#[pyfunction]
pub fn ljung_box(time_series_values: Vec<f64>, number_of_lags: usize) -> PyResult<f64> {
    let result = crate::statistics::hypothesis::ljung_box(&time_series_values, number_of_lags)
        .map_err(|e| PyRuntimeError::new_err(e.to_string()))?;
    Ok(result)
}

#[cfg(feature = "python")]
#[pyfunction]
pub fn durbin_watson(residual_values: Vec<f64>) -> PyResult<f64> {
    let result = crate::statistics::hypothesis::durbin_watson(&residual_values)
        .map_err(|e| PyRuntimeError::new_err(e.to_string()))?;
    Ok(result)
}

#[cfg(feature = "python")]
#[pyfunction]
pub fn jarque_bera(time_series_values: Vec<f64>) -> PyResult<(f64, f64)> {
    let result = crate::statistics::hypothesis::jarque_bera(&time_series_values)
        .map_err(|e| PyRuntimeError::new_err(e.to_string()))?;
    Ok(result)
}