
    xfe                     D    d dl Zd dlmZmZ d dlZd dlmZ  G d d      Zy)    N)assert_equalassert_allclose)	variationc                      e Zd ZdZd Zej                  j                  dddg      d        Zd Z	ej                  j                  dd	e
j                  fd
 e
j                  d      dz  fg      d        Zd Zd Zd Zej                  j                  dd e
j"                  d      fd e
j$                  de
j                        fg      d        Zej                  j                  dde
j(                  fde
j                  fg      d        Zd Zd Zd Zd Zej                  j                  d e
j4                  d      g dde
j(                  d gg      d!        Zej                  j                  ddg fde
j                  gd"z  fd#e
j                  fg      d$        Zd% Zej                  j                  d&d	d
g      d'        Zej                  j                  d(d e
j                  d)       e
j                  d*      e
j(                  de
j                  d+e
j                  gfdd, e
j                  d-      e
j(                  de
j                  de
j                  gfd e
j                  d,       e
j                  d.      e
j(                  e
j                  e
j                  de
j                  gfg      d/        Zd0 Z y#)1TestVariationz.
    Test class for scipy.stats.variation
    c                     t        j                  d      }t        t        |d      t        j                  d      dz         y )N      "@   ddofg      @   )nparanger   r   sqrtselfxs     B/usr/lib/python3/dist-packages/scipy/stats/tests/test_variation.py	test_ddofzTestVariation.test_ddof   s,    IIcN	!!,bggdmAo>    sgnr
   c                     t        j                  g d      }t        ||z        }|t        j                  d      z  dz  }t	        ||d       y )Nr
         r      r   r   g|=)rtol)r   arrayr   r   r   )r   r   r   vexpecteds        r   	test_signzTestVariation.test_sign   s@    HH_%c!erwwqz>!#8%0r   c                 .    t        t        d      d       y )N      @        )r   r   r   s    r   test_scalarzTestVariation.test_scalar   s    Ys^S)r   znan_policy, expected	propagateomitg@r   c                     t        j                  d      }t         j                  |d<   t        t	        ||      |       y )Ng      $@	   
nan_policy)r   r   nanr   r   )r   r-   r!   r   s       r   test_variation_nanz TestVariation.test_variation_nan   s/     IIcNvv!	!
;XFr   c                     t        j                  ddt         j                  dg      }t        j                  t
        d      5  t        |d       d d d        y # 1 sw Y   y xY w)N      ?       @      @zinput contains nanmatchraiser,   )r   r   r.   pytestraises
ValueErrorr   r   s     r   test_nan_policy_raisez#TestVariation.test_nan_policy_raise#   sK    HHc3,-]]:-AB 	-aG,	- 	- 	-s   AA#c                     t        j                  t        d      5  t        g dd       d d d        y # 1 sw Y   y xY w)Nzmust be one ofr4   r
   r   r   foobarr,   )r7   r8   r9   r   r&   s    r   test_bad_nan_policyz!TestVariation.test_bad_nan_policy(   s0    ]]:-=> 	6iH5	6 	6 	6s   5>c                    t        j                  d      j                  dd      }t        |dd      }t        j                  t        j
                  d      dz  gt        j
                  d      dz  gg      }t        ||       y )N
   r   r   r
   Taxiskeepdims   )r   r   reshaper   r   r   r   )r   r   yr!   s       r   test_keepdimszTestVariation.test_keepdims,   sh    IIbM!!!Q'aa$/88bggajl^ ggajl^- .8$r   zaxis, expectedr   r
   r   )r   r
   
