use numrs2::array::Array;
use numrs2::random::{self, set_seed};
fn main() {
set_seed(42);
println!("Normal distribution reference values:");
let normal_samples = random::normal(0.0, 1.0, &[5]).unwrap();
let values = normal_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {:.16},", val);
}
println!("];");
println!();
println!("Beta distribution reference values:");
let beta_samples = random::beta(2.0, 5.0, &[5]).unwrap();
let values = beta_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {:.16},", val);
}
println!("];");
println!();
println!("Uniform distribution reference values:");
let uniform_samples = random::uniform(0.0, 1.0, &[5]).unwrap();
let values = uniform_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {:.16},", val);
}
println!("];");
println!();
println!("Gamma distribution reference values:");
let gamma_samples = random::gamma(2.0, 3.0, &[5]).unwrap();
let values = gamma_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {:.16},", val);
}
println!("];");
println!();
println!("Integers distribution reference values:");
let int_samples = random::integers(1, 100, &[10]).unwrap();
let values = int_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {},", val);
}
println!("];");
println!();
println!("Binomial distribution reference values:");
let binomial_samples = random::binomial::<u64>(20, 0.3, &[5]).unwrap();
let values = binomial_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {},", val);
}
println!("];");
println!();
println!("Poisson distribution reference values:");
let poisson_samples = random::poisson::<u64>(5.0, &[5]).unwrap();
let values = poisson_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {},", val);
}
println!("];");
println!();
println!("Multivariate normal distribution reference values:");
let mean = vec![1.0, 2.0];
let cov_data = vec![1.0, 0.5, 0.5, 2.0];
let cov = Array::from_vec(cov_data).reshape(&[2, 2]);
let mvn_samples = random::multivariate_normal(&mean, &cov, Some(&[2])).unwrap();
let values = mvn_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {:.16},", val);
}
println!("];");
println!();
println!("Exponential distribution reference values:");
let exp_samples = random::exponential(2.0, &[5]).unwrap();
let values = exp_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {:.16},", val);
}
println!("];");
println!();
println!("Lognormal distribution reference values:");
let lognormal_samples = random::lognormal(0.0, 1.0, &[5]).unwrap();
let values = lognormal_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {:.16},", val);
}
println!("];");
println!();
println!("Weibull distribution reference values:");
let weibull_samples = random::weibull(2.0, 3.0, &[5]).unwrap();
let values = weibull_samples.to_vec();
println!("let expected_values = vec![");
for val in values {
println!(" {:.16},", val);
}
println!("];");
}