
    bi D              "          d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZmZ d dlmZ d dlmZmZ d dlmZ  ej&                  d	      Zej*                  j-                  e d
      gZej*                  j0                  ZdeddddZ edd       edd       edd      ej*                  j7                  d eej8                  i        eej:                  i        eej<                  ddi      g      ej*                  j7                  dd dg      d                                    Z edd       edd       edd      ej*                  j7                  dg d      ej*                  j7                  ddd g      d!                                    Z  edd       edd       edd"      ej*                  j7                  d eejB                  d#di       eejD                  i        eejD                  d$di       eejF                  i        eejF                  d$di       eejH                  i        eejJ                  d%di       eejJ                  d%di       eejJ                  d%d&i       eejJ                  d%d'i       eejL                  d%di       eejL                  d%di       eejN                  i        eejP                  i        eejR                  i        eejT                  i        eejV                  i       ei f eejX                  d(d)i       eejZ                  d(d)i       eej\                  d*d+i       eej^                  d,d+i       eej`                  d(d)i       eejb                  d(d)i      g      ej*                  j7                  dg d      d-                                    Z2 eejf                         edd       edd       edd"      ej*                  j7                  dd dg      ej*                  j7                  d.i g      d/                                           Z4 edd       edd       edd"      ej*                  j7                  d0 eejj                         eejl                         eejn                        g      ej*                  j7                  dg d      d1                                    Z8 edd       edd       edd"       ed2d3      ej*                  j7                  d4 eejr                         eejt                         eejv                        g      ej*                  j7                  dg d      d5                                           Z< edd       edd       edd"       ed2d3      ej*                  j{                  d6      ej*                  j7                  d4 eej|                         eej~                         eej                         eej                        g      ej*                  j7                  dg d      d7                                                  ZBd8 ZC ed9 d eC:      dOd d;d<       ZD eej                  ej                         edd       edd       edd"       ed2d3      ej*                  j7                  d=g d>      ej*                  j7                  d?d dg      ej*                  j7                  dg d      d@                                                         ZG eej                         edd       edd       edd"       ed2d3      ej*                  j7                  dAg dB      ej*                  j7                  dg d      dC                                                  ZI eej                         edd       edd       edd"       ed2d3      dD                                    ZKej*                  j-                   ej                  ej                         ej                  dE      k  dF      dG        ZN eej                         edd       edd       edd"      ej*                  j{                  dH      dI                                    ZP eej                         edd       edd       edd"       ed2d3      ej*                  j7                  dej                  i fej                  dJd ifej                  dJdifg      ej*                  j7                  dg d      dK                                                  ZS edd       edd       edd"       ed2d3      ej*                  j7                  d4 eej                         eej                        g      dL                                    ZV eej                         edd       edd      ej*                  j7                  dMdd g      ej*                  j7                  dg d      dN                                    ZXy)P    N)stats)version)xp_assert_closexp_assert_equal_length_nonmasked)make_xp_pytest_parammake_xp_test_case)SCIPY_ARRAY_API)_xp_mean_xp_var)_axis_nan_policy_factorymarrayzcspecial function dispatch to marray required for these tests is hidden behind SCIPY_ARRAY_API flag.)reasonfloat64)      l   !wN4 )dtypexpshapeseedc                |   t         j                  |      }t        j                  j	                  |      }g g }}t        |       D ]  }	|j                  |      }
|j                  d      rd|
z  dz  |j                  |      z  }
|
j                  |      }
|j                  |
       |j                  |      dkD  }|j                  |        g }g }t        ||      D ]W  \  }}|j                  |j                  ||             |j                         }|j                  ||<   |j                  |       Y |||fS )N)sizecomplex
   y              $@g      ?mask)r   _get_namespacenprandomdefault_rngrange
startswithstandard_normalastypeappendzipasarraycopynan)n_arraysr   r   r   r   mxprngdatasmasksidatar   marrays
nan_arraysarray	nan_arrays                   X/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/scipy/stats/tests/test_marray.py
get_arraysr6      s/   



