
    >qj	                    j   d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlm	Z	 d dl
mZmZmZmZmZmZm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mZmZ dd	lmZ d
dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z*m+Z+m,Z,m-Z- d dl.m/c m0Z1 d dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; d dl<m=Z=m>Z>m?Z? egZ@ej                  j                  ZB eCe(      Z(	 d dlDZDdeDj                  d<   d dlFmGZH dZIg dZKg dZLg dZMg dZNg dZOg dZPg dZQg dZRg dZSg dZTd  ZU G d! d"      ZV G d# d$      ZW e4ej                         G d% d&             ZYej                  j                  d'       G d( d)             Z[ G d* d+      Z\ej                  j                  d,       G d- d.             Z] G d/ d0      Z^ e4ej                         G d1 d2             Z` e4ej                         G d3 d4             Zb e4ej                         G d5 d6             Zd e4ej                         G d7 d8             Zf e4ej                         G d9 d:             Zhd; Zi e4ej                         G d< d=             Zk G d> d?      Zl e4ej                         G d@ dA             Zng dBZo e4ej                         G dC dD             Zq e4ej                         G dE dF             Zs G dG dH      Zt G dI dJ      Zu e4ej                         G dK dL             Zwg dMZx G dN dO      Zy G dP dQey      Zz G dR dS      Z{ G dT dUe{      Z| G dV dW      Z} e4ej                         G dX dY             Z G dZ d[ey      Z G d\ d]e{      Z e4ej                  ej                  ej                         G d^ d_             Z G d` da      Z G db dc      Z e4ej                         G dd de             Z e4ej                         G df dg             Zej                  j                  ddhi       G dj dk             Zy# eJ$ r dZIY Lw xY w)l    N)partial)RandomState)assert_array_equalassert_almost_equalassert_array_lessassert_array_almost_equalassert_assert_allcloseassert_equal)raises)optimizestatsspecial)
_abw_state_get_As_weibull_Avals_weibull_yeojohnson_transform   )check_named_results   )_get_wilcoxon_distr_get_wilcoxon_distr2)swilk)_binary_search_for_binom_tst)distcont)SmallSampleWarningtoo_small_nd_omittoo_small_1d_omittoo_small_1d_not_omit)	is_torchmake_xp_test_caseeager_warnsxp_ravelis_numpyxp_default_dtypeis_array_api_strictis_jaxis_lazy_array)xp_assert_closexp_assert_equalxp_assert_lessAggbackendTF)
jt?Zd;?V-?      ?gX9v?-?x&1?+?+?r1   )
r0   r.   r1   r3   灕Cl?r0   r/   r1   r.   V-?)
ʡE?g/$?r6   r4   ףp=
?r5   r1   r4   r/   r/   )
gGz?r3   r5   r1   r9   r5   r0   r/   r3   r/   )
r0   r0   gCl?Gz?r3   rh|?r/   r2   g\(\?r/   )
羟/$?gh|?5?r<   r6   r7   r3   r9   r0   g1Zd?r/   )
r:   Mb?r/   gjt?r0   r1   g}?5^I?g)\(?r/   r3   )
r0   r1   r.   r1   r3   r/   r0   r/   r3   r.   )
r3   r0   r/   r9   r/   r=   r=   r0   r4   r8   )
r8   r9   r;   r5   r6   r6   r8   r0   r=   r6   c                  f    t        j                  t        j                  j                  | i |      S N)nplogr   gammarvs)argskwargss     _/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/scipy/stats/tests/test_morestats.py_old_loggamma_rvsrG   H   s#    66%++//426233    c                       e Zd Zd Zd Zd Zy)TestBayes_mvsc                 V   g d}t        j                  |      \  }}}t        |j                  d       t	        |j
                  dd       t        |j                  d       t	        |j
                  dd       t        |j                  d	d
       t	        |j
                  dd       y )N   	            rQ            "@gURH#j@gV[%@ư>rtol      $@gai	@gӇu8@&.>_紫@   decimalgYs?g1O@+=)r   	bayes_mvsr   	statisticr
   minmaxselfdatameanvarstds        rF   
test_basiczTestBayes_mvs.test_basicM   s     '.c3DNNC0%L!	# 	CMM40

$K"	$ 	CMM+=rJ

$L"	$rH   c                 B    t        t        t        j                  g        y r?   )assert_raises
ValueErrorr   ra   re   s    rF   test_empty_inputzTestBayes_mvs.test_empty_input_   s    j%//26rH   c                     t        j                  d      }d}t        j                  |      }|D ]  }t	        ||        y )N   )rb   rc   )r@   aranger   ra   r   )re   x
attributesresis        rF   test_result_attributesz$TestBayes_mvs.test_result_attributesb   s;    IIbM,
ooa  	/A:.	/rH   N)__name__
__module____qualname__rj   ro   rw    rH   rF   rJ   rJ   L   s    $$7/rH   rJ   c                   $    e Zd Zd Zd Zd Zd Zy)TestMvsdistc                    g d}t        j                  |      \  }}}t        |j                         d       t	        |j                  d      dd       t        |j                         d       t	        |j                  d      dd	       t        |j                         d
d       t	        |j                  d      dd       y )NrL   rS   ?rT   r`   rV   rX   rY   rZ   r[   r\   r]   r_   )r   mvsdistr   rg   r
   intervalrd   s        rF   rj   zTestMvsdist.test_basicl   s    &t,c3DIIK-c* -AGL	N 	CHHJ-S) ,?EJ	L 	CHHJ(:BGS) ,@FK	MrH   c                 B    t        t        t        j                  g        y r?   rl   rm   r   r   rn   s    rF   ro   zTestMvsdist.test_empty_input{   s    j%--4rH   c                 H    dg}t        t        t        j                  |       y Nr   r   re   rf   s     rF   test_bad_argzTestMvsdist.test_bad_arg~   s    sj%--6rH   c                 j   t        j                         5  t        j                  dt               t	        j
                  g d      D cg c]  }|j                          c} t	        j
                  g d      D cg c]  }|j                          c} d d d        y c c}w c c}w # 1 sw Y   y xY w)Nerrorr   r      r   r   r         )warningscatch_warningssimplefilterRuntimeWarningr   r   rg   re   rs   s     rF   
test_warnszTestMvsdist.test_warns   sz     $$& 	?!!'>:$}}Y78!QVVX8$}}_=>!QVVX>	? 	?8>	? 	?s)   4B)	B B)<B$B)
B))B2N)rx   ry   rz   rj   ro   r   r   r{   rH   rF   r}   r}   k   s    M57
?rH   r}   c            	       8   e Zd Zd Zej
                  j                  dg d      d        Z edd       edd      ej
                  j                  d	g d
gd
dgf      d                      Z	d Z
d Zd Zej
                  j                  dg d      d        Zy)TestShapiroc                    g d}t        j                  |j                  |            }|\  }}t        ||j                  d             t        |j                  |j                  d             t        ||j                  d             t        |j
                  |j                  d             g d}t        j                  |j                  |            }t        |j                  |j                  d             t        |j
                  |j                  d             t         j                  j                  ddd	d
      }t        j                  |j                  |j                                     }t        |j                  |j                  d             t        |j
                  |j                  d             y )N)g)\(?g{Gz@gq=
ףp@gHzG$@g@gQ	@gq=
ףp?gQ@gzG?g      @Q?gRQ?gQ	@g(\?gzG?gzG@g(\#@g333333@gGz?gp=
ף@gR?g*Ì?)g(\?g=
ףp=?g\(\@gffffff@\(\?g(\?gGz@g(\gףp=
@皙?g)\(?gRQr   gp=
ף?g@
ףp=
?g{Gz?g\(\@g{Gz@gQ@g"&GY?gTx]?r   r   d   iNa locscalesizerandom_stategFE?gj~ٴ?)	r   shapiroasarrayr)   rb   pvaluenormrC   tolist)re   xpx1shapiro_testwpwx2x3s           rF   rj   zTestShapiro.test_basic   sC   8 }}RZZ^422::&678..

;K0LMBJJ'789++RZZ8H-IJ& }}RZZ^4..

;K0LM++RZZ-HIZZ^^8^L}}RZZ		%<=..

;K0LM++RZZ8H-IJrH   dtypeNfloat32float64c                 `   g d}d||nt        ||      i} |j                  di |} |j                  di |}t        j                   |j                  |fi |      }t	        |j
                   |j                  |fi |       t	        |j                   |j                  |fi |       y )N)gn?gjt?gffffff?gMb?gjt?g;On?gjt?gX9v?gS?g(\?gI+?gʡE?gx?g|?5^?r   gCl?g1Zd@gS@g(\	@gGz@g rh@g"~j@gQ@gtV@gʡE @r   )gr?)g,NM?)getattrr   r   r   r)   rb   r   )re   r   r   x4
W_expected
p_expectedr   s          rF   test_basic2zTestShapiro.test_basic2   s    ? 5=%gb%6HIRZZ:E:
RZZ;U;
}}ZRZZ%<e%<=..


:0O0OP++ZRZZ
-Le-LMrH   	jax.numpyz(lazy backend -> limited input validationreasonz
dask.arrayrs   r   r   c                 ^   t        t        t        |      5  t        j                  |j                  |            }t        |j                  |j                  |j                               t        |j                  |j                  |j                               d d d        y # 1 sw Y   y xY wNmatchr   )
r"   r   r   r   r   r   r*   rb   nanr   )re   rs   r   ru   s       rF   test_not_enough_valuesz"TestShapiro.test_not_enough_values   ss     +3HRP 	<--

1.CCMM2::bff+=>CJJ

266(:;	< 	< 	<s   BB##B,c                    |j                  d      }t        j                  |      d   j                  |j                        }t        j                  |j                  |            }t        |j                  |j                  |j                               t        |j                  |j                  |j                               y )NrX   rN   )rr   xpxatsetr   r   r   r   r*   rb   r   )re   r   rs   r   s       rF   test_nan_inputzTestShapiro.test_nan_input   s    IIcNFF1IaLRVV$}}RZZ]3..

2660BC++RZZ-?@rH   c                 H   t        j                  g d      \  }}|j                  }t        j                  |j	                  ||            }|j	                  d|      }|j	                  d|      }t        |j                  |d       t        |j                  |d       y )N)i i = i@ r   gPq~?gF?Ơ>rV   )r   boxcoxr   r   r   r)   rb   r   )re   r   	trans_valmaxlogr   ru   ref_statistic
ref_pvalues           rF   test_gh14462zTestShapiro.test_gh14462   s    
 "LL)AB	6

mmBJJyJ>? 

#35
AZZuZ=
}4@

JT:rH   c                 V   t        j                  |j                  g d            }|j                  dk\  sJ g d}t        j                  |j                  |            }t	        |j
                  |j                  d             t	        |j                  |j                  d             y )N)g9B.?        r   r   )g1gIۿg0!?gr??gel?)r   r   r   r   r)   rb   )re   r   ru   rs   s       rF   test_length_3_gh18322z!TestShapiro.test_length_3_gh18322   sy     mmBJJ'EFGzzQ KmmBJJqM*rzz2B'CD

BJJ$?@rH   n)r   r   r   rQ         r            i  c                 2   t         j                  j                  |      }|j                  |      }t        j                  |dz  t         j
                        }t        j                  |      ||dz     z
  }t        ||d      \  }}}	|j                  |      }t        j                  |      }
|j                  ||j                        }|j                  ||j                        }t        |
j                  |d       t        |
j                  |d       y )Nr   r   r   r   rV   )r@   randomdefault_rngstandard_normalzerosr   sortr   r   r   r   r   r)   rb   r   )re   r   r   rngrs   ayr   r   _ru   s              rF   test_against_as181zTestShapiro.test_against_as181   s    ii##A&"HHQ!V2::.GGAJ16"',Q1~$z1JJqMmmA

=
@ZZ
!''Z:
}4@

JT:rH   N)rx   ry   rz   rj   pytestmarkparametrizer   skip_xp_backendsr   r   r   r   r   r{   rH   rF   r   r      s    K: [[W&BC
N D
N k*TUl+UV[[S2sQF"34< 5 W V<A;&A  [[S"WX; Y;rH   r   z'ignore: As of SciPy 1.17: FutureWarningc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                  j                  dg d      d        Zd Zy)TestAndersonc                    t        d      }|j                  d      }|j                  d      }t        j                  |      \  }}}t        |d d |       t        j                  |      \  }}}t        ||dd         t        j                  d      }d|d<   t        j                  |      \  }}}t        |d       y )	NI2   r   
   r   g	@)	r   standard_exponentialr   r   andersonr   r@   onesr
   )re   rsr   r   Acritsigvs           rF   test_normalzTestAnderson.test_normal   s    $$$"$-R(~~b)4$s)Q'~~b)4!T"#Y'GGBK!~~a(4 	8$rH   c                 `   t        d      }|j                  d      }|j                  d      }t        j                  |d      \  }}}t        ||dd         t        j                  d      5  t        j                  |d      \  }}}d d d        t        ||d   kD         y # 1 sw Y   xY w)	Nr   r   r   exponr   ignoreallr   )	r   r   r   r   r   r   r@   errstater	   )re   r   r   r   r   r   r   s          rF   
test_exponzTestAnderson.test_expon  s    $$$"$-R(~~b'24!T"#Y'[[X& 	7 >>"g6LAtS	7DH	7 	7s   /B$$B-c           	         t        j                  d      }d|d<   t        j                  |d      \  }}}t	        |      }t        j
                  j                  |      \  }}t        j
                  j                  |||      }t        j
                  j                  |||      }	t        j                  d|dz         }
| t        j                  d|
z  dz
  ||	d d d   z   z        z
  }t        ||       y )Nr   r   r   gumbelr   r   r   )r@   r   r   r   lengumbel_lfitlogcdflogsfrr   rg   r
   )re   r   a2r   r   r   xbarsr  r  rv   expected_a2s               rF   test_gumbelzTestAnderson.test_gumbel!  s     GGCL!q(3D#F..$$Q'a&&q$2$$Qa0IIa1b277AaC!Gtt0D#EFFK(rH   c                 H    t        t        t        j                  dgd       y Nr   plate_of_shrimpdist)rl   rm   r   r   rn   s    rF   r   zTestAnderson.test_bad_arg1  s    j%..1#<MNrH   c                     t        d      }|j                  d      }t        j                  |      }d}t	        ||       y )Nr   r   r   rb   critical_valuessignificance_level)r   r   r   r   r   )re   r   rs   ru   rt   s        rF   rw   z#TestAnderson.test_result_attributes4  s<    $###,nnQK
C,rH   c                     t        d      }|j                  d      }t        j                  |d      \  }}}t        j                  |d      \  }}}t	        ||       y )Nr   r   r   r  r  )r   r  r   r   r
   )	re   r   rs   A1crit1sig1A2crit2sig2s	            rF   test_gumbel_lzTestAnderson.test_gumbel_l;  sT     $II3I..H5E4..J7E4BrH   c                    t        d      }|j                  d      }t        j                  d      }d|d<   t	        j
                  |d      \  }}}t	        j
                  |d      \  }}}	t        ||dd         t        ||d   kD         y )	Nr   r   r   r/   r   gumbel_rr   r   )r   r  r@   r   r   r   r   r	   )
re   r   r   r   r  r  r  r  r  r  s
             rF   test_gumbel_rzTestAnderson.test_gumbel_rE  s     $YYCY WWS\ 1..Z8E4..Z8E4"eBCj)U2YrH   c                    t        j                  g d      }t        j                  |d      }|j                  j
                  \  }}}t        |||fdd       t        |j                  dd       |j                  |j                  d   k  sJ d	|z  }t        |d
d       t        d   }t        d   }||dz
  dz  ||z
  z  z   }	t        j                  |j                  |	kD        sJ t        |j                  |	d       y )N)
            r%        r&  u   r'  weibull_min)g
