@@ -925,175 +925,6 @@ fn assign()
925925 assert_eq ! ( a, arr2( & [ [ 0 , 0 ] , [ 3 , 4 ] ] ) ) ;
926926}
927927
928- #[ test]
929- fn sum_mean ( )
930- {
931- let a = arr2 ( & [ [ 1. , 2. ] , [ 3. , 4. ] ] ) ;
932- assert_eq ! ( a. sum_axis( Axis ( 0 ) ) , arr1( & [ 4. , 6. ] ) ) ;
933- assert_eq ! ( a. sum_axis( Axis ( 1 ) ) , arr1( & [ 3. , 7. ] ) ) ;
934- assert_eq ! ( a. mean_axis( Axis ( 0 ) ) , arr1( & [ 2. , 3. ] ) ) ;
935- assert_eq ! ( a. mean_axis( Axis ( 1 ) ) , arr1( & [ 1.5 , 3.5 ] ) ) ;
936- assert_eq ! ( a. sum_axis( Axis ( 1 ) ) . sum_axis( Axis ( 0 ) ) , arr0( 10. ) ) ;
937- assert_eq ! ( a. view( ) . mean_axis( Axis ( 1 ) ) , aview1( & [ 1.5 , 3.5 ] ) ) ;
938- assert_eq ! ( a. sum( ) , 10. ) ;
939- }
940-
941- #[ test]
942- fn sum_mean_empty ( ) {
943- assert_eq ! ( Array3 :: <f32 >:: ones( ( 2 , 0 , 3 ) ) . sum( ) , 0. ) ;
944- assert_eq ! ( Array1 :: <f32 >:: ones( 0 ) . sum_axis( Axis ( 0 ) ) , arr0( 0. ) ) ;
945- assert_eq ! (
946- Array3 :: <f32 >:: ones( ( 2 , 0 , 3 ) ) . sum_axis( Axis ( 1 ) ) ,
947- Array :: zeros( ( 2 , 3 ) ) ,
948- ) ;
949- let a = Array1 :: < f32 > :: ones ( 0 ) . mean_axis ( Axis ( 0 ) ) ;
950- assert_eq ! ( a. shape( ) , & [ ] ) ;
951- assert ! ( a[ ( ) ] . is_nan( ) ) ;
952- let a = Array3 :: < f32 > :: ones ( ( 2 , 0 , 3 ) ) . mean_axis ( Axis ( 1 ) ) ;
953- assert_eq ! ( a. shape( ) , & [ 2 , 3 ] ) ;
954- a. mapv ( |x| assert ! ( x. is_nan( ) ) ) ;
955- }
956-
957- #[ test]
958- fn var_axis ( ) {
959- let a = array ! [
960- [
961- [ -9.76 , -0.38 , 1.59 , 6.23 ] ,
962- [ -8.57 , -9.27 , 5.76 , 6.01 ] ,
963- [ -9.54 , 5.09 , 3.21 , 6.56 ] ,
964- ] ,
965- [
966- [ 8.23 , -9.63 , 3.76 , -3.48 ] ,
967- [ -5.46 , 5.86 , -2.81 , 1.35 ] ,
968- [ -1.08 , 4.66 , 8.34 , -0.73 ] ,
969- ] ,
970- ] ;
971- assert ! ( a. var_axis( Axis ( 0 ) , 1.5 ) . all_close(
972- & aview2( & [
973- [ 3.236401e+02 , 8.556250e+01 , 4.708900e+00 , 9.428410e+01 ] ,
974- [ 9.672100e+00 , 2.289169e+02 , 7.344490e+01 , 2.171560e+01 ] ,
975- [ 7.157160e+01 , 1.849000e-01 , 2.631690e+01 , 5.314410e+01 ]
976- ] ) ,
977- 1e-4 ,
978- ) ) ;
979- assert ! ( a. var_axis( Axis ( 1 ) , 1.7 ) . all_close(
980- & aview2( & [
981- [ 0.61676923 , 80.81092308 , 6.79892308 , 0.11789744 ] ,
982- [ 75.19912821 , 114.25235897 , 48.32405128 , 9.03020513 ] ,
983- ] ) ,
984- 1e-8 ,
985- ) ) ;
986- assert ! ( a. var_axis( Axis ( 2 ) , 2.3 ) . all_close(
987- & aview2( & [
988- [ 79.64552941 , 129.09663235 , 95.98929412 ] ,
989- [ 109.64952941 , 43.28758824 , 36.27439706 ] ,
990- ] ) ,
991- 1e-8 ,
992- ) ) ;
993-
994- let b = array ! [ [ 1.1 , 2.3 , 4.7 ] ] ;
995- assert ! ( b. var_axis( Axis ( 0 ) , 0. ) . all_close( & aview1( & [ 0. , 0. , 0. ] ) , 1e-12 ) ) ;
996- assert ! ( b. var_axis( Axis ( 1 ) , 0. ) . all_close( & aview1( & [ 2.24 ] ) , 1e-12 ) ) ;
997-
998- let c = array ! [ [ ] , [ ] ] ;
999- assert_eq ! ( c. var_axis( Axis ( 0 ) , 0. ) , aview1( & [ ] ) ) ;
1000-
1001- let d = array ! [ 1.1 , 2.7 , 3.5 , 4.9 ] ;
1002- assert ! ( d. var_axis( Axis ( 0 ) , 0. ) . all_close( & aview0( & 1.8875 ) , 1e-12 ) ) ;
1003- }
1004-
1005- #[ test]
1006- fn std_axis ( ) {
1007- let a = array ! [
1008- [
1009- [ 0.22935481 , 0.08030619 , 0.60827517 , 0.73684379 ] ,
1010- [ 0.90339851 , 0.82859436 , 0.64020362 , 0.2774583 ] ,
1011- [ 0.44485313 , 0.63316367 , 0.11005111 , 0.08656246 ]
1012- ] ,
1013- [
1014- [ 0.28924665 , 0.44082454 , 0.59837736 , 0.41014531 ] ,
1015- [ 0.08382316 , 0.43259439 , 0.1428889 , 0.44830176 ] ,
1016- [ 0.51529756 , 0.70111616 , 0.20799415 , 0.91851457 ]
1017- ] ,
1018- ] ;
1019- assert ! ( a. std_axis( Axis ( 0 ) , 1.5 ) . all_close(
1020- & aview2( & [
1021- [ 0.05989184 , 0.36051836 , 0.00989781 , 0.32669847 ] ,
1022- [ 0.81957535 , 0.39599997 , 0.49731472 , 0.17084346 ] ,
1023- [ 0.07044443 , 0.06795249 , 0.09794304 , 0.83195211 ] ,
1024- ] ) ,
1025- 1e-4 ,
1026- ) ) ;
1027- assert ! ( a. std_axis( Axis ( 1 ) , 1.7 ) . all_close(
1028- & aview2( & [
1029- [ 0.42698655 , 0.48139215 , 0.36874991 , 0.41458724 ] ,
1030- [ 0.26769097 , 0.18941435 , 0.30555015 , 0.35118674 ] ,
1031- ] ) ,
1032- 1e-8 ,
1033- ) ) ;
1034- assert ! ( a. std_axis( Axis ( 2 ) , 2.3 ) . all_close(
1035- & aview2( & [
1036- [ 0.41117907 , 0.37130425 , 0.35332388 ] ,
1037- [ 0.16905862 , 0.25304841 , 0.39978276 ] ,
1038- ] ) ,
1039- 1e-8 ,
1040- ) ) ;
1041-
1042- let b = array ! [ [ 100000. , 1. , 0.01 ] ] ;
1043- assert ! ( b. std_axis( Axis ( 0 ) , 0. ) . all_close( & aview1( & [ 0. , 0. , 0. ] ) , 1e-12 ) ) ;
1044- assert ! (
1045- b. std_axis( Axis ( 1 ) , 0. ) . all_close( & aview1( & [ 47140.214021552769 ] ) , 1e-6 ) ,
1046- ) ;
1047-
1048- let c = array ! [ [ ] , [ ] ] ;
1049- assert_eq ! ( c. std_axis( Axis ( 0 ) , 0. ) , aview1( & [ ] ) ) ;
1050- }
1051-
1052- #[ test]
1053- #[ should_panic]
1054- fn var_axis_negative_ddof ( ) {
1055- let a = array ! [ 1. , 2. , 3. ] ;
1056- a. var_axis ( Axis ( 0 ) , -1. ) ;
1057- }
1058-
1059- #[ test]
1060- #[ should_panic]
1061- fn var_axis_too_large_ddof ( ) {
1062- let a = array ! [ 1. , 2. , 3. ] ;
1063- a. var_axis ( Axis ( 0 ) , 4. ) ;
1064- }
1065-
1066- #[ test]
1067- fn var_axis_nan_ddof ( ) {
1068- let a = Array2 :: < f64 > :: zeros ( ( 2 , 3 ) ) ;
1069- let v = a. var_axis ( Axis ( 1 ) , :: std:: f64:: NAN ) ;
1070- assert_eq ! ( v. shape( ) , & [ 2 ] ) ;
1071- v. mapv ( |x| assert ! ( x. is_nan( ) ) ) ;
1072- }
1073-
1074- #[ test]
1075- fn var_axis_empty_axis ( ) {
1076- let a = Array2 :: < f64 > :: zeros ( ( 2 , 0 ) ) ;
1077- let v = a. var_axis ( Axis ( 1 ) , 0. ) ;
1078- assert_eq ! ( v. shape( ) , & [ 2 ] ) ;
1079- v. mapv ( |x| assert ! ( x. is_nan( ) ) ) ;
1080- }
1081-
1082- #[ test]
1083- #[ should_panic]
1084- fn std_axis_bad_dof ( ) {
1085- let a = array ! [ 1. , 2. , 3. ] ;
1086- a. std_axis ( Axis ( 0 ) , 4. ) ;
1087- }
1088-
1089- #[ test]
1090- fn std_axis_empty_axis ( ) {
1091- let a = Array2 :: < f64 > :: zeros ( ( 2 , 0 ) ) ;
1092- let v = a. std_axis ( Axis ( 1 ) , 0. ) ;
1093- assert_eq ! ( v. shape( ) , & [ 2 ] ) ;
1094- v. mapv ( |x| assert ! ( x. is_nan( ) ) ) ;
1095- }
1096-
1097928#[ test]
1098929fn iter_size_hint ( )
1099930{
0 commit comments