fill_valuec                 b    t        j                  d      }t        ||d      }t        ||       y )N)r   r   TrA   )r   zerosr   r   r   rB   r!   r   rF   s        r   test_keepdims_size0z!TestVariation.test_keepdims_size03   s*     HHVadT2Q!r   zincr, expected_fillc                     t        j                  g dg dg      }t        |d|j                  d   |z   d      }t	        |t        j
                  d|             y )N)r
   r
   r   r   )r
   r   r   r   r
   T)rB   r   rC   )r   r
   rI   )r   r   r   shaper   full)r   increxpected_fillr   rF   s        r   'test_keepdims_and_ddof_eq_len_plus_incrz5TestVariation.test_keepdims_and_ddof_eq_len_plus_incr;   sG    HHlL12aaaggaj4&7$GQ=ABr   c                    t        j                  d      j                  dd      j                  t              }t         j
                  |d<   t        |dd      }t        |t        j                  d      d	z  t         j
                  gd
       y )N   r   r   rH   r
   r(   rB   r-         ?      ?gV瞯<)atol)	r   r   rE   astypefloatr.   r   r   r   )r   ar    s      r   test_propagate_nanz TestVariation.test_propagate_nanA   sf     IIaL  B'..u5&&$aaK8BGGCL,bff5EBr   c                 n    t        ddgddggd       }t        |t        j                  d      dz         y )Nr   r
   r   r   rB   rX   rY   )r   r   r   r   )r   rF   s     r   test_axis_nonezTestVariation.test_axis_noneI   s4     1v1v&T22773<+,r   c                     t        j                  g dg dg      }t        j                  t         j                        5  t        |d       d d d        y # 1 sw Y   y xY w)Nr<   )r   r      r@   r`   )r   r   r7   r8   	AxisErrorr   r   s     r   test_bad_axiszTestVariation.test_bad_axisO   sD    HHi+,]]2<<( 	"ab!	" 	" 	"s   AAc                    t        j                  g d      }t        |      }t        |t         j                         t        j                  |d|z  g      }t        |d      }t        |t         j                  t         j                  g       y )N)r@   r
   rh   r
   r`   )r   r   r   r   inf)r   r   rF   x2y2s        r   test_mean_zerozTestVariation.test_mean_zeroU   sc     HH()aLQXXq#a%j!r"R"&&"&&)*r   r   r   r   r+   c                 N    t        |      }t        |t        j                         y )N)r   r   r   r.   )r   r   rF   s      r   test_return_nanzTestVariation.test_return_nan`   s     aLQr   r   Nc                 `    t        j                  d      }t        ||      }t        ||       y )N)r   r   r`   )r   emptyr   r   rM   s        r   test_2d_size_zero_with_axisz)TestVariation.test_2d_size_zero_with_axisf   s(     HHVad#Q!r   c                    t        j                  ddg      }t        t        |d      t         j                          t        j                  t         j
                  ddt         j
                  gddt         j
                  t         j
                  gg      }t        t        |ddd	      t         j                   t         j                   g       y )
Nrg   r   r   r
   ri   ir)   rB   r   r-   )r   r   r   r   rj   r.   )r   x1rk   s      r   test_neg_infzTestVariation.test_neg_infm   s     XXr2hYr*RVVG4XX3/R02 3YrfEvvgw'	)r   r-   c           	      \   t        j                  ddt         j                  dgddt         j                  dgddt         j                  dgg      }t        |d|      }t	        |t         j                  t         j
                  t         j                  t        j                  d      dz  g       y )	Nr   r@   r
   rt   r   r   rW   gUUUUUU?)r   r   r.   r   r   rj   r   )r   r-   r   rF   s       r   test_combined_edge_casesz&TestVariation.test_combined_edge_casesx   s    HHq"bffa("bffa("bffa(* + aaJ7BFFBFFBFFBGGCLNCDr   zddof, expectedgUUUUUU?g      ?r%         ?g?rX   c           
          t         j                  }t        j                  dd|dgg d|dd|g|dd|g||||gg dg d	g      }t        |d
|d      }t	        ||       y )Nr1   r2   r3   )r%   r$   r3   r1   g      rz   r	   )r3   r3   r3   r3   )r%   r%   r%   r%   r
   r)   ru   )r   r.   r   r   r   )r   r   r!   r.   r   r    s         r   test_more_nan_policy_omit_testsz-TestVariation.test_more_nan_policy_omit_tests   st     ffHHsCc**Cc*Cc*Cc***, - aadv>8$r   c           	      *   t        j                  g d      }t        j                  dddt         j                  ddt         j                  g      }t        |d      }t        |dd	      }t	        |t        j
                  d
      dz         ||k(  sJ y )Nr   r
   r   r   r   r   r   r)   )r-   r   g      @)r   r   r.   r   r   r   )r   r]   nan_arF   nan_ys        r   test_variation_ddofz!TestVariation.test_variation_ddof   ss     HH_%!Q2661a89aa %F;2773<>*Ezzr   )!__name__
__module____qualname____doc__r   r7   markparametrizer"   r'   r   r.   r   r/   r:   r>   rG   rq   rQ   rN   rj   rT   r^   ra   re   rm   rL   ro   rr   rw   ry   r|   r    r   r   r   r      s   ? [[UQG,1 -1* [[3*BFF3%wrwwt}Q79:G:G
-
6% [[- ("((6"23 '"''&RVV"DEGH"H"
 [[2a[1bff+4NOC PC
C-"	+ [[S8288A;Q26614E"FG  H 
 [[- "gBFF8A:rvvGI"I"
	) [[\K+@AE BE [[
gbggclGBGGCL"&&!RVVS"&&I	J
c72773<BFFArvv>	?
gbggclGBGGCL"&&"&&"&&!RVVL	M	O%% r   r   )	numpyr   numpy.testingr   r   r7   scipy.statsr   r   r   r   r   <module>r      s     7  !W Wr   