use mathru::statistics::{ distrib::{Continuous, Normal, T}, test::{Test, T as T_Test}, }; /// One sample, two tailed fn main() { let mean: f64 = 0.0; let alpha: f64 = 0.05; let x: Vec = vec![0.3, -0.4, 0.2, -0.4, 0.5]; let sample_size: u32 = x.len() as u32; let normal: Normal = Normal::from_data(&x); println!("x_bar: {}", normal.mean()); println!("standard deviation: {}", normal.variance().sqrt()); let test: T_Test = T_Test::one_sample(&x, mean); let t: f64 = T::new((sample_size - 1) as f64).pdf(1.0 - alpha); println!("test: {}", test.value()); println!("t(1.0 - alpha, n - 1) = {}", t); if -t <= test.value() && test.value() <= t { println!("H0 is accepted"); } else { println!("H0 is rejected and H1 is accepted"); } }