numeric_statistics/f64/
all.rs1pub struct All {
2 pub min: f64,
3 pub max: f64,
4 pub average: f64,
5 pub variance: f64,
6 pub standard_deviation: f64,
7}
8
9use crate::f64::{
10 min::*,
11 max::*,
12 average::*,
13 variance::*,
14 standard_deviation::*,
15};
16
17impl All {
18 pub fn new<T: AsRef<[f64]>>(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_f64;
38
39 #[test]
40 fn test_new() {
41 let x = &[1.0, 2.0, 4.0];
42 let all: All = All::new(x);
43 assert_eq!(all.min, 1.0);
44 assert_eq!(all.max, 4.0);
45 assert_eq_f64!(all.average, 2.3333333333333335);
46 assert_eq_f64!(all.variance, 2.3333333333333335);
47 assert_eq_f64!(all.standard_deviation, 1.5275252316519465);
48 }
49
50}