
    >qjs                     %   d dl Zd dl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mZ d dlmZmZ  ej                   d      Zej$                  j'                  e d	      gZej$                  j*                  Zd
edddddZ edd	      ej$                  j1                  d e	ej2                  i        e	ej4                  i        e	ej6                  ddi       e	ej8                  ddi       e	ei       g      ej$                  j1                  dddg      ej$                  j1                  dg d      d                             Z edd	       edd	      ej$                  j1                  dg  e	ej<                  ddi       e	ej<                  dd i       e	ej>                  i        e	ej>                  d!di       e	ej@                  i        e	ej@                  ddd"       e	ejB                  i        e	ejB                  d#di       e	ejD                  d$d%i       e	ejD                  d$di       e	ejD                  d$d&i       e	ejD                  d$d'i       e	ejF                  d$d%i       e	ejF                  d$di       e	ejH                  i        e	ejH                  d d%d(       e	ejJ                  i        e	ejJ                  d d%d(       e	ejL                  i        e	ejL                  d d%dd)       e	ejN                  i        e	ejN                  d#di       e	ei        e	ed%dd*       e	ejP                  i        e	ejP                  d#d%i       e	ejR                   e*d+,             e	ejV                   e*d+d-.             e	ejX                   e*d+d/.             e	ejZ                   e*d+d0.             e	ej\                   e*d d1             e	ej^                   e*d d2             e	ej`                  d3d4i       e	ej`                  d5d6d7       e	ejb                  i        e	ejb                  d8d6i       e	ejd                  d9d:i            ej$                  j1                  dg d      d;                             Z3 e
ejh                        ej$                  j1                  d<d=d
g      ej$                  j1                  d>d?dg      ej$                  j1                  dg d      d@                             Z5 e
ejl                         edd	       edd	      ej$                  j1                  dg d      ej$                  j1                  dAi d!dig      dB                                    Z7 eddC	       edd	      ej$                  j1                  dD e	ejp                         e	ejr                         e	ejt                        g      ej$                  j1                  d#d d%g      ej$                  j1                  dg d      dE                                    Z; edd	       edd	      ej$                  j1                  dF e	ejx                         e	ejz                         e	ej|                        g      ej$                  j1                  dGg dH      ej$                  j1                  dg d      dI                                    Z? edd	       edd	      ej$                  j                  dJ      ej$                  j1                  dK e	ej                   eB              e	ej                   eB              e	ej                   eB              e	ej                   eB              e	ej                  ej                  j                  f      g      ej$                  j1                  dGg dH      ej$                  j1                  dg d      dL                                           ZI edd	       edd	      ej$                  j1                  dM e	ej                  i        e	ej                  dNdOi       e	ej                  dNdPi       e	ej                  dNdQi       e	ej                  dNdRi       e	ej                  dNdSi       e	ej                  dNdTi      g      ej$                  j1                  d#d d%g      ej$                  j1                  dg d      dU                                    ZL e
ej                         edd	      ej$                  j1                  dVg dW      ej$                  j1                  dg d      dX                             ZN e
ej                         edd	      ej$                  j1                  dGg dH      ej$                  j1                  dYddg      dZ                             ZPd[ ZQ e
ej                         edd	      ej$                  j                  d\      ej$                  j1                  d]ddg      ej$                  j1                  dd d%g      d^                                    ZS e
ej                         edd	      ej$                  j1                  d_d%dg      ej$                  j1                  d`dag      ej$                  j1                  dbddg      ej$                  j1                  dGg dH      ej$                  j1                  dVdcg      ej$                  j1                  dg d      dd                                                         ZU e
ej                         edd	      ej$                  j1                  deddg      ej$                  j1                  dGg dH      ej$                  j1                  dVdcg      ej$                  j1                  dg d      df                                           ZW edd	      ej$                  j1                  dD e	ej                         e	ej                        g      ej$                  j1                  dVg dg      ej$                  j1                  dGg dH      ej$                  j1                  dg d      dh                                    ZZ edd	      ej$                  j1                  d e	ej                  i        e	ej                  did6i       e	ej                  dVdji      g      ej$                  j1                  dg d      dk                      Z] e
ej                         edd	      ej$                  j1                  dD e	ej                         e	ej                        g      ej$                  j1                  dVg dl      ej$                  j1                  dGg dH      ej$                  j1                  dg d      dm                                           Z_ e
ej                         G dn do             Za edd	       edd	      ej$                  j1                  d e	ej                  i        e	ej                  i        e	ej                  ddpi       e	ej                  ddqi       e	ej                  ddri       e	ej                  dYdi       e	ej                  dYdi       e	ej                  i        e	ej                  ddpi       e	ej                  ddqi       e	ej                  ddri      g      ej$                  j1                  dg d      ds                             Zh eddt	      ej$                  j1                  d e	ej                  i       g      ej$                  j1                  dg d      du                      Zj edd	       edd	      ej$                  j1                  dF e	ej                         e	ej                         e	ej                        g      ej$                  j1                  dGg dH      ej$                  j1                  dg d      dv                                    Zn edd	       edwdx	      ej$                  j1                  dy e	ej                  dVdzi       e	ej                  dVd{i       e	ej                  dVd|i       e	ej                  dVd{i       e	ej                  dGd}i       e	ej                  dGd~i       e	ej                  dGdi      g      ej$                  j1                  dg d      d                             Zr e
ej                         edd	       edd	      ej$                  j1                  dddg      ej$                  j1                  dddg      ej$                  j1                  dg d      d                                           Zt e
ej                         eddt	      ej$                  j1                  dVg d      ej$                  j1                  dg d      d                             Zv e
ej                         eddt	      ej$                  j1                  d<dd
g      ej$                  j1                  dd%d&g      d                             Zxy)    N)stats)xp_assert_closexp_assert_equal_count_nonmasked)make_xp_pytest_parammake_xp_test_case)SCIPY_ARRAY_APIis_torch)_xp_mean_xp_varmarrayzcspecial function dispatch to marray required for these tests is hidden behind SCIPY_ARRAY_API flag.)reasonfloat64)      Tl   !wN4 )dtypexpshape
all_uniqueseedc                   t         j                  |      }t        j                  j	                  |      }g g }	}t        |       D ]  }
|r|j                  |      n(|j                  t        j                  |      dz  |      }|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integersmin
startswithstandard_normalastypeappendzipasarraycopynan)n_arraysr   r   r   r   r   mxprngdatasmasksidatar   marrays
nan_arraysarray	nan_arrays                    \/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/scipy/stats/tests/test_marray.py
get_arraysr9      sQ   



#C
))


%Cr5E8_ *4


&\\"&&-1"45\A 	I&d7S=!4!4%!4!@@D{{5!Tzzuz%,T GJ5%( %ts{{5t{45JJL	&&	$)$	% ##    z	jax.numpyz"JAX doesn't allow item assignment.zfun, kwargspr   alphag?weightedFaxisr      Nc                     t        d|      \  }}}|r|d   nd }|r|d   nd }	 | |d   f||d|}
 | |d   f|	d|d|}t        |
j                  |j                  |             y )Nr   r   r@   r   )weightsr>   omit)rC   
nan_policyr>   )r9   r   r3   r*   )funkwargsr=   r>   r   r.   r4   narraysmweightsnweightsresrefs               r8   !test_one_sample_weighted_reducingrM   3   s}     'qR0C'%wqz4H%wqz4H
gaj
@(
@
@C
gaj
S(vD
SF
SCCHHbjjo.r:   z
dask.arrayz/Arrays need `device` attribute: dask/dask#11711ordercenterg      ?bias)fisherrP   ddofnr@         )lowhigh)rV   rW   	normalize)
correctionkeepdims)皙?g?)limits)FT)r\   	inclusive)TF)FF)
lowerlimitr]   )
upperlimitr]   interpolationnearest)r   Z   normal)r/   scalerd   proportiontocutr[   c                     t        d|      \  }}}t        |      |z  } | |d   fi |} | |d   fddi|}t        |j                  |j	                  |             y )Nr@   rB   r>   r   rE   rD   )r9   dictr   r3   r*   	rF   rG   r>   r   r.   r4   rH   rK   rL   s	            r8   test_one_sample_reducingrj   F   sg    V 'qR0C't_v%F
gaj
#F
#C
gaj
6V
6v
6CCHHbjjo.r:   r   int32r   r   c           	         t        d|d|      \  }}}t        j                  |j                  |d   t	        ||                   }t        j                  |ddi}t        |j                  j                  |j                  |j                  j                  |                    t        |j                  j                  |j                  |j                               y )Nr@   F)r   r   r   r   rE   rD   )	r9   r   moder'   getattrr   r3   r*   count)	r   r   r>   r   r.   r4   rH   rK   rL   s	            r8   	test_moderp   x   s    
 'q%BOC'
**SZZ
GC,?@
AC
**g
1&
1CCHHMM2::chhooe.D#EFCIINNBJJsyy$9:r:   rG   c           	      R   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                  t        j                  |j                  j                  d                   t	        |j                  j                  |j                  t        j                  |j                  j                  d                   t	        |j                  j                  |j                  t        j                  |j                  j                  d                   y )	Nr@   rB   rg   r   rE   rD   T)r+   )r9   rh   r   describer   nobsr3   r*   minmaxvariancer   skewnesskurtosis)r>   rG   r   r.   r4   rH   rK   rL   s           r8   test_describerx      sw    '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%%JJrzz#,,*;*;$GHJCLL%%JJrzz#,,*;*;$GHJCLL%%JJrzz#,,*;*;$GHJr:   z#shape (nan,) in _xp_var when ddof=1rF   c           	      ^   | t         j                  k(  rt        d|      nt        d|      \  }}} | |||d}|j                   | ||d|d      }t	        |j
                  |j                      ||j                  |                 t        |j                  |d   j                         y )Nr   rB   r@   )rR   r>   rD   )rR   rE   r>   r   )	r   zmapr9   r*   r   r3   r   isnanr   )	rF   rR   r>   r   r.   r4   rH   rK   rL   s	            r8   test_one_sample_non_reducingr|      s     69EJJ5FZb1",Q2"6 C'
wT
-C
**S'dK
LCCHHchhY'bhhsm^)<=CHHgajoo.r:   falternativelessgreater	two-sidedc                    | j                   }t        d|      \  }}}|dk(  r<|j                  |d   ||d u      |d<   t        j                  |d   ||d u      |d<    | |||d} | ||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   rB   ttest_1sampr@   r>   rZ   )r~   r>   rD   )r~   rE   r>   )__name__r9   meanr   nanmeanr   	statisticr3   r*   pvalueconfidence_intervalrV   rW   )r}   r~   r>   r   f_namer.   r4   rH   rK   rL   res_ciref_cis               r8   test_ttestsr      s"    ZZF&qR0C'XXgajtd$>NXO
ZZ
D@PQ

W+D
9C
W+&t
LCCMM&&

3==(ABCJJOORZZ

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

%;<FKK$$bjj&=>r:   z7ignore::scipy.stats._axis_nan_policy.SmallSampleWarningzf, argsc                    t        d|d      \  }}}| t        j                  t        j                  hv rd|i}n*|dk7  r#t	        j
                  d| j                   d       i } | g ||i |d|i}	 | g ||i |d	|d
}
t        |	j                  j                  |j                  |
j                               t        |	j                  j                  |j                  |
j                        d       y )Nr@   r      r   r   r~   r   zstr(z( does not support multiple alternatives.r>   rD   rE   r>   gV瞯<atol)r9   r   skewtestkurtosistestpytestskipr   r   r   r3   r*   r   )r}   argsr~   r>   r   r.   r4   rH   kwdsrK   rL   s              r8   test_goodness_of_fitr      s     'qRx@C'U^^U//00{+)#KK$qzzl*RST

/W
/t
/t
/$
/C

BW
Bt
Bt
BT
BCCMM&&

3==(ABCJJOORZZ

%;%Hr:   z
f, lambda_lambda_pearsonzlog-likelihoodzfreeman-tukeyzmod-log-likelihoodneymanzcressie-readc                    t        d|d      \  }}}t        ||      } | |d   fi ||}	t        j                  |d   fddi||}
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        j                  |ddi||}
t	        |	j
                  j                  |j                  |
d                t	        |	j                  j                  |j                  |
d                y )Nr   )      r   )r>   rR   r   rE   rD   r@   Tr   )r9   rh   r   power_divergencer   r   r3   r*   r   r   r{   nansum)r}   r   rR   r>   r   r.   r4   rH   rG   rK   rL   common_maskrX   s                r8   test_power_divergence_chisquarer      s    'qRv>C't$'F GAJ
,'
,V
,C

 
 
T
T'
TV
TCCMM&&

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

3q6(:;CJJOORZZA%78r:   method)rQ   r   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   r   r   r   r>   r   rE   rD   r   rC   r@   )rC   rE   )	r9   rh   r   combine_pvaluesr   r   r3   r*   r   )	r   r>   r   r.   r4   rH   rG   rK   rL   s	            r8   test_combine_pvaluesr     s9    '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

%;<r:   	equal_varc           
      8   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        | |	      }	t        j                  |i |	}
t        j                  |i |	}|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 )
Nr   r   r   r   rg   r   d   r   )r~   r   )r9   r   sumstackr{   r'   boolrh   r   ttest_ind_from_statsr*   anyr   r   r3   r   r   r   )r~   r   r   r   r.   r4   rH   argr   rG   rK   rL   s               r8   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
kY?F

$
$g
8
8C

$
$g
8
8C::dD66$<BFFD5M))CMM&&u-rzz#--/HICJJOOTE*BJJszz,BCCMM&&-CJJOOT*==%'''::u$$$! >-s   H7Hc                      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*   r   raisesNotImplementedErrorr   )r   r3   r   marrs       r8   1test_length_nonmasked_marray_iterable_axis_raisesr   ;  s~    			r	"B#Jc
#DENT5M*D::d:&D 
*G
I 3Fr23 3 3s   A00A9zignore::RuntimeWarningrX   c                     t        dd|      \  }}}t        j                  || |d}|\  }|dk(  rt        j                  |dd      }t        |j                  d         D ]  }||   }	|	t        j                  t        j                  |	      d       d d f   }	t        j                  |	|       }
t        |j                  j                  |d	f   |j                  |
j                               t        |j                  j                  |   |j                  |
j                        d
           |j                  |j                  j                        rJ |j                  |j                  j                        rJ y )Nr@   )      rT   r   r   )rX   r>   r   rg   )rX   . )r9   r   directional_statsr   swapaxesr"   r   r   r{   r   mean_directionr3   r*   mean_resultant_lengthr   )rX   r>   r   r.   r4   rH   rK   xr2   xirL   s              r8   test_directional_statsr   I  sP    'qCC'

!
!7id
KC	BAqyKK1a 1771: CqT2..12%%bI>**//37

3#5#56	81166q9

3#<#<=bA	CC vvc((--...vvc//445555r:   	n_sampleszero_methodzsplitrY   
asymptoticc                    t        | |d      \  }}}	t        ||||      }
t        j                  |d|i|
}t        j                  |	d|d|
}t	        |j
                  j                  |j                  |j
                               t	        |j                  j                  |j                  |j                               y )N   "wN4 r   r   )r   rY   r~   r   r>   rD   r   )	r9   rh   r   wilcoxonr   r   r3   r*   r   )r   r   rY   r~   r   r>   r   r.   r4   rH   rG   rK   rL   s                r8   test_wilcoxonr   b  s     'yRnMC'kj)&:F
..'
7
7
7C
..'f4
J6
JCCMM&&

3==(ABCJJOORZZ

%;<r:   use_continuityc                    t        d|d      \  }}}t        | ||      }t        j                  |d|i|}	t        j                  |d|d|}
t	        |	j
                  j                  |j                  |
j
                               t	        |	j                  j                  |j                  |
j                               y )Nr   r   r   )r   r~   r   r>   rD   r   )	r9   rh   r   mannwhitneyur   r   r3   r*   r   )r   r~   r   r>   r   r.   r4   rH   rG   rK   rL   s              r8   test_mannwhitneyur   t  s     'qRnEC'[QWXF


g
;D
;F
;C


g&t
Nv
NCCMM&&

3==(ABCJJOORZZ

%;<r:   )exactapproxasympc                    t        d|d      \  }}}t        |||      } | g |t        j                  j                  i |}	t        j
                  g |t        j                  j                  ddi|}
t        |	j                  j                  |j                  |
j                               t        |	j                  j                  |j                  |
j                               t        |	j                  j                  |j                  |
j                               t        |	j                  j                  |j                  |
j                  |j                               y )Nr@   r   r   r   r~   r>   rE   rD   r   )r9   rh   r   normcdfks_1sampr   r   r3   r*   r   r   statistic_locationstatistic_signint8rF   r   r~   r>   r   r.   r4   rH   rG   rK   rL   s              r8   test_ks_1sampr     s    'qRnEC'[tDF

1w
1


1&
1C
..
O'
O5::>>
Of
O
OCCMM&&

3==(ABCJJOORZZ

%;<C**//C<R<R1STC&&++JJs11JACr:   distributionr   c                    | t         j                  k(  r|t        j                  d       t	        d|d      \  }}} | |d|i|} | |d|d|}t        |j                  j                  |j                  |j                               t        |j                  j                  |j                  |j                               y )Nz"Sample too large for exact method.r   r   r   r>   rD   r   )
r   cramervonmises_2sampr   r   r9   r   r   r3   r*   r   ri   s	            r8   test_two_sample_testsr     s     e(((T\89&qRnEC'
w
,T
,V
,C
w6
?
?CCMM&&

3==(ABCJJOORZZ

%;<r:   )r   r   autoc                    t        d|d      \  }}}t        |||      } | |i |}	t        j                  |ddi|}
t	        |	j
                  j                  |j                  |
j
                               t	        |	j                  j                  |j                  |
j                               t        |	j                  j                  |j                  |
j                  |j                               y )Nr   r   r   r   rE   rD   r   )r9   rh   r   ks_2sampr   r   r3   r*   r   r   r   r   r   s              r8   test_ks_2sampr     s     'qRnEC'[tDF
w
!&
!C
..'
?f
?
?CCMM&&

3==(ABCJJOORZZ

%;< C&&++JJs11JACr:   c                   b   e Zd Zej                  j                  dddg      ej                  j                  dddg      ej                  j                  dg d      ej                  j                  d	g d
      d                             Zej                  j                  dddg      d        Zy)TestKendallTaur   r   r   variantbcr~   r   r>   r?   c                    t        dd|d      \  }}}t        |||      }	t        j                  |i |	d|i}
t        j                  |i |	d|d}t	        |
j
                  j                  |j                  |j
                               t	        |
j                  j                  |j                  |j                               y )	Nr   )      r   )r   r   r   )r   r   r~   r>   rD   r   )	r9   rh   r   
kendalltaur   r   r3   r*   r   )selfr   r   r~   r>   r   r.   r4   rH   rG   rK   rL   s               r8   test_omit_masked_elementsz(TestKendallTau.test_omit_masked_elements  s    
 !+1H.0~!GWgVW+N=6==P6Pf4P**BJJs}},EF

CJJ)?@r:   znan_policy, message)	propagatez;`nan_policy='propagate'` is incompatible with MArray input.)raisezThe input contains nan values.c                     t         j                  |      }|j                  ddd|j                  g      }t	        j
                  t        |      5  t        j                  |||       d d d        y # 1 sw Y   y xY w)Nr@   r   rT   r   )rE   )	r   r   r*   r,   r   r   
ValueErrorr   r   )r   rE   messager   r.   r   s         r8   test_input_validationz$TestKendallTau.test_input_validation  sd    
 ##B'KKAq"&&)*]]:W5 	:Qj9	: 	: 	:s   A22A;N)r   
__module____qualname__r   markparametrizer   r  r   r:   r8   r   r     s    [[Xg'>?[[Yc
3[[],LM[[V\2A 3 N 4 @A [[2T35 :	:r:   r   medianr   trimmedc                 4   t        d|      \  }}} | |d|i|} | |d|d|}t        |j                  j                  |j	                  |j                               t        |j
                  j                  |j	                  |j
                               y )NrT   rB   r>   rD   r   r9   r   r   r3   r*   r   ri   s	            r8   test_k_sample_testsr
    s~    " 'qR0C'
w
,T
,V
,C
w6
?
?CCMM&&

3==(ABCJJOORZZ

%;<r:   z&JAX currently incompatible with marrayc                 6   t        dd|      \  }}} | |d|i|} | |d|d|}t        |j                  j                  |j	                  |j                               t        |j
                  j                  |j	                  |j
                               y )NrT   )r   	   r   r>   rD   r   r	  ri   s	            r8   test_k_sample_paired_testsr    s     'q2>C'
w
,T
,V
,C
w6
?
?CCMM&&

3==(ABCJJOORZZ

%;<r:   c                    t        d|      \  }}}| t        j                  k(  ri nd|i} | |i |d|i}|\  }	}
|dk(  r|	j                  |
j                  }
}	nL|J|	j	                         t
        j                  d d f   |
j	                         t
        j                  d d f   }
}	t        |	j                  d         D ]  }|	|df   |
|df   }}|dn|}t        j                  |      t        j                  |      z  } | ||    ||    fi |}t        |      r| t        j                  k(  rdnd	}t        |j                  j                  |   |j                  |j                        d   |
       t        |j                   j                  |   |j                  |j                         d   |
       | t        j"                  k(  s|j%                         \  }}|j%                         \  }}t        |j                  |   |j                  |      d          t        |j                  |   |j                  |      d           y )Nr   rB   r~   r>   r   .r   gHz>g        r   )r9   r   pointbiserialrTravelr   newaxisr"   r   r{   r
   spearmanrhor   r   r3   r*   r   pearsonrr   )r}   r~   r>   r   r.   r4   rH   rG   rK   r   yr2   r   yir   rL   r   
res_ci_lowres_ci_high
ref_ci_lowref_ci_highs                        r8   test_correlationr    s    'qR0C',,,R=+2NF
W
*
*T
*C DAqqyssACC1	wwyQ'2::q=)A11771: N1c6AafIB,BAxx|bhhrl*D5	2te9// e.?.?)?tb**1-rzz#--/H/LSWX

*BJJszz,B2,FTR&)&=&=&?#J&)&=&=&?#JJOOA.

:0Fr0JKK,,Q/K1H1LMNr:   array_api_strictzissue with clip.z	f, methodhierarchicalseparatejointr   r   r   c                 4   t        ddd|      \  }}} | |d|i|} | |d|d|}t        |j                  j                  |j	                  |j                               t        |j
                  j                  |j	                  |j
                               | t        j                  k(  rst        |j                  j                  |j	                  |j                               t        |j                  j                  |j	                  |j                               y | t        j                  k(  rt        |j                  j                  |j	                  |j                               t        |j                  j                  |j	                  |j                               t        |j                  j                  |j	                  |j                               t        |j                  j                  |j	                  |j                               y y )Nr   )r   r   l    wN4 )r   r   r   r>   rD   r   )r9   r   sloper3   r*   	interceptr   theilslopes	low_slope
high_slope
linregressrvaluer   stderrintercept_stderr)	r}   r   r>   r   r.   r4   rH   rK   rL   s	            r8   test_slopes_interceptsr*  #  sh    'q~RTUC'
W
*4
*6
*C
Wd
=f
=CCIINNBJJsyy$9:CMM&&

3==(ABE**BJJs}},EF++RZZ-GH	
e	

CJJ)?@

CJJ)?@

CJJ)?@,,112::c>R>R3ST	 
r:   z/Dask doesn't like the /= when base is not None.qkbasec                     t        | rdnd|      \  }}}t        j                  |||d}t        j                  ||d|d}t        |j                  |j                  |             y )Nr   r@   rB   )r,  r>   rD   )r,  rE   r>   )r9   r   entropyr   r3   r*   )	r+  r,  r>   r   r.   r4   rH   rK   rL   s	            r8   test_entropyr/  A  sW     'BqA"=C'
--t$
7C
--tT
JCCHHbjjo.r:   )averager$   maxdenseordinalc           	         t        d|      \  }}}t        j                  || |d}t        j                  || d|d}t        |j                  |j
                      |j                  |t        j                  |                       t        |j
                  |j                  t        j                  |                   y )Nr@   rB   r   rD   )r   rE   r>   )	r9   r   rankdatar   r3   r   r*   r   r{   )r   r>   r   r.   r4   rH   rK   rL   s           r8   test_rankdatar6  N  s    
 'qR0C'
..'&t
<C
..'&V$
OCCHHchhY'C#4G)HICHHbjj#78r:   float32r-   c                 L   t        || d|      \  }}}t        j                  | }t        j                  |ddi}t        ||      D ][  \  }}	t	        |j
                  |j                      |j                  |	t        j                  |	          t        ||                    ] y )N)   )r   r   r   rE   rD   r   )r9   r   obrientransformr)   r   r3   r   r*   r   r{   rn   )
r   r-   r   r.   r4   rH   rK   rL   res_iref_is
             r8   test_obrientransformr=  Z  s     'xuEbQC'



)C



<V
<CC Wu

EJJ;/

5"((5/)9#:'"eBT
U	WWr:   )ynumpyr   r   scipyr   scipy._lib._array_apir   r   r   r   r   r	   r
   scipy.stats._stats_pyr   r   importorskipr   r  skipif
pytestmarkskip_xp_backendsskip_backendr9   r  gmeanhmeanpmean	expectilerM   momentskewrw   semkstatkstatvarcircmeancircvarcircstdgstd	variationtmeanrh   tvartstdtsemtmintmaxiqrmedian_abs_deviation	trim_meanrj   rm   rp   rr   rx   zscoregzscorerz   r|   r   	ttest_rel	ttest_indr   filterwarningsr   tupler   
normaltestjarque_beracramervonmisesr   r   r   	chisquarer   r   r   r   r   r   r   r   r   r   r   r   r   r   kstestr   brunnermunzelr   r   r   r   r   r   bartlettalexandergovernlevenef_onewaykruskalflignerr
  friedmanchisquarer  r  r  r  r  siegelslopesr#  r&  r*  r.  r/  r5  r6  r:  r=  r   r:   r8   <module>rr     s      T T I ; 3 
		X	&
KK6  
 {{++"+&T"$6 k"FGb)b)sAh/7C.92&)  eT]3./ / 4 H/ l#TUk"FG%%,,!5 %%,,38%%**b)% %**vuo6% %.."-	%
 %..UE*JK% %))R(% %))fa[1% %++Qx0% %++Qx0% %++Qx0% %++Qx0% %..3(3% %..3(3% %.."-% %..!Q*?@%  %--,!%" %--A)>?#%$ %--,%%& %--A4)PQ'%( %**b))%* %**vqk2+%, '2&-%. '!#FG/%0 %//2.1%2 %//FA;73%4 %++t:'>?5%6 %**d*&VW7%8 %**d*&VW9%: %**d*
&ST;%< %**dcT&JK=%> %**dcU&KL?%@ %))oy%ABA%B %))X%IJC%D %44b9E%F %44w6IJG%H %//,=s+CDI%&N ./ /O& H VT/ 5::7I"672v,/.; / 0 8 ; 5>>"l#TUk"FG.B#89J : / H V #
J" l#HIk"FG!5ell!C!5emm!D!5ejj!A!C D !Q(./ / )D H J/ l#TUk"FG3E4E4EF3EOOD3EOODF G (HI.? / JG H V?  l#TUk"FGUV%..%'2%,,eg6%**EG4%++UW5%..0AB%  (HI.I / J W H VI" l#TUk"FG"-//)Y1GH//)=M1NO//)_1MN//#%9:<//)X1FG//)^1LM	( 	 !Q(.9 / )	 H V94 5(()k"FG $; <.= /< H *
=, 5--.k"FG(HIudm4% 5 J H /%,3 5**+k"FG45udm4!Q(6 ) 5 6 H ,
6( 5>>"k"FGq!f-
3t}5(HIL>2.= / 3 J 6 4 . H #= 5%%&k"FG)E4=9(HIL>2.= / 3 J : H '= k"FG!5enn!E!5ell!C!E F#?@(HI.	C / J AF H	C k"FG,,b1,,~x.HI33h5HI)  .= / H= 5>>"k"FG!5enn!E!5ell!C!E F#=>(HI.C / J ?F H #C 5##$: : %:2 l#TUk"FG,..3(';<&'9:)'<=+t)<=+u)=>+8(<=6(:;9(=>)  .= / H V = k"JK00"5)  .= / L
= l#TUk"FG(--.**+ 
 (HI.N / J H VN> k"FG );<++h~-FG++hz-BC**Xw,?@**Xz,BC))M6+BC))M9+EF))M;+GH'  .U / = HU$ 5==!l#TUk"FGt}-$+./ / , . H V "/ 5>>"k"JK#PQ.9 / R L #9 5(()k"JK9i"89aV,W - : L *Wr:   