rust_qrng 0.1.2

Tsotchkes quantum random number generator library with cryptographic, financial, and gaming applications converted to Rust
Documentation
// src/statistical/tests.rs

// Statistical tests module
// Note: Functions are imported but may appear unused due to conditional compilation
#[cfg(test)]
use crate::statistical::{mean, variance, standard_deviation, median, mode};

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_mean() {
        let data = vec![1.0, 2.0, 3.0, 4.0, 5.0];
        let expected_mean = 3.0;
        let calculated_mean = mean(&data);
        assert!((calculated_mean - expected_mean).abs() < f64::EPSILON);
    }

    #[test]
    fn test_variance() {
        let data = vec![1.0, 2.0, 3.0, 4.0, 5.0];
        let expected_variance = 2.0;
        let calculated_variance = variance(&data);
        assert!((calculated_variance - expected_variance).abs() < f64::EPSILON);
    }

    #[test]
    fn test_standard_deviation() {
        let data = vec![1.0, 2.0, 3.0, 4.0, 5.0];
        let expected_std_dev = 1.4142135623730951; // sqrt(2.0)
        let calculated_std_dev = standard_deviation(&data);
        assert!((calculated_std_dev - expected_std_dev).abs() < f64::EPSILON);
    }

    #[test]
    fn test_median() {
        let data = vec![1.0, 2.0, 3.0, 4.0, 5.0];
        let expected_median = 3.0;
        let calculated_median = median(&data);
        assert!((calculated_median - expected_median).abs() < f64::EPSILON);
    }

    #[test]
    fn test_mode() {
        let data = vec![1.0, 2.0, 2.0, 3.0, 4.0];
        let expected_mode = Some(2.0);
        let calculated_mode = mode(&data);
        assert_eq!(calculated_mode, expected_mode);
    }
}

pub fn calculate_mean(data: &[f64]) -> f64 {
    crate::statistical::mean(data)
}