reference_interval/
normal.rs1use num_traits::{Float, NumCast};
2use crate::mean::mean;
3use crate::standard_deviation::standard_deviation;
4use rand_distr::{Distribution, Normal, StandardNormal};
5
6#[allow(dead_code)]
8pub fn normal<F>(lower: F, upper: F) -> Normal<F>
9where
10 F: Float + NumCast,
11 StandardNormal: Distribution<F>
12{
13 Normal::new(mean(lower, upper), standard_deviation(lower, upper)).expect("Normal::new")
14}
15
16#[cfg(test)]
17mod tests {
18 use super::*;
19
20 #[test]
21 fn test() {
22 let mut rng = rand::rng();
23 let normal = normal(11.0, 97.0);
24 let sample = normal.sample(&mut rng);
25 assert!(sample > 0.0);
26 }
27
28}