#C
))


%Cr5E8_ zzuz%I&d7S=!4!4%!4!@@D{{5!Tzzuz%,T GJ5%( %ts{{5t{45JJL	&&	$)$	% ##    z
dask.arrayz/Arrays need `device` attribute: dask/dask#11711z	jax.numpyz"JAX doesn't allow item assignment.torchz	marray#99zfun, kwargsp   axis   c                     t        d|      \  }}} | |d   f|d   |d|} | |d   f|d   d|d|}t        |j                  |j                  |             y )Nr:   r   r   r<   )weightsr;   omit)r?   
nan_policyr;   )r6   r   r0   r'   	funkwargsr;   r   r+   r1   narraysresrefs	            r5   
test_xmeanrH   3   sk     'qR0C'
gaj
B'!*4
B6
BC
gaj
U'!*d
Uf
UCCHHbjjo.r7   )r   r<   NkeepdimsFTc                     t        d|      \  }}}t        | |      }t        |d   fd|d   i|}t        |d   f|d   dd|}t        |j                  |j                  |             y )	Nr:   r>   r;   rI   r   r?   r<   r@   r?   rA   )r6   dictr   r   r0   r'   )	r;   rI   r   r+   r1   rE   rD   rF   rG   s	            r5   test_xp_meanrN   A   ss     'qR0C'th/F
71:
<wqz
<V
<C
71:
Owqzf
O
OCCHHbjjo.r7   zarray-api-compat#242orderbiasn      limits)g?g?
lowerlimitg      ?
upperlimitc                     t        d|      \  }}}t        |      |z  } | |d   fi |} | |d   fddi|}t        |j                  |j	                  |             y Nr<   r>   r;   r   rA   r@   )r6   rM   r   r0   r'   rB   s	            r5   test_severalrZ   N   sf    > 'qR0C't_v%F
gaj
#F
#C
gaj
6V
6v
6CCHHbjjo.r7   rD   c                    t        d|      \  }}}t        |       |z  }t        j                  |d   fi |}t        j                  |d   fddi|}t	        |j
                  j                  |j                  |j
                               t	        |j                  d   j                  |j                  |j                  d   j                               t	        |j                  d   j                  |j                  |j                  d   j                               t	        |j                  j                  |j                  |j                  j                               t	        |j                  j                  |j                  |j                  j                               t	        |j                  j                  |j                  |j                  j                               y rX   )r6   rM   r   describer   nobsr0   r'   minmaxvarianceskewnesskurtosis)r;   rD   r   r+   r1   rE   rF   rG   s           r5   test_describerb   t   sJ    'qR0C't_v%F
..
.v
.C
..
A
A&
ACCHHMM2::chh#78CJJqM&&

3::a=3E3E(FGCJJqM&&

3::a=3E3E(FGCLL%%rzz#,,2C2C'DECLL%%rzz#,,2C2C'DECLL%%rzz#,,2C2C'DEr7   rC   c                 Z   | t         j                  k(  rt        d|      nt        d|      \  }}} | |d|i}|j                   | |d|d      }t	        |j
                  |j                      ||j                  |                 t        |j                  |d   j                         y )Nr:   r>   r<   r;   r@   rA   r;   r   )	r   zmapr6   r'   r   r0   r   isnanr   )rC   r;   r   r+   r1   rE   rF   rG   s           r5   test_zscorerg      s     69EJJ5FZb1",Q2"6 C'