ףp=
@gzGX@gQS@Mb`?rV   gp=
ף?MbP?r   r   g?r   皙?g?atol)r@   arrayr   r   
fit_resultparamsr
   rb   r  r   r   )
re   rs   ru   mr   r   cAs40As45As_refs
             rF   test_weibull_min_case_Az$TestAnderson.test_weibull_min_case_AT  s    HHGHnnQ.--3C)=DIu48}}s2215555E6-b!b!S:.$+>>vvc))F2333++V$?rH   c                     t        j                  g d      }d}t        j                  t        |      5  t        j                  |d       d d d        y # 1 sw Y   y xY w)N)J   9   0        rO   F      r=    ;            iF  z/Maximum likelihood estimation has converged to r   r)  )r@   r0  r   r   rm   r   r   re   rs   messages      rF   test_weibull_min_case_Bz$TestAnderson.test_weibull_min_case_Bg  sK    HH 5 6C]]:W5 	-NN1m,	- 	- 	-s   AAc                 0   t        j                  g d       }d}d}t        j                  t        |      }t        j
                  t        |      }|5  |5  t        j                  |d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N)	r"  K   r;     k   rO   =   +   r=  z:Critical values of the test statistic are given for the...z;An error occurred while fitting the Weibull distribution...rF  r)  )	r@   r0  r   warnsUserWarningr   rm   r   r   )re   rs   wmessageemessagewcontextecontexts         rF   test_weibull_warning_errorz'TestAnderson.test_weibull_warning_erroro  s}     XX=>>OP<<8<==8< 	-x 	-NN1m,	- 	- 	- 	- 	- 	-s$   BB /B B		BBdistname)r   r   r  extreme1r  r  logisticr)  c                    t         j                  j                  d      }|dv rdn|}t        t        |      }t
        |   } |j                  |d|d}t	        j                  ||      }|j                  j                  sJ y )Nl   'Dah$>   r  rX  r  r   r   r   )
r@   r   r   r   r   r   rC   r   r1  success)re   rW  r   real_distnamer  r2  rs   ru   s           rF   test_anderson_fit_paramsz%TestAnderson.test_anderson_fit_paramsz  sy    
 ii##$67'/3I'I& 	um,-(DHHf4c:nnQ)~~%%%%rH   c                     d}t        t        d|z        t        d          t        j                  }t        t        d|z        t        d          y )Nr   r   r   )r   r   r   r@   inf)re   r3  s     rF   test_anderson_weibull_Asz%TestAnderson.test_anderson_weibull_As  s@    _QqS)>"+=>FF_QqS)>!+<=rH   N)rx   ry   rz   r   r   r  r   rw   r  r   r8  rI  rV  r   r   r   r^  ra  r{   rH   rF   r   r      sh    %.) O-  @&-	- [[ZOP	&P	&>rH   r   c                      e Zd Zd Zd Zd Zej                  j                  ddd ej                  ddej                  j                  	       ej                  d
dej                  j                  	       ej                  ddej                  j                  	      g      d        Zej                  j                  dg d      d        Zy)TestAndersonMethodc                     d}t        j                  t        |      5  t        j                  g dd       d d d        y # 1 sw Y   y xY w)NzAs of SciPy 1.17, users...rF  r   r   )r   rP  FutureWarningr   r   re   rH  s     rF   test_warningzTestAndersonMethod.test_warning  s8    .\\-w7 	.NN9f-	. 	. 	.s   A  A	c                     d}t        j                  t        |      5  t        j                  g ddd       d d d        y # 1 sw Y   y xY w)Nz`method` must be either...rF  r   r   	ekki-ekkimethod)r   r   rm   r   r   rf  s     rF   test_method_input_validationz/TestAndersonMethod.test_method_input_validation  s>    .]]:W5 	BNN9f[A	B 	B 	Bs   AAc                    t         j                  j                  d      }d}t        j                  t
        |      5  t        j                  |j                        }t        j                  g dd|       d d d        d}t        j                  t
        |      5  t        j                  d	
      }t        j                  g dd|       d d d        t        j                  d|      }t        j                  g dd|      }|j                  d	z  }t        j                  |      |k(  sJ t        j                  t         j                  j                  d            }t        j                  g dd|      }t        j                  t         j                  j                  d            }t        j                  g dd|      }|j                  |j                  k(  sJ t        j                  t         j                  j                  d            }t        j                  g dd|      }|j                  |j                  k7  sJ y # 1 sw Y   xY w# 1 sw Y   xY w)Nl   7.!Y zThe `rvs` attribute...rF  )rC   r   r   rj  zThe `batch` attribute...r   )batchrN   n_resamplesr   l   Fp r   r   l   Fp )r@   r   r   r   rP  rQ  r   MonteCarloMethodr   r   round)re   r   rH  rk  ru   ten_prefs          rF   test_monte_carlo_methodz*TestAndersonMethod.test_monte_carlo_method  s   ii##N3*\\+W5 	=++

;FNN9fV<	= -\\+W5 	=++"5FNN9fV<	= ''A3?nnYv>

Rxx%'''''BII,A,A+,NOnn_fVD''BII,A,A+,NOnn_fVDzzSZZ'''''BII,A,A+,NOnn_fVDzzSZZ'''-	= 	=
	= 	=s   ;I1III%zdist_name, seed)r   l   k2II)r   l   i!rY  l   v!)marksr  l   w!i;r  l   {hrc                    t        t        |      }t        j                  j	                  |      }|j                  d|      }t        j                  ||d      }t        j                  ||t        j                  |            }t        j                  j                  |j                  |j                         t        j                  j                  |j                  |j                  d       y )Nr   r[  interpolaterj  rq  {Gzt?r.  )r   r   r@   r   r   rC   r   rr  testingr
   rb   r   )re   	dist_nameseedr  r   rs   ru  ru   s           rF   test_method_consistencyz*TestAndersonMethod.test_method_consistency  s     ui(ii##D)HH"3H/nnQ	-@nnQ	%2H2HS2QR


""3==#--@


""3::szz"FrH   r|  )r   r   rY  r  r  r)  c                    t        t        |      }t        j                  j	                  d      }|dk(  rdn	t               } |j                  |d|d}t        j                  t              5  t        j                  ||      }d d d        |dk(  r"dt        j                  j                        z
  n!t        j                  j                        dz  }t        j                  |      }t        j                  |      }	t        j                  |j                        }
t        j                  |j                        }t        j                  ||d	      }|j                   |
k  sJ |j"                  |	k(  sJ t        j                  |j                  d
      |d	      }|j                   |kD  sJ |j"                  |k(  sJ y # 1 sw Y   @xY w)Nl   l2IIr)  )      @r   r[  r   r   ry  rj  r   )r   r   r@   r   r   tuplerC   r   rP  re  r   r   r  minmaxr  rb   r   )re   r|  r  r   rD   rs   ru   pvalues
pvalue_min
pvalue_maxstatistic_minstatistic_maxs               rF   test_interpolate_saturationz.TestAndersonMethod.test_interpolate_saturation  sp    ui(ii##M2"m3vDHHd#6\\-( 	/..I.C	/=F-=W1rzz#"8"899

3#9#9:S@ 	VVG_
VVG_
s223s223 nnQ	-@}}},,,zzZ''' nnSZZRZ0)MR}}},,,zzZ'''#	/ 	/s   -GGN)rx   ry   rz   rg  rl  rv  r   r   r   paramxslowr~  r  r{   rH   rF   rc  rc    s    .
B
(8 [[.	 	!	j-v{{7H7H	I	j-v{{7H7H	I	j-v{{7H7H	I		KLGLG [[[LN(N(rH   rc  z)ignore:Parameter `variant`...:UserWarningc                   t    e Zd Zd Zd Zej                  j                  d        Zd Z	d Z
d Zd Zd Zd	 Zy
)TestAndersonKSampc                 .   g d}t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  ||||fd      \  }}}t	        |dd       t        g d	|d
d d       t        |dd       y )NgYC@g     D@gfffffE@g     @F@g     F@g      G@gG@g      M@gC@gfffffC@gC@g33333D@gfffffD@g33333sE@gfffffE@gfffffF@      A@g     A@g     C@g      D@     E@r        F@g     F@r  ffffffA@r  g33333A@gB@gfffffB@gD@gffffffE@Fmidrankg@r   gCl?gvq-?g,Ԛ?gl@gPk	@r   r   r   gJ4a?Mb0?r.  r@   r0  r   anderson_ksampr   r   r
   re   t1t2t3t4Tktmps           rF   test_example1az TestAndersonKSamp.test_example1a  s    
 >XXFGXXFGXXFG(("b"b)95I	BBq)!"J"$Qq'1	.60rH   c                 T   t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  g d      }t        j                  ||||fd      \  }}}t	        |dd       t        g d	|d
d d       t        |dd       y )Nr  r  r  r  Tr  gQ@r   r  r   r   r   r*  r  r.  r  r  s           rF   test_example1bz TestAndersonKSamp.test_example1b  s    
 XXFGXXFGXXFGXXFG(("b"b)94H	BBq)!"J"$Qq'1	.60rH   c                 H   g d}g d}g d}g d}g d}g d}g d}g d}g d	}	g d
}
g d}g d}g d}g d}|||||||||	|
||||f}t        j                  |d      \  }}}t        |dd       t        g d|dd d       t	        |dd       t
        j                  j                  d      }t        j                  d|      }t        j                  |d|      }t        |j                  |       t        |j                  |       t	        |j                  |d       y )N   rq   )   r=  !      i  r\   :   %   r   A   rN      i     $      v   
"         r  C   r;  >   rP      r  Z   r   <      rN  1   r\      8   r   O   T   ,   rB  r=  r        i6  L   rE  r     r        r?  e   r  r:  r;  r<  r=  r>  rO   r?  r@  r=  rA  rB  rC  7   i@  r  h         /            r  r  i  W   rP   x   r\   r  r  r"  G   r  r@  *   r   r   rO   r  r   r   r\   r  r   r\   r      r  r   r  4   _   a   3   r   r      r     D   M   P   r   r  j      R   6   r     .   o   '   ?   r     r     r  r   r  f   H   r  r  r   rq         r  X   r  r   r   r  r        r     r  rR   r\   	g  rN   rO   i  i[  r   r  r   i  r      r   i  #   rO   i  r  r   rP   b   r   U   [   rO     r   r  r     r\   r;  r      r  rB        rC  r\   r  B   rN  r  Fr  gM
@r   g^I+?g~:?g+e?gH.!@gcZB>h@r   r   r   	^)p?r  r.  l   <Ic i'  ro  )r  rk  ga2U0*C?)r   r  r   r   r
   r@   r   r   PermutationMethodr   rb   r  r   )re   r  r  r  r  t5t6t7t8t9t10t11t12t13t14samplesr  r  r  r   rk  ru   s                         rF   test_example2az TestAndersonKSamp.test_example2a  s)   
 (G45%?@IB14'? r2r2r2r2sCc3O((%@	BBq)!"J"$Qq'1	.60ii##$78((TsC""7E&I3=="-3..3

AD1rH   c                     g d}g d}g d}g d}g d}g d}g d}g d}g d	}	g d
}
g d}g d}g d}g d}t        j                  |||||||||	|
||||fd      \  }}}t        |dd       t        g d|dd d       t	        |dd       y )Nr  r  r  r  r  r  r  r  r  r  r  r   r  r  Tr  g'1Z
@r   r  r   r   r   r  r  r.  )r   r  r   r   r
   )re   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s                     rF   test_example2bz TestAndersonKSamp.test_example2b+  s     (G45%?@IB14'? (("b"b"b"b*,c3S#*G157	B 	Bq)!"J"$Qq'1	.60rH   c                    t        j                  ddd      }t        j                         5  t        j                  ddt
               t        j                  ||dz   gd      \  }}}d d d        t        dd	       t        d
       t        j                         5  t        j                  ddt
               t        j                  ||dz   g      \  }}}d d d        t        |dd	       t        |d
       t        j                         5  t        j                  ddt
               t        j                  ||dz   gd      \  }}}d d d        t        |dd       t        |d       t        j                         5  t        j                  ddt
               t        j                  ||dz   g      \  }}}d d d        t        |dd       t        |d       t        j                  ||dz   gd      \  }}}t        |dd       t        |ddd       t        j                  ||dz   g      \  }}}t        |dd       t        |ddd       t        j                  ||dz   gd      \  }}}t        |dd       t        |ddd       t        j                  ||dz   gd      \  }}}t        |d d       t        |d!d"d       y # 1 sw Y   axY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   9xY w)#Nr   r   r   zp-value flooredg     @D@Fr  g=
ףpD@r   r+  gGzD@zp-value capped      ?g?ܵr         ?g?ܵ      @g!u?gףp=
׳?rz  r   r/  rW   rM   gBiq?g鷯?      '@g:M@g46<Rv?gMb@?g      +@g6>W[1@g1ZGUS?-C6?)r@   linspacer   r   filterwarningsrQ  r   r  r   r   r
   )re   r   r
  r   r  s        rF   test_R_kSamplesz!TestAndersonKSamp.test_R_kSamplesK  s   B [[C% $$& 	K##H.?M**BT	?EJGAq!	K 	Avq)Q$$& 	<##H.?M**BT	?;GAq!	< 	Avq)Q $$& 	I##H.>L**BR=%HGAq!	I 	Aw*Q$$& 	:##H.>L**BR=9GAq!	: 	Aw*Q &&BH~uE1aAvq)6A6 &&BF|41aAvq)6A6 &&BIF1aAvq)7a8&&BIF1aAvq)7a8U	K 	K	< 	<	I 	I	: 	:s/   <K:K<K!=:K.KK!K+.K8c                 h    t        t        t        j                  t	        j
                  d             y Nr   rl   rm   r   r  r@   r   rn   s    rF   test_not_enough_samplesz)TestAndersonKSamp.test_not_enough_samples  s    j%"6"6
CrH   c                     t        t        t        j                  t	        j
                  d      t	        j
                  d      f       y r*  r+  rn   s    rF   test_no_distinct_observationsz/TestAndersonKSamp.test_no_distinct_observations  s,    j%"6"6wwqz2771:.	0rH   c                 l    t        t        t        j                  t	        j
                  d      g f       y r*  r+  rn   s    rF   test_empty_samplez#TestAndersonKSamp.test_empty_sample  s!    j%"6"6R8HIrH   c                     g d}t        j                  g d      }t        j                  ||fd      }d}t	        ||       t        |j                  |j                         y )Nr  r  Fr  r  )r@   r0  r   r  r   r   r  r   )re   r  r  ru   rt   s        rF   rw   z(TestAndersonKSamp.test_result_attributes  sO    =XXFG""B8U;K
C,S++SZZ8rH   N)rx   ry   rz   r  r  r   r   r  r  r  r(  r,  r.  r0  rw   r{   rH   rF   r  r    sN    1"1  [[$2 $2L1@N9`D0J	9rH   r  c                   `    e Zd Zd Zd Zej                  j                  dddg      d        Zy)TestAndersonKSampVariantc                    g d}g d}d}t        j                  t        |      5  t        j                  ||f      }d d d        t              dk(  rt        |d      sJ t        j                  t        |      5  t        j                  ||fd      }d d d        t        j                  |j                         t        |j                  |j                         t        |      dk(  rt        |d      sJ t        j                  t        |      5  t        j                  ||fd	d
      }d d d        t        |j                  |j                         t        |j                  |j                         t        |d      rJ t        j                  ||fd
      }t        |j                  |j                         t        |j                  |j                         t        |d      rJ t        j                  t        |      5  t        j                  ||fd	      }d d d        t        |      dk(  rt        |d      sJ t        j                  t        |      5  t        j                  ||fdd      }d d d        t        |j                  |j                         t        |j                  |j                         t        |d      rJ t        j                  ||fd      }t        |j                  |j                         t        |j                  |j                         t        |d      rJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   &xY w# 1 sw Y   AxY w# 1 sw Y   xY w)N)r   r   r   r   r   r   )
r   r   r   r   r   r   rM   rM   rM   rP   z*Parameter `variant` has been introduced...rF  r   r  Tr  Fr  )r  variantr5  right)
r   rP  rQ  r   r  r  hasattrr   rb   r   )re   rs   r   rH  ru  ru   s         rF   test_variant_valuesz,TestAndersonKSampVariant.test_variant_values  s   *>\\+W5 	/&&1v.C	/3x1}.?!@@@\\+W5 	=&&1vt<C	=S]]CMM2SZZ,3x1}.?!@@@\\+W5 	Q&&1vuiPC	QS]]CMM2SZZ,3 1222""Aq69=S]]CMM2SZZ,3 1222\\+W5 	>&&1vu=C	>3x1}.?!@@@\\+W5 	N&&1vtWMC	NS]]CMM2SZZ,3 1222""Aq67;S]]CMM2SZZ,3 12222E	/ 	/	= 	=	Q 	Q	> 	>	N 	Ns;   L;=MM	M""M/;MMM"M,/M8c                     t        j                  d      }d}t        j                  t        |      5  t        j                  ||fd       d d d        y # 1 sw Y   y xY w)Nr   z=`variant` must be one of 'midrank', 'right', or 'continuous'.rF  Camelotr6  )r@   rr   r   r   rm   r   r  rG  s      rF   test_variant_input_validationz6TestAndersonKSampVariant.test_variant_input_validation  sK    IIbMQ]]:W5 	<  !Q;	< 	< 	<s   AA	n_samplesr   r   c                    t         j                  j                  d      }|j                  |df      dt        j                  |      d d t         j                  f   z  z   }t        j                  |d      }t        j                  |d      }t        |j                  |j                         t        |j                  |j                         y )Nl   0e rq   皙?r7  r6  
continuous)
r@   r   r   rr   newaxisr   r  r
   rb   r   )re   r=  r   r  ru  ru   s         rF   test_variant_continuousz0TestAndersonKSampVariant.test_variant_continuous  s    ii##K0**i_-BIIi4HBJJ4W0WW""7G<""7LAs}}5

CJJ/rH   N)	rx   ry   rz   r9  r<  r   r   r   rB  r{   rH   rF   r3  r3    s6    &3P< [[[1a&10 20rH   r3  c                   N   e Zd Zd Zd Zd Zej                  j                  dg dgfdgg fg      d        Z	d Z
d Zej                  j                  d	g d
g dddfg d
g dddfg dg dddfg dg dddfg dg dddfg dg dddfg      d        Zd Zej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                      Zej                  j                  d g d!      d"        Zd# Zy$)%
TestAnsaric                     |j                  g d      }|j                  g d      }t        j                  ||d      \  }}t        ||j                  d             t        ||j                  d             y )N)r   r   r   r   r   )r   r   rM   r   rM   r   r   r   
asymptoticrj  g     7@g8#oG?r   r   ansarir)   re   r   rs   r   Wpvals         rF   
test_smallzTestAnsari.test_small  s\    JJ'JJ/0,,q!L942::d+,bjj)<=>rH   c                     |j                  g d      }|j                  g d      }t        j                  ||d      \  }}t        ||j                  d             t        ||j                  d             y )Nr  rM  r   c   r  r  m   l   r  rO  r  `   r  r  rM  q   t   rS  n   r  rM  rQ  r  r  i   g   rU  rW  r  r   rR  rQ  rX  r  r   rY  rS  rQ  r  rO  rF  rj  g     0g@g|:?rG  )re   r   ramsayparekhrJ  rK  s         rF   test_approxzTestAnsari.test_approx  si     L M & ' ,,vvlC42::e,-bjj)<=>rH   c                     |j                  g d      |j                  g d      }}t        j                  ||d      \  }}t        ||j                  d             t        ||j                  d             y )Nr   r   r   r   )rq   r   r   rQ   r   rO   exactrj  rX   g?rG  rI  s         rF   
test_exactzTestAnsari.test_exact  s[    zz,'4J)K1,,q!G442::d+,bjj)=>?rH   rD   r1   c                    |D cg c]  }|j                  |       }}t        j                  t        t              5  t        j                  | }t        |j                  |j                  |j                               t        |j                  |j                  |j                               d d d        y c c}w # 1 sw Y   y xY w)NrF  )r   r   rP  r   r   r   rH  r*   rb   r   r   )re   rD   r   argru   s        rF   r   zTestAnsari.test_bad_arg  s    +/0C

300\\,4IJ 	<,,%CCMM2::bff+=>CJJ

266(:;	< 	< 1	< 	<s   B8A1B==Cc                     |j                  g d      }|j                  g d      }d}t        t        |      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr^  r   rM   rP   rQ   z!'alternative' must be 'two-sided'rF  fooalternative)r   rl   rm   r   rH  )re   r   r   r   r   s        rF   test_bad_alternativezTestAnsari.test_bad_alternative  sR    ZZ%ZZ%3:U3 	4LLRU3	4 	4 	4s   AA%c                 
   |j                  g d      }|j                  g d      }t        j                  ||d      \  }}t        j                  ||dd      j                  }t        j                  ||dd      j                  }|dkD  sJ |d	k  sJ t        j
                  j                  t        |      |j                  d
   |j                  d
         }|j                  t        |            }t        ||z   d|z   d       t        ||dz  d       t        |d|z   |dz  z
  d       t        j                  ||dd      j                  }	t        j                  ||dd      j                  }
|	d	k  sJ |
dkD  sJ y )N)r   r   r   rq   r   g      9@)r"  g      !@      #@      %@r$  g      )@r_  rj  lessrg  rk  greaterffffff?皙?r   r   -q=r.  r   )
r   r   rH  r   r   r   pmffloatshaper)   )re   r   r   r   rb   rK  pval_lpval_gprobpval_l_reversepval_g_reverses              rF   test_alternative_exactz!TestAnsari.test_alternative_exact  s_   ZZ34ZZ9:  ,,r2g>	4b"&IPPb")GLSS}}}} ||i 0"((1+rxx{Kzz%+&T> 	QU3$tAvE: b"&-466<f 	b")-466<f 	$$$$$$rH   zx, y, alternative, expectedr^  rd  rm  g@A?ro  r   )r   r   rM   rP   rQ   gG$I?g%I$I?r   )rM   rP   rQ   c                     |j                  |      |j                  |      }}t        j                  |||d      j                  }t	        ||j                  |      d       y )Nr_  rn  rr  r.  )r   r   rH  r   r)   )re   rs   r   rg  expectedr   rK  s          rF   test_alternative_exact_with_Rz(TestAnsari.test_alternative_exact_with_R3  sL    8 zz!}bjjm1||Aqk'JQQbjj2?rH   c                    |j                  t        j                  j                  dddd            }|j                  t        j                  j                  dddd            }t        j                  ||dd	      j
                  }t        j                  ||d
d	      j
                  }t        ||j                  d|j                        d       t        ||j                  d|j                        d       |j                  t        j                  j                  dddd            }|j                  t        j                  j                  dddd            }t        j                  ||d      j
                  }t        j                  ||dd	      j
                  }t        j                  ||d
d	      j
                  }t        ||dz  d       t        |d|dz  z
  d       y )Nr   r   r   {   r[  r   rm  rF  rn  ro  r1   r   rr  r.  r   r        ?rj  r   )r   r   r   rC   rH  r   r)   r   )re   r   r   r   rv  rw  rK  s          rF   test_alternative_approxz"TestAnsari.test_alternative_approxS  sp   ZZ

q!#CHIZZ

q!#CHI b"&NUUb")LQXX

3bjj
 AN

3bjj
 AN ZZ

q!"3GHZZ

q#BSIJ||B<8??b"&NUUb")LQXXQU3$q&u5rH   r   r   r   r   r   tiesFTc                    t        |      r|dk7  rt        j                  d       |t        |      nt	        ||      }t
        j                  j                  d      }|r|j                  dd|f      n|j                  d|f      \  }}d|dk  r|sd	nd
i}t        j                  ||fi |}	t        j                  |j                  ||      |j                  ||      fi |}
t        |
j                  |j                  |	j                  |             t        |
j                  |j                  |	j                  |             y )Nr   z5p-value calculation works natively with 'float64 onlyl   ]M rM   r   r   rk  r  r_  rF  r   )r'   r   xfailr%   r   r@   r   r   integersr   rH  r   r)   rb   r   )re   r   r   r  r   r   rs   r   rk  ru  ru   s              rF   test_dtypeszTestAnsari.test_dtypesh  s    ":%9,LLPQ(- $72u;Mii##N3/3s||AQF|+!Q9P1b$G\Rll1a*6*ll2::au:5rzz!5z7Q %#%rzz#--uz'MN

BJJszzJ$GHrH   rg  rm  ro  	two-sidedc           	         t         j                  j                  d      }|j                  |j                  d      j	                               }|j                  |j                  d      j	                               }t        j                  |||t        j                  |            }t        j                  |||d      }t        |j                  |j                  |j                               t        |j                  |j                  |j                               t        |      st        j                  |||t        j                  |d            }t        |j                  |j                  |j                               |j                  |j                  k7  sJ |j                  |j                  |j                  d	z        d	z  k(  sJ y y )
N   `Y rP   rM   rq  rn  r_  rO  )r   rp  r   )r@   r   r   r   r   r   rH  r  r)   rb   r   r(   rs  )re   rg  r   r   rs   r   ru   ru  s           rF   test_permutation_methodz"TestAnsari.test_permutation_methodx  sO    ii##J/JJszz!}++-.JJszz!}++-.ll1a["'"9"9c"BDll1a[Irzz#--'@A

BJJszz$:;Q,,q!&+&=&=#SU&VXCCMM2::cmm+DE::+++::#**S.!9#!====  rH   c                    t         j                  j                  d      }t        |      r[d}t	        j
                  t        |      5  t        j                  |j                  d      |j                  d             d d d        y |j                  |j                  d      j                               }|j                  |j                  d      j                               }t        j                  ||      }t        j                  ||d      }t        j                  ||d	      }t        |j                  |j                         t        |j                  |j                  d
             |j                  |j                  d      j                               }|j                  |j                  d      j                               }t        j                  ||      }t        j                  ||d	      }t        j                  ||d      }t        |j                  |j                         t        |j                  |j                  d             |j                  |j                  dd      j                               }|j                  |j                  dd      j                               }t        j                  ||      }t        j                  ||d	      }t        |j                  |j                         y # 1 sw Y   y xY w)Nr  z9`method` must be 'exact', 'asymptotic', or an instance...rF  r   r   r  r_  rj  rF  gQ̉?r  gpXkb\?r   r   r   )r@   r   r   r'   r   r   rm   r   rH  r   r   r   r   r)   r   r  )	re   r   r   rH  rs   r   res1res2res3s	            rF   test_methodzTestAnsari.test_method  s    ii##J/":QGz9 6RXXa["''!*56 JJszz"~,,./JJszz"~,,./||Aq!||Aq1||Aq6T[[1RZZ0@%AB JJszz"~,,./JJszz"~,,./||Aq!||Aq6||Aq1T[[1RZZ%@A JJs||BR|0779:JJs||BR|0779:||Aq!||Aq6T[[176s   5LLN)rx   ry   rz   rL  r\  r`  r   r   r   r   rh  r{  r~  r  r  r  r  r{   rH   rF   rD  rD    s^   ?	?@ [[VrB4jB4*%=>< ?<4%< [[% fo	>
i	A
_fo	>
_i	A
9fo	>
9i	A	C@@(6* [[W&BC[[S2s),[[VeT]3I 4 - DI [[],LM> N>&#2rH   rD  c                   f    e Zd Zd Zd Zd Zej                  j                  d      d        Z	d Z
y)TestBartlettc           
      H   t         t        t        t        t        t
        t        t        t        t        g
}|D cg c]  }|j                  |       }}t        j                  | \  }}t        ||j                  d             t        ||j                  d             y c c}w )NgzU@ /4@gG?)g1g2g3g4g5g6g7g8g9g10r   r   bartlettr)   )re   r   rD   rb  TrK  s         rF   	test_datazTestBartlett.test_data  su    BBBBC8+/0C

300..$'42::&789bjj9: 1   Bc                     d}t        j                  t        |      5  t        j                  |j                  dg             d d d        y # 1 sw Y   y xY w)Nz-Must enter at least two input sample vectors.rF  r1   )r   r   rm   r   r  r   re   r   rH  s      rF   test_too_few_argszTestBartlett.test_too_few_args  sA    A]]:W5 	-NN2::rd+,	- 	- 	-   &AAc           
          t         t        t        t        t        t
        t        t        t        t        g
}|D cg c]  }|j                  |       }}t        j                  | }d}t        |||       y c c}w Nrb   r   r   )r  r  r  r  r  r  r  r  r  r  r   r   r  r   re   r   rD   rb  ru   rt   s         rF   rw   z#TestBartlett.test_result_attributes  s[    BBBBC8+/0C

300nnd#,
C3 1   A6 ignore:invalid value encounteredc                    t         t        t        t        t        t
        t        t        t        t        g f}|D cg c]  }|j                  |       }}t        t        t        |      5  t        j                  | }d d d        |j                  |j                         }t#        j$                  |       t#        |j&                  |       y c c}w # 1 sw Y   VxY wr   )r  r  r  r  r  r  r  r  r  r  r   r"   r   r   r   r  r   r*   rb   r   )re   r   rD   rb  ru   NaNs         rF   test_empty_argzTestBartlett.test_empty_arg  s    BBBBC<+/0C

300+3HRP 	(..$'C	( jj s+

C( 1	( 	(s   C*CCc                 ,   |j                  g d|j                        }|j                  g d|j                        }|j                  g d|j                        }t        j                  |||      }|j	                  |j
                  dk\        sJ y )N)g333333$@gffffff$@g$@g$@r   )L$@     $@33333$@gfffff$@)g$@r  r  r  r   )r   r   r   r  r   rb   )re   r   r   br4  ru   s         rF   test_negative_pvalue_gh21152z)TestBartlett.test_negative_pvalue_gh21152  st    JJ/rzzJBJJ32::JFJJ32::JFnnQ1%vvcmmq()))rH   N)rx   ry   rz   r  r  rw   r   r   r'  r  r  r{   rH   rF   r  r    s;    ;-
4 [[ BC	) D	)*rH   r  c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)

TestLevenec           
      H   t         t        t        t        t        t
        t        t        t        t        g
}|D cg c]  }|j                  |       }}t        j                  | \  }}t        ||j                  d             t        ||j                  d             y c c}w )NgYpK?gI{]?r  r  r  r  r  r  r  r  r  r  r   r   levener)   re   r   rD   rb  rJ  rK  s         rF   r  zTestLevene.test_data  su    BBBBC8+/0C

