use mathru::statistics::{
distrib::{Continuous, Normal, T},
test::{Test, T as T_Test},
};
fn main() {
let mean: f64 = 0.0;
let alpha: f64 = 0.05;
let x: Vec<f64> = vec![0.3, -0.4, 0.2, -0.4, 0.5];
let sample_size: u32 = x.len() as u32;
let normal: Normal<f64> = Normal::from_data(&x);
println!("x_bar: {}", normal.mean());
println!("standard deviation: {}", normal.variance().sqrt());
let test: T_Test<f64> = 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");
}
}