w
"T
"C
**S'f4@
ACCHHchhY'bhhsm^)<=CHHgajoo.r7   cupyzspecial functions won't workfc                    | j                   }t        d|      \  }}}|dk(  r<|j                  |d   ||d u      |d<   t        j                  |d   ||d u      |d<    | |d|i} | |d|d}t        |j                  j                  |j                  |j                               t        |j                  j                  |j                  |j                               |j                         }	|j                         }
t        |	j                  j                  |j                  |
j                               t        |	j                  j                  |j                  |
j                               y )	Nr:   r>   ttest_1sampr<   rK   r;   r@   rd   )__name__r6   meanr   nanmeanr   	statisticr0   r'   pvalueconfidence_intervallowhigh)ri   r;   r   f_namer+   r1   rE   rF   rG   res_ciref_cis              r5   
test_ttestrw      s!    ZZF&qR0C'XXgajtd$>NXO
ZZ
D@PQ

W
 4
 C
Wd
3CCMM&&

3==(ABCJJOORZZ

%;<$$&F$$&FFJJOORZZ

%;<FKK$$bjj&=>r7   z7ignore::scipy.stats._axis_nan_policy.SmallSampleWarningc                 .   t        d|d      \  }}} | |d|i} | |d|d}t        |j                  j                  |j	                  |j                               t        |j
                  j                  |j	                  |j
                               y )Nr<   r      r   r   r;   r@   rd   r6   r   ro   r0   r'   rp   )ri   r;   r   r+   r1   rE   rF   rG   s           r5   test_normality_testsr}      sv     'qRx@C'
W
 4
 C
Wd
3CCMM&&

3==(ABCJJOORZZ

%;<r7   c                 .    | j                  dd       dS dS )Nf_expr:   r<   )get)rD   s    r5   pd_nsamplesr      s    

7D)51<1<r7   c                      t        |       S N)tuple)argss    r5   <lambda>r      s
    d r7   )paired	n_samplesrY   c                6    t        j                  | ||||      S )N)r;   ddoflambda_r   power_divergence)f_obsr   r   r   r;   s        r5   power_divergence_refr      s    !!%TgVVr7   r   )pearsonzlog-likelihoodzfreeman-tukeyzmod-log-likelihoodneymanzcressie-read	chisquarer   c                     t        d|d      \  }}}t        ||      } dk(  rd d }n fd} ||d	   fi |}	t        |d	   fd
 d|}
t        |	j                  j
                  |j                  |
d	                t        |	j                  j
                  |j                  |
d                t        j                  |d	         t        j                  |d         z  }t        j                  |d   | z  |d      t        j                  |d	   | z  |d      z  }|d	xx   |j                  |      z  cc<   |d	xx   |z  cc<    ||i |}	t        |d
 d|}
t        |	j                  j
                  |j                  |
d	                t        |	j                  j
                  |j                  |
d                y )Nr:   )      r{   )r;   r   r   r   c                  ,    t        j                  | i |S r   )r   r   )r   rD   s     r5   ri   z*test_power_divergence_chisquare.<locals>.f   s    ??D3F33r7   c                  2    t        j                  | di|S )Nr   r   )r   rD   r   s     r5   ri   z*test_power_divergence_chisquare.<locals>.f   s    ))4KKFKKr7   r   r@   )rA   r   r<   TrK   )r6   rM   r   r   ro   r0   r'   rp   r   rf   nansum)r   r   r;   r   r+   r1   rE   rD   ri   rF   rG   common_mask	normalizes   `            r5   test_power_divergence_chisquarer      s    'qRv>C't$'F+	4	L GAJ
!&
!C
wqz
Xfg
XQW
XCCMM&&

3q6(:;CJJOORZZA%78 ((71:&'!*)==K71:44$O99WQZ;,6TDQRIAJ"**Y''JAJ)J
W

C
FG
Vv
VCCMM&&

3q6(:;CJJOORZZA%78r7   method)fisherr   mudholkar_georgetippettstoufferc                    t        d|d      \  }}}t        | |      }t        j                  |d   fi |}t        j                  |d   fddi|}t	        |j
                  j                  |j                  |j
                               t	        |j                  j                  |j                  |j                               | dk7  ry t        j                  |d   fd	|d
   i|}t        j                  |d   f|d
   dd|}t	        |j
                  j                  |j                  |j
                               t	        |j                  j                  |j                  |j                               y )Nr:   ry   r{   )r   r;   r   rA   r@   r   r?   r<   rL   )	r6   rM   r   combine_pvaluesr   ro   r0   r'   rp   )	r   r;   r   r+   r1   rE   rD   rF   rG   s	            r5   test_combine_pvaluesr      s7    'qRx@C'd+F