300,,%42::&89:bjj9: 1r  c           
      N   t         t        t        t        t        t
        t        t        t        t        g
}|D cg c]  }|j                  |       }}t        j                  |ddi\  }}t        ||j                  d             t        ||j                  d             y c c}w )Ncenterrg   g F@g(gX?r  r  s         rF   	test_meanzTestLevene.test_mean  s{    BBBBC8+/0C

300,,4V442::&678bjj):;< 1s   B"c                    |j                  t              |j                  t              |j                  t              f}t	        j
                  |ddi\  }}t	        j
                  |ddd\  }}t        ||       t        ||       y )Nr  rg   trimmedr   r  proportiontocut)r   r  r  r  r   r  r)   )re   r   rD   W1pval1W2pval2s          rF   test_trimmed1zTestLevene.test_trimmed1  si     

2

2

2?LL$6v6	ELL$y#N	EBu%rH   c           
      P   t         t        t        t        t        t
        t        t        t        t        g
}|D cg c]  }|j                  |       }}t        j                  |ddd\  }}t        ||j                  d             t        ||j                  d             y c c}w )Nr  r!  r  g˼> @gwW?r  r  s         rF   test_trimmed2zTestLevene.test_trimmed2  sz    BBBBC8+/0C

300,,YM42::&678bjj);<= 1s   B#c                    t        j                  ddd      }t         j                  j                  d      }|j	                  |      }|dz  }|j                  |      |j                  |      |j                  |      }}}t        j                  ||d      \  }}t        j                  ||d      \  }}	t        ||       t        ||	       y )	Nr   r   r@     Kc r   rg   r  median)	r@   r&  r   r   permutationr   r   r  r)   )
re   r   rs   r   r   r   r  r  r  r  s
             rF   test_equal_mean_medianz!TestLevene.test_equal_mean_median   s    KKAr"ii##J/__QqD::a="**R."**Q-q2LLAf5	ELLQx8	EBu%rH   c                     |j                  ddd      }d}t        j                  t        |      5  t	        j
                  ||d       d d d        y # 1 sw Y   y xY wNr   r   r@  z-center must be 'mean', 'median' or 'trimmed'.rF  trimr  )r&  r   r   rm   r   r  re   r   rs   rH  s       rF   test_bad_center_valuez TestLevene.test_bad_center_value  sL    KKAr"A]]:W5 	.LLAf-	. 	. 	.   AAc                     d}t        j                  t        |      5  t        j                  |j                  dg             d d d        y # 1 sw Y   y xY w)N"Must provide at least two samples.rF  r   )r   r   rm   r   r  r   r  s      rF   r  zTestLevene.test_too_few_args  s@    6]]:W5 	*LLQC)	* 	* 	*r  c           
          t         t        t        t        t        t
        t        t        t        t        g
}|D cg c]  }|j                  |       }}t        j                  | }d}t        |||       y c c}w r  )r  r  r  r  r  r  r  r  r  r  r   r   r  r   r  s         rF   rw   z!TestLevene.test_result_attributes  s[    BBBBC8+/0C

300llD!,
C3 1r  N)rx   ry   rz   r  r  r  r  r  r  r  rw   r{   rH   rF   r  r    s*    ;=&>	&.*
4rH   r  c                      e Zd ZdZ edd      ej                  j                  dg d      d               Z edd      ej                  j                  dg d      d	               Z	 edd      ej                  j                  dg d
      d               Z
d Z edd       edd      ej                  j                  dg d      d                      Z edd       edd      ej                  j                  dg d      d                      Z edd       edd      ej                  j                  dg d      d                      Z edd       edd      ej                  j                  dg d      d                      Z edd      ej                  j                  dg dg dg dg dg dg d g d!g d"g d#g d$g d%g d&g d'g d(g d)g d*g d+g d,g d-g d.g d/g d0g d1g d2g      d3               Z edd      d4        Zd5 Zd6 Zd7 Zd8 Zej                  j-                  ej0                  d9k  d:      d;        Zej                  j                  d<d=d>d?ej6                  d@dAfdBdCdDej6                  dAfdEdFdDd@ej6                  fg
      dG        Zej                  j                  dHg dI      ej                  j                  dJg dK      dL               Zej                  j                  dMg dN      ej                  j                  dHg dI      ej                  j                  dJg dK      dO                      Zej                  j                  dPdQdRg      ej                  j                  dHg dI      ej                  j                  dJg dK      dS                      Z eddT      dU        Z  eddT      dV        Z! eddT      dW        Z"yX)YTestBinomTestzTests for stats.binomtest.r   z$'two-sided' is incompatible with JAXr   zk, n, p, ref, rtol))iΙ @o@Q?r1   绽|=)iΙ r  r  gX7?r  )i	ϙ r  r  g=?r  )iϙ r  r  gybw?rZ   c                     |j                   }t        j                  |||j                  ||            }t	        |j
                  |j                  ||      |       y Nr   rV   r   r   	binomtestr   r)   r   	re   kr   r  ru  rW   r   r   ru   s	            rF   test_two_sided_pvalues1z%TestBinomTest.test_two_sided_pvalues1%  I     

ooaBJJqJ$>?

BJJs%J$@tLrH   ))rN   r@  r  gX-h?r  )r   r@  r  g	֤y?r  )r   r@  r  g	y}?r  )rP   r@  r  g+,?r  )r   r   r         ?r  )r   r   r-  g{Gz?r  )r   r   g333333?g<,?r  c                     |j                   }t        j                  |||j                  ||            }t	        |j
                  |j                  ||      |       y r  r  r  s	            rF   test_two_sided_pvalues2z%TestBinomTest.test_two_sided_pvalues24  r  rH   ))i  i  r   r1   r  )r   r  gAL &W?r1   r  )rR   r  g!YB?r1   r  )rq   r  gE]t?r1   r  )rP   rR   r   r1   r  )rM   r   r   r1   r  c                     |j                   }t        j                  |||j                  ||            }t	        |j
                  |j                  ||      |       y r  r  r  s	            rF   test_edge_caseszTestBinomTest.test_edge_casesC  sI     

ooaBJJqJ$>?

BJJs%J$@tLrH   c           	         ddd}t        j                  t        j                  z        dz         }t        j                  j                  |      }t        j                  t        j                  j                  |      |k  d      }t        fd| t        j                  z        t               }|z
  t        |t        j                  j                  |      k(        z   }t        ||d	
       d}t        j                  t        j                  z        dz         }t        j                  j                  |      }t        j                  t        j                  j                  |      |k  d      }t        fd|dt        j                  z        t               }|dz   }t        ||d	
       y )Nr   r   r   r   r   axisc                 H    t         j                  j                  |        S r?   r   binomrs  r   r   r  s    rF   <lambda>z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>_  s    +0;;??2q!+D*D rH   r  rZ   rV   rP   c                 F    t         j                  j                  |       S r?   r  r  s    rF   r  z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>k  s    */++//"a*C rH   )r@   rr   ceilr   r  rs  sumr   intr
   floor)	re   r  rv   dy1ixy2r   r  s	          @@rF   test_binary_srch_for_binom_tstz,TestBinomTest.test_binary_srch_for_binom_tstR  sl    IIbgga!enac*KKOOAq!$VVEKKOOAq!,1:) +E+,"bgga!enaBH Vc!u{{r1a8899BT*IIbhhq1uo)*KKOOAq!$VVEKKOOAq!,1:) +D*+QQBH !VBT*rH   array_api_strictzneeds find_rootz"alternative, pval, ci_low, ci_high))rm  g$W?r   g?)ro  g}?gGI~?r1   )r  g}G?g>?6?g4M?c                    |j                   }t        j                  dd|j                  d|      |      }t	        |j
                  |j                  ||      d       t        |j                  |j                  d|             |j                  d	
      }t	        |j                  |j                  ||      d       t	        |j                  |j                  ||      d       y )Nr   r   r!  r   r   r  rg  rr  rV   皙?rp  confidence_levelr   r   r  r   r)   r   r*   rb   proportion_cilowhigh	re   rg  rK  ci_lowci_highr   r   ru   cis	            rF   test_confidence_intervals1z(TestBinomTest.test_confidence_intervals1r  s     

oobC2::d%:+H*57

BJJt5J$ANrzz#Uz'CD5

6
 ?eLG5!ANrH   ))rm  ga&+w?r   gny?)ro  g5!Rx?g5%?r1   )r  g~th?gSuR&|?g|KnG?c                    |j                   }t        j                  dd|j                  d|      |      }t	        |j
                  |j                  ||      d       t        |j                  |j                  d|             |j                  d	
      }t	        |j                  |j                  ||      d       t	        |j                  |j                  ||      d       y )Nr   r   r  r   r   rU   rV   gQ?r:   r  r  r  s	            rF   test_confidence_intervals2z(TestBinomTest.test_confidence_intervals2  s     

ooa2Cu)E*57

BJJt5J$AMrzz$ez'DE5

6
 ?dKG5!AMrH   zalternative, pval, ci_high))rm  gլ?g̓A?)ro  r1   r1   )r  gEow?g;Kڞj?c                    |j                   }t        j                  dd|j                  d|      |      }t	        |j
                  |j                  ||      d       |j                  d	      }t        |j                  |j                  d
|             t	        |j                  |j                  ||      d       y )Nr   r   r!  r   r   rU   rV   rp  r  r   )
r   r   r  r   r)   r   r  r*   r  r  )re   rg  rK  r
  r   r   ru   r  s           rF   !test_confidence_interval_exact_k0z/TestBinomTest.test_confidence_interval_exact_k0  s     

ooa2D)F*57

BJJt5J$AM5

3e
 <=G5!AMrH   zalternative, pval, ci_low))rm  r1   r   )ro  6>g@>}_?)r  r  gcڒ ?c                    |j                   }t        j                  dd|j                  d|      |      }t	        |j
                  |j                  ||      d       |j                  d      }t        |j                  |j                  d	|             t	        |j                  |j                  ||      d       y )
Nr   r!  r   r   rU   rV   rp  r  r1   )
r   r   r  r   r)   r   r  r*   r  r  )re   rg  rK  r	  r   r   ru   r  s           rF   %test_confidence_interval_exact_k_is_nz3TestBinomTest.test_confidence_interval_exact_k_is_n  s     

oobB"**T**G*57

BJJt5J$AM5Cu!=>

6
 ?dKrH   z+k, alternative, corr, conf, ci_low, ci_high)r   r  Trp  g`?g?)r   r  Tr:   grt!?g/?)r   r  Frp  gVK5?g5dM?)r   r  Fr:   gXCVu^?g*r[?)r   rm  Trp  r   gP-V?)r   rm  Tr:   r   g^'?)r   rm  Frp  r   gS5a?)r   rm  Fr:   r   g?)r   ro  Trp  g!Շ`ⰸ?r1   )r   ro  Tr:   g$x"?r1   )r   ro  Frp  gW~=?r1   )r   ro  Fr:   g	L?r1   )r   r  Trp  r   gX?)r   r  Frp  r   gN?)r   rm  Trp  r   g/<7#9?)r   rm  Frp  r   gAA?)r   ro  Trp  r   r1   )r   ro  Frp  r   r1   )r   r  Trp  g7?r1   )r   r  Frp  g؍s?r1   )r   rm  Trp  r   r1   )r   rm  Frp  r   r1   )r   ro  Trp  ghadn?r1   )r   ro  Frp  gAB/?r1   c                 H   |j                   }t        j                  |d|j                  d|      |      }	|rd}
nd}
|	j	                  ||
      }t        |j                  |j                  ||      d	       t        |j                  |j                  ||      d	       y )
Nr   r?  r   r   wilsonccwilson)r  rk  rU   rV   )r   r   r  r   r  r)   r  r  )re   r  rg  corrconfr	  r
  r   r   ru   rk  r  s               rF   test_ci_wilson_methodz#TestBinomTest.test_ci_wilson_method  s    @ 

ooa2Cu)E*57FFVD

6
 ?dKG5!AMrH   c                     t        j                  dd|j                  d            }t        |j                  |j                  d             t        |j
                  |j                  d             y )Nr   r  r!  r1   )r   r  r   r*   rb   r   re   r   ru   s      rF   &test_estimate_equals_hypothesized_propz4TestBinomTest.test_estimate_equals_hypothesized_prop  sL    
 ooaRZZ%56rzz$'78

BJJsO4rH   c                     t        j                  dd|j                  d      d      }d}t        j                  t
        |      5  |j                  d	       d d d        y # 1 sw Y   y xY w)
Nr   r   r?  rm  r   z/confidence_level \(-1\) must be in the intervalrF  r   r  r   r  r   r   r   rm   r  )re   r   ru   rH  s       rF   test_invalid_confidence_levelz+TestBinomTest.test_invalid_confidence_level  sW    ooa2CfMD]]:W5 	3r2	3 	3 	3s   A""A+c                     t        j                  dd|j                  d      d      }t        j                  t
        d      5  |j                  d	       d d d        y # 1 sw Y   y xY w)
Nr   r   r?  ro  r   z$method \('plate of shrimp'\) must berF  zplate of shrimprj  r  r  s      rF   test_invalid_ci_methodz$TestBinomTest.test_invalid_ci_method  sT    ooa2CiP]]:-TU 	8%67	8 	8 	8s   A  A)c                     t        j                  t        d      5  t        j                  dd|j                  d      d       d d d        y # 1 sw Y   y xY w)Nzalternative \('ekki'\) not...rF  r   r   r?  ekkir   )r   r   rm   r   r  r   )re   r   s     rF   test_invalid_alternativez&TestBinomTest.test_invalid_alternative  sD    ]]:-MN 	LOOArzz#FK	L 	L 	Ls   )AAc                     t        j                  dd|j                  d      d      }t        |j                  |j
                         y )Nr   r   r?  ro  r   )r   r  r   r*   proportion_estimaterb   r  s      rF   
test_aliaszTestBinomTest.test_alias  s2    ooa2CiP//?rH   l        z32-bit does not overflowc                     t        j                  t        d      5  t        j                  ddt
        j                  j                         d d d        y # 1 sw Y   y xY w)NzError in function...rF  r   rM   )r  )r   r   OverflowErrorr   r  sys
float_infor  rn   s    rF   test_boost_overflow_raisesz(TestBinomTest.test_boost_overflow_raises  sB     ]]=0FG 	8OOAqCNN$6$67	8 	8 	8s   1AAzk, n, p)r   r   r   )r   r   r   )g      @r   r   r   r   )r   r   r   )r   rl  r   r   )r   r   皙)r   r   r   c                     t        j                  |||j                  |      d      }t        |j                  |j                  t
        j                               t        |j                  |j                  t
        j                               y )Nrm  rf  )r   r  r   r*   rb   r@   r   r   )re   r  r   r  r   ru   s         rF   test_invalidzTestBinomTest.test_invalid	  sV    
 ooaBJJqMvFrzz"&&'9:

BJJrvv$67rH   rg  r  rk  )r_  r  r  c                    t        j                  ddd|      }t        j                  t        j                  d      t        j                  d      t        j                  d      |      }t	        |j
                  |j
                         t	        |j                  |j                         t	        |j                  |j                         t	        |j                  |j                         |j                  |      }|j                  |      }t	        |j                  |j                         t	        |j                  |j                         y )Nr   r   r-  rf  rj  )r   r  r@   r   r*   rb   r   r   r  r  r  r  )re   rg  rk  ru   ru  s        rF   test_scalar_0d_in_scalar_outz*TestBinomTest.test_scalar_0d_in_scalar_out  s    
 ooaSkBoobjjmRZZ^RZZ_*57 	s}}5

CJJ/suu%suu%v.v.)#((+rH   r   r   c                    ||nt        ||      }|j                  d|      }|j                  d|      }|j                  d|      }t        |      rC|dk(  r>d}t        j                  t
        |      5  t        j                  |||       d d d        y t        j                  ||||      }	t        j                  ddd|      }
t        |	j                  |j                  t        |
j                        |             t        |	j                  |j                  t        |
j                        |             t        |	j                  |j                  t        |
j                        |             t        |	j                  |j                  t        |
j                        |             t        |      st        |      r|d	k(  ry |	j                  |
      }	|
j                  |
      }
t        |	j                   |j                  t        |
j                         |             t        |	j"                  |j                  t        |
j"                        |             y # 1 sw Y   y xY w)Nr   r   r   r-  r  :`alternative='two-sided'` is incompatible with JAX arrays.rF  rf  r_  rj  )r   r   r'   r   r   rm   r   r  r)   rb   rt  r   r   r  r&   r  r  r  )re   r   rg  rk  r   r  r   r  rH  ru   ru  s              rF   
test_dtypezTestBinomTest.test_dtype&  s   
 GB,>JJqJ&JJrJ'JJs%J(":+{2RGz9 )1a()ooaA;?ooaSkBrzz%2Fez'TU

BJJuSZZ/@J$NOrzz%,ezDErzz%,ezDE#vbzv7Hv.v.E#''N%!HI"**U388_E*"JK))s   7I''I0ru  r{   rP   rQ   rN   c                 
   t         j                  j                  d      }|j                  dd|      }|j                  dd|      }|j	                  dd|      }t        |      r|dk(  rt        j                  d       t        j                  |j                  |      |j                  |      |j                  |      |	      }	t        j                  d
      fd       }
 |
||||      \  }}}}}}t        |	j                  |j                  |             t        |	j                  |j                  |             t        |	j                  |j                  |             t        |	j                   |j                  |             t#        |      st        |      rdk(  ry |	j%                        }t        |j&                  |j                  |             t        |j(                  |j                  |             y )Nl   0T  r   r   r   r-  r   r  r3  rf  rg  )excludedc                     t        j                  | |||      }|j                        }|j                  |j                  |j
                  |j                  |j                  |j                  fS )Nrf  rj  )	r   r  r  r  r   rb   r   r  r  )r  r   r  rg  ru  r  rk  s         rF   binomtest_1dz0TestBinomTest.test_ndarray.<locals>.binomtest_1dV  sU    //!Q{CC""&"1B55#%%

BFFBGGKKrH   r_  rj  )r@   r   r   r  uniformr'   r   skipr   r  r   	vectorizer)   r  r   rb   r   r&   r  r  r  )re   ru  rg  rk  r   r   r  r   r  ru   r9  ref_kref_nr   r   r	  r
  r  s      `              rF   test_ndarrayzTestBinomTest.test_ndarrayG  s    ii##J/LLReL,LLReL,KKcK.":+{2KKTUoobjjmRZZ]BJJqM*57 
}	-	L 
.	L
 DPq![D"@umZrzz%01rzz%01rzz-'@A

BJJz$:;#vbzv7Hf-

6 23G!45rH   z)'two-sided' alternative needs root finderc           	         |j                  |j                  ddd      |j                  ddd      |j                  ddd      f      }d}d	}g d
}t        t        j                  |||      j
                  |j                  |             t        t        j                  dd|j                  d            j
                  |j                  d             y )Nr?  r  r   g??333333?rp  i  i  )r   r   gs  gG|G{g	ɺM>6g>
ztt+g#ӌRM/gF׸fz2gU8u5g8M8gФ)Ba?g%վ?g*+a5?gś?gڒJ|>r   r   gVݶ3;)concatr&  r)   r   r  r   r   )re   r   ppr   rs   resultss         rF   test_binomtestzTestBinomTest.test_binomtestk  s     YYCa0D$2D$24 5 , 	1b188"**W:MNCCAHH

#:;	=rH   c                 B   ddgg dg dg dg dg dg dg dg d	g d
g
}t        dd      D ]p  }|j                  |dz   |j                        }t        j                  ||d      j
                  }t        ||j                  ||dz
     |j                               r y )Nr1   )r   r1   r   )r!  r1   r1   r!  )      ?      ?r1   rI  rH  )      ?      ?r1   r1   rK  rJ  )      ?      ?      ?r1   rN  rM  rL  )      ?rH        ?r1   r1   rP  rH  rO  )	      ?      ?     ?     @?r1   rT  rS  rR  rQ  )
      p?      ?      ?     @?r1   r1   rX  rW  rV  rU  )      `?      ?      ?r        ?r1   r\  r  r[  rZ  rY  r   r   r   r   )rangerr   r   r   r  r   r)   r   )re   r   r  r  r   r  s         rF   test_binomtest2zTestBinomTest.test_binomtest2  s     #J$/<K.I
" q" 	KA		!A#RZZ	0A??1a-44DD"**T!A#Ybjj*"IJ	KrH   c                 z   |j                  dd      d d |j                  f   }|j                  dd      }|j                  d   |j                  d   f}t        j                  |||z  d|z        j
                  }t        ||j                  |             |j                  g d      }|j                  g d      }|j                  ||j                        |j                  ||j                        }}|j                  |j                  ||j                        |      }|j                  |j                  ||j                        |      }t        j                  |dz   ||z  d|z        j
                  }t        j                  |dz
  ||z  d|z        j
                  }	t        ||       t        |	|       y )	Nr1   g      &@       @r   )Zr   grq?g     ?glq?gx0f#?g%d)MO?g   	o?g6?g:X@?rI  gsw?g    ?gR'jMV?gEf?gF5a?gAQU?g'W?gk?rN  g
ņB?g  ?g$?g{dU'?gD:B?gwV?gR0Nf?gOq?rT  g[k^?g T+?gO?gggh(?gP-@?gOQ?g}^?gV7_i?r\  ge$?gр?g#>?g5z@?g:?gf?gzP?g  ?     ?gg*),?g}A_?g}aA?gH]@_?g
y7s?gPG?g>)\R?gjc6?K?go; ,?g!O0?g?g}e?g5?g?!A^?gN/#?g*?    @?g?g?g3?g.1?gdT\1-?gt0W59?goQC?gX4J?   ?g
?gf?C"?g\6I?g4b?g|$or?gWNS~?gT?gXnc?   \?gY\?gp ^a?gX-K?g#c?g
3?g75Q?gMJ[?gP8R?)Zr   gw	%?g     ?gS g?gv^?g*uCi?g  a?g]?gE9Q?rI  g/?g     ?g	x&~?g#?g5B?g	A'9?gpZ?gWV$u?rN  gqIb?g  @N?g1Y?g5?gO?gc-?gk?g )?rT  glMV?g?$?gT*r?gCqRv?grx?gωZ?gExY?g<T ?r\  gJ9Ͻd?g `Ԗt?gT?gEz?gQ?g7C<*?g<?g~ K?ra  g8?g~ȍEt?g⿒?g<v?gHE:?g8Z$?gbº5?gvC?rb  g`Yw?gA?$??gE=?g4?g3?g{G9?gp?gH ?rc  gz6f?g¯F?g(+?g	$V?gq^ws?g!?gXNJ?gK?rd  g4P?g<q?gdV;?gy?g$w?gU<vO?gMX?g	șz*?re  giqSp?gMM?g0V$)?g]
yi/Q?gl?gl?g3Ȇ?gѾ_c?r   r   )rr   rA  ru  r   r  r   r)   r   r   r   reshape)
re   r   r   r  ru  r  binom_testm1binom_testp1res4_p1res4_m1s
             rF   test_binomtest3zTestBinomTest.test_binomtest3  ss    IIb#q"**}-IIb#QWWQZ(q!A#r!t,33bggen- zz # P zz # > zz!2::z.

