
    >ieq                       d dl mZ d dlZd dlZd dlmZ  ej        d          Zd dl	Z
d dlmZ d dlZd dlmZmZ d dlmZ ej                            ddi fd	i fd	d
difg          ej                            dddg          d                         Zd Zej                            dg d          d             Zej                            ddi fdddif ej        di ej                             e eej                  j                   ed          k    d                    di fdi fdi fddd ifdddifdddifg	          d              Zej                            d! ed"                    d#             Z d$ Z!ej                            d%ej        j"        j#        d&fej        j"        j$        d&fej        j"        j%        d'fej        j"        j&        d'fej        j"        j'        d'fej        j"        j(        d'fej        j"        j)        d'fg          ej                            d(d)d*g          d+                         Z*d, Z+d- Z,d. Z-d/ Z.dS )0    )annotationsN)parsescipy)allclose	assert_eq)Delayedzkind, kwargsskewkurtosisfisherF
single_dimTc                4   t           j                            d           |r!t           j                            d          }n t           j                            d          }t          j        |d          }t          t          j        j        |           }t          t          j        |           } ||fi |} ||fi |}t          j
        |          rt          j        |          }t          ||           t          |t          j                  sJ d S )Ni9  )seed   sizer         )nprandomr   da
from_arraygetattrdaskarraystatsr   isscalarr   
isinstanceArray)	kindkwargsr   xydfuncsfuncexpectedresults	            ;lib/python3.11/site-packages/dask/array/tests/test_stats.pytest_measuresr*      s   
 INNN +I%((I'**
aADJ$d++EEK&&EuQ!!&!!HU1F	{8 &8H%%fhfbh'''''''    c                    t           j                            d          } t          j        | d          }t	          j        t                    5  t          j        j	        
                    |d           d d d            n# 1 swxY w Y   t	          j        t                    5  t          j        j	                            |d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   F)bias)r   r   r   r   pytestraisesNotImplementedErrorr   r   r   r	   r
   )r#   r$   s     r)   test_bias_raisesr1   (   sD   
	g&&A
aA	*	+	+ - -
ae,,,- - - - - - - - - - - - - - - 
*	+	+ 1 1
!!!%!0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s$   'BB	B&'CC!Cr!   )	chisquarepower_divergence
normaltestskewtestkurtosistestc                   t           j                            d          }t          j        |d          }t	          t
          j        j        |           }t	          t          j        |           } ||          } ||          }t          |t                    sJ t          |                                |          sJ d S )Nr   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   compute)r!   aa_	dask_test
scipy_testr(   r'   s          r)   test_oner=   3   s     		b!!A	q!		B
($//Id++JYr]]Fz!}}Hfg&&&&&FNN$$h///////r+   	ttest_ind	equal_varttest_1sampz1.10.0z(https://github.com/dask/dask/issues/9499)reason)marks	ttest_relr2   r3   lambda_neymanc                L   t           j                            d          }|d d d         }t          j        |d          }t          j        |d          }t	          t
          j        j        |           }t	          t          j        |           }t          j
                    5  t          j        dt                      |||fi |} |||fi |}	d d d            n# 1 swxY w Y   t          |t                    sJ t          |                                |	          sJ d S )Nr   r   rE   r   ignore)category)r   r   r   r   r   r   r   r   r   warningscatch_warningssimplefilterRuntimeWarningr   r   r   r8   )
r!   r"   r9   br:   b_r;   r<   r(   r'   s
             r)   test_tworP   D   s\   2 		b!!A	$$B$A	q!		B	q!		B
($//Id++J		 	"	" . .h@@@@2r,,V,,:a--f--. . . . . . . . . . . . . . .
 fg&&&&&FNN$$h///////s   "0CC"%C"k   c                   t           j                            d          }t          j        |d          }t          j                            ||           }t          j        j                            ||           }t          ||           d S )Nr   r   r   )
r   r   r   r   r   r   momentr   r   r   )rQ   r#   r$   r'   r(   s        r)   test_momentsrU   q   sr    
	g&&A