5f
5C




Hv
H
HCCMM&&

3==(ABCJJOORZZ

%;<




IGAJ
I&
IC



 =GAJ+1=5;=C CMM&&

3==(ABCJJOORZZ

%;<r7   c           
         d}t        d| |      \  }}}t        j                  t        j                  |D cg c]  }t        j                  |       c}      d      j                  t              }|D cg c]  }||    
 }}|d   dz  |d   dz  c|d<   |d<   |d   dz  |d   dz  c|d<   |d<   t        j                  | }t        j                  | }| j                  |      }| j                  |      r| j                  |       sJ t        |j                  j                  |    | j                  |j                               t        |j                  j                  |    | j                  |j                               t        |j                  j                  |       t        |j                  j                  |       |j                  j                   |k(  sJ |j                  j                   |k(  sJ y c c}w c c}w )	Nry   r   r{   r   rY   r:   d   r   )r6   r   sumstackrf   r$   boolr   ttest_ind_from_statsr'   anyr   ro   r0   rp   r   r   )	r   r   r+   r1   rE   argr   rF   rG   s	            r5   test_ttest_ind_from_statsr     s    E&qRu=C'66"((W=cBHHSM=>QGNNtTD%,-csD5z-G-$QZ#-wqzC/?GAJ
$QZ#-wqzC/?GAJ


$
$g
.C

$
$g
.C::dD66$<BFFD5M))CMM&&u-rzz#--/HICJJOOTE*BJJszz,BCCMM&&-CJJOOT*==%'''::u$$$ >-s   G?7H2z/Call to _getnamespace fails with AttributeErrorc                      t         j                  t              } ddgddgg}ddgddgg}| j                  ||      }t	        j
                  t        d	      5  t        |d
|        d d d        y # 1 sw Y   y xY w)Ng      ?g       @g      @g      @FTr   z7`axis` must be an integer or None for use with `MArray`)match)r   r<   )r;   r   )r   r   r   r'   pytestraisesNotImplementedErrorr   )r   r0   r   marrs       r5   1test_length_nonmasked_marray_iterable_axis_raisesr   .  s     
		r	"B#Jc
#DENT5M*D::d:&D 
*G
I 4$V34 4 4s   A00A9zignore::RuntimeWarningc                 ^   t        dd|       \  }}}t        j                  | }|d   t        j                  t        j
                  |d         d          |d<   t        j                  | }t        |j                  j                  | j                  |j                               t        |j                  j                  | j                  |j                               | j	                  |j                  j                        rJ | j	                  |j                  j                        rJ y )Nr<   )r   rR   r   r   r   rY   )r6   r   directional_statsr   r   rf   r   mean_directionr0   r'   mean_resultant_lengthr   )r   r+   r1   rE   rF   rG   s         r5   test_directional_statsr   >  s     'qR@C'

!
!7
+CRVVBHHWQZ$8qAABGAJ

!
!7
+CC&&++RZZ8J8J-KLC--22JJs889;vvc((--...vvc//445555r7   	equal_varc                 4   t        d|      \  }}} | |d|i|} | |d|d|}t        |j                  j                  |j	                  |j                               t        |j
                  j                  |j	                  |j
                               y )NrR   r>   r;   r@   rd   r|   rB   s	            r5   test_k_sample_testsr   O  s~     'qR0C'
w
,T
,V
,C
w6
?
?CCMM&&

3==(ABCJJOORZZ

%;<r7   c                    t        dd|      \  }}} | | }|\  }}t        j                  |      t        j                  |      z  } | ||    ||          }	t        |j                  j
                  |j                  |	j                               t        |j                  j
                  |j                  |	j                               | t        j                  k(  rq|j                         \  }
}|	j                         \  }}t        |
j
                  |j                  |             t        |j
                  |j                  |             y y )Nr:   )   r   )r6   r   rf   r   ro   r0   r'   rp   r   pearsonrrq   )ri   r   r+   r1   rE   rF   xyr   rG   