1BJJ
0O1zz"**\*"LeTzz"**\*"LeT//!A#qsBqD188//!A#qsBqD188..rH   N)#rx   ry   rz   __doc__r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r!  r$  r'  skipifr*  maxsizer,  r@   r   r/  r1  r4  r?  rF  r^  rk  r{   rH   rF   r  r    s   $
 k*PQ[[1QRMR RM k*PQ[[1:;M; RM
 k*PQ[[189M9 RM+@ (1BCk*;<[[AHIOI = DO (1BCk*;<[[AFGNG = DN (1BCk*;<[[9DEN	E = DN (1BCk*;<[[8FGL	G = DL k*PQ[[5	=	;	<	=	0	0	1	1	4	4	4	5	5	6	0	0	-	.	6	7	+	,	4	43	6:N; R<N k*PQ5 R538
L@ [[u,5OP8 Q8
 [[Y	~C7H	nq"&&#&6	q"bffo	788	88
 [[],LM[[X'FG, H N,$ [[W&BC[[],LM[[X'FGL H N DL< [[Wr9o6[[],LM[[X'FG6 H N 76B k*UV= W=( k*UVK WK0 k*UV`/ W`/rH   r  c                       e Zd ZddZej
                  j                  dg d      d        Zd Z e	dd      d	        Z
d
 Zd Zd Zd Zy)TestFlignerc                     t         j                  j                  |      }t        j                  |      d|j	                  t        |            z  z   j                         S )Nr  )r@   r   r   r   r   r  r   )re   gr   s      rF   _perturbzTestFligner._perturb   sF    ii##C(

1(;(;CF(C CCKKMMrH   r   r   c                 "   |t        |      nt        ||      }|j                  d|      }t        j                  ||dz        }|j                  d|      |j                  d|      f}t        |d   |d          t        |d   |d          y )Nr   r   r   gnf	@gDq?r   r   )r%   r   rr   r   flignerr   r)   )re   r   r   r   ru   ru  s         rF   r  zTestFligner.test_data  s     ). $72u;MYYqY&mmBA&zz,Ez:zz.ez<>AA'AA'rH   c                    t         j                  j                  d      }|j                  | j	                  t
        |            }|j                  | j	                  t        |            }|j                  | j	                  t        |            }t        j                  |||d      \  }}t        j                  |||dd      \  }}	t        ||       t        ||	       y )Nl   !Cj"	 rq  rg   r  r  r   r  )r@   r   r   r   rs  r  r  r  r   ru  r)   )
re   r   r   g1_g2_g3_Xsq1r  Xsq2r  s
             rF   r  zTestFligner.test_trimmed1  s     ii##J/jjrs34jjrs34jjrs34 mmCc&AemmCc)479ed#u%rH   Tz)inconsistent tie-breaking across backendsnp_onlyr   c           
      p   t         t        t        t        t        t
        t        t        t        t        g
}|D cg c]  }|j                  ||j                        ! }}t        j                  |ddd\  }}t        ||j                  d      d       t        ||j                  d      d       y c c}w )	Nr   r  r!  r  gP:/@vIh%,=rV   gs4@S_?)r  r  r  r  r  r  r  r  r  r  r   r   r   ru  r)   r  s         rF   test_trimmed_nonregressionz&TestFligner.test_trimmed_nonregression  s     BBBBC8=ABc

3bjj
1BB--iN42::&89Fbjj)<=EJ Cs   $B3c           
      n   t         j                  j                  d      }t        t        t
        t        t        t        t        t        t        t        g
}|D cg c]  }| j                  ||       }}t        j                  |ddd}|D cg c]  }|j!                  ||j"                        ! }}t        j                  |ddd}t%        |j&                  |j!                  |j&                        d       t%        |j(                  |j!                  |j(                        d       y c c}w c c}w )	Nl   7m@ rq  r  r!  r  r   r  rV   )r@   r   r   r  r  r  r  r  r  r  r  r  r  rs  r   ru  r   r   r)   rb   r   )re   r   r   rD   rb  ru  ru   s          rF   test_trimmed_consistencyz$TestFligner.test_trimmed_consistency+  s    ii##J/BBBBC87;<cs+<<mmT)TJ=ABc

3bjj
1BBmmT)TJrzz#--'@uM

BJJszz$:G =Bs   D-$D2c                     |j                  ddd      }d}t        j                  t        |      5  t	        j
                  ||d       d d d        y # 1 sw Y   y xY wr  )r&  r   r   rm   r   ru  r  s       rF   r  z!TestFligner.test_bad_center_value6  sL    KKAr"A]]:W5 	/MM!Qv.	/ 	/ 	/r  c                     d}t        j                  t        |      5  t        j                  |j                  ddg             d d d        y # 1 sw Y   y xY w)Nr  rF  r   r   )r   r   rm   r   ru  r   r  s      rF   test_bad_num_argszTestFligner.test_bad_num_args<  sC    6]]:W5 	.MM"**aV,-	. 	. 	.s   'AAc                    |j                  d      }t        j                  t        t              5  t        j                  ||dz  |j                  g             }d d d        t        j                  |j                  |j                               t        |j                  |j                  |j                               y # 1 sw Y   hxY w)N      @rF  r   )rr   r   rP  r   r   r   ru  r   r*   rb   r   r   re   r   rs   ru   s       rF   r  zTestFligner.test_empty_argB  s    IIbM\\,4IJ 	9--1a4B8C	9rzz"&&'9:

BJJrvv$67	9 	9s   *CCN)l   \v7F )rx   ry   rz   rs  r   r   r   r  r  r   r  r  r  r  r  r{   rH   rF   rp  rp    sh    N
 [[W&BC( D(& d+VW	K X	K	H/.8rH   rp  c               #     K   g d} g d}t        |      D ]  \  }}t        j                  j                  |      }|j                  d      }|j	                  ddd      }|j	                  ddd      }t        ||      D ]$  \  }}	t        |dz   ||	z         D ]
  }
||   ||
<    & |j                  |       t        j                  |d	      \  }}||d
g| |     y w)N))g]YCgQɣ?)gme5gϵ5?)g;jgH?)iFeiHcMi%:r   r   rO  r   )r  r  r   r   r   rm  )		enumerater@   r   r   r  zipr]  shufflesplit)expected_resultsseedssir}  r   xytie_indnum_ties_per_indrv   r   jrs   r   s                rF   mood_cases_with_tiesr  J  s     @ .Ee$ 2Dii##D)ZZ_,,12A,6<<AAA<>!12 	DAq1q5!a%( 11	 	BxxA1F1-b1112s   CC!c                      e Zd Zej                  j                  d e e                   d        Zej                  j                  dg d      ej                  j                  dg d      d               Z	d Z
d	 Zej                  j                  d
d e       fdg      d        Zej                  j                  d
d e       fdg      d        Zd Zej                  j                  dg d      d        Zy)TestMoodz$x,y,alternative,stat_expect,p_expectc                 *   |j                  |j                               |j                  |j                               }}t        j                  |||      \  }}t	        ||j                  |      d       t	        ||j                  |      d       y)am  
        Example code used to generate SAS output:
        DATA myData;
        INPUT X Y;
        CARDS;
        1 0
        1 1
        1 2
        1 3
        1 4
        2 0
        2 1
        2 4
        2 9
        2 16
        ods graphics on;
        proc npar1way mood data=myData ;
           class X;
            ods output  MoodTest=mt;
        proc contents data=mt;
        proc print data=mt;
          format     Prob1 17.16 Prob2 17.16 Statistic 17.16 Z 17.16 ;
            title "Mood Two-Sample Test";
        proc print data=myData;
            title "Data for above results";
          run;
        rf  gؗҜ<r.  N)r   r   r   moodr)   )	re   rs   r   rg  stat_expectp_expectr   rb   r   s	            rF   test_against_SASzTestMood.test_against_SASd  sl    < zz!((*%rzz!((*'=1!JJq!E	6	2::k#:G

8 45ArH   r   r   zalternative, expected))r  )3oXQ?gpL?)rm  )r  gԣl?)ro  )r  gpL?c                 j   |t        |      nt        ||      }g d}g d}|j                  ||      |j                  ||      }}t        j                  |||      }t        |j                  |j                  |d   |             t        |j                  |j                  |d   |             y )NrN  rV  r   rf  r   r   )r%   r   r   r   r  r)   rb   r   )re   r   rg  r}  r   rs   r   ru   s           rF   test_against_SAS_2zTestMood.test_against_SAS_2  s     ). $72u;M<=zz!5z)2::au:+E1jjA;7rzz(1+Uz'KL

BJJx{%J$HIrH   c                 X   t         j                  j                  d      }|j                  |j	                  d            }|j                  |j	                  d            }t        j                  ||      \  }}t        j                  ||      \  }}t        ||        t        ||       y )Nr  )r   r   )rq   r   )r@   r   r   r   r   r   r  r)   )	re   r   r   r   r   z1p1z2p2s	            rF   test_mood_order_of_argsz TestMood.test_mood_order_of_args  s     ii##J/ZZ++G45ZZ++G45B#BB#BRC BrH   c                 \   g d}g d}|j                  |j                  |      d      }|j                  |j                  |      d      }t        j                  ||d       }t	        |j
                  |j                  d             t	        |j                  |j                  d             y )N)gg۟?gy<7xg1)E?g9cç?g
FAg<=ӟ	2?g{![?g_l?gڻ{ӿgGSsA0?g1?g 3ggL?g_lg,*.gː53?gvNqG?gW=?)gd"g `Y#?g^g?gNgBagp5_%?g(?gv]lοgg?ggr6ʺ?ḡj?gK!ٿg{g&?g*h}gZ?gyBU?g .ۋ4?g|w;?g&ck @gRj2g}+w(o?g@F?g}_9t?g =g	S?gx(gg7Y?g{ih?)r   r   )rq   r   r  g4g^}E	?)rf  r   r   r  r)   rb   r   )re   r   r   r   ru   s        rF   test_mood_with_axis_nonez!TestMood.test_mood_with_axis_none  s    4	H ZZ

20ZZ

20jjRd+rzz.'AB

BJJ}$=>rH   zrng_method, argsr   )r  )rQ   c                 &   d}t         j                  j                  d      }t        ||      } ||dd|fi} ||dd|fi}|j                  }t        j                  |j                  ||      |j                  ||            }	t        |      D ]  }
t        j                  |d d |
f   |d d |
f         }t        |	j                  |
   |j                  |j                               t        |	j                  |
   |j                  |j                                |j                         }|j                         }t        j                  |j                  ||      |j                  ||      d      }	t        |      D ]  }t        j                  ||d d f   ||d d f         }t        |	j                  |   |j                  |j                        d	
       t        |	j                  |   |j                  |j                                y )Nr      |n- r   r   rq   r   r   r  r`   r.  )r@   r   r   r   r   r   r  r   r]  r)   rb   r   	transpose)re   
rng_methodrD   r   nyr   r   r   r   ru   r  ru  rv   s                rF   test_mood_2dzTestMood.test_mood_2d  s   
 ii##J/S*-
-RH--RH-

jjBe4bjj5j6QRr 	CA**R1Xr!Q$x0CCMM!,bjj.GHCJJqM2::cjj+AB	C \\^\\^jjBe4bjj5j6Q! r 	CA**R1Xr!Q$x0CCMM!,bjj.GeTCJJqM2::cjj+AB		CrH   c                    d}t         j                  j                  d      }t        ||      }|j	                   ||d|i      }|j	                   ||d|i      }t        d      D ]  }t        j                  |||      }	ddgddgddgf}
t        ||
|   d            D ]  }t        ||
|   d            D ]  }|dk(  r|d d ||f   }|d d ||f   }n.|dk(  r||d d |f   }||d d |f   }n|||d d f   }|||d d f   }t        j                  ||      }t        |	j                  ||f   |j                  d	
       t        |	j                  ||f   |j                            y )N)r   r   rM   r  r   r   r  r   r   r   V瞯<r.  )r@   r   r   r   r   r]  r   r  r)   rb   r   )re   r  rD   r   ru  r   r   r   r  ru   axes_idxrv   r  slice1slice2ru  s                   rF   test_mood_3dzTestMood.test_mood_3d  s    ii##J/S*-
ZZ
D5u56ZZ
D5u56!H 	BD**R$/C AAA/H5$!234 BuXd^A%678 BAqy!#Aq!G!#Aq!G!#Aq!G!#Aq!G!#Aq!G!#Aq!G**VV4C#CMM!Q$$7US#CJJq!t$4cjjABB	BrH   c                    t        t        t        |      5  t        j                  |j                  dg      |j                  g             }t        |j                  |j                  t        j                               t        |j                  |j                  t        j                               d d d        y # 1 sw Y   y xY w)Nr   r1   )r"   r   r   r   r  r   r*   rb   r@   r   r   r  s      rF   test_mood_bad_argzTestMood.test_mood_bad_arg  s~    +3HRP 	<**RZZ-rzz"~>CCMM2::bff+=>CJJ

266(:;	< 	< 	<s   BB<<Cc                 ^   |t        |      nt        ||      }t        j                  j	                  d      }t
        j                  j                  dd|      }t
        j                  j                  dd|      }|j                  ||      |j                  ||      }}t        j                  ||d      \  }}t        j                  ||d	      \  }}	t        j                  ||d
      \  }
}||cxk(  r|
k(  sJ  J t        ||j                  d|      d       t        |	|j                  |dz  |             t        ||j                  d|dz  z
  |             t        j                  t        d      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nr         ?r   )r   r   r   g      ?r   r  rf  rm  ro  r   Hz>r.  r   r   z`alternative` must be...rF  ri  )r%   r   r@   r   r   r   r   rC   r   r  r)   r   r   rm   )re   r   r   r   rs   r   stat1r  stat2r  stat3p3s               rF   test_mood_alternativezTestMood.test_mood_alternative  sc   (- $72u;Mii##A&JJNNCcNBJJNNCcNBzz!5z)2::au:+E1JJq!=	rJJq!8	rJJq!;	r&&&&&&BJJrJ7dCBJJr!t5J9:BJJq2a4xuJ=>]]:-GH 	6JJq!5	6 	6 	6s   F##F,N)rx   ry   rz   r   r   r   listr  r  r  r  r  r  r  r  r  r  r{   rH   rF   r  r  b  s0   [[C!"6"89;B;BB [[W&BC[[4@A
JA D
J	 ?6 [[/3Deg2N2D2F GCGC8 [[/3Deg2N2D2F GBGB:< [[W&BC6 D6rH   r  c                   x    e Zd Zd Zd Zd Zej                  j                  e	 d      d        Z
d Zd Zd	 Zy
)TestProbplotc                 ,   t         j                  j                  dd      }t        j                  |d      \  }}g d}t	        |t        j                  |             t	        ||       t        j                  |d      \  }}g d}t	        ||       y )	Nr   90  r[  Fr  )g+/gY3gtg5Z0gFjg!2gsR{ܿg7Կg>hǿgcz隇gcz隇?g>h?g7?gsR{?g!2?gFj?g5Z0?gt?gY3?g+/?T)gƝV?g?gà?)r   r   rC   probplotr
   r@   r   )re   rs   osmosrosm_expectedru   res_fitres_fit_expecteds           rF   rj   zTestProbplot.test_basic  sw    JJNNN7>>!/SG
 	RWWQZ(\*~~aT2W?!12rH   c                 ~   t         j                  j                  dd      }t        j                  |d d      \  }}t        j                  |dd      \  }}t        j                  |dd      \  }}t	        ||       t	        ||       t	        ||       t	        ||       t        j                  |dd      \  }}	y )Nr   i@ r[  Fsparamsr  r   r{   )r   r   rC   r  r
   )
re   rs   osm1osr1osm2osr2osm3osr3r  r  s
             rF   test_sparams_keywordz!TestProbplot.test_sparams_keyword,  s    JJNN&N9 ^^At?
d^^Aqe<
d^^Aru=
dd#d#d#d#>>!RU;SrH   c                 @   t         j                  j                  dd      }t        j                  |ddd      \  }}t        j                  |dt         j                  d      \  }}t        ||       t        ||       t        t        t         j                  |d	       t        t        t         j                  |g 	        G d
 d      }t        j                  |dd      \  }}t        j                  | |       d      \  }}t        ||       t        ||       y )Nr   r  r[  Ft)r   )r  r  r  zwrong-dist-namer  c                       e Zd ZdZd Zy)3TestProbplot.test_dist_keyword.<locals>.custom_distz6Some class that looks just enough like a distribution.c                 D    t         j                  j                  |d      S )Nr   )r   )r   r   ppf)re   qs     rF   r  z7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppfF  s    zz~~aQ~//rH   N)rx   ry   rz   rl  r  r{   rH   rF   custom_distr  D  s
    H0rH   r  )r   r  )r  r  )	r   r   rC   r  r  r
   rl   rm   AttributeError)re   rs   r  r  r  r  r  s          rF   test_dist_keywordzTestProbplot.test_dist_keyword:  s    JJNNN7^^A5sDI
d^^A5uwwM
dd#d#j%..!:KLnennabA	0 	0
 ^^At?
d^^AKMuE
dd#d#rH   no matplotlibr   c                 V   t        j                         }|j                  d       t        j                  j                  ddd      }t        j                  |t               \  }}t        j                          t        j                  |d       \  }}t        j                  |dt               }t        j                          t        j                  |dd       }t        t        |      t        |      cxk(  xr' t        |      cxk(  xr t        |      cxk(  xr d	k(  nc        t        ||       t        ||       t        ||       t        ||       t        j                         }|j                  d      }	t        j                  |d|	       t        j                          y )
Nr  r   r   t r[  plotF)r  r  r   )pltfigureadd_subplotr   r  rC   r  closer	   r  r
   )
re   figrs   r  fitres1r  fitres2r  res4axs
             rF   test_plot_kwargzTestProbplot.test_plot_kwargN  s   jjlGGKK'K:qs3g		qt4g~~aU5		~~aU6 	D	SYE#d)Es4yEAEFd#d#d#) jjl__S!qe"-		rH   c                 H    t        t        t        j                  dgd       y r  )rl   rm   r   r  rn   s    rF   test_probplot_bad_argsz#TestProbplot.test_probplot_bad_argsg  s    j%..1#<MNrH   c                 j   t        t        j                  g d      t        j                  g       t        j                  g       f       t        t        j                  g d      t        j                  g       t        j                  g       ft        j
                  t        j
                  dff       y )NFr  Tr   )r   r   r  r@   r0  r   rn   s    rF   
test_emptyzTestProbplot.test_emptyk  ss    U^^BE2hhrlBHHRL1	3U^^BD1xx|RXXb\2vvrvvs+-	.rH   c           	         d}t        j                  d      5  t        j                  t        |      5  t        t        j                  dgd      t        j                  dg      t        j                  dg      ft         j                  t         j                  t         j                  ff       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	N,One or more sample arguments is too small...r   invalidrF  r   Tr  r   )
r@   r   r   rP  r   r   r   r  r0  r   rf  s     rF   test_array_of_size_onez#TestProbplot.test_array_of_size_oner  s    @kk(+ 	5ll-W=	5688RD>288QC=966266266245	5 	5 	5 	5 	5 	5s#   CA<C1CC	CCN)rx   ry   rz   rj   r  r  r   r   rm  have_matplotlibr  r  r  r  r{   rH   rF   r  r    sM    3<$( [[O+OD E0O.5rH   r  c                   &   e Zd Zd Zd Zd Zd Zd Zej                  j                  dddid	did	d
ig      d        Zd Zd Zd Zej                  j                  dg d      d        Zd Z edd      ej                  j                  dg d      d               Z edd      ej                  j                  dg dg dg dg      d               Zd Zej                  j*                   edd      d               Zej                  j                  dg d       d!        Z edd"      d#        Zej                  j                  dd$d
g      d%        Zej                  j                  dd$ ej6                         f      d&        Zd' Zy())TestWilcoxonc                    |j                  ddg      }|j                  dgdz        }d}t        j                  t        |      5  t	        j
                  ||d       d d d        d}t        j                  t        |      5  t	        j
                  ||d	       d d d        d
}t        j                  t        |      5  t	        j
                  |d       d d d        y # 1 sw Y   xY w# 1 sw Y   SxY w# 1 sw Y   y xY w)Nr   r   r   z`zero_method` must be one of...rF  zdummy...z`alternative` must be one ofdummyrf  z`method` must be one of...xyzrj  )r   r   r   rm   r   wilcoxon)re   r   rs   r  rH  s        rF   test_wilcoxon_bad_argz"TestWilcoxon.test_wilcoxon_bad_arg}  s     JJ1vJJs2v3]]:W5 	-NN1a,	-0]]:W5 	6NN1aW5	6.]]:W5 	,NN1U+	, 	,	- 	-	6 	6	, 	,s$   C"C.C:"C+.C7:Dc                    |j                  d      }t        j                  d      5  t        j                  ||dd      \  }}t        ||j                  d             t        ||j                  |j                               t        j                  ||dd      \  }}t        ||j                  d             t        ||j                  |j                               d d d        t        j                  ||d	d      \  }}t        ||j                  d
             t        ||j                  d             y # 1 sw Y   \xY w)Nr   r   r  wilcoxrF  rj  r   prattzsplitg     @Z@r1   )rr   r@   r   r   r  r*   r   r   )re   r   rs   r   r  s        rF   test_zero_diffzTestWilcoxon.test_zero_diff  s    IIbM [[* 	3>>!QFDAqArzz#/Arzz"&&12>>!QEDAqArzz#/Arzz"&&12	3 ~~aH\B12::g./2::c?+	3 	3s   B9D<<Ec                    |j                  g d      }|j                  g d      }t        j                  ||ddd      }t        |j                  |j                  d             t        |j
                  |j                  d             y )	Nr^  )r   r   r   r   r   rF  F)zero_methodrk  
correctionr   g|N?)r   r   r  r)   rb   r   )re   r   rs   r   ru   s        rF   
test_prattzTestWilcoxon.test_pratt  sg     JJ|$JJ|$nnQw|(-/rzz#7

BJJ/B$CDrH   c                     g d}t        j                  |dd      }t        j                  |dd      }t        j                  |dd      }y )N)r   r   r   r   r   r   r   r   r   r   r   r   rF  )r  rk  r  r  )r   r  )re   arrr   s      rF   test_wilcoxon_arg_typez#TestWilcoxon.test_wilcoxon_arg_type  s?     1NN3GLINN3H\JNN3H\JrH   c           
      b   g d}t        dd      }|j                  t        j                  t	        ||      D cg c]  \  }}|g|z   c}}            }|j                  |      }t        j                  ||ddd      \  }}	t        ||j                  d             t        |	|j                  d	             t        j                  ||d
dd      \  }}	t        ||j                  d             t        |	|j                  d             t        j                  ||ddd      \  }}	t        ||j                  d             t        |	|j                  d             |j                  g d      }|j                  g d      }t        j                  ||dd      \  }}	t        ||j                  d             t        |	|j                  d             t        j                  ||dd      \  }}	t        ||j                  d             t        |	|j                  d             y c c}}w )N)	r   r   r  rq   rQ   r   r   r   r   r   r   rF  Frk  r  g     pz@g.i?r  g     {@gFYv]Uj?r  g     pt@g%^ Ez?r  rY  r  r        y   r     rS     p         w   r%  r     r$  rS  s   r  r     r  rk  r  g[ӂ<?TgzM+?)
r]  r   r@   concatenater  
zeros_liker   r  r)   r*   )
re   r   freqnumsur   rs   r   r  r  s
             rF   test_accuracy_wilcoxonz#TestWilcoxon.test_accuracy_wilcoxon  s   ,R|JJr~~3tT?&K41asQw&KLMMM!~~aGL).012::d+,2::&;<=~~aH\).012::d+,2::&;<=~~aH\).012::d+,2::&678
 JJSTJJST~~au\J12::c?+2::&89:~~atLI12::c?+2::&89:9 'Ls   H+kwargrk  approxmoderF  c                 2   |j                  g d      }|j                  g d      }t        j                  ||dfi |}t        j                  ||dd      }t        |j                  |j                         t        |j
                  |j
                         y )N)r   r   r  rP      r  r  r   rQ   r,  rN   r   )r   r   r   r  r   r   rO   r  rO  rO      rC  r  rF  rj  )r   r   r  r*   rb   r   )re   r"  r   rs   r   ru   ru  s          rF   test_approx_modezTestWilcoxon.test_approx_mode  sq    
 JJBCJJCDnnQ85u5nnQ8LAs}}5

CJJ/rH   c                     |j                  g d      }|j                  g d      }t        j                  ||dd      }d}t        |||       y )Nr  r  FrF  r  r  r  )r   r   r  r   )re   r   rs   r   ru   rt   s         rF   test_wilcoxon_result_attributesz,TestWilcoxon.test_wilcoxon_result_attributes  sE    JJSTJJSTnnQeLI,
C3rH   c                    t         j                  j                  d      }|j                  d      |j                  d      }}|j                  |      |j                  |      }}t	        j
                  ||d      }t        j                  |j                  dz        }t        |j                  |       t        |      ry t	        j
                  ||d      }t        |d      rJ t	        j
                  ||      }t        |d      rJ y )Nl   	m$S rq   rF  rj  r   r_  
zstatistic)r@   r   r   r   r   r  r   ndtrir   r)   r,  r'   r8  )re   r   r   rs   r   ru   ru  s          rF   test_wilcoxon_has_zstatisticz)TestWilcoxon.test_wilcoxon_has_zstatistic  s    ii##K0zz"~szz"~1zz!}bjjm1nnQ,7mmCJJqL),":nnQ'23---nnQ"3----rH   c                 `   |j                  dgdz        }|j                  d      }t        j                  |dd      \  }}|j                  d      }t        ||       t	        ||       t        j                  |dd      \  }}|j                  d	      }t        ||       t	        ||       y )
Nr?  r   r   rF  Fr  g4ťY?TgD2_?)r   r   r  r*   r)   )re   r   r  expected_statstatr  
expected_ps          rF   test_wilcoxon_tiezTestWilcoxon.test_wilcoxon_tie  s     JJurz"

