
    bi:                    h   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(                  j+                  ddi fd	i fd	d
difg      ej(                  j+                  dddg      d               Zd Zej(                  j+                  dg d      d        Zej(                  j+                  ddi fdddif ej2                  di ej(                  j5                   e eej6                        j8                         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(                  j+                  d! ed"            d#        Zd$ Z ej(                  j+                  d%ej                  jB                  jD                  d&fej                  jB                  jF                  d&fej                  jB                  jH                  d'fej                  jB                  jJ                  d'fej                  jB                  jL                  d'fej                  jB                  jN                  d'fej                  jB                  jP                  d'fg      ej(                  j+                  d(d)d*g      d+               Z)d, Z*d- Z+d. Z,d/ Z-y)0    )annotationsN)Versionscipy)allclose	assert_eq)Delayedzkind, kwargsskewkurtosisfisherF
single_dimTc                :   t         j                  j                  d       |r!t         j                  j                  d      }n t         j                  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 y )Ni9  )seed   sizer         )nprandomr   da
from_arraygetattrdaskarraystatsr   isscalarr   
isinstanceArray)	kindkwargsr   xydfuncsfuncexpectedresults	            V/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/array/tests/test_stats.pytest_measuresr*      s    
 IINNNII%(II'*
aADJJ$$d+EEKK&EQ!&!H1F	{{888H%fhfbhh'''    c                    t         j                  j                  d      } t        j                  | d      }t	        j
                  t              5  t        j                  j                  j                  |d       d d d        t	        j
                  t              5  t        j                  j                  j                  |d       d d d        y # 1 sw Y   WxY w# 1 sw Y   y xY w)Nr   r   r   F)bias)r   r   r   r   pytestraisesNotImplementedErrorr   r   r   r	   r
   )r#   r$   s     r)   test_bias_raisesr1   (   s    
		g&A
aA	*	+ -

ae,- 
*	+ 1

!!!%!01 1- -1 1s   ,C,CCC'r!   )	chisquarepower_divergence
normaltestskewtestkurtosistestc                h   t         j                  j                  d      }t        j                  |d      }t	        t
        j                  j                  |       }t	        t        j                  |       } ||      } ||      }t        |t              sJ t        |j                         |      sJ y )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r]F!}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                4   t         j                  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        t        t              sJ t        |j!                         	      sJ y # 1 sw Y   8xY w)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    0 			b!A	$B$A	q!	B	q!	B

(($/Id+J		 	 	" .h@2r,V,a-f-.
 fg&&&FNN$h///. .s   '0DDk   c                   t         j                  j                  d      }t        j                  |d      }t        j
                  j                  ||       }t        j                  j
                  j                  ||       }t        ||       y )Nr   r   r   )
r   r   r   r   r   r   momentr   r   r   )rQ   r#   r$   r'   r(   s        r)   test_momentsrU   p   se    
		g&A
aA{{!!!Q'HZZ$$Q*Ffhr+   c                    t        d      D  cg c]%  } | t        j                  j                  d      z  ' }} |D cg c]  }t        j                  |d       }}t        j                  j                  j                  | }t        j                  j                  | }t        |j                         |      sJ y c c} w c c}w )N   r   r   
   chunks)ranger   r   r   r   r   r   r   f_onewayr   r   r8   )inp_argsr#   da_argsr(   r'   s         r)   
test_anovar`   z   s    9>qBAq299###//BGB4;<qr}}Qr*<G<ZZ&&0F{{##W-HFNN$h/// C<s
   *B=Czfunc, nargsr      
nan_policyomitraisec                v    t        j                  t              5   | d|z  d|i d d d        y # 1 sw Y   y xY w)N)Nrb   )r.   r/   r0   )funcnargsrb   s      r)   test_nan_raisesrh      s7     
*	+ 6go5*56 6 6s   /8c                 "   t         j                  j                  d      } t        j                  | d      }t	        j
                  t              5  t        j                  j                  j                  |d       d d d        y # 1 sw Y   y xY w)Nr   r   r   wrong)rD   )r   r   r   r   r.   r/   
ValueErrorr   r   r   r3   )r9   r:   s     r)   test_power_divergence_invalidrl      sg    
		b!A	q!	B	z	" ?

))"g)>? ? ?s   ,BBc                     t        j                  dd      } t        j                  t        d      5  t
        j                  j                  j                  |        d d d        y # 1 sw Y   y xY w)N)   rY   z	7 samples)match)	r   onesr.   r/   rk   r   r   r   r5   )r9   s    r)   test_skew_raisesrq      sM    
T"A	z	5 %

!!!$% % %s   *A&&A/c                    t         j                  j                  d      } t        j                  | d      }t        j
                  j                  j                  |      j                         }t        |t         j                        sJ y)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_typerv      s`    ))""".K{A.JZZ"":.668Ffbjj)))r+   c                    t         j                  j                  d      } t        j                  | d      }t        j
                  j                  j                  |      j                         }t        j
                  j                  j                  |d      j                         }t        |t         j                        sJ t        |t         j                        sJ y)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   rs   )rt   ru   r(   result_non_fishers       r)    test_kurtosis_single_return_typery      s    ))""".K{A.JZZ&&z2::<F

((11*U1KSSUfbjj)))'444r+   ).
__future__r   rJ   r.   packaging.versionr   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   r`   r   r@   rC   r5   r
   r6   r4   rT   rh   rl   rq   rv   ry    r+   r)   <module>r      s   "   %G$    0   fb\J#3j8UBS5TU e}5( 6(&1 
W00 	b	{E*+++## 1 12??@GHDUUA $ 	
 
b	b	R 	i^,	i_-	i23#,0-,0, eAh'  ( 0 				%	%q)				#	#Q'				"	"A&				"	"A&				&	&*				$	$a(				 	 !$ '896 :6
?%*5r+   