res_ci_lowres_ci_high
ref_ci_lowref_ci_highs                 r5   test_pearsonrr   b  s    'q"=C'
W+CDAq88A;!$D
AteHah
CCMM&&

3==(ABCJJOORZZ

%;<ENN"%"9"9";
K"%"9"9";
K
J)?@(("**[*AB	 r7   qkc                     t        | rdnd|      \  }}}t        j                  |d|i}t        j                  |d|d}t        |j                  |j                  |             y )Nr:   r<   r>   r;   r@   rd   )r6   r   entropyr   r0   r'   )r   r;   r   r+   r1   rE   rF   rG   s           r5   test_entropyr   y  sV     'BqA"=C'
--
,t
,C
--V$
?CCHHbjjo.r7   r   )Ynumpyr   r   scipyr   	packagingr   scipy._lib._array_apir   r   r   r   r	   r
   scipy.stats._stats_pyr   r   scipy.stats._axis_nan_policyr   importorskipr   markskipif
pytestmarkskip_xp_backendsskip_backendr6   parametrizegmeanhmeanpmeanrH   rN   momentskewra   semkstatkstatvarcircmeancircvarcircstdgstd	variationtmeantvartmintmaxtstdtsemrZ   r\   rb   zscoregzscorere   rg   rk   	ttest_rel	ttest_indrw   filterwarningsskewtestkurtosistest
normaltestjarque_berar}   r   r   r   r   r   r   r   r   r   parse__version__r   r   r   bartlettf_onewayr   r   pointbiserialrr   r   r    r7   r5   <module>r      s
       U U I 1 3 A 
		X	&
KK6  
 {{++"+&~ $2 l#TUk"FGgk*)=ekk2)N)=ekk2)N)=ekkCQR8)T)V W !Q(/ )W + H V/ l#TUk"FGgk*.eT]3/ 4 / + H V
/ l#TUk"FGg45%,,!5%**b)%**vuo6%.."-%..65/:%))R(%++Qx0%++Qx0%++Qx0%++Qx0%..3(3%..3(3%.."-%--,%--,%**b)%//2.r]%++*'=>%**x&<=%**|S&9:%**|S&9:%**x&<=%**x&<=/4 ./ /5 6 H V</ 5>>"l#TUk"FGg45!Q(B4(
F ) ) 6 H V #
F l#TUk"FGg45!5ell!C!5emm!D!5ejj!A!C D ./ /D 6 H V/ l#TUk"FGg45f;<3E4E4EF3EOOD3EOODF G .? /G = 6 H V?  l#TUk"FGg45f;<UV3ENNC3E4F4FG3E4D4DE3E4E4EFH I .= /	I W = 6 H V== 3DKXWA W YW 5??E$:$:;l#TUk"FGg45f;< %2 3 !Q(.9 / )3 = 6 H V <9B 5(()l#TUk"FGg45f;< $; <.= /< = 6 H V *=* 5--.l#TUk"FGg45f;<% = 6 H V /
%* MGMM"..1MGMM#4FFL  N4N4 5**+l#TUk"FGg4545	6 6 6 H V ,
	6 5>>"l#TUk"FGg45f;<
^^R
^^k4()
^^k5)*) 
 .= / = 6 H V #= l#TUk"FGg45f;<3ENNC3E4H4HIK LCL = 6 H VC" 5==!l#TUk"FGt}-./ / . H V "
/r7   