3..<EJaZZ 45
m,:&..<DIaZZ 34
m,:&rH   r   r   c                    ||nt        ||      }|j                  g d|      }|j                  g d|      }|j                  d|      }t        j                  ||ddd      \  }}t	        ||       t        ||j                  d	|             t        j                  ||dd
d      \  }}t	        ||       t        ||j                  d|             t        j                  ||ddd      \  }}t	        ||       t        ||j                  d|             t        j                  ||dd
d      \  }}t	        ||       t        ||j                  d|             y )N)
}   r  r     r6  r  r6  r5  r6  r&  r   )
rU  z   r5  r  r6  |   r     r&           ;@rm  rF  F)rg  rk  r  g}5}?T)rg  r  rk  gfh%?ro  g?gNCJT?)r   r   r   r  r*   r)   )re   r   r   rs   r   w_refr   r  s           rF   test_onesidedzTestWilcoxon.test_onesided  sJ    GB,>JJIQVJWJJIQVJW

4u
-~~a|).015!2::oU:CD~~a4%1315!2::m5:AB~~a	%1eE15!2::oU:CD~~a	)-lD15!2::oU:CDrH   c                     t        dd      D ]Z  }t        |      }t        |      }t        ||dz   z  dz  dz   t	        |             t        t        |      d       t        ||       \ y )Nr   r  r   )r]  r   r   r   r  r  r   )re   r   pmf1pmf2s       rF   test_exact_basiczTestWilcoxon.test_exact_basic0  sa    q" 	2A&q)D'*DAaCQD	2TA&%dD1	2rH   r   )`method='exact'` is incompatible with JAXr   c                 |   ||nt        ||      }|j                  g d|      }|j                  g d|      }t        j                  ||dd      \  }}t	        ||j                  d|             t        j                  ||dd      \  }}t	        ||j                  d	|             t        j                  ||d
d      \  }}t	        ||j                  d|             |j                  dd|      dz   }|j                  ddd|      }t        j                  ||dd      \  }}t	        ||j                  d|             t        j                  ||dd      \  }}t	        ||j                  d|             t        j                  ||d
d      \  }}t	        ||j                  d|             y )N)
g(\?g=
ףp=?g(\?gQ޿gQ?g{Gz?gp=
ףgq=
ףp?g      gQ?r   )
r   rA  gɿrB  皙gܿgzGgQοg(\gRQr  r_  rn  g      ?rm  g?  ?ro  g      ?r   g      4@r         g    ?g?g    ?)r   r   r   r  r)   rr   )re   r   r   rs   r   r   r  s          rF   test_exact_pvalzTestWilcoxon.test_exact_pval8  s    GB,>JJ %,1  3JJ &-2  4~~aGL12::j:>?~~awG12::m5:AB~~a	'J12::k:?@IIb#UI+c1IIc2s%I0~~aGL12::&8:FG~~awG12::&8:FG~~a	'J12::&8:FGrH   rs   )r   r   r   )r   r   r,  r  r   )r   r   r   r  rj  irP   rQ   c                 &   t        j                  |j                  |            \  }}t        j                  |      }||dkD     j                         }t        ||j                  t        |                   t        ||j                  d             y Nr   r1   )r   r  r   r@   r0  r  r*   rt  )re   rs   r   r   r  wtrues         rF   test_exact_p_1zTestWilcoxon.test_exact_p_1\  sg    
 ~~bjjm,1HHQK!a%2::eEl342::c?+rH   c                 x   |j                  dd      dz   }|j                  ddd      }t        |      r{d}t        j                  t        |      5  t        j                  ||d       d d d        t        j                  t        |      5  t        j                  ||d	       d d d        y t        t        j                  ||      j                  t        j                  ||d	      j                         t        j                         }t        j                   d
d      }t        j                  |      \  }}t        ||ft        j                  ||             |j                  dd      }t        j                  |      \  }	}t        t        j                  |d      j                  |j                  |             t        j                  |      |dk(     j                  d      }t        j                  |      \  }	}t        t        j                  |d      j                  |j                  |             |j                  dd      }t        j                  |      \  }	}t        t        j                  |d      j                  |j                  |             y # 1 sw Y   ;xY w# 1 sw Y   y xY w)Nr   g      I@r   rE  z0When using `wilcoxon` with `jax.numpy` arrays...rF  autorj  r_  r   r   rj  rN   rF  r   r   r  )rr   r'   r   r   rm   r   r  r*   r   r  r@   r   r   r   r   r   )
re   r   rs   r   rH  pmr  r   r  r   s
             rF   	test_autozTestWilcoxon.test_autog  s   IIb#$IIc2s#":HGz9 4q!F34z9 5q!G45q!,33q!G<CC	E $$&IIb!~~a 1
 	aVU^^Ab9: IIb!~~a 1q>EErzzRS}UFF1Ia1f!!!$~~a 1q>EErzzRS}U IIa~~a 1q>EErzzRS}U?4 45s   J#J0#J-0J9z lazy -> limited `method` choicesc                    t        j                  dd      }t        j                  |j	                  |            }|j	                  ddg      \  }}t        |j                  |       t        |j                  |       d||dk(  <   t        j                  |j	                  |            }|j	                  ddg      \  }}t        |j                  |       t        |j                  |       y )	Nrj  rQ   g     ;@g     P?r   r   r
  g     0?)r@   rr   r   r  r   r*   rb   r   )re   r   r  ru   r   r  s         rF   test_auto_permutation_edge_casez,TestWilcoxon.test_auto_permutation_edge_case  s    
 IIb!nnRZZ]+zz4./1q)

A&!q&	nnRZZ]+zz2|,-1q)

A&rH   r   )r   r   r   c                     t         j                  j                  d      }|j                  |      j                         }t	        j
                  |j                  |      t	        j                               }t	        j
                  |d      }t        |      }t        |j                  |j                  |j                  |             t        |j                  |j                  |j                  |             |j                  |j                  |dz              }t         j                  j                  d      }t	        j                  d|	      }t	        j
                  ||      }t         j                  j                  d      }t	        j                  d|
      }t	        j
                  ||      }t        |j                  |j                  dz        dz  |j                         t        |j                  |j                         y )Nl   aQG1X@
r   rj  r_  r   r   l   VsWFrO  ro  )rp  r   r   )r@   r   r   r   r   r  r   r  r%   r*   rb   r   rs  )	re   r   r   r   rs   ru   ru  r   rM  s	            rF   r  z$TestWilcoxon.test_permutation_method  sj   ii##$56JJDJ!((*nnRZZ]53J3J3LMnnQw/ $rzz#--uz'MN

BJJszzJ$GHJJszztBwz/0ii##$56$$=nnQr*ii##$56$$#FnnQr*C04cjjA

CJJ/rH   z(`method='auto'` is incompatible with JAXc                    t         j                  j                  d      }|j                  d      }t         j                  |d<   |j                  |      }t        j                  |      }t        j                  |d      }t        |j                  |j                         t        |j                  |j                         t        |d      sJ t        |d      rJ y )Nl   HF )Z )r  r   r   )r   r   rF  rj  r,  )r@   r   r   normalr   r   r   r  r)   rb   r   r8  )re   r   r   r   ru   ru  s         rF   6test_method_auto_nan_propagate_ND_length_gt_50_gh20591zCTestWilcoxon.test_method_auto_nan_propagate_ND_length_gt_50_gh20591  s     ii##O4JJGJ$&&$JJqMnnQnnQ|4s}}5

CJJ/sL)))3----rH   r_  c                    t        |      r|dk(  rt        j                  d       |j                  g d      }|j                  g d      }t	        j
                  ||d|      }t	        j
                  ||d|      }|j                  d   |j                  d   d	z   z  d
z  }t        |j                        |j                  k7  sJ t        ||j                  z
  |j                         t        |j                  |j                         y )Nr_  rB  )
r  r  rN  r  r:  r  r  r  r  rB  )
r  r  E   rN  rK  r  r  r  r  r  rm  rn  ro  r   r   r   )r'   r   r;  r   r   r  ru  r  rb   r)   r   )re   rk  r   var1var2ru  ru   max_statistics           rF   test_symmetry_gh19872_gh20752z*TestWilcoxon.test_symmetry_gh19872_gh20752  s    ":&G+KKCD zzBCzzBCnnT4VFKnnT4YvN

1A):;a?3==!S]]2225s}}E

CJJ/rH   c                 .   t        |      r|dk(  rt        j                  d       t        j                  |j                  d      |      }t        |j                  |j                  d             t        |j                  |j                  d             y )Nr_  rB  r   rj  r   r1   )
r'   r   r;  r   r  r   r)   rb   r   r   )re   rk  r   ru   s       rF   test_all_zeros_exactz!TestWilcoxon.test_all_zeros_exact  sc    ":&G+KKCD nnRXXa[8rzz"~6

BJJrN3rH   c                    |j                  g d      }|j                  g d      }d}t        j                  t        |      5  t	        j
                  ||d d        d d d        t        |      sy d}t        j                  t        |      5  t	        j
                  ||d d d       d d d        t        t        d	d       xs t        j                  j                  }d
}t        j                  ||      5  t	        j
                  ||d       d d d        d}t        j                  ||      5  t	        j
                  ||dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ]xY w# 1 sw Y   y xY w)Nr   r   r   rM   z/Array shapes are incompatible for broadcasting.rF  r   z0operands could not be broadcast together with...T)_no_deco	AxisErrorz8source: axis 3 is out of bounds for array of dimension 1r   r  z+`axis` must be compatible with the shape...)r  r_  )r   r   r   rm   r   r  r$   r   r@   
exceptionsr`  )re   r   rs   r   rH  r`  s         rF   .test_wilcoxon_axis_broadcasting_errors_gh22051z;TestWilcoxon.test_wilcoxon_axis_broadcasting_errors_gh22051  s?    JJy!JJy!C]]:W5 	&NN1af%	& |D]]:W5 	5NN1aft4	5 BT2Mbmm6M6M	L]]9G4 	)NN1aa(	) @]]9G4 	8NN1aa$7	8 	8!	& 	&	5 	5
	) 	)	8 	8s0   EE"9E.3E:E"E+.E7:FN)rx   ry   rz   r  r  r  r	  r!  r   r   r   r(  r*  r.  r3  r=  rA  r   rF  rJ  rN  r  rP  r  rT  rZ  r   r  r\  rb  r{   rH   rF   r  r  {  s   ,, EK;B [[W
H	1FL3IJL0L04.$', [[W&BC"E D"EH2 k*UV[[W&BCH D WHD k*UV[[S;#5#@#B C,C W,&VP [[k*LM' N '" [[VZ00 10* k*TU. V.$ [[X'>?0 @0 [[X1H1H1H1J'KL4 M48rH   r  )gףp=
W0@gQ%@gGz'@g+@g33333/@g3333332@g
ףp=
@gq=
ףp$@g
ףp=
)@g\(\-@gGz0@gGzn3@g=
ףp= @gffffff&@gfffff)@g
ףp=-@Gz0@g3@g!@g)\('@g333333(@g
ףp=
.@rc  g{G0@gQ3@gq=
ף"@g\(\'@gR*@g33333.@g\(3@c                       e Zd Zd Zej
                  j                  d      d        Zd Zej
                  j                  dddg      d        Z
ej
                  j                  d	g d
      d        Zy)	TestKstatc           	      6   t         j                  j                  d      }|j                  |j	                  d      |j
                        }|j                  dD cg c]  }t        j                  ||       c}      }|j                  g d|j                        }t        ||d       t        j                  |d	      }t        j                  |d
	      }t        j                  |d	      }	t        |j                  |||	f      |d d dd       y c c}w )Ni}  r  r   r^  )gHQ,?glZ)rI?g88}?gcJN?r%  rV   r   )orderr   r   r   g{Gz?{Gz?r#  )r@   r   r   r   randnr   stackr   kstatr   r)   moment)
re   r   r   rf   r   momentsr}  m1m2m3s
             rF    test_moments_normal_distributionz*TestKstat.test_moments_normal_distribution	  s    ii##E*zz#))E*"**z=((,GQEKKa0GH::I$(JJ  05 \\$a(\\$a(\\$a("b"."DtT Hs   Dr  c                     t        t        t        |      5  t        j                  |j                  g             }d d d        t        |j                  |j                               y # 1 sw Y   /xY wr   )r"   r   r   r   rk  r   r*   r   r  s      rF   ro   zTestKstat.test_empty_input	  sR    +3HRP 	.++bjjn-C	.RZZ/0	. 	.s   %A**A3c                     |j                  d      }|j                  |dk(  |j                  |      }t        t	        j
                  |      |j                  |j                               y NrX   rM   rr   wherer   r*   r   rk  r   re   r   rf   s      rF   r   zTestKstat.test_nan_input 	  I    yy~xx	26640D)2::bff+=>rH   r   r   g/$@c                     |j                  d      }d}t        j                  t        |      5  t	        j
                  ||       d d d        y # 1 sw Y   y xY w)Nr   z'k-statistics only supported for 1<=n<=4rF  r   )rr   r   r   rm   r   rk  )re   r   r   rf   rH  s        rF   test_kstat_bad_argzTestKstat.test_kstat_bad_arg&	  sG     yy};]]:W5 	#KK"	# 	# 	#s   AAcase))r   gM~,@)r   2.L)@)r   gP'')r    -"bac                     |\  }}t        j                  |j                  t              |      }t	        ||j                  |             y r?   )r   rk  r   x_kstatr)   )re   r|  r   r   ru  ru   s         rF   test_against_RzTestKstat.test_against_R.	  s8     3kk"**W-q1RZZ_-rH   N)rx   ry   rz   rq  r   r   r'  ro   r   r   r{  r  r{   rH   rF   re  re  		  s    U [[ BC1 D1
? [[S1e*-# .# [[V &? @.	@.rH   re  c                   `    e Zd Zej                  j                  d      d        Zd Zd Zd Z	y)TestKstatVarr  c                     |j                  g       }t        t        t        |      5  t	        j
                  |      }d d d        t        |j                  |j                               y # 1 sw Y   /xY wr   )r   r"   r   r   r   kstatvarr*   r   r  s       rF   ro   zTestKstatVar.test_empty_inputB	  sW    JJrN+3HRP 	$..#C	$RZZ/0	$ 	$s   A,,A5c                     |j                  d      }|j                  |dk(  |j                  |      }t        t	        j
                  |      |j                  |j                               y rt  ru  rw  s      rF   r   zTestKstatVar.test_nan_inputI	  rx  rH   c                     |j                  dg      }d}d}t        j                  t        |      5  t	        j
                  ||       d d d        y # 1 sw Y   y xY w)Nr   r   zOnly n=1 or n=2 supported.rF  rz  )r   r   r   rm   r   r  )re   r   rf   r   rH  s        rF   r   zTestKstatVar.test_bad_argO	  sL    zz1#.]]:W5 	&NN41%	& 	& 	&s   AAc                 ~   t        t              }d}d}t        j                  |j	                  t              d      }||z  }t        ||j	                  |             t        j                  |j	                  t              d      }d|dz  z  |z  |dz
  |z  z   ||dz   z  z  }t        ||j	                  |             y )Nr}  r~  r   r   )r  r  r   r  r   r)   )re   r   r   k2k4ru   ru  s          rF   test_against_R_mathworldz%TestKstatVar.test_against_R_mathworldW	  s    
 LnnRZZ0!41fRZZ_-nnRZZ0!4QwqyAaC8#QqS	2RZZ_-rH   N)
rx   ry   rz   r   r   r'  ro   r   r   r  r{   rH   rF   r  r  @	  s4    [[ BC1 D1?&.rH   r  c                   r    e Zd Zd Zd Zd Zej                  j                  e	 d      d        Z
d Zd Zy	)
TestPpccPlotc                 0    t        ddd      dz   | _        y Nr   r   r  r[  rG   rs   rn   s    rF   setup_methodzTestPpccPlot.setup_methodk	      "13WEIrH   c                     d}t        j                  | j                  dd|      \  }}g d}t        |t	        j
                  dd|             t        ||       y )Nr   r   N)g9%	?gxM _?g";9?g®XZ?g?num)r   	ppcc_plotrs   r
   r@   r&  )re   r  svalsppccppcc_expecteds        rF   rj   zTestPpccPlot.test_basicn	  sK    oodffc2;t%r{{3:;m,rH   c                 p   t        j                  | j                  ddd      \  }}t        j                  | j                  ddt         j                        \  }}t	        ||d       t	        ||d       t        j                  | j                  dd      \  }}t	        ||d       t	        ||d       y )Nr  r   tukeylambdar  g#B;rV   )r   r  rs   r  r
   )re   svals1ppcc1svals2ppcc2svals3ppcc3s          rF   	test_distzTestPpccPlot.test_distv	  s    RmLR-2->->@U3u51R8U3u51rH   r  r   c                 N   t        j                         }|j                  d      }t        j                  | j
                  ddt                |j                  |       |j                  d      }t        j                  | j
                  dd|       t        j                          y Nr  r   r  )r  r  r  r   r  rs   delaxesr  re   r  r  s      rF   r  zTestPpccPlot.test_plot_kwarg	  sm     jjl__S!Rc2B __S!Rb1		rH   c                     t        t        t        j                  | j                  dd       t        t        t        j                  g dddd       y )Nr   r   r   r  r  )rl   rm   r   r  rs   rn   s    rF   test_invalid_inputsz TestPpccPlot.test_invalid_inputs	  s5    j%//4661a@ 	j%//9a,	.rH   c                     t        j                  g dd      \  }}t        |t        j                  ddd             t        |t        j
                  dt                     y )Nr   r   r  r  r   )r   r  r
   r@   r&  r   rt  )re   r  r  s      rF   r  zTestPpccPlot.test_empty	  sF     oob!Q/tr{{1aR89bhhr78rH   N)rx   ry   rz   r  rj   r  r   r   rm  r  r  r  r  r{   rH   rF   r  r  j	  sH    J-
2 [[O+OD
 E
.9rH   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestPpccMaxc                 L    dg}t        t        t        j                  |d       y r  )rl   rm   r   ppcc_maxr   s     rF   test_ppcc_max_bad_argz!TestPpccMax.test_ppcc_max_bad_arg	  s    sj%..$=NOrH   c                     t         j                  j                  ddddd      dz   }t        t        j                  |      dd	
       y )Nffffffr   r   '   r        @{rP   r]   )r   r  rC   r   r  r   s     rF   test_ppcc_max_basiczTestPpccMax.test_ppcc_max_basic	  sF    !!$ASu/6 " 8:=>ENN1-/CQOrH   c                 H   t         j                  j                  ddddd      dz   }t        j                  |d	      }t        j                  |t         j                  	      }t	        |d
d       t	        |d
d       t        j                  |      }t	        |d
d       y )Nr  r   r   r  r  r   r  r  r  r  r   r]   )r   r  rC   r  r   )re   rs   max1max2max3s        rF   r  zTestPpccMax.test_dist	  s    !!$ASu/6 " 8:=> ~~am4~~ae&7&78D"6BD"6B ~~a D"6BrH   c                     t         j                  j                  ddddd      dz   }t        t        t         j
                  |d	       t        t        j
                  |d
	      dd       t        t        j
                  |d	      dd       y )Nr  r   r   r  r  r   r  )r   r1   r   brack)r   r   r  rP   r]   r   r   )r   r  rC   rl   rm   r  r   r   s     rF   
test_brackzTestPpccMax.test_brack	  sx    !!$ASu/6 " 8:=>j%..!?KENN1F;0!	= 	ENN1G<0!	=rH   N)rx   ry   rz   r  r  r  r  r{   rH   rF   r  r  	  s    P
P
C	=rH   r  c                       e Zd Zej                  j                  dddg      d        Z edd      d        Zd	 Z	d
 Z