aA{!!!Q''HZ$$Q**Ffhr+   c                     d t          d          D             } d | D             }t          j        j        j        | }t          j        j        |  }t          |                                |          sJ d S )Nc                T    g | ]%}|t           j                            d           z  &S )r   r   )r   r   ).0is     r)   
<listcomp>ztest_anova.<locals>.<listcomp>|   s0    BBBAq29###///BBBr+      c                :    g | ]}t          j        |d           S )
   chunks)r   r   )rX   r#   s     r)   rZ   ztest_anova.<locals>.<listcomp>}   s'    <<<qr}Qr***<<<r+   )ranger   r   r   f_onewayr   r   r8   )np_argsda_argsr(   r'   s       r)   
test_anovard   {   su    BBqBBBG<<G<<<GZ&0F{#W-HFNN$$h///////r+   zfunc, nargsr      
nan_policyomitraisec                    t          j        t                    5   | d|z  d|i d d d            d S # 1 swxY w Y   d S )N)Nrf   )r.   r/   r0   )funcnargsrf   s      r)   test_nan_raisesrl      s     
*	+	+ 6 6go5*5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   377c                     t           j                            d          } t          j        | d          }t	          j        t                    5  t          j        j	        
                    |d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   wrong)rD   )r   r   r   r   r.   r/   
ValueErrorr   r   r   r3   )r9   r:   s     r)   test_power_divergence_invalidrp      s    
	b!!A	q!		B	z	"	" ? ?
))"g)>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s   'BB
Bc                     t          j        dd          } t          j        t          d          5  t
          j        j                            |            d d d            d S # 1 swxY w Y   d S )N)   r^   z	7 samples)match)	r   onesr.   r/   ro   r   r   r   r5   )r9   s    r)   test_skew_raisesru      s    
T"""A	z	5	5	5 % %
!!!$$$% % % % % % % % % % % % % % % % % %s   %A$$A(+A(c                    t           j                            d          } t          j        | d          }t          j        j                            |                                          }t          |t           j
                  sJ dS )zGThis function tests the return type for the skew method for a 1d array.r   r   r   N)r   r   r   r   r   r   r   r	   r8   r   float64)numpy_array
dask_arrayr(   s      r)   test_skew_single_return_typerz      sm    )"""..K{A..JZ"":..6688Ffbj)))))))r+   c                    t           j                            d          } t          j        | d          }t          j        j                            |                                          }t          j        j                            |d                                          }t          |t           j
                  sJ t          |t           j
                  sJ dS )zKThis function tests the return type for the kurtosis method for a 1d array.r   r   r   F)r   N)r   r   r   r   r   r   r   r
   r8   r   rw   )rx   ry   r(   result_non_fishers       r)    test_kurtosis_single_return_typer}      s    )"""..K{A..JZ&&z22::<<F
(11*U1KKSSUUfbj)))))'4444444r+   )/
__future__r   rJ   r.   packaging.versionr   parse_versionimportorskipr   numpyr   
dask.arrayr   r   dask.array.statsr   dask.array.utilsr   r   dask.delayedr   markparametrizer*   r1   r=   paramxfail__version__base_versionrP   r`   rU   rd   r   r@   rC   r5   r
   r6   r4   rT   rl   rp   ru   rz   r}    r+   r)   <module>r      s   " " " " " "   4 4 4 4 4 4G$$               0 0 0 0 0 0 0 0             fb\J#3j8UBS5TU  e}55( ( 65 (&1 1 1 
WWW 0 0 0 	b	{E*++##mmE,=>>KLL =**+A	 $  		
 		
 		
 
b	b	R 	i^,	i_-	i23% .0 0/ .0, eeAhh''    (' 0 0 0 			%q)			#Q'			"A&			"A&			&*			$a(			 !$  '8996 6 :9 6
? ? ?% % %* * *5 5 5 5 5r+   