@@ -689,6 +689,68 @@ fn sum_mean()
689689 assert_eq ! ( a. scalar_sum( ) , 10. ) ;
690690}
691691
692+ #[ test]
693+ fn var_axis ( ) {
694+ let a = array ! [
695+ [
696+ [ -9.76 , -0.38 , 1.59 , 6.23 ] ,
697+ [ -8.57 , -9.27 , 5.76 , 6.01 ] ,
698+ [ -9.54 , 5.09 , 3.21 , 6.56 ] ,
699+ ] ,
700+ [
701+ [ 8.23 , -9.63 , 3.76 , -3.48 ] ,
702+ [ -5.46 , 5.86 , -2.81 , 1.35 ] ,
703+ [ -1.08 , 4.66 , 8.34 , -0.73 ] ,
704+ ] ,
705+ ] ;
706+ assert ! ( a. var_axis( Axis ( 0 ) , 1.5 ) . all_close(
707+ & aview2( & [
708+ [ 3.236401e+02 , 8.556250e+01 , 4.708900e+00 , 9.428410e+01 ] ,
709+ [ 9.672100e+00 , 2.289169e+02 , 7.344490e+01 , 2.171560e+01 ] ,
710+ [ 7.157160e+01 , 1.849000e-01 , 2.631690e+01 , 5.314410e+01 ]
711+ ] ) ,
712+ 1e-4 ,
713+ ) ) ;
714+ assert ! ( a. var_axis( Axis ( 1 ) , 1.7 ) . all_close(
715+ & aview2( & [
716+ [ 0.61676923 , 80.81092308 , 6.79892308 , 0.11789744 ] ,
717+ [ 75.19912821 , 114.25235897 , 48.32405128 , 9.03020513 ] ,
718+ ] ) ,
719+ 1e-8 ,
720+ ) ) ;
721+ assert ! ( a. var_axis( Axis ( 2 ) , 2.3 ) . all_close(
722+ & aview2( & [
723+ [ 79.64552941 , 129.09663235 , 95.98929412 ] ,
724+ [ 109.64952941 , 43.28758824 , 36.27439706 ] ,
725+ ] ) ,
726+ 1e-8 ,
727+ ) ) ;
728+
729+ let b = array ! [ [ 1.1 , 2.3 , 4.7 ] ] ;
730+ assert ! ( b. var_axis( Axis ( 0 ) , 0. ) . all_close( & aview1( & [ 0. , 0. , 0. ] ) , 1e-12 ) ) ;
731+ assert ! ( b. var_axis( Axis ( 1 ) , 0. ) . all_close( & aview1( & [ 2.24 ] ) , 1e-12 ) ) ;
732+
733+ let c = array ! [ [ ] , [ ] ] ;
734+ assert_eq ! ( c. var_axis( Axis ( 0 ) , 0. ) , aview1( & [ ] ) ) ;
735+
736+ let d = array ! [ 1.1 , 2.7 , 3.5 , 4.9 ] ;
737+ assert ! ( d. var_axis( Axis ( 0 ) , 0. ) . all_close( & aview0( & 1.8875 ) , 1e-12 ) ) ;
738+ }
739+
740+ #[ test]
741+ #[ should_panic]
742+ fn var_axis_bad_dof ( ) {
743+ let a = array ! [ 1. , 2. , 3. ] ;
744+ a. var_axis ( Axis ( 0 ) , 4. ) ;
745+ }
746+
747+ #[ test]
748+ #[ should_panic]
749+ fn var_axis_empty_axis ( ) {
750+ let a = array ! [ [ ] , [ ] ] ;
751+ a. var_axis ( Axis ( 1 ) , 0. ) ;
752+ }
753+
692754#[ test]
693755fn iter_size_hint ( )
694756{
0 commit comments