d Zd Zd Zy)TestBoxcox_llfr   r   r   c                    t        ||      }t        j                  j                  ddd      }d}t        j                  ||j                  ||            }|j                   dz  t        j                  t        j                  |j                         dz              z  }t        ||j                  ||             y )	Nr  r   1  r   r   r   r   r   r`  r   )r   r   r   rC   
boxcox_llfr   r   r@   rA   r  ri   r)   )re   r   r   dtrs   lmbdallfllf_expecteds           rF   rj   zTestBoxcox_llf.test_basic	  s    RJJNN2ENBubjj"j&=>w|bffRVVAEEGQJ-?&@@RZZBZ?@rH   Tz,array-likes only accepted for NumPy backend.r|  c                     t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        |            }t        ||d       y Nr   r   r  r  r   rr  rV   )r   r   rC   r  r  r)   re   r   rs   r  r  llf2s         rF   test_array_likezTestBoxcox_llf.test_array_like	  sU     JJNN%N@ua(tAw/T.rH   c                 >   t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        j
                  ||g      j                        }t        |j                  ||g      |j                  |      d       y r  )	r   r   rC   r  r@   vstackr  r)   r   r  s         rF   test_2d_inputzTestBoxcox_llf.test_2d_input	  sz     JJNN%N@ua(ryy!Q'8':':;

C:.

40@uMrH   c                     d}t        t        ||      5  |j                  |j                  t	        j
                  d|j                  g                         sJ 	 d d d        y # 1 sw Y   y xY wNr  r   r   )r"   r   isnanr   r   r  r  s      rF   r  zTestBoxcox_llf.test_empty	  s]    @+7rB 	M88BJJu'7'72::b>'JKLLL	M 	M 	Ms   AA%%A.c                     |j                  g d      }t        j                  d|      }t        ||j                  d             y )N)g     h@      m@r  g     x@ig#:x1)r   r   r  r)   re   r   rf   r  s       rF   test_gh_6873zTestBoxcox_llf.test_gh_6873	  s9     zz67r4(RZZ(:;<rH   c                     |j                  g d|j                        }t        j                  d|      }t	        ||j                  d|j                        d       y )N)i  i  i  r   i  r   g:0yE>gl.r   rV   )r   r   r   r  r)   r  s       rF   test_instability_gh20021z'TestBoxcox_llf.test_instability_gh20021	  sN    zz8

zKtT* 	RZZ(=RZZZP!	#rH   c           
         |j                  ddgddgg      }t        j                  d|d      }|j                  t        j                  d|d d df         t        j                  d|d d df         g      }t	        ||       t        j                  d|d      }|j                  t        j                  d|dd d f         t        j                  d|dd d f         g      }t	        ||       y )Nr   r   i,  i  r   r   r  )r   r   r  rj  r)   )re   r   rf   
llf_axis_0llf_0
llf_axis_1llf_1s          rF   	test_axiszTestBoxcox_llf.test_axis	  s    zzC:Sz23%%aA6
QQT
+QQT
+
  	
E*%%aA6
QQT
+QQT
+
  	
E*rH   N)rx   ry   rz   r   r   r   rj   r   r  r  r  r  r  r  r{   rH   rF   r  r  	  si     [[Wy)&<=A >A dKM/M/NM
=#+rH   r  (  iU>  iϵ i i_
 i7 i is iv  i+ i* i-q ir: i  i i i i_ i4  i iD  i i, iE i\  i i| ig  iM iӢ i[  i! i if6 iP i i iI i/ iF& i i i`# i i  i& i i iQ ia i
 iXZ iw  i_ im  iD i- iB  i:C i	 i' i  i % ix i  iz_ iQ i!# i= i  ix i
 iU7 i_ i1k iW9 i& ix iI i  iT i
 i i  irv im i͟  i iO iv i) iP i4 i= ii  iU i i ig> ix	 i` i| i0 i` iM	 i ' i[ i8 i  i3[ i  i) i`N i
	 i  i[ i:+ ip i	% i
  iV i[$ iX  i_ ib ieZ i i`?	 it i  i iE i iT iy i imv i< iZ i! i i(  ir
 i i iɪ i| i i> ii  i i* i# ix i i& i i# i1g iP i) iۆ i{% i? i۽ i| i i& i- iư) i+c i7  iQ i	o i& i|_ iy
 i6 i  i i i:J i#j i8 i  i%  i i%W i( i` i: ina  i  i i% i$ i4 iA( iq  i  i" iy iXZ i izr i i$ i; is igY i i7 ip	 ip iL6" iDH i i!3 i iI( i|C iш i im  iS i  i{8 i  i i iP i2L i( i@ is iu i2 i_ ij i)m igZ i_ iu	 i9 ik  i'; i ii iK i܃ i i= iv i= i ia  ir  i i i}W i*  i  iJ i i  i2  iUF iNj	 iV," ip iA i% i iv9 iI5 i  iT- i  i8~ i?e` i1 iV  i/X i= i4 i iح i^ i i/ ig i( i i|B; ip i ic iE' iE i$
 i i{ ik i: iI iA_ i iP ioP  i6_ i iܲ iO	 iA7 iL  iA i iV  iwm i iZh i|V iԇC iw i& i~ i i'  i!  i i
 i} ie i3 i i i_ i  i@) i  iV ii iF i? i&
 i"Y iw i  iH iS ird ib i@ iK iA; iz| id+ i	 i
8 i"  i	 iO i_ i$l i!9 ii iT iuL iQ'% iqp iC i]K@ i! i i  iIp| i i?	B i i io0 i i

 i  i5% i i i* i i iv0 i* i* iw i  ive i$ i i- iD~ i- i i,4 ib i  i iP0 i) im i	 iR iQ i
 i i c                       e Zd Zd Zy)TransformTestc                    t        t        | j                        }t        t        | j                   d      }t        t        | j                  t              }t
        j                  j                  d      }|j                  d      }t
        j                  |d<   d}t        j                  t        d      5   |||d	       d d d         |||d
	      }t
        j                  j                  | ||d              |||d	      }t
        j                  j                  | |||d
	             t        j                  t        d      5   ||d	       d d d         ||d
	      }t
        j                  j                  |d    ||t
        j                               t
        j                  j                  |d   t
        j                         |t        j                  k(  rddini } ||d	      } ||fddi|} |||      }	t
        j                  j                  |d   |	       t
        j                  j                  |d   |       y # 1 sw Y   xY w# 1 sw Y   xY w)N_normmax   5kzj r   r   r1   The input contains nan valuesrF  raise
nan_policy	propagateomitr   r   rk  mler  )r   r   	transformr   r   r@   r   r   r   r   r   rm   r{  r
   r   r   )
re   r  normmaxspecial_transformr   rs   lmbru   r"  ru  s
             rF   test_nan_policyzTransformTest.test_nan_policy?
  s   E4>>2	%DNN#38!<=#GT^^=RSii##$78JJrNvv! ]]:-LM 	2a1	2 3;7


""3(9!R(@A362


""3	!S[(QR ]]:-LM 	-aG,	- k2


A(9!RVV(DE


A/%.%,,%>5!Bf-a4F4e43


""3q63/


""3q63/-	2 	2	- 	-s   7IIII'Nrx   ry   rz   r  r{   rH   rF   r  r  >
  s    "0rH   r  c            	       2   e Zd ZdZd Zd Zd Zd Zd Zd Z	e
j                  j                  dg d	      d
        Zd Ze
j                  j                  dg d      d        Zd Ze
j                  j                  d ej$                  g d       ej$                  ej&                  ddg      g      d        Ze
j                  j                  d ej$                  g d       ej$                  g d       ej$                  g d      g      d        Zd Zy)
TestBoxcoxr   c                 >   t        ddd      dz   }t        j                  |d      }t        ||dz
         t        j                  |d      }t        |dd|z  z
         t        j                  |d      }t        |t	        j
                  |             t        j                  t        |      d      }t        |t	        j
                  |             t        j                  t	        j                  d	      d
      }t        |t	        j                  d	             y )Nr   r   r  r[  r   r  r   r   r   r   )
rG   r   r   r
   r@   rA   r  r   r   r   )re   rs   xts      rF   test_fixed_lmbdazTestBoxcox.test_fixed_lmbdag
  s    abu=A\\!1%AE"\\!2&A!G$\\!1%BFF1I& \\$q'+BFF1I& \\"''"+q)R"&rH   c                     d}t         j                  j                  ddd      }||z  dz   | z  }t        j                  |      \  }}t	        |d|z  d	       y )
Ng      @r   iP  i  )r   r   r   r   r   r   r]   )r   r   rC   r   r   )re   r  rs   x_invr  r   s         rF   test_lmbda_NonezTestBoxcox.test_lmbda_Noney
  sW     JJNNrDNAUQ5&)\\%(
FFBJ:rH   c                    t         j                  j                  d      }t        dd|      dz   }t	        j
                  |d      \  }}}t        |ddg       t	        j
                  |d	      \  }}}t        |d
dg       t        dd|      dz   }t	        j
                  |d      \  }}}t        |ddg       t	        j
                  |d      \  }}}t        |ddg       y )Ni  r   r   r[  r  alphagx@gv[%@rq  gxˉEk?g8Bhk @rP   r   rq   r+  g\?gx̡&@r4   g7(U@gp:sY@)r@   r   r   rG   r   r   r
   )re   r   rs   r   r   s        rF   
test_alphazTestBoxcox.test_alpha
  s    ii##D)abs;a? at41h#46G"HIat41h#57H"IJ ac<rAau51h9k":;au51h:z":;rH   c                 B   t        j                  ddg      }t        t        t        j
                  |       t        t        t        j
                  t        j                  dg             t        t        t        j
                  t        j                  dgdgg             y )Nr   r   r   )r@   r0  rl   rm   r   r   r   s     rF   test_boxcox_bad_argzTestBoxcox.test_boxcox_bad_arg
  s_    HHb!Wj%,,2j%,,!>j%,,1#s0DErH   c                 Z    t        t        j                  g       j                  dk(         y N)r   )r	   r   r   ru  rn   s    rF   r  zTestBoxcox.test_empty
  s    R &&$./rH   c                 X    t        j                  t              \  }}t        |dd       y )NgsHjdrh㈵>rV   r   r   _boxcox_datar
   )re   r   lams      rF   r  zTestBoxcox.test_gh_6873
  s"    l+3 	YT2rH   bounds)r   r   )r   r   )r   rD  c                 z    fd}t        j                  t        d |      \  }}d   |cxk  r	d   k  sJ  J y )Nc                 4    t        j                  | d      S Nbounded)r  rk  r   minimize_scalarfunr  s    rF   	optimizerzBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizer
      ++C3<> >rH   r  r  r   r   )r   r   r
  )re   r  r  r   r  s    `   rF   $test_bounded_optimizer_within_boundsz/TestBoxcox.test_bounded_optimizer_within_bounds
  sA    	> <<DIN5ay5,6!9,,,,,rH   c                     t        j                  t        d       \  }}|dz   |dz   fddifd}t        j                  t        d |      \  }}||k7  sJ t        |d          y )	Nr  r?  r   xatolrr  c                 6    t        j                  | d      S )Nr  )r  rk  optionsr  )r  r  r  s    rF   r  zPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizer
  s!    ++C3<gO OrH   r  r   r	  )re   r   r  r  lmbda_boundedr  r  s        @@rF   2test_bounded_optimizer_against_unbounded_optimizerz=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizer
  su    
 <<D95 #+uqy)E"	O
 !<<D2;==%%%vay1rH   r  )strr   r   r?  c                     t        j                  t        d      5  t        j                  t
        d |       d d d        y # 1 sw Y   y xY w)Nz`optimizer` must be a callablerF  r  r   r   rm   r   r   r
  re   r  s     rF   $test_bad_optimizer_type_raises_errorz/TestBoxcox.test_bad_optimizer_type_raises_error
  s<     ]]:-MN 	HLLTYG	H 	H 	Hs   AAc                     d }d}t        j                  t        |      5  t        j                  t
        d |       d d d        y # 1 sw Y   y xY w)Nc                      yr   r{   )r  s    rF   r  zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizer
  s    rH   z/return an object containing the optimal `lmbda`rF  r  r#  )re   r  rH  s      rF   %test_bad_optimizer_value_raises_errorz0TestBoxcox.test_bad_optimizer_value_raises_error
  sF    
	 D]]:W5 	HLLTYG	H 	H 	Hs   AAbad_x)r   ig@r  r   c                     d}t        j                  t        |      5  t        j                  |       ddd       y# 1 sw Y   yxY w)zHTest boxcox_normmax raises ValueError if x contains non-positive values.z#only positive, finite, real numbersrF  N)r   r   rm   r   boxcox_normmax)re   r)  rH  s      rF   "test_negative_x_value_raises_errorz-TestBoxcox.test_negative_x_value_raises_error
  s:    
 8]]:W5 	(  '	( 	( 	(s	   =Ars   
     L@     x@     4@     @@     d@r2  g     @g     <@g     \@g     @r.  r/  r0  r1  r2  gFq$jgS	#jgGewa$jgVBi$jg[(>2$jc                     t        j                  t        d      5  t        j                  |      \  }}t        j                  t        j                  |            sJ 	 d d d        y # 1 sw Y   y xY w)NThe optimal lambda isrF  )r   rP  rQ  r   r   r@   r   isfinite)re   rs   xt_bclam_bcs       rF   test_overflowzTestBoxcox.test_overflow
  sT     \\+-DE 	.!LLOME666"++e,---	. 	. 	.s   AA))A2c                    t         j                  j                  d      }|j                  d      }t         j                  |d<   d}t	        j
                  t        d      5  t        j                  ||d       d d d        t        j                  ||d	      d
   }t         j                  j                  |t         j                  t         j                  f       t        j                  ||d      d
   }t        j                  |t        j                  |          |      d
   }t         j                  j                  ||       y # 1 sw Y   xY w)Nr  r   r   r   r  rF  r  )r  r  r  r   r  r   )r@   r   r   r   r   r   rm   r   r   r{  r   r  r
   )re   r   rs   r  ru   ru  s         rF   #test_confidence_interval_nan_policyz.TestBoxcox.test_confidence_interval_nan_policy
  s    ii##$78JJrNvv!]]:-LM 	=LL%G<	= ll1EkB1E


bffbff%56ll1Ef=a@ll1bhhqk\?%8;


""3,	= 	=s   !EEN)rx   ry   rz   r  r  r  r  r  r  r  r   r   r   r  r  r%  r(  r@   r0  r`  r,  r:  r<  r{   rH   rF   r  r  d
  s1   I'$;<"F03 [[X'FG- H-2* [[[*>?H @H

H [[hbhh018288RVVRO3LM
(
( [[S : 	; 	9:MN# ..
-rH   r  c                       e Zd Zd Zy)NormmaxTestc                 4   t        t        | j                        }t        j                  j                  d      }|j	                  d      }t        j                  |d<   t        j                  t        d      5   ||d       d d d         ||d      }t        j                  j                  |t        j                          ||d	      } ||t        j                  |                }t        j                  j                  ||       y # 1 sw Y   xY w)
Nr  r   r   r  rF  r  r  r  r  )r   r   transform_normmaxr@   r   r   r   r   r   rm   r{  r   r  r
   )re   r@  r   rs   ru   ru  s         rF   r  zNormmaxTest.test_nan_policy  s    #E4+A+ABii##$78JJrNvv!]]:-LM 	5aG4	5  k:


RVV,f5288A;,0


""3,	5 	5s   9DDNr  r{   rH   rF   r>  r>    s    -rH   r>  c            
          e Zd ZdZd Zd Zd Zd Zej                  j                  dg d      ej                  j                  dg d	      d
               Zej                  j                  d        Zd Zej                  j                  dg dg df      d        Zd Zej                  j                  d ej$                  g dej&                         ej$                  g dej&                         ej$                  g dej(                         ej$                  g dej(                        g      ej                  j                  dg d      ej                  j                  ddg      d                      Zej                  j                  dg dg dg      ej                  j                  ddg      d               Zd Zy)TestBoxcoxNormmaxr+  c                 0    t        ddd      dz   | _        y Nr   r   r  r[  r  rn   s    rF   r  zTestBoxcoxNormmax.setup_method      "12EBQFrH   c                 ^    t        j                  | j                        }t        |dd       y )Nm?rU   rV   r   r+  rs   r
   re   r   s     rF   test_pearsonrzTestBoxcoxNormmax.test_pearsonr  s"    %%dff-t4rH   c                     t        j                  | j                  d      }t        |dd       t        j                  | j                        \  }}t        ||       y )Nr  rj  	.!?rU   rV   )r   r+  rs   r
   r   )re   r   r   maxlog_boxcoxs       rF   test_mlezTestBoxcoxNormmax.test_mle  sG    %%dffU;t4 !<</=v.rH   c                 f    t        j                  | j                  d      }t        |ddgd       y )Nr   rj  rG  rL  rU   rV   rH  )re   
maxlog_alls     rF   test_allzTestBoxcoxNormmax.test_all&  s)    ))$&&?

Xx$8tDrH   rk  )r  pearsonrr   r  r  c                     fd}t        j                  | j                  ||      }t        j                  d   |k        sJ t        j                  |d   k        sJ y )Nc                 4    t        j                  | d      S r  r  r  s    rF   r  zITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer.  r  rH   )rk  r  r   r   )r   r+  rs   r@   r   )re   rk  r  r  r   s     `  rF   r  z6TestBoxcoxNormmax.test_bounded_optimizer_within_bounds*  s[    	> %%dffV09;vvfQi&()))vvfvay()))rH   c                 6   t        j                  | j                        }t        j                  |d      }t        j
                  |dz
  |dz   d       G d d      fd}t        j                  | j                  |      }||k7  sJ t        ||d       y )	Nr   rh  i  c                       e Zd Zy)?TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.MyResultN)rx   ry   rz   r{   rH   rF   MyResultrW  >  s    rH   rX  c                     g }D ]  }|j                   | |                      }t        j                  |         |_        |S r?   )appendr@   argminrs   )r  objsr  ru   rX  lmbda_ranges       rF   r  z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizerA  sG    D$ (CJ'(*C		$0CEJrH   r  r  )r   r+  rs   r@   rs  r&  r
   )re   r  lmbda_roundedr  lmbda2rX  r]  s        @@rF   test_user_defined_optimizerz-TestBoxcoxNormmax.test_user_defined_optimizer7  s     $$TVV,*kk-"4mD6H$O	 		 %%dff	Bt,rH   c                    t         j                  }t        j                  | j                  d |       t        j                  t        d      5  t        j                  | j                  d|       d d d        y # 1 sw Y   y xY w)N)r  r  z,`brack` must be None if `optimizer` is givenrF  )g       r`  )r   r  r   r+  rs   r   r   rm   r$  s     rF   2test_user_defined_optimizer_and_brack_raises_errorzDTestBoxcoxNormmax.test_user_defined_optimizer_and_brack_raises_errorN  sl    ,,	 	TVV49E
 ]]: .D E 	6   {+46	6 	6 	6s   #A::Brs   r3  )gx	 ?gN~jh ?g{ ?gXkI ?g}9" ?c                 6   d}t        j                  t        |      5  t        j                  |d      }d d d        t        j                  t        j                  |            j                         sJ t        j                  t
        j                        j                  dz  }|dkD  rt        j                  |      nt        j                  |      }t        j                  ||      }t        ||t        j                  |      z         y # 1 sw Y   xY w)NzThe optimal lambda is...rF  r  rj  r  r   )r   rP  rQ  r   r+  r@   r7  r   r   r   finfor   r  r  r
   sign)re   rs   rH  r  ymaxx_treme	y_extremes          rF   r:  zTestBoxcoxNormmax.test_overflow^  s     -\\+W5 	:((59E	:{{7>>!U3488:::xx

#''%/$qy"&&)bffQiNN7E2		4"''%.#89	: 	:s   DDc                     t        j                  t        d      5  t        j                  | j
                  d       d d d        y # 1 sw Y   y xY w)Nz `ymax` must be strictly positiverF  r   )rg  )r   r   rm   r   r+  rs   rn   s    rF   test_negative_ymaxz$TestBoxcoxNormmax.test_negative_ymaxl  s:    ]]:-OP 	2  b1	2 	2 	2s   "AAr   )g	i@g     `h@gfffffh@g      i@gi@)gKH9KH9rl  rl  rl  rl  rg  )g    _Bgꌠ9Y>)FNr  c           	         t        j                  t        d      5  |d|ini }t        j                  |fd|i|}t        j                  |      t        j                  |      g}t        t        t        j                  ||                  }|,t        j                  |j                        j                  dz  }t        ||d       d d d        y # 1 sw Y   y xY w)Nr6  rF  rg  rk  r  r  rV   )r   rP  rQ  r   r+  r@   r  r  absr   re  r   r
   )re   rs   rg  rk  r"  r  rh  ymax_ress           rF   'test_user_defined_ymax_input_float64_32z9TestBoxcoxNormmax.test_user_defined_ymax_input_float64_32p  s    & \\+-DE 	7&*&6VTNBE&&qAA5ACvvay"&&),G3u||GS9:;H|xx(,,u4D(6	7 	7 	7s   B/CCc                    t        j                  |t         j                        }t        j                  |t         j                        }t	        j
                  t        d      5  t        j                  ||       d d d        t        j                  ||       t        j                  |t         j                  |      }t        j                  |t         j                  |      }t        ||d       y # 1 sw Y   {xY w)Nr   r6  rF  rj  )rg  rk  rh  rV   )r@   r   r   r   r   rP  rQ  r   r+  r`  r
   )re   rs   rk  x_32x_64lmb_32lmb_64s          rF   test_user_defined_ymax_infz,TestBoxcoxNormmax.test_user_defined_ymax_inf  s     zz!2::.zz!2::. \\+-DE 	6  f5	6T&1 %%dG%%dGT2	6 	6s   &C88Dc                    t         j                  j                  d      }|j                  d      }t         j                  |d<   t	        j
                  t        d      5  t        j                  |dd       d d d        t        j                  |dd	      }t         j                  j                  |t         j                  t         j                  f       t        j                  |dd
      }t        j                  |t        j                  |          d      }t         j                  j                  ||       y # 1 sw Y   xY w)Nr  r   r   r  rF  r   r  )rk  r  r  r  rj  )r@   r   r   r   r   r   rm   r   r+  r{  r   r  r
   )re   r   rs   ru   ru  s        rF   test_nan_policy_allz%TestBoxcoxNormmax.test_nan_policy_all  s    ii##$78JJrNvv!]]:-LM 	F  5WE	F ""1U{K


bffbff%56""1UvF""1bhhqk\?5A


""3,	F 	Fs   D==EN)rx   ry   rz   r@  r  rJ  rN  rQ  r   r   r   r  slowra  rc  r:  rk  r@   r0  r   r   rp  rv  rx  r{   rH   rF   rB  rB    s   (G5/E [[X'AB[[X'FG	* H C	* [[- -,6  [[6JLM	:M	:2 [[S9zz	# 	Mzz	# 	4zz	# 	;zz	##  [[V%78[[Xw/
7 0 9"
7 [[S+2	#  [[Xw/3 03-rH   rB  c                   l    e Zd Zd Zd Zej                  j                  e d      d        Z	d Z
d Zy)	TestBoxcoxNormplotc                 0    t        ddd      dz   | _        y r  r  rn   s    rF   r  zTestBoxcoxNormplot.setup_method  r  rH   c                     d}t        j                  | j                  dd|      \  }}g d}t        |t	        j
                  dd|             t        ||       y )Nr   r  r   r  )g!X4}?g΁i?g-	15?gW$?g\ܱ{?r  )r   boxcox_normplotrs   r
   r@   r&  )re   r  lmbdasr  r  s        rF   rj   zTestBoxcoxNormplot.test_basic  sM    ,,TVVS"B%C ;<m,rH   r  r   c                 N   t        j                         }|j                  d      }t        j                  | j
                  ddt                |j                  |       |j                  d      }t        j                  | j
                  dd|       t        j                          y r  )r  r  r  r   r~  rs   r  r  r  s      rF   r  z"TestBoxcoxNormplot.test_plot_kwarg  sq     jjl__S!dffc2C8B __S!dffc2B7		rH   c                     t        t        t        j                  | j                  dd       t        t        t        j                  ddgdd       y )Nr   r   r   )rl   rm   r   r~  rs   rn   s    rF   r  z&TestBoxcoxNormplot.test_invalid_inputs  s6    j%"7"7AFj%"7"7"a!QGrH   c                 ^    t        t        j                  g dd      j                  dk(         y Nr   r   )r	   r   r~  r   rn   s    rF   r  zTestBoxcoxNormplot.test_empty  s$    %%b!Q/449:rH   N)rx   ry   rz   r  rj   r   r   rm  r  r  r  r  r{   rH   rF   r{  r{    sD    J- [[O+OD
 E
H;rH   r{  c                       e Zd Zd Zd Zd Z edd      d        Zej                  j                  dg d	      d
        Zy)TestYeojohnson_llfc                     t         j                  j                  ddd      }d}t        j                  ||      }t        j                  |t	        |            }t        ||d       y )Nr   r   r  r  r   rr  rV   )r   r   rC   yeojohnson_llfr  r
   )re   rs   r  r  r  s        rF   r  z"TestYeojohnson_llf.test_array_like  sS    JJNNN?""5!,##E473T.rH   c                 :   t         j                  j                  ddd      }|j                  |      }d}t        j                  ||      }t        j                  ||j                  ||g      j                        }t        ||j                  ||f      d       y r  )r   r   rC   r   r  rj  r  r)   )re   r   rs   r  ru  ru   s         rF   r  z TestYeojohnson_llf.test_2d_input  s|    JJNN%N@JJqM""5!,""5"((Aq6*:*<*<=RXXsCj1>rH   c           	          d}t        t        ||      5  |j                  t        j                  d|j                  g                   sJ 	 d d d        y # 1 sw Y   y xY wr  )r"   r   r  r   r  r   r  s      rF   r  zTestYeojohnson_llf.test_empty  sT    @+7rB 	E88E00BJJrNCDDD	E 	E 	Es   7AAr   z&JIT can't special-case for all >0 / <0r   c                 .   |j                  g d|j                        }t        t        j                  d|      |j                  d|j                        d       t        t        j                  d|       |j                  d|j                        d       t        t        j                  d|      |j                  d	|j                        d       t        t        j                  d
|       |j                  d|j                        d       y )N)r   r   r   g#@r   igq/R(@r  rV   r  r  g]>ӕи(@r   gu(@)r   r   r)   r   r  rw  s      rF   test_gh24172zTestYeojohnson_llf.test_gh24172  s     zz+2::z> 	,,S$7

#5RZZ
Ht	U,,R$7

#5RZZ
Ht	U 	,,S$7

#5RZZ
Ht	U,,R$7

#5RZZ
Ht	UrH   zlmb, ref))rE  g*@)r   g}'@)r1   gA"\,@)r`  gw*@c                    t         j                  j                  d      }|j                  ddd      }t	        j
                  ||j                  |j                                     }t        ||j                  |             y )Nl   3#r   r   r  r   )	r@   r   r   r:  r   r  r   r   r)   )re   r  ru  r   r   rs   ru   s          rF   test_against_referencez)TestYeojohnson_llf.test_against_reference  s`     ii##$56KKABK'""3

188:(>?RZZ_-rH   N)rx   ry   rz   r  r  r  r   r  r   r   r   r  r{   rH   rF   r  r    s[    /?E
 k*RSU TU [[Z89
.9
.rH   r  c                   r   e Zd ZdZd Zej                  j                  dg d      d        Zd Z	d Z
ej                  j                  dej                  ej                  g      d	        Zej                  j                  dej                  ej                   ej"                  ej$                  g      d
        Zd Zej                  j                  d ej*                  d ed      dg       ej*                  d ed       dg       ej*                  d ed       ed       dg      g      d        Zej                  j                  d ej*                  g d       ej*                  g d       ej*                  g d      g      d        Zej                  j                  d ej*                  g d       ej*                  g d      g      ej                  j                  dg d      ej                  j                  dddg      d                      Zej                  j                  d ej*                  g d       ej*                  g d       ej*                  g d      g      ej                  j                  dddg      ej                  j                  dd d!g      d"                      Zy )#TestYeojohnson
yeojohnsonc                    t         j                  j                  d      }t        dd|      dz   }t        j                  |dkD        sJ t        j                  |d      }t        ||       t        j                  |d      }t        |dd|dz   z  z
         t        j                  |d      }t        |t        j                  |dz                t        j                  |d      }t        ||       t        dd|      dz
  }t        j                  |dk        sJ t        j                  |d	      }t        |t        j                  | dz                 t        j                  |d      }t        ||       t        j                  |d
      }t        |d| dz   z  dz
         t        dd|      d	z
  }t        j                  |dk        rJ t        j                  |dk\        rJ |dk\  }t        j                  |d      }t        ||   ||          t        j                  |d      }t        ||   dd||   dz   z  z
         t        j                  |d      }t        ||   t        j                  ||   dz                t        j                  |d      }t        ||   ||          | }t        j                  |d	      }t        ||   t        j                  ||    dz                 t        j                  |d      }t        ||   ||          t        j                  |d
      }t        ||   d||    dz   z  dz
         y )Nr  r   r   r[  r   r   r  r   r   r   )	r@   r   r   rG   r   r   r  r
   rA   )re   r   rs   r  posnegs         rF   r  zTestYeojohnson.test_fixed_lmbda  s   ii##E* abs;a?vva!e}}aq)Aar*AQUO,aq)BFF1q5M*aq)A abs;a?vva!e}}aq)RVVQBF^O,aq)Aaq)A!aL1,- abs;a?66!a%=  66!q&>!!1faq)33(ar*3Q!C&1*%5!56aq)3#
!34aq)33(daq)3"&&!C&1"5!56aq)33(aq)3qvgk!2Q!67rH   r  )r   r?  r   r   c                    d }d}t         j                  j                  d      }|j                  dd|      } |||      }t	        j
                  |      \  }}t        ||d       t        dt         j                  j                  ||z
        |z  d	
       t        d|j                         d
       t        d|j                         d
       y )Nc                 &   t        j                  | j                  | j                        }| dk\  }t	        |      t        j
                  d      k  rt        j                  | |         dz
  ||<   n(t        j                  | |   |z  dz   d|z        dz
  ||<   t	        |dz
        t        j
                  d      kD  r3dt        j                  d|z
   | |    z  dz   dd|z
  z        z
  || <   |S dt        j                  | |           z
  || <   |S )Nr   r   r1   r   r   )r@   r   ru  r   rn  spacingexppower)rs   r  r  r  s       rF   _inverse_transformz:TestYeojohnson.test_lmbda_None.<locals>._inverse_transformJ  s   HHQWWAGG4Eq&C 5zBJJrN*VVAcF^a/c
XXafunq&8!e)DqHc
 519~

2."((QY<!SD'+AA+E+,E	?#< <sd
 L  "&&!SD'"22sdLrH   i N  r  r   r   )r   r   r   rh  r.  r   r]   )r@   r   r   rS  r   r  r
   r   linalgr   rg   ri   )	re   r  r  r=  r   rs   r  r  r   s	            rF   r  zTestYeojohnson.test_lmbda_NoneE  s    
	& 	ii##G,JJ1AYJ8"1e,%%e,
FD1Aryy~~a"f5	A1MArwwy!4Arvvx3rH   c                 Z    t        t        j                  g       j                  dk(         y r  )r	   r   r  ru  rn   s    rF   r  zTestYeojohnson.test_emptyj  s       $**d23rH   c                     t         j                  j                  ddd      }t        j                  |      \  }}t        j                  t	        |            \  }}t        ||d       y )Nr   r   r  r  rr  rV   )r   r   rC   r  r  r
   )re   rs   xt1r   xt2s        rF   r  zTestYeojohnson.test_array_likem  sR    JJNNN?!!!$Q!!$q'*QSu-rH   r   c                     t        j                  d|      }d}t        j                  t        |      5  t        j                  |       d d d        y # 1 sw Y   y xY w)NrM   r   z>Yeo-Johnson transformation is not defined for complex numbers.rF  )r@   rr   r   r   rm   r   r  )re   r   rs   err_msgs       rF   test_input_dtype_complexz'TestYeojohnson.test_input_dtype_complexs  sJ    IIau%]]:W5 	 Q	  	  	 s   AAc                    t        j                  d|      }t        j                  dt         j                        }t        j                  |      \  }}t        j                  |      \  }}t        ||d       t        ||d       y )NrQ   r   r  rV   )r@   rr   r   r   r  r
   )re   r   x_intx_floatxt_int	lmbda_intxt_floatlmbda_floats           rF   test_input_dtype_integerz'TestYeojohnson.test_input_dtype_integer{  sh    		!5)))ARZZ0!,,U3	 % 0 0 9+t4	;T:rH   c                     t        j                  g d      }t        j                  |      \  }}t        j                  |dz         \  }}t        ||d       t        ||d       y )N)(HAG."A    5fAg(@Ag   VAgHzuoAg)\¿+Ar  g(\^@Ag    RAr  g    #Ag\µ=Ag
ףNAr  gp=oHAg    6bAg{csAg)\tmhAg/BAg   '|Ag(\wipAg    ݃hAgQlBAgףp @Ar   rU   rV   )r@   r0  r   r  r   r
   )re   rs   xt_yeolam_yeoxt_boxlam_boxs         rF   test_input_high_variancez'TestYeojohnson.test_input_high_variance  sY    HH " #  **1-,,q1u-T2t4rH   rs   r1   r`  r`  rE  c                     t        j                  t        d      5  t        j                  |      \  }}d d d        y # 1 sw Y   y xY w)Nz Yeo-Johnson input must be finiterF  )r   r   rm   r   r  )re   rs   r  r  s       rF   test_nonfinite_inputz#TestYeojohnson.test_nonfinite_input  s<     ]]:-OP 	2#..q1OFG	2 	2 	2s	   >Ar-  r3  r4  c                    d }t        j                  d      5  t        j                  |      \  }}t        j                  |dz   t        ||            \  }}t        j                  t        j                  |            sJ t        j                  t        j                  |            sJ t        ||d       t        ||d	       d d d        y # 1 sw Y   y xY w)
Nc                 p    t        j                  | | |d      }t        j                         }||_        |S )Ng`sbO>)xtol)r   	fminboundOptimizeResultrs   )r  r  outresults       rF   r  z/TestYeojohnson.test_overflow.<locals>.optimizer  s4    $$S7(G(KC,,.FFHMrH   r  r   r   )r  r^  rU   rV   r%  )	r@   r   r   r  r   r   r7  rh   r
   )re   rs   r  r  r  r  r  s          rF   r:  zTestYeojohnson.test_overflow  s    	 [[W% 	7#..q1OFG#llAG!DFOFG;;rvvf~...;;rvvf~...GW48FF6	7 	7 	7s   B1CCr   )r   rr  g3#I9gu?j/ gnFgZbtirf  r   r   c                    t        j                  d      5  t        j                  ||z  |z        \  }}t        j                  t        j
                  ||z        t        j
                  |      k(        sJ t        j                  |      sJ t        j                  t        j                  |            sJ 	 d d d        y # 1 sw Y   y xY w)Nr  r   )r@   r   r   r  r   rf  r7  rh   )re   rs   r   rf  r  r  s         rF   #test_overflow_underflow_signed_dataz2TestYeojohnson.test_overflow_underflow_signed_data  s     [[W% 	/#..tax%/?@OFG66"''$(+rwwv>???;;w''';;rvvf~...		/ 	/ 	/s   B#CC)r   r   r   r   )r   r   r   r,  )r   r   r   r  Nr  c                    t        j                  d      5  ||z  }|j                  t         j                        }t	        j
                  ||      }t	        j                  ||      }t	        j
                  ||      }t	        j                  ||      }	t        j                  t        j                  |      t        j                  |      k(        sJ t        j                  |      sJ t        j                  t        j                  |            sJ ||k(  sJ t        j                  ||	k(        sJ 	 d d d        y # 1 sw Y   y xY w)Nr  r   r  r  )r@   r   astyper   r   yeojohnson_normmaxr  r   rf  r7  rh   )
re   rs   rf  r  r  r  lam_yeo_int
xt_yeo_intlam_yeo_floatxt_yeo_floats
             rF   test_integer_signed_dataz'TestYeojohnson.test_integer_signed_data  s    [[W% 	61HEll2::.G225FK))%{CJ!44WEJM ++G=IL66"''%.BGGJ,??@@@;;{+++;;rvvj1222-///66*4555	6 	6 	6s   D#EE)rx   ry   rz   r  r  r   r   r   r  r  r  r@   	complex64
complex128r  int8uint8int16int32r  r  r0  rt  r  r:  r  r  r{   rH   rF   r  r    s   I-8^ [[Wn5"4 6"4H4. [[Wr||R]]&CD  E  [[Wrww"((BHH&MN; O;5 [[S#uU|S)*#e}c*+$euU|mS9:# 
2
2 [[S : 	; 	9:MN# 77$ [[S : 	;9:# 
 [[W&LM[[VaW-/ . N/ [[S # 
 [[VaW-[[WtWo66 7 .6rH   r  c                   "    e Zd ZdZd Zd Zd Zy)TestYeojohnsonNormmaxr  c                 0    t        ddd      dz   | _        y rD  r  rn   s    rF   r  z"TestYeojohnsonNormmax.setup_method  rE  rH   c                 ^    t        j                  | j                        }t        |dd       y )Ng?rU   rV   )r   r  rs   r
   rI  s     rF   rN  zTestYeojohnsonNormmax.test_mle  s"    ))$&&1t4rH   c                 j    g d}t        j                  |      }t        j                  |dd      sJ y )N)gffffff@g r1   r`  ffffff?g333333@r  gffffff@g?g@g      @      @g"@r"  g      gzG?r+  r.  )r   r  r@   allclose)re   rs   r  s      rF   test_darwin_examplez)TestYeojohnsonNormmax.test_darwin_example  s/    ((+{{5%d333rH   N)rx   ry   rz   r@  r  rN  r  r{   rH   rF   r  r    s    ,G54rH   r  c            
          e Zd Zej                  j                  dej                  dfej                  dfej                  dfg      d        Z
d Zej                  j                  dej                  ej                  fej                  ej                  fej                  ej                  fg      d        Zej                  j                  d	ej                  ej                  ej                  g      d
        Zej                  j                  dej                  dfej                  dfej                  dfg      d        Zej                  j                  dej                  ej                  ej                  g      d        Zej                  j                  dej                  ej                  ej                  g      d        Zej                  j                  dej                  ej*                  dddfej                  ej*                  dddfej                  ej*                  dddfg      d        Zd Zd Zd Zd Zd Zd Zy)TestCircFuncstest_func,expectedA:wv?gpz?E|2@c                 p    |j                  g d      }t         ||d      |j                  |             y )N)g     0v@r  r`       pv@rX        u@h  r  r   r)   re   	test_funcr}  r   rs   s        rF   test_circfuncszTestCircFuncs.test_circfuncs  s-    
 JJ67	!#.

80DErH   c                    |j                  g d|j                        }|j                  |      }t        j                  |d      }t        ||d       |j                  ||j                  z  dz  d	      }|d
z  }t        j                  |d      }t        ||d       |j                  |d	      }t        j                  |d      }t        ||d       y )N)r   r@  r  r     g     4@g3333333@r   r  r  r  rV   r  r   r  r`  r%  )r   r   rg   r   circmeanr)   rh   picircvarri   circstd)	re   r   rs   M1M2V1V2S1S2s	            rF   test_circfuncs_smallz"TestCircFuncs.test_circfuncs_small  s     JJ7rzzJJWWQZ^^AC(BT*VVAbeeGCKAV. "W]]13'BT*VVA!V$]]13'BT*rH   ztest_func, numpy_funcc                     t        j                  dgdz  dgdz  z         } ||j                  |            }|j                   ||            }t        ||d       y )Ng˛ɦv9?r   guv9?r   g:0yU>r.  )r@   r   r)   )re   r  
numpy_funcr   rs   circstatrS  s          rF   test_circfuncs_closez"TestCircFuncs.test_circfuncs_close  sY     JJ+,r15H4IC4OOPRZZ]+JqM*&t4rH   circfuncc           	      2   |j                  g dg dg dg      } ||d      } ||j                  |d      d      }t        ||j                  |              ||dd      }t        |j                  d	         D cg c]  } |||d d f   d       }}t        ||j                  |              ||dd	      }t        |j                  d         D cg c]  } ||d d |f   d       }}t        ||j                  |             y c c}w c c}w )
N)c  r   r   r  r   ^  )_  rP   r   `  rN   ]  )ie  rN   rQ   if  r   g     @v@r  r  r   r   r  r  r   )r   rf  r)   r]  ru  rj  )re   r  r   rs   ru   ru  rv   s          rF   test_circmean_axisz TestCircFuncs.test_circmean_axis  s    JJ1013 4 qs#rzz!U+#6RZZ_-qs+49!''!*4EFqx!Q$c*FFRXXc]+qs+49!''!*4EFqx!Q$c*FFRXXc]+ G Gs   ?DD @pz?c                 p    |j                  g d      }t         ||d      |j                  |             y )N)r  r   r   r  r   r  r  r  r  r  s        rF   test_circfuncs_array_likez'TestCircFuncs.test_circfuncs_array_like0  s-    
 JJ12	!#.

80DErH   r  c                     |j                   }|j                  g |      }t        t        t        |      5   ||      }d d d        t        |j                  |j                  |             y # 1 sw Y   1xY w)Nr   r   )r   r   r"   r   r   r*   r   )re   r  r   r   rs   ru   s         rF   r  zTestCircFuncs.test_empty8  sh     

JJrJ'+3HRP 	A,C	 	RZZeZ<=	 	s   	A//A8c           	          |j                  ddddddt        j                  g      }t         ||d      |j                  |j                               y )	Nr  r   r   r  r   r  r  r  )r   r@   r   r*   )re   r  r   rs   s       rF   test_nan_propagatez TestCircFuncs.test_nan_propagateB  sC     JJQ3C89	!#.

2660BCrH   g5:v@gfPb?r  gee?gOQOv?g#q@gauy+@c                 :   |j                  g dddddddt        j                  gdt        j                  t        j                  t        j                  t        j                  t        j                  t        j                  gg      }|j                         D ]  } ||d	|
      }|&t	        ||j                  |j                               6t        |d   |j                  ||                t	        |dd  |j                  |dd  |j                                y )N)r  r   r   r  r   r  r   r  rP   r   r  rN   r  r   r  r  r   )r   r@   r   keysr*   r)   	full_like)re   r  r}  r   rs   r  r  s          rF   test_nan_propagate_arrayz&TestCircFuncs.test_nan_propagate_arrayH  s     JJ4aCC8BFFBFFBFFBFFBFFBFFKM N MMO 	HDACd3C|RZZ%78A

8D>(BCABc!"grvv)FG	HrH   c                 v    |j                  d      d   }|}t        j                  |      }t        ||d       y )Nr1   r{   r  rV   )r   r   r  r)   )re   r   rs   r  r  s        rF   test_circmean_scalarz"TestCircFuncs.test_circmean_scalar]  s3    JJrN2^^ABT*rH   c                    t        j                  |j                  ddd      |j                  |j                         }t	        ||j                  |j                               t	        | |j                  |j                               y )Nr   r   r?  )r   r  rr   r  r+   r   )re   r   r3  s      rF   test_circmean_rangez!TestCircFuncs.test_circmean_rangec  s]     NN299Q3/?q"**RUU+,r2::bee,-rH   c                 b   |j                  ddg|j                        }t        t        j                  |d      |j                  d             t        t        j
                  |d      |j                  d             t        t        j                  |d      |j                  d             y )	N   r   r   r  r  g     @e@gLwqA?g)#p_4@)r   r  r)   r   r  r  r  )re   r   rs   s      rF   test_circfuncs_uint8z"TestCircFuncs.test_circfuncs_uint8j  sx     JJRyJ1qs3RZZ5FGac2BJJ4OPac2BJJ{4KLrH   c                     t        j                  |j                  dg            }t        j                  d|      dk(  sJ y rH  )r   r  r   mathcopysign)re   r   r   s      rF   test_circstd_zerozTestCircFuncs.test_circstd_zeror  s3    MM"**aS/*}}S!$+++rH   c                    |j                  ddd      }|j                  |j                  |      |k(        r#|j                  |j                  |      dk(        sJ |d|j                  z  z  d|j                  z  z  |k7  }|j                  |      sJ ||   }t        j                  |d d d f   d      }|j                  ||k(        sJ y )NrZ   gA:9>r   r1   r   r   r  )r&  r   sincosr  anyr   r  )re   r   rs   r3  r   s        rF   !test_circmean_accuracy_tiny_inputz/TestCircFuncs.test_circmean_accuracy_tiny_inputw  s     KKdB'vvbffQi1n%"&&c1A*BBB!bee)_BEE	*q0vvayyaDNN1QW:A.vva1f~~rH   c                 X   |j                  d|j                        }t        j                  |j	                  |      |j                  |            }|j                  ||j                        }t        j                  ||j                  |j                         }t        ||dd       y )Ng ؅W4vCr   )r  r  r  r   )rW   r/  )
r   r   r  atan2r  r  r   r  r  r)   )re   r   rs   r   r}  actuals         rF   !test_circmean_accuracy_huge_inputz/TestCircFuncs.test_circmean_accuracy_huge_input  sz     JJt2::J.JJrvvay"&&),::arzz:2BEE6:u3?rH   N)rx   ry   rz   r   r   r   r   r  r  r  r  r  r@   rg   rh   ri   r  r  r  r  r  r   r  r
  r  r  r  r  r  r{   rH   rF   r  r    sf    [[1$~~{;$}}.BC$}}k:<=F	=F+( [[4$~~rww7$}}bff5$}}bff5785	85 [[Z%..*/--*/--*9 :,:,  [[1$~~{;$}}.BC$}}k:<=F	=F [[[5>>5==+0==+: ;>;> [[[5>>5==+0==+: ;D;D [[1$~~&(ff*MO$}}&(ff#7#7 9:  %}}&(ff
KMNO
HO
H+.M,
*@rH   r  c                      e Zd Zej                  j                  dej                  d ej                  g d       ej                  ddg      dfej                  d ej                  g d      ej                  d	z  d
z  z   ej                  ddg      dfej                  d ej                  g d       ej                  ddg      dfg      d        Zej                  j                  dej                  dfej                  dfej                  dfg      d        Zej                  j                  dej                  ej                  ej                  g      d        Zej                  j                  dej                  ej                  ej                  g      d        Zej                  j                  dddd
dddej"                  g ej                  ddd
dddej"                  gddd d!ej"                  d"d#gg      g      ej                  j                  dej                  ej                  ej                  g      d$               Zej                  j                  dddd
dddej"                  g ej                  ddd
dddej"                  gddd d!ej"                  d"d#gg      g      ej                  j                  dej                  ej                  ej                  g      d%               Zy&)'TestCircFuncsNanPolicyr  grQvv@)g     v@g      @r  g     8v@rk  g     u@g5@v?g2>Bjv@r  gG2?)gaF+?z?r  gA ~@碲?r   r  r   r  gX҄?gJPm$@)gj  @竃 ?r!  g)h;@{ ?r"  gun2@g+fa @c                    t        j                  ddddddt         j                  gddd	d
ddt         j                  gt         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  gg      }|j                         D ]  }| ||dd|      }t	        |||   d       #t        j                  t        t              5   ||dd|      }t	        |d d ||   d       t        t        j                  |d                d d d         y # 1 sw Y   xY w)Nr  r   r   r  r   r  r  rP   r   r  rN   r  r  r  )r  r  r  r  rV   rF  r   )r@   r0  r   r  r
   r   rP  r   r   r	   r  )re   r  r}  rs   r  r  s         rF   test_nan_omit_arrayz*TestCircFuncsNanPolicy.test_nan_omit_array  s   ( HHsAq#r37Aq#q#rvv6vvrvvrvvrvvrvvrvvrvvNP Q MMO 	/D|TJXd^$?\\"4<MN /#ACFNC#CHhtn4HBHHSW-./ /	/
/ /s   >AEE	r  r  c                 `    ddddddt         j                  g}t         ||dd	      |d
       y )Nr  r   r   r  r   r  r  r  r  r  r  rV   )r@   r   r
   )re   r  r}  rs   s       rF   test_nan_omitz$TestCircFuncsNanPolicy.test_nan_omit  s4    
 !QRbff-	!#&A t	-rH   r  c           	      R   t         j                  t         j                  t         j                  t         j                  t         j                  g}t        j                  t        t
              5  t        t        j                   ||d                   d d d        y # 1 sw Y   y xY w)NrF  r  r  )r@   r   r   rP  r   r   r	   r  re   r  rs   s      rF   test_nan_omit_allz(TestCircFuncsNanPolicy.test_nan_omit_all  se     VVRVVRVVRVVRVV4\\,4EF 	?BHHYqV<=>	? 	? 	?s   -'BB&c           	      b   t        j                  t        t              5  t	        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  gt        j                  t        j                  t        j                  t        j                  t        j                  gg      } ||dd      }t        t	        j                  |      j                                t        t        |      dk(         d d d        y # 1 sw Y   y xY w)NrF  r  r   )r  r  r   )r   rP  r   r   r@   r0  r   r	   r  r   r  )re   r  rs   r  s       rF   test_nan_omit_all_axisz-TestCircFuncsNanPolicy.test_nan_omit_all_axis  s     \\,4EF 	#266266266266266B66266266266266BD EAA&q9CBHHSM%%'(CHM"	# 	# 	#s   C<D%%D.rs   r  r   r  r   r  r  rP   r   r  rN   r  c                 ,    t        t        ||dd       y )Nr  r  r&  rl   rm   r)  s      rF   test_nan_raisez%TestCircFuncsNanPolicy.test_nan_raise  s     	j)QSWMrH   c                 ,    t        t        ||dd       y )Nr  foobarr&  r.  r)  s      rF   test_bad_nan_policyz*TestCircFuncsNanPolicy.test_bad_nan_policy  s     	j)QSXNrH   N)rx   ry   rz   r   r   r   r   r  r@   r0  r  r  r  r$  r'  r*  r,  r   r/  r2  r{   rH   rF   r  r    sC    [[1$~~&7#+288 -4 $5#+288Z,F#G IJ
  %}}&:#+288 -N $./1uuSy1n$= $,288-A-@-B $C	 DE  %}}&7#+288 -9 $: $,288Z,D#E	 GHIJ&/'J&/ [[1$~~{;$}}.BC$}}k:<=-	=-
 [[[5>>5==+0==+: ;?;?
 [[[5>>5==+0==+: ;#;# [[S"Aq#r3?&bhhaCS"&&(I),aCC(H(J KLM [[[5>>5==+0==+: ;N;	MN [[S"Aq#r3?&bhhaCS"&&(I),aCC(H(J KLM [[[5>>5==+0==+: ;O;	MOrH   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                  j!                  dddg      d        Zy)TestMedianTestc                 F    t        t        t        j                  g d       y Nr   rl   rm   r   median_testrn   s    rF   test_bad_n_samplesz!TestMedianTest.test_bad_n_samples  s    j%"3"3Y?rH   c                 H    t        t        t        j                  g g d       y r6  r7  rn   s    rF   r0  z TestMedianTest.test_empty_sample  s    j%"3"3RCrH   c                 V    t        t        t        j                  g dg dddgd       y )N)r   r   r   r   )r   r   r   r   r   r   r  r7  rn   s    rF   test_empty_when_ties_ignoredz+TestMedianTest.test_empty_when_ties_ignored  s$    
 	j%"3"3"I1vH	FrH   c                     t        t        t        j                  g dg d       t        t        t        j                  g dg dd       y )N)r   r   r   abover<  r7  rn   s    rF   test_empty_contingency_rowz)TestMedianTest.test_empty_contingency_row  s3    
 	j%"3"3Y	J 	j%"3"3Y	"	$rH   c                 P    t        t        t        j                  g dddgd       y )Nr   r   r   re  r<  r7  rn   s    rF   test_bad_tieszTestMedianTest.test_bad_ties	  s    j%"3"3YA 	"rH   c                 P    t        t        t        j                  g dddgd       y )Nr   r   r   r1  r  r7  rn   s    rF   r2  z"TestMedianTest.test_bad_nan_policy  s    j%"3"3YA!)	+rH   c                 P    t        t        t        j                  g dddgd       y )Nr   r   r   re  )re  )rl   	TypeErrorr   r8  rn   s    rF   test_bad_keywordzTestMedianTest.test_bad_keyword  s    i!2!2I1v	!rH   c                     g d}g d}t        j                  ||      \  }}}}t        |d       t        |ddgddgg       t        |d       t        |d       y )Nr   r`  r   r   r   )r   r8  r   r   )re   rs   r   r1  r  medtbls          rF   test_simplezTestMedianTest.test_simple  s`    !--a3ac 	S#3!Q!Q 01 	T1QrH   c                    g d}ddg}g d}t        j                  |||      \  }}}}t        |d       t        |g dg dg       t        j                  |||d      \  }}}}t        |d       t        |g dg d	g       t        j                  |||d
      \  }}}}t        |d       t        |g dg d	g       y )Nr^  r   rM   r5  )r   r   r   )r   r   r   r   r<  )r   r   r   r?  )r   r   r   )r   r8  r   )re   rs   r   zr1  r  r3  rI  s           rF   test_ties_optionsz TestMedianTest.test_ties_options$  s    F  ++Aq!4aCQS9i01++Aq!(CaCQS9i01++Aq!'BaCQS9i01rH   c                    ddt         j                  g}g d}t        j                  ||d      }t        j                  ||d      \  }}}}t	        |t         j                  t         j                  t         j                  d f       t        |d       t        |d       t	        |d	       t	        |t        j                  d
dgddgg             t        t        t        j                  ||d       y )Nr   r   r^  r  r  r  g     ?gإvao?g      @r   r  )	r@   r   r   r8  r   r
   r0  rl   rm   )re   rs   r   mt1r
  r  r3  r  s           rF   test_nan_policy_optionsz&TestMedianTest.test_nan_policy_options8  s    266N1=&&q!?
