1+ extern crate approx;
2+ use std:: f64;
3+ use ndarray:: { Array1 , array} ;
4+ use approx:: abs_diff_eq;
5+
6+ #[ test]
7+ fn test_mean_with_nan_values ( ) {
8+ let a = array ! [ f64 :: NAN , 1. ] ;
9+ assert ! ( a. mean( ) . unwrap( ) . is_nan( ) ) ;
10+ }
11+
12+ #[ test]
13+ fn test_mean_with_empty_array_of_floats ( ) {
14+ let a: Array1 < f64 > = array ! [ ] ;
15+ assert ! ( a. mean( ) . is_none( ) ) ;
16+ }
17+
18+ #[ test]
19+ fn test_mean_with_array_of_floats ( ) {
20+ let a: Array1 < f64 > = array ! [
21+ 0.99889651 , 0.0150731 , 0.28492482 , 0.83819218 , 0.48413156 ,
22+ 0.80710412 , 0.41762936 , 0.22879429 , 0.43997224 , 0.23831807 ,
23+ 0.02416466 , 0.6269962 , 0.47420614 , 0.56275487 , 0.78995021 ,
24+ 0.16060581 , 0.64635041 , 0.34876609 , 0.78543249 , 0.19938356 ,
25+ 0.34429457 , 0.88072369 , 0.17638164 , 0.60819363 , 0.250392 ,
26+ 0.69912532 , 0.78855523 , 0.79140914 , 0.85084218 , 0.31839879 ,
27+ 0.63381769 , 0.22421048 , 0.70760302 , 0.99216018 , 0.80199153 ,
28+ 0.19239188 , 0.61356023 , 0.31505352 , 0.06120481 , 0.66417377 ,
29+ 0.63608897 , 0.84959691 , 0.43599069 , 0.77867775 , 0.88267754 ,
30+ 0.83003623 , 0.67016118 , 0.67547638 , 0.65220036 , 0.68043427
31+ ] ;
32+ // Computed using NumPy
33+ let expected_mean = 0.5475494059146699 ;
34+ abs_diff_eq ! ( a. mean( ) . unwrap( ) , expected_mean, epsilon = f64 :: EPSILON ) ;
35+ }
0 commit comments