
     he                     L    d dl Zd dlmZmZ d dlZd dlmZ  G d d          ZdS )    N)assert_equalassert_allclose)	variationc                      e Zd ZdZd Zej                            dddg          d             Zd Z	ej                            dd	e
j        fd
 e
j        d          dz  fg          d             Zd Zd Zd Zej                            dd e
j        d          fd e
j        de
j                  fg          d             Zej                            dde
j        fde
j        fg          d             Zd Zd Zd Zd Zej                            d e
j        d          g dde
j        d gg          d!             Zej                            ddg fde
j        gd"z  fd#e
j        fg          d$             Zd% Zej                            d&d	d
g          d'             Ze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 d#S )1TestVariationz.
    Test class for scipy.stats.variation
    c                     t          j        d          }t          t          |d          t          j        d          dz             d S )N      "@   ddofg      @   )nparanger   r   sqrtselfxs     \/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/scipy/stats/tests/test_variation.py	test_ddofzTestVariation.test_ddof   s>    IcNN	!!,,,bgdmmAo>>>>>    sgnr
   c                     t          j        g d          }t          ||z            }|t          j        d          z  dz  }t	          ||d           d S )Nr
         r      r   r   g|=)rtol)r   arrayr   r   r   )r   r   r   vexpecteds        r   	test_signzTestVariation.test_sign   sW    H___%%c!erwqzz>!#8%000000r   c                 @    t          t          d          d           d S )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	          ||          |           d S )Ng      $@	   
nan_policy)r   r   nanr   r   )r   r-   r!   r   s       r   test_variation_nanz TestVariation.test_variation_nan   s?     IcNNv!	!
;;;XFFFFFr   c                     t          j        ddt           j        dg          }t          j        t
          d          5  t          |d           d d d            d S # 1 swxY w Y   d S )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#   s    Hc3,--]:-ABBB 	- 	-aG,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   AA!$A!c                     t          j        t          d          5  t          g dd           d d d            d S # 1 swxY w Y   d S )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(   s    ]:-=>>> 	6 	6iiiH5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   =AAc                    t          j        d                              dd          }t          |dd          }t          j        t          j        d          dz  gt          j        d          dz  gg          }t          ||           d S )N
   r   r   r
   Taxiskeepdims   )r   r   reshaper   r   r   r   )r   r   yr!   s       r   test_keepdimszTestVariation.test_keepdims,   s    IbMM!!!Q''aa$///8bgajjl^ gajjl^- . .8$$$$$r   zaxis, expectedr   r
   r   )r   r
   
fill_valuec                 r    t          j        d          }t          ||d          }t          ||           d S )N)r   r   TrA   )r   zerosr   r   r   rB   r!   r   rF   s        r   test_keepdims_size0z!TestVariation.test_keepdims_size03   s=     HVadT222Q!!!!!r   zincr, expected_fillc                     t          j        g dg dg          }t          |d|j        d         |z   d          }t	          |t          j        d|                     d S )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;   sd    HlllLLL122aaagaj4&7$GGGQ=AAABBBBBr   c                 .   t          j        d                              dd                              t                    }t           j        |d<   t          |dd          }t          |t          j        d          d	z  t           j        gd
           d S )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   s}     IaLL  B''..u55&$aaK888BGCLL,bf5EBBBBBBr   c                 ~    t          ddgddggd           }t          |t          j        d          dz             d S )Nr   r
   r   r   rB   rX   rY   )r   r   r   r   )r   rF   s     r   test_axis_nonezTestVariation.test_axis_noneI   sF     1v1v&T222273<<+,,,,,r   c                     t          j        g dg dg          }t          j        t           j                  5  t          |d           d d d            d S # 1 swxY w Y   d S )Nr<   )r   r      r@   r`   )r   r   r7   r8   	AxisErrorr   r   s     r   test_bad_axiszTestVariation.test_bad_axisO   s    Hiii+,,]2<(( 	" 	"ab!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   AAAc                 $   t          j        g d          }t          |          }t          |t           j                   t          j        |d|z  g          }t          |d          }t          |t           j        t           j        g           d S )N)r@   r
   rh   r
   r`   )r   r   r   r   inf)r   r   rF   x2y2s        r   test_mean_zerozTestVariation.test_mean_zeroU   s     H((())aLLQXq#a%j!!r"""R"&"&)*****r   r   r   r   r+   c                 X    t          |          }t          |t          j                   d S )N)r   r   r   r.   )r   r   rF   s      r   test_return_nanzTestVariation.test_return_nan`   s'     aLLQr   r   Nc                 p    t          j        d          }t          ||          }t          ||           d S )N)r   r   r`   )r   emptyr   r   rM   s        r   test_2d_size_zero_with_axisz)TestVariation.test_2d_size_zero_with_axisf   s;     HV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           d S )
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     Xr2hYr***RVG444X3/R02 3 3YrfEEEvg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           d S )	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    Hq"bfa("bfa("bfa(* + + aaJ777BFBFBFBGCLLNCDDDD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	          ||           d S )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   s     fHsCc****Cc*Cc*Cc*******, - - aadv>>>8$$$$$r   c           	      0   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 d S )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   s     H___%%!Q261a899aa   %F;;;273<<>***Ezzzzzzr   )!__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 -,1* * * [3*BF3%wrwt}}Q79: :G G: :G
- - -
6 6 6% % % [- ("(6"2"23 '"'&RV"D"D"DEGH H" "H H"
 [2a[1bf+4NOOC C POC
C C C- - -" " "	+ 	+ 	+ [S828A;;Q2614E"FGG    HG 
 [- "gBF8A:rvGI I" "I I"
	) 	) 	) [\K+@AAE E BAE [
gbgcllGBGCLL"&!RVS"&I	J
c7273<<BFArv>	?
gbgcllGBGCLL"&"&"&!RVL	M	O % % %     r   r   )	numpyr   numpy.testingr   r   r7   scipy.statsr   r   r   r   r   <module>r      s        7 7 7 7 7 7 7 7  ! ! ! ! ! !W W W W W W W W W Wr   