1aS266266266489././QQ1a&1a&!123j%"3"3QgNrH   c                    g d}g d}t        j                  ||      \  }}}}t        |d       t        |ddgddgg       t        j                  |      \  }}}	}
t	        ||       t	        ||       t        j                  ||d      \  }}}}t        |d       t        |ddgddgg       t        j                  |d      \  }}}	}
t	        ||       t	        ||       t        j                  ||d	      \  }}}}t        |d       t        |ddgddgg       t        j                  |d	      \  }}}	}
t	        ||       t	        ||       y )
Nr   )r   r   rM   rQ   r   r   r   r   )lambda_Fr  )r   r8  r   chi2_contingencyr
   )re   rs   r   r1  r  r3  rI  exp_statexp_pdofes              rF   rj   zTestMedianTest.test_basicE  sN    ++Aq1aCQSAq6Aq6*+"'"8"8"=%ah'5!++Aq!<aCQSAq6Aq6*+"'"8"8a"H%ah'5!++AqUCaCQSAq6Aq6*+"'"8"8"O%ah'5!rH   r  FTc                     g d}g d}t        j                  |||      }t        |j                  |j                  |j
                  |j                  f|       y )Nr   r  )r   r8  r   rb   r   r  table)re   r  rs   r   ru   s        rF   test_resultzTestMedianTest.test_resultd  sC    1<cmmSZZSYYGMrH   N)rx   ry   rz   r9  r0  r=  r@  rB  r2  rF  rJ  rM  rP  rj   r   r   r   rZ  r{   rH   rF   r4  r4    sh    @DF
$"+!2(O"> [[\E4=9N :NrH   r4  c                   4   e Zd Zd Zej
                  j                  dej                   dz  ej                  dz  gdfddej                  z  gdfg      d        Z	d Z
d	 Z ed
d      d        Zd Zej
                  j                  dddg      d        Zy)TestDirectionalStatsc                    t        j                  t        j                  g d             }t        j                  t        j                  g d             }t        j                  t        j                  |      t        j                  |      z  t        j                  |      t        j
                  |      z  t        j
                  |      fd      }|j                  |j                               }|j                  |j                               }|j                  |j                               }t        j                  |      }|j                  }|j                  g d      }t        ||d       y )N)	g33333su@g      O@g33333sB@r;  r  g@g333333I@gYv@r  )	gfffffP@g,Q@gfffffQ@gfffffT@g     S@g     @R@g33333SQ@gffffffM@g33333I@r   r  )gHP?g&S:g[<r%  r.  )r@   deg2radr0  rj  r  r  r   r   r   directional_statsmean_directionr)   )re   r   declinclrf   dirstatsdirectional_meanreference_means           rF   "test_directional_stats_correctnessz7TestDirectionalStats.test_directional_stats_correctnessp  s    

288 %< = > >

288 %< = > >xxt4t4'  
 zz$++-(zz$++-(zz$++-(**40#22$>?(.tDrH   zangles, refr   r1   r   r   c                 
   |j                  |      }|j                  |      }|j                  |j                  |      |j                  |      gd      }dt	        j
                  |      j                  z
  }t        ||       y )Nr   r  )r   rj  r  r  r   r_  mean_resultant_lengthr)   )re   anglesru  r   rf   ru   s         rF   'test_directional_stats_2d_special_casesz<TestDirectionalStats.test_directional_stats_2d_special_cases  sk    
 F#jjoxx8qxA%))$/EEES!rH   c                 @   t         j                  j                  d      }|j                  d|j                  z  |j                  d      z        }|j                  |j                  |      |j                  |      fd      }t        j                  |      }|j                  }|j                  |d   |d         }|d|j                  z  z  }t        j                  |      }t        ||       d|j                  z
  }	t        j                  |      }
t        |	|
       y )Nl	   }7Qh0P4u&4M r   )r   r   r  r   r1   )r@   r   r   r   r  rj  r  r  r   r_  r`  r  r  r)   rh  r  )re   r   r   testdatatestdata_vectorrc  rd  directional_mean_angler  directional_varcircular_vars              rF   test_directional_stats_2dz.TestDirectionalStats.test_directional_stats_2d  s     ii##$FG::a"%%i#**X*>>?((BFF8$4$&FF8$4$6() # + **?;#22!#*:1*=?OPQ?R!S!71ruu9!E>>(+.9x===}}X.6rH   c                    |j                  g dg dg      }|j                  |j                  |d            }|j                  g dg dgg dg dgg      }t        j                  |d      }t	        |j
                  |       y )N+Pz?r   r   )rt        r   )r   r   r   r   )r1   r   r   r   r  )r   tiler   r_  r)   r`  )re   r   rf   
full_arrayr}  rc  s         rF    test_directional_mean_higher_dimz5TestDirectionalStats.test_directional_mean_higher_dim  s     zz/02 3ZZl ;<
:: , . , , ./ 0 **:A>//:rH   Tzchecking array-like inputr|  c                 ^   g dg dg}|j                  ||j                        }t        j                  |      }t        j                  |      }t	        |j
                  |j                  |j
                               t	        |j                  |j                  |j                               y )Nrs  )rt  ru  r   r   )r   r   r   r_  r)   r`  rh  )re   r   rf   
data_arrayru  ru   s         rF   )test_directional_stats_list_ndarray_inputz>TestDirectionalStats.test_directional_stats_list_ndarray_input  s     %&:;ZZBJJZ7
%%d+%%j1**

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

3#<#<=	?rH   c                     |j                  d      }d}t        j                  t        t	        j
                  |            5  t        j                  |       d d d        y # 1 sw Y   y xY w)N)r   zIsamples must at least be two-dimensional. Instead samples has shape: (5,)rF  )r   r   r   rm   reescaper   r_  )re   r   rf   rH  s       rF   test_directional_stats_1d_errorz4TestDirectionalStats.test_directional_stats_1d_error  sP    wwu~6]]:RYYw-?@ 	*##D)	* 	* 	*s   A!!A*r   r   r   c                    t        j                  g dg dg|      }t        j                  |j	                  |      d      }|t         j
                  j                  |dd      z  }t        j                  |d      }t        |j                  |j	                  |j                               t        |j                  |j	                  |j                               y )	Nrs  )g+Pz?rE  r   r   T)	normalizer   )r  keepdimsF)
r@   r0  r   r_  r   r  r   r)   r`  rh  )re   r   r   rf   ru   normalized_dataru  s          rF    test_directional_stats_normalizez5TestDirectionalStats.test_directional_stats_normalize  s    
 xx--/6;=%%bjj&6$G29= "0 "? ?%%oG**

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

3#<#<=	?rH   N)rx   ry   rz   rf  r   r   r   r@   r  rj  rq  rx  r   r{  r  r  r{   rH   rF   r\  r\  m  s    E, [[]55&(BEE!G	b!
QY- "	"7&; d+FG	? H	?* [[Wy)&<=? >?rH   r\  c                       e Zd Z ed      d        Zd Zd Zej                  j                  dg ddfg d	d
fg      d        Z
d Zej                  j                  dg d      d        Zd Zy)TestFDRControlT)
eager_onlyc                 "   d}t        j                  t        |      5  t        j                  |j                  g d             d d d        t        j                  t        |      5  t        j                  |j                  g d             d d d        t        j                  t        |      5  t        j                  |j                  dd|j                  g             d d d        y # 1 sw Y   xY w# 1 sw Y   kxY w# 1 sw Y   y xY w)Nz-All values in `ps` must lie between 0. and 1.rF  )r   r   r  )r   r  r   r   r  )r   r   rm   r   false_discovery_controlr   r   r  s      rF   test_input_validation_psz'TestFDRControl.test_input_validation_ps  s    A]]:W5 	F))"**^*DE	F]]:W5 	E))"**]*CD	E]]:W5 	J))"**c35G*HI	J 	J		F 	F	E 	E	J 	Js#   'C-('C922D-C69DDc                    d}t        j                  t        |      5  t        j                  |j                  ddg             d d d        d}t        j                  t        |      5  t        j                  |j                  g d      d       d d d        d	}t        j                  t        |      5  t        j                  |j                  g d      d
       d d d        t        j                  t        |      5  t        j                  |j                  g d      d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   nxY w# 1 sw Y   y xY w)Nz$`ps` must contain only real numbers.rF  y      ?      ?y       @       @zUnrecognized `method` 'YAK')r   r  r   YAKrj  z#`axis` must be an integer or `None`r  r  r!  )r   r   rm   r   r  r   r  s      rF   test_input_validationz$TestFDRControl.test_input_validation  s   8]]:W5 	D))"**dD\*BC	D 0]]:W5 	U))"**_*EeT	U 8]]:W5 	Q))"**_*ECP	Q]]:W5 	T))"**_*EFS	T 	T	D 	D	U 	U	Q 	Q	T 	Ts/   'D6*)E8)E)E6D?EEE#c                     |j                  g d      }t        j                  |      }|j                  g d      }t        ||d       y )N)rz  g;On?g~jt?gI+?g&1?gB`"۹?gv?S㥛?);On?r  I+?r  gˡE?gHzG?r  r  r+  r.  )r   r   r  r)   )re   r   psru   ru  s        rF   test_against_TileStatsz%TestFDRControl.test_against_TileStats  s<    ZZPQ++B/jjQRSt,rH   r|  )
go?gQ]
Y?ghD@?u?D?gn@t?g=T	[ے?g=!s?r  r  g	L?bh)
glߢ?gq?g.0?R]D?g)<Gh?g$͂?g2-p?r  r  g]:?byc                 D   |\  }}t         j                  j                  d      }t        j                  j                  ddd|      j                         }|d   |d<   t        j                  |j                  |      |      }t        ||j                  |      d	
       y )N   <U) r+  r   r   r[  rP   r   rj  rU   r.  )
r@   r   r   r   
loguniformrC   r   r  r   r)   )re   r|  r   ru  rk  r   r  ru   s           rF   r  zTestFDRControl.test_against_R  s     Vii##$78!!$"3!GNNP11++BJJrN6JRZZ_48rH   c                 ,   t         j                  j                  d      }t        j                  j                  ddd|      }|j                  |      }t        j                  |d       }t        j                  t        |            }t        ||       y Nr  r+  r   )r   r   r   r[  r  )
r@   r   r   r   r  rC   r   r  r#   r*   )re   r   r   r  ru   ru  s         rF   test_axis_NonezTestFDRControl.test_axis_None
  ss    ii##$78!!$)#!NZZ^++BT:++HRL9S!rH   r  )r   r   r   c                 T   t         j                  j                  d      }t        j                  j                  ddd|      }t        j                  |j                  |      |      }t        j                  t        j                  ||      }t        ||j                  |             y r  )
r@   r   r   r   r  rC   r  r   apply_along_axisr)   )re   r  r   r   r  ru   ru  s          rF   r  zTestFDRControl.test_axis  s|    ii##$78!!$)#!N++BJJrNF!!%"?"?rJRZZ_-rH   c                    |j                  dg      }t        t        j                  |      |       |j                  g       }t        t        j                  |      |       t	        |      r t        t        j                  d      d       y y )Nr!  )r   r*   r   r  r$   )re   r   r  s      rF   r  zTestFDRControl.test_edge_cases  sj    ZZ55b92>ZZ^55b92>B<E99$?F rH   N)rx   ry   rz   r   r  r  r  r   r   r   r  r  r  r  r{   rH   rF   r  r    s    &J 'JT- [[V 89=? 89=?@A	9A	9" [[VZ0. 1.GrH   r  znot used in this test yetr   c                       e Zd Zej                  j                  dej                  i fej                  ddifej                  ddifej                  i fg      d        Z
y)TestCommonAxisr|  r   r   r   c                    t        |      r,|d   t        j                  k(  rt        j                  d       |\  }}t
        j                  j                  d      }|j                  |j                  d            } ||fi |ddi}|j                  t        |j                  d         D cg c]  } ||d d |f   fi | c}      }	t        ||	        ||fi |ddi}|j                  t        |j                  d         D cg c]  } |||d d f   fi | c}      }	t        ||	        ||fi |dd i} ||j                  |d      fi |}	t        ||	       y c c}w c c}w )	Nr   z3copysign doesn't accept scalar array-api-compat#271r   l   @ms|Y)rM   rP   r  r   r  )r    r   	variationr   r  r@   r   r   r   rj  r]  ru  r)   rf  )
re   r|  r   r  rE   r   rs   ru   rv   ru  s
             rF   r  zTestCommonAxis.test_axis-  sK   
 B<DGu6LL UVVii##N3JJszz&)*!&v&A&hhaggaj8IJ1AadG.v.JKS!!&v&A&hhaggaj8IJ1AadG.v.JKS!!)v)D)"**Q&1&1S! K Ks   .E'
E,N)rx   ry   rz   r   r   r   r   semrk  r  r  r{   rH   rF   r  r  %  sb     [[Vuyy"o',{{S!H&=',{{S!H&=',&;&= >"	>"rH   r  )r  r}  r*  r   	functoolsr   numpyr@   numpy.randomr   numpy.testingr   r   r   r   r	   r
   r   r   r   rl   scipyr   r   r   scipy.stats._morestatsr   r   r   r   common_testsr   
_hypotestsr   r   $scipy.stats._ansari_swilk_statisticsr   scipy.stats._binomtestr   scipy.stats._distr_paramsr   scipy.stats._axis_nan_policyr   r   r   r   scipy._external.array_api_extra	_externalarray_api_extrar   scipy._lib._array_apir    r!   r"   r#   r$   r%   r&   r'   r(   scipy._lib._array_api_no_0dr)   r*   r+   lazy_xp_modulesr   r   dict
matplotlibrcParamsmatplotlib.pyplotpyplotr  r  	Exceptionr  r  r  r  r  r  r  r  r  r  rG   rJ   r}   r   r   r'  r   rc  r  r3  rH  rD  r  r  r  r  r  r  ru  rp  r  r  r  r  r  r  r  rk  re  r  r  r  r  r  r  r
  r  r  r>  rB  r{  r  r  r  r  r  r  r  r  r  r4  r_  r\  r  r  uses_xp_capabilitiesr  r{   rH   rF   <module>r     s  
  	 
    $C C C  * * *; ; - B 6 ? .T T . -: : :  ';;// >%*J	"#O LKKKKKKKKL
4/ />? ?B 5==!n; n; "n;b EFM> M> GM>`O( O(d GHL9 L9 IL9^60 60r 5<< D2 D2 !D2N 5>>"&* &* #&*R 5<< >4 >4 !>4B 5??#[/ [/ $[/| 5==!I8 I8 "I8X20 5::u6 u6 u6p]5 ]5@ 5>>"B8 B8 #B8PP
 5;;3. 3.  3.l 5>>"&. &. #&.R39 39l"= "=J 5##$@+ @+ %@+J0f#0 #0L[- [-|- -$]- ]-@ ;  ;F 5''(8. 8. )8.vE6] E6P4K 4& 5>>5==%--@e@ e@ Ae@PQO QOhN ND 5**+e? e? ,e?P 5001KG KG 2KG\ !!%0K!L" " M"ew  Os   
P' 'P21P2