numeric_statistics/f32/
all.rs

1pub struct All {
2    pub min: f32,
3    pub max: f32,
4    pub average: f32,
5    pub variance: f32,
6    pub standard_deviation: f32,
7}
8
9use crate::f32::{
10    min::*,
11    max::*,
12    average::*,
13    variance::*,
14    standard_deviation::*,
15};
16
17impl All {
18    pub fn new<T: AsRef<[f32]>>(values: T) -> All {
19        let min = min(&values);
20        let max = max(&values);
21        let average = average(&values);
22        let variance = variance_with_average(&values, average);
23        let standard_deviation = standard_deviation_with_variance(variance);
24        All { 
25            min, 
26            max, 
27            average, 
28            variance,
29            standard_deviation  
30        }
31    }
32}
33
34#[cfg(test)]
35mod test {
36    use super::*;
37    use crate::assert_eq_f32;
38
39    #[test]
40    fn test_new() {
41        let x = &[1.0, 2.0, 4.0];
42        let all = All::new(x);
43        assert_eq!(all.min, 1.0);
44        assert_eq!(all.max, 4.0);
45        assert_eq_f32!(all.average, 2.3333333);
46        assert_eq_f32!(all.variance, 2.3333333);
47        assert_eq_f32!(all.standard_deviation, 1.5275253);
48    }
49
50}