o
    i                    @   sV  d dl Zd dlZd dlmZmZmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ ddlmZ d dlmZ d d	lmZ d
d Zejdg dejdg ddd Zejdg ddd Zejdg dejdg dejdddgdd Zejdg ddd ZddddZejde dd  Zd!d"d"dZd#d$ Zd%d& Z ejde d'd( Z!d)d*d+Z"ejde" d,d- Z#ejdd.d/gejdd d0gd1d2 Z$ej%d3ejdg dejdd d0gd4d5 Z&ejdg dd6d7 Z'ejdg dd8d9 Z(d:d; Z)ejd<d d=gd>d? Z*ejdg dd@dA Z+dBdC Z,ejdDdEdFgdGdH Z-ejdIg dJejdg ddKdL Z.dMdN Z/ejdg ddOdP Z0ejdg ddQdR Z1ejj2ej3dSdTdU Z4G dVdW dWZ5G dXdY dYZ6dZd[ Z7ejd\g d]d^d_ Z8dS )`    N)	bootstrapmonte_carlo_testpermutation_test)assert_allcloseassert_equalsuppress_warnings)stats)special   )_resampling)rng_integers)rootc                  C   s<  d} t jt| d tdtj W d    n1 sw   Y  d} t jt| d tt tj W d    n1 s:w   Y  d} t jt| d tg ddgftj W d    n1 s^w   Y  d} t jt| d tg dg dftjd	d
 W d    n1 sw   Y  d} t jt| d tdtjdd W d    n1 sw   Y  d} t jt| d tg dftjdd W d    n1 sw   Y  d} t jt| d tg dftjdd W d    n1 sw   Y  d} t jt| d tg dftjdd W d    n	1 sw   Y  d} t jt| d tg dftjdd W d    n	1 s8w   Y  d} t jt| d tg dftjdd W d    n	1 s]w   Y  d} t jt| d tg dftjdd W d    n	1 sw   Y  d} t jt| d tg dftjdd W d    n	1 sw   Y  d} t jt| d tg dftjdd W d    n	1 sw   Y  d} t jt| d tg dftjd d W d    n	1 sw   Y  d!} t jt| d tg dftjd"d# W d    d S 1 sw   Y  d S )$Nz%`data` must be a sequence of samples.match   z(`data` must contain at least one sample.z>each sample in `data` must contain two or more observations...r   r
      z=When `paired is True`, all samples must have the same length r   r
   r      T)paired0`vectorized` must be `True`, `False`, or `None`.ekki
vectorized`axis` must be an integer.      ?axisz!could not convert string to floatni)confidence_levelz-`n_resamples` must be a non-negative integer.n_resamples     D@+`batch` must be a positive integer or None.batchz`method` must be inmethodz?`bootstrap_result` must have attribute `bootstrap_distribution'
   )bootstrap_resultz5Either `bootstrap_result.bootstrap_distribution.size`r   "'herring' cannot be used to seed aherringrandom_state)pytestraises
ValueErrorr   npmeantuple)message r6   p/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/scipy/stats/tests/test_resampling.pytest_bootstrap_iv   sx   $r8   r(   )basic
percentileBCar   r   r   r
   c              	   C   s   t jd t jddd}t|ft jd | d|dd}t|ft jd| d|dd}t|jj|jj t|jj	|jj	 t|j
|j
 d S )Nr   r)         d   )r&   r(   r.   r   r"   )r2   randomseedrandr   r3   r   confidence_intervallowhighstandard_error)r(   r   xres1res2r6   r6   r7   test_bootstrap_batchK   s   rJ   c                    s   t jd d}t j|t j|ddd d fdd	}t t}t|f|dd}tf d	dd
}t|j|j t|j	|j	 d S )Nr   r?   c                 S   s   | | d j |dS )Nr
   r   r3   rG   yr   r6   r6   r7   my_statisticd   s   z+test_bootstrap_paired.<locals>.my_statisticc                    s   |  }|  } ||}|S Nr6   )ir   abresrO   rG   rN   r6   r7   my_paired_statisticg   s   
z2test_bootstrap_paired.<locals>.my_paired_statisticr-   T)r   r.   rK   )
r2   r@   rA   rB   arangelenr   r   rC   rF   )r(   nrV   rQ   rH   rI   r6   rU   r7   test_bootstrap_paired\   s   
r[   r   TFc              	   C   sR  t jd d
dd}d}|| }t j|}t j|}t j|}t|||f||| dddd}	|	jj|	jjd ks=J g d	}
||
|< t |	|
|}t |	|
|}t |	|
|}t|||f||| d|dd}t
|jj|	jj t
|jj|	jj t
|j|	j t|}|| t|jjj| t|jjj| t|jj| d S )Nr   rK   c                 S   s$   | j |d|j |d |j |d S Nr   rL   )rG   rN   zr   r6   r6   r7   rO      s   $z/test_bootstrap_vectorized.<locals>.my_statistic)r)   r=   r>   r?   )r   r(   r.   r   r"   )r?   )r   r   r   rW   )r2   r@   rA   rB   r   bootstrap_distributionshaperF   broadcast_toreshaper   rC   rD   rE   listpopr   )r(   r   r   rO   r_   Z	n_samplesrG   rN   r]   rH   ra   rI   Zresult_shaper6   r6   r7   test_bootstrap_vectorizedv   sB   


rd   c           	      C   s4  t jd}tjjddd|d}d}tjt|d t |t	|d}|j
|d	}| }t|ft jd| |d
}tdi |d|i}t|j|dd t|j|dd |td|d tdi ||dd}t|jj||dd |td|d tdi ||dd}t|jj|d| dd d S )Nl   )ICbX     r
     )locscalesizer.   ffffff?r   )Zdfrg   rh   )
confidence)data	statisticr"   r(   r.   r   gMb@?rtolga2U0*3?atolr   r"   r*   lessr   alternativegreaterr6   )r2   r@   default_rngr   normrvstrY   r3   Zsemintervalstddictr   r   rC   rF   updaterE   ZppfrD   )	r(   rngrl   alphadistZexpected_intervalZexpected_seconfigrT   r6   r6   r7   test_bootstrap_against_theory   s$   $ r   )gQ7@gHzS@)g\(<@g=
ףpU@)gHz'@@gQV@zmethod, expectedc                 C   s8   t g d}t|ft jd| dd}t|j|dd d S )N)r)   r>         )@r   g+@            "   2   Q   Y   y         i@B r   )r"   r(   r.   g{Gzt?rn   )r2   arrayr   r3   r   rC   )r(   expectedrG   rT   r6   r6   r7   test_bootstrap_against_R   s
   r   i  i  c                  C   s   g d} g d}dd }t jd}tj| |f|dd|d}tj| |f|d	d|d}tj| |f|d
d|d}t |j}t |j}t |j}	d}
||
 t|
 }||
 t|
 }|	|
 t|
 }|dk shJ |dksnJ t|dk svJ d S )N)gbF?gp?g|Hܿgxy[e}u׿g*g_?ggi6g2?)gF?gK?g&F}/?g?g(iC?g}$ץ?g hu?gfj}!?c                 S   $   t j| |d}t j||d}|| S r\   )r   skew)rG   rN   r   s1s2r6   r6   r7   rm         z1test_multisample_BCa_against_R.<locals>.statisticl   tgy4r9   r?   )r(   r&   r.   r:   Zbcag1*g333333ÿg333333?Q?)r2   r@   rw   r   r   r3   rC   abs)rG   rN   rm   r   Z	res_basicZres_percentZres_bcaZ	mid_basicZmid_percentZmid_bcaZ	mid_wbootZ
diff_basicZdiff_percentZdiff_bcar6   r6   r7   test_multisample_BCa_against_R   s.   r   c                  C   st   t g d} t g d}d
dd}|| g}t||}d}d}|j}d}t||||||\}	}	}
t|
d	 d S )N)	r)         (   .   r   4   h      )   r   &   ^   c         r   c                 S      t j| |dt j||d S r\   r2   r3   )r]   rN   r   r6   r6   r7   rm   #     z:test_BCa_acceleration_against_reference.<locals>.statisticrK   rj   r?   ge{?r   )r2   r   r   r   r^   r   Z_bca_intervalr   )rN   r]   rm   rl   rT   r   r   Ztheta_hat_br&   _Za_hatr6   r6   r7   'test_BCa_acceleration_against_reference  s   

r   c              	   C   s   t jd d}d}d}tjddd}| }d}|j||fd	}t|ft j||d
| dd}	|	j}
t 	|
d |k ||
d k @ }||ksFJ t
|||j}|dksTJ d S )Nr   r?     ?re   r   rg   rh   i  ri   r   rK   rm   r   r"   r&   r(   r   皙?r2   r@   rA   r   rx   r3   ry   r   rC   sum	binomtestpvalue)r(   r   rZ   r"   r   r   	stat_truen_replicationsrl   rT   cici_contains_truer   r6   r6   r7   #test_bootstrap_against_itself_1samp2  s2   r   i|  iz  )r9   r:   c              	   C   s   t jd d}d}d}d}ddd}tjdd	d
}tjdd	d
}| |  }	d}
|j|
|fd}|j|
|fd}t||f|||d| dd}|j}t 	|d |	k |	|d	 k @ }||ks`J t
||
|j}|dksnJ d S )Nr   r?   x   r   r   rK   c                 S   r   r\   r   )data1data2r   Zmean1Zmean2r6   r6   r7   my_statl  r   z4test_bootstrap_against_itself_2samp.<locals>.my_statr   r   r     r   r   r   rW   r   )r(   r   n1n2r"   r   r   Zdist1Zdist2r   r   r   r   rT   r   r   r   r6   r6   r7   #test_bootstrap_against_itself_2samp]  s:   
r   r9   r:   r   c              	      s   dddd  fdd}t jd t jdd}t jdd}t jdd}t|||f d	|d
| dd}t|||f|d|d
| dd}t|j|j t|j|j d S )Nr   r   c                       t  fdd|D S )Nc                 3       | ]}|  V  qd S rP   rL   .0sampler   r6   r7   	<genexpr>      zEtest_bootstrap_vectorized_3samp.<locals>.statistic.<locals>.<genexpr>r   r   rl   r6   r   r7   rm        z2test_bootstrap_vectorized_3samp.<locals>.statisticc                     &   | D ]	}|j dksJ q | ddiS Nr   r   r   ndimrl   r   rm   r6   r7   statistic_1d     z5test_bootstrap_vectorized_3samp.<locals>.statistic_1dr   re   Tr?   )r   r   r"   r(   r.   Fr2   r@   rA   rB   r   r   rC   rF   )r(   r   r   rG   rN   r]   rH   rI   r6   r   r7   test_bootstrap_vectorized_3samp  s   r   z'Failure is not concerning; see gh-14107c              
      s   ddd  fdd}t jd t jdd}t|f d|d	d | dd
}t|f|d|d	d| dd
}t|j|j t|j|j d S )Nr   c                 S   s   | j |dS r\   rL   rG   r   r6   r6   r7   rm     s   z2test_bootstrap_vectorized_1samp.<locals>.statisticc                    s   | j dksJ  | ddS )Nr   r   r   r   rG   r   r6   r7   r     s   z5test_bootstrap_vectorized_1samp.<locals>.statistic_1dr   re   Tr?   )r   r   r"   r&   r(   r.   Fr)   r   r   )r(   r   r   rG   rH   rI   r6   r   r7   test_bootstrap_vectorized_1samp  s   
r   c              	   C   s   ddg }| dkrMt jdd5 d}tjtj|d t|gt j| d}t|j	t j
t j
f W d    n1 s8w   Y  W d    n1 sGw   Y  nt|gt j| d}t|j	d	 t|jd
 d S )N#        @r;   ignore)invalidz0The BCa confidence interval cannot be calculatedr   r'   )r   r   r   )r2   Zerrstater/   Zwarnsr   ZDegenerateDataWarningr   r3   r   rC   nanrF   )r(   rl   msgrT   r6   r6   r7   test_bootstrap_degenerate  s   
r   c                 C   s   t jd}tjddd}|jd|d}|f}t|tj| dt jdd}t|tj| dt jdd	d
}t|j	|j	 t|j
|j
 t|j
t jsKJ d S )Nl   E<1

 r
   r   r   r?   ri   r.   i[%  r(   r"   r.   F)r(   r"   r.   r   )r2   r@   rw   r   rx   ry   r   r   r   rC   rF   
isinstanceZfloat64)r(   r   r   rl   rT   refr6   r6   r7   test_bootstrap_gh15678  s   
r   c                  C   s   t jd} tjddd}|jd| d}t |}|f}t|t jddt jdd	}||jj	ks2J tt 
| t jddt jdd	}t|jj	 |jj t|jj |jj	 d S )
Nl   n!|'x`5 r
   r   r   r?   r   r;   if  r   )r2   r@   rw   r   rx   ry   minr   rC   rD   r   maxr   rE   )r   r   rl   Ztrue_minrT   rI   r6   r6   r7   test_bootstrap_min  s$   




r   additional_resamplesr   c              	   C   s   t jd}|jdd}d}| }||  }t jd}tj|ft j||ddd}tj|ft j||d	d
|d}t jd}tj|ft j||d	d
d}t|j|jdd t|j|jdd d S )Nl    ]4M r?   r   r   l   mdpi4 rj   r:   )r"   r.   r   r(   r   r;   )r"   r.   r   r(   r*   +=rn   )	r2   r@   rw   r   r   r3   r   rF   rC   )r   r   rG   r   r   Zn3rT   r   r6   r6   r7   test_re_bootstrap  s*   

r   c                 C   s.  t jd}tjddd}|jd|df}t|t j|dd}tjdi |d	d
i}|	td|d tjdi |ddd}tjdi |ddd}t
|jj|jj t
|jj|jj t |jjshJ t |jjsqJ tjtdd tjdi |ddi W d    d S 1 sw   Y  d S )Nl   @Qixt r
   r   r   r?   r   rK   )rl   rm   r.   r   r   r   r   rr   rj   rs   rt   rv   z`alternative` must be one ofr   ru   z	ekki-ekkir6   )r2   r@   rw   r   rx   ry   r}   r|   r   r~   r   rC   rE   rD   ZisneginfZisposinfr/   r0   r1   )r(   r   r   rl   r   rz   lgr6   r6   r7   test_bootstrap_alternative  s   "r   c                  C   s   d} t jd t jj|  }tt|}t| d D ]}|d|d d f }t j||dd}t 	||s6J qt j
ttj|dddd}t 	||sMJ d S )	Nr   r   re      r   rK   .r   r
   r%   )r2   r@   rA   rB   nextr   Z_jackknife_resamplerangedeletearray_equalZconcatenaterb   )r_   rG   rN   rQ   slcr   y2r6   r6   r7   test_jackknife_resample#  s   r   rng_nameRandomStaterw   c                 C   s   t tj| d }|d u rt|  d |d}|d}d}d}tjd tjj| }tj|||d}t	|D ]$}|d|d d f }	t
|d|d |d }
|d|
f }t|	|s[J q7d S )Nz not available.r   r)   r   r-   .rK   )getattrr2   r@   r/   skiprA   rB   r   Z_bootstrap_resampler   r   r   )r   r   rng1rng2r"   r_   rG   rN   rQ   r   jsr   r6   r6   r7   test_bootstrap_resample6  s    r  score)r         ?r   c                 C   sV   d}t jd t jj| }tj|| dd}dd }||| ddd }t||d d S )	N)r)         r   rK   r   c                 S   s   t tj|| |S rP   )r2   Zapply_along_axisr   Zpercentileofscore)rR   r  r   r6   r6   r7   vectorized_posX     z0test_percentile_of_score.<locals>.vectorized_posr?   V瞯<)r2   r@   rA   rB   r   Z_percentile_of_scorer   )r  r   r_   rG   pr  p2r6   r6   r7   test_percentile_of_scoreP  s   r  c                  C   s   d} t jd t jj|  }t jj| d d  d }t||}t| d D ]}|| }t j|| || dd}t||d q&d S )N)r)   r  r   rK   r?   r   r	  )	r2   r@   rA   rB   r   Z_percentile_along_axisr   r:   r   )r_   rG   qrN   rQ   rT   r   r6   r6   r7   test_percentile_along_axis`  s   r  c                    s   dd   fdd}t |}tjd tjddd}tjdd	d}tjd	dd} |||| d
}||||| d
}t|| d S )Nc                    r   )Nc                 3   r   rP   rL   r   r   r6   r7   r   w  r   z>test_vectorize_statistic.<locals>.statistic.<locals>.<genexpr>r   r   r6   r   r7   rm   u  r   z+test_vectorize_statistic.<locals>.statisticc                     r   r   r   r   r   r6   r7   r   y  r   z.test_vectorize_statistic.<locals>.statistic_1dr   r   re   r   r   r   )r   _vectorize_statisticr2   r@   rA   rB   r   )r   r   Z
statistic2rG   rN   r]   rH   rI   r6   r   r7   test_vectorize_statisticq  s   
r  c                 C   s   t jd}d}tjj|d|d}dd }t|f|| ddd	d
}t j|jj	j
|k |jjj
|k@ dd}t |dks=J t |dksFJ |jj	jdksOJ |jjjdksXJ |jjdks`J |jjdkshJ d S )Nl   s: )r   r  )r?   r?   r   c                 S   s"   t t | |t j| |ddgS )Nr   )Zddof)r2   Zasarrayr3   r|   )rl   r   r6   r6   r7   rm     s   z/test_vector_valued_statistic.<locals>.statisticrK   '     )r(   r   r"   r&   r   r   Z   r?   r
   r?   )r
   r?   r  )r2   r@   rw   r   rx   ry   r   r   rC   rD   TrE   allr_   rF   r^   )r(   r   paramsr   rm   rT   countsr6   r6   r7   test_vector_valued_statistic  s$   
r  zignore::RuntimeWarningc                     s   t jd} dd   fddfdd}g dg d	g d
g dg dg}t |j}t||| dd}t|| dd}t|jjd |jjdd t|jj	d |jj	dd d S )Nl   \Qc                 S   sZ   |  |}| |}| |d  ||d    |}d| | ||| || d   S )N).Nr
   )r3   var)rG   rN   r   ZxmZymZcovr6   r6   r7   concordance  s   

(z9test_vector_valued_statistic_gh17715.<locals>.concordancec                    s"   | | }| | }t  |||S rP   )r2   Z
nan_to_num)tptnfpfnr   actualr   )r  r6   r7   rm     s   z7test_vector_valued_statistic_gh17715.<locals>.statisticc                    s    g || R  t jdf S )N.)r2   Znewaxisr   argsr   r6   r7   statistic_extradim  r   z@test_vector_valued_statistic_gh17715.<locals>.statistic_extradim)r   r   r   r
   )r
   r   r
   r   )r   r   r   r   )r   r   r   r   )r      r   r   T)r.   r   r   r	  rp   )
r2   r@   rw   r   r  r   r   rC   rD   rE   )r   r#  rl   rT   r   r6   )r  rm   r7   $test_vector_valued_statistic_gh17715  s&   
r%  c                
   @   s4  e Zd ZdZdd Zdd Zdd Zej	de
d	d
dd Zej	ddej	deddddd Zej	dejejfej	ddej	deddddd Zej	dedd
dd Zej	deddddd Zej	dd ej	d!e
dd"d# Zd$d% Zd&d' Zd(d) Zd*S )+TestMonteCarloHypothesisTestg?c                    s    fddS )Nc                     s   | d i|S )Nr.   r6   )r"  kwdsrsrvs_inr6   r7   <lambda>  s    z2TestMonteCarloHypothesisTest.rvs.<locals>.<lambda>r6   )selfr*  r)  r6   r(  r7   ry        z TestMonteCarloHypothesisTest.rvsc                 C   s  dd }d}t dt df}tjjtjjf}tjt|d t||dd d	d
 W d    n1 s4w   Y  d}tjt|d tg dtjj|dd
 W d    n1 sYw   Y  d}tjt|d tg dtjj|dd W d    n1 s~w   Y  d}tjt	|d tg dd | W d    n1 sw   Y  tjt	|d tddgddggdd d g| W d    n1 sw   Y  d}tjt|d tg dgdd dd g| W d    n1 sw   Y  d}tjt	|d tg dtjjd  W d    n	1 sw   Y  d}tjt|d tg dtjj|dd W d    n	1 s8w   Y  d}tjt|d tg dtjj|dd W d    n	1 s^w   Y  d}tjt|d tg dtjj|dd W d    n	1 sw   Y  d}tjt|d tg dtjj|dd W d    n	1 sw   Y  d}tjt|d tg dtjj|d d! W d    d S 1 sw   Y  d S )"Nc                 S   s   t | jS rP   )r   skewnormrm   r   r6   r6   r7   stat     z@TestMonteCarloHypothesisTest.test_input_validation.<locals>.statz/Array shapes are incompatible for broadcasting.r
   re   )r   re   r   c                 S   s   dS Nr   r6   rG   rN   r6   r6   r7   r+        zDTestMonteCarloHypothesisTest.test_input_validation.<locals>.<lambda>rK   r   r   r   r   r   r   z0`rvs` must be callable or sequence of callables.r   r
   r   r   c                 S      | S rP   r6   r   r6   r6   r7   r+    r4  zIf `rvs` is a sequence...c                 S   r5  rP   r6   r   r6   r6   r7   r+    r4  z`statistic` must be callable.)`n_resamples` must be a positive integer.r    r!   r#   r$   r%   `alternative` must be in...r   ru   )
r2   zerosr   rx   ry   r/   r0   r1   r   	TypeError)r,  r/  r5   rl   ry   r6   r6   r7   test_input_validation  sp   " $z2TestMonteCarloHypothesisTest.test_input_validationc                    s6  t jd}|d} fdd d _d _| ddd}| tjjt jd	|d
< tdddi|}t	 jd t	 jd | tjjt jd	|d
< d _tdddi|}t	 jd t	 jd | tjjt jd	|d
< d _tdi |}t	 jd t	 jd t	|j
|j
 t	|j
|j
 d S )Nl   )p r)   c                    sB   | j dkrdnt| }t| j _  jd7  _tj| |djS Nr   r   )r   rY   r   
batch_sizecounterr   skewtestrm   )rG   r   r=  r   r6   r7   rm     s   z:TestMonteCarloHypothesisTest.test_batch.<locals>.statisticr   r   T)r   rm   r"   r   i"ry   r&   r     r   r   r
   r6   )r2   r@   rw   r>  r=  ry   r   rx   r   r   r   )r,  r   rG   r'  rH   rI   res3r6   r   r7   
test_batch  s0   
z'TestMonteCarloHypothesisTest.test_batchr   r   c           	      C   s   t jd}| tjj|}g d}d||< ||d}tj||d}dd }t|||dd	|d
}t|j	|j	 t|j
|j
| jd d S )Nit$ r
   r   r   r?   r   r   c                 S      t j| |djS r\   )r   r?  rm   r   r6   r6   r7   rm   E     z9TestMonteCarloHypothesisTest.test_axis.<locals>.statisticTi N  )r   r"   r   rp   )r2   r@   rw   ry   r   rx   r?  r   r   rm   r   rq   )	r,  r   r   norm_rvsri   rG   r   rm   rT   r6   r6   r7   	test_axis9  s   

z&TestMonteCarloHypothesisTest.test_axisru   rs   rv   rR   g      r  re   c           	         s   t jd}tjj|d|d}tj|tjj d} fdd}| tjj|}t	|||dd d	}t
|j|j  d
krHt
|j|j| jd d S  dkrZt
d|j |j| jd d S d S )Ni)r  rR   ri   r.   r8  c                    s   t j| t jjd djS Nasymp)moderu   )r   ks_1samprx   cdfrm   r   r8  r6   r7   statistic1dW  s
   zGTestMonteCarloHypothesisTest.test_against_ks_1samp.<locals>.statistic1dr   Fr"   r   ru   rv   rp   rs   r   )r2   r@   rw   r   r.  ry   rN  rx   rO  r   r   rm   r   rq   )	r,  ru   rR   r   rG   r   rP  rG  rT   r6   r8  r7   test_against_ks_1sampN  s   z2TestMonteCarloHypothesisTest.test_against_ks_1samphypotestrs   rv   	two-sidedr   r
   c           
         s~   t jd}tjj|d|d} ||d} fdd}| tjj|}t|||d|d}	t|	j	|j	 t|	j
|j
| jd	 d S )
Ni	   rJ  r8  c                    s    | |dj S r\   r   r   rS  r6   r7   rm   p  r-  zLTestMonteCarloHypothesisTest.test_against_normality_tests.<locals>.statisticTr   ru   rp   )r2   r@   rw   r   r.  ry   rx   r   r   rm   r   rq   )
r,  rS  ru   rR   r   rG   r   rm   rG  rT   r6   rW  r7   test_against_normality_testsf  s   
z9TestMonteCarloHypothesisTest.test_against_normality_testsc                 C   sx   t jd}tjj|d|d}t|}dd }| tjj|}t|||ddd}t	|j
|j
 t	|j|j| jd	 d S )
Ni!M rV  rJ  c                 S   rE  r\   )r   
normaltestrm   r   r6   r6   r7   rm     rF  zGTestMonteCarloHypothesisTest.test_against_normaltest.<locals>.statisticTrv   rX  rp   )r2   r@   rw   r   r.  ry   rZ  rx   r   r   rm   r   rq   )r,  rR   r   rG   r   rm   rG  rT   r6   r6   r7   test_against_normaltestz  s   

z4TestMonteCarloHypothesisTest.test_against_normaltestc                 C   s   t jd}tjj|d|d}t|tjj}dd }| tjj|}t	|||dddd	}t
|j|j t
|j|j| jd
 d S )Nir  rJ  c                 S   s   t | t jjjS rP   )r   cramervonmisesrx   rO  rm   r   r6   r6   r7   rP    r  zMTestMonteCarloHypothesisTest.test_against_cramervonmises.<locals>.statistic1dr   Frv   rQ  rp   )r2   r@   rw   r   r.  ry   r\  rx   rO  r   r   rm   r   rq   )r,  rR   r   rG   r   rP  rG  rT   r6   r6   r7   test_against_cramervonmises  s   z8TestMonteCarloHypothesisTest.test_against_cramervonmises	dist_name)rx   ZlogisticrQ   c              	      s&   fdd}t  }|t t|dd}W d    n1 s w   Y  |js*J |jd }tjd}t	j
j|d|d}t	| }	|	j}
|	j d } fdd	}| tt	 j|}t  }|t t|||d
ddd}W d    n1 s{w   Y  t|j|
 t|j|d| j d d S )Nc                    s:   t jd}tjj| d|d}t| }|j|j  S )Nxr?   r   )	r2   r@   rw   r   tukeylambdary   andersonrm   Zcritical_values)rR   r   rG   r   r^  rQ   r6   r7   fun  s   z?TestMonteCarloHypothesisTest.test_against_anderson.<locals>.funr   )Zx0r_  r?   r   c                       t |  jS rP   )r   ra  rm   r   )r^  r6   r7   rP    r-  zGTestMonteCarloHypothesisTest.test_against_anderson.<locals>.statistic1dr   Frv   rQ  r
   rp   )r   filterRuntimeWarningr   successrG   r2   r@   rw   r   r`  ry   ra  rm   Zsignificance_levelr   r   r   r   rq   )r,  r^  rQ   rc  supZsolrR   r   rG   r   expected_stat
expected_prP  Zdist_rvsrT   r6   rb  r7   test_against_anderson  s.   



z2TestMonteCarloHypothesisTest.test_against_andersonc                 C   s>   t jd}t d}t||jt jddd}|jdksJ d S )Nl   IL~QH(s r?   Trs   rX  g-C6?)r2   r@   rw   r9  r   r3   r   )r,  r   rG   rT   r6   r6   r7   test_p_never_zero  s   
z.TestMonteCarloHypothesisTest.test_p_never_zeroc                 C   s   t jd}|jdd|jddf}|j|jf}dd }tj|||dd}tj|d	 |d
 gdd}t|j|j t|j	|j	dd d S )N   F:fmPr1  r      c                 S   s   t | ||jS rP   r   	ttest_indrm   rM   r6   r6   r7   rm     rF  zFTestMonteCarloHypothesisTest.test_against_ttest_ind.<locals>.statisticrK   r   r   r   g{Gz?rn   )
r2   r@   rw   normalr   r   rp  r   rm   r   r,  r   rl   ry   rm   rT   r   r6   r6   r7   test_against_ttest_ind  s   z3TestMonteCarloHypothesisTest.test_against_ttest_indc                 C   s   t jd}|jdd|jdd|jdd|jddf}|j|j|j|jf}dd }tj|||d	d
d}tj|dd	i}t|j|j t|j	|j	dd d S )Nrm  r  r   )r
   e   )r
   f   )r
   g   c                 W   s   t j|d| ijS )Nr   )r   f_onewayrm   r!  r6   r6   r7   rm     r  zETestMonteCarloHypothesisTest.test_against_f_oneway.<locals>.statisticrK   rv   r   ru   r   {Gz?rp   )
r2   r@   rw   rq  r   r   rw  r   rm   r   rr  r6   r6   r7   test_against_f_oneway  s   z2TestMonteCarloHypothesisTest.test_against_f_onewayN)__name__
__module____qualname__rq   ry   r;  rB  r/   markparametrizer   rH  r2   ZlinspacerR  r   r?  ZkurtosistestrY  rX   r[  r]  rk  rl  rs  rz  r6   r6   r6   r7   r&    s0    :%


*	r&  c                   @   s  e Zd ZdZdd Zdd Zejde	j
je	j
jgejdg dd	d
 Zejde	j
je	j
jgejddedd fddeddfgdd Zdd Zej dd Zdd Zejddejddejddd d! Zejdd"d#d$ Zejdd"d%d& Zejdd"d'd( Zd)d* Zej ejdd+d,d- Zejdd"d.d/ Zejdd"d0d1 Zd2d3 Zejdd"d4d5 Z ej ejdd6d7d8 Z!g d9g d:d;d<d=d>d?d@dAZ"g dBg dCdDdEdFdGdHdIdAZ#ej ejdJe"e#fdKdL Z$ejdMdNdOdP Z%ejdQdRdSdT Z&e'dUdg fe'ddg dg dVgfe'dWdg dg dVddXggfgZ(ejdYe(dZd[ Z)d\d] Z*d^S )_TestPermutationTestr   c                 C   s   t jd| _d S )Nl   F )r2   r@   rw   r   )r,  r6   r6   r7   setup_method  r  z TestPermutationTest.setup_methodc                 C   s~  dd }d}t jt|d tg ddgf| W d    n1 s"w   Y  d}t jt|d td| W d    n1 s@w   Y  t jt|d td| W d    n1 s\w   Y  d	}t jt|d tg dg df|d
d W d    n1 sw   Y  d}t jt|d tg dg df|dd W d    n1 sw   Y  d}t jt|d tg dg df|d
d W d    n1 sw   Y  d}t jt|d tg dg df|dd W d    n1 sw   Y  d}t jt|d tg dg df|dd W d    n	1 sw   Y  d}t jt|d tg dg df|dd W d    n	1 sBw   Y  d}t jt|d tg dg df|dd W d    n	1 siw   Y  d}t jt|d tg dg df|dd W d    n	1 sw   Y  d}t jt|d tg dg df|dd W d    d S 1 sw   Y  d S )Nc                 S   s   t | |f|jS rP   ro  rM   r6   r6   r7   r/    r  z:TestPermutationTest.test_permutation_test_iv.<locals>.statz2each sample in `data` must contain two or more ...r   r   r   z6`data` must be a tuple containing at least two samples)r   r   r   r   z `permutation_type` must be in...r   )permutation_typer   r   r6  r    r!   r#   r$   r%   r7  r8  r+   r,   r-   )r/   r0   r1   r   r:  )r,  r/  r5   r6   r6   r7   test_permutation_test_iv  sh   $z,TestPermutationTest.test_permutation_test_ivr.   r  )pairingssamplesindependentc           	         s  | j d}| j d} fdd d _d _d|dd}tj||f fd|dd	|}t jd
 t jd d _tj||f fd|dd	|}t jd t jd d _tj||f fd|dd	|}t jd t jd t|j|j t|j|j d S )Nr)   c                    sN   | j dkrdnt| }t| j _  jd7  _tj| |dtj||d S r<  )r   rY   r   r=  r>  r2   r3   )rG   rN   r   r=  r   r6   r7   rm   <  s   z1TestPermutationTest.test_batch.<locals>.statisticr   r   T)r"   r  r   r   )r&   r.   r@  r   r   r
   )r   r@   r>  r=  r   r   r   r   )	r,  r  r.   rG   rN   r'  rH   rI   rA  r6   r   r7   rB  2  sB   zTestPermutationTest.test_batchzpermutation_type, exact_sizer  r   r
   )r  r$  r  r   c           	      C   s   | j d}| j d}dd }|dd}tj||f|fd|dd|}t|jjd tj||f|fi |}t|jj| d S )Nr   c                 S   r   r\   r   rM   r6   r6   r7   rm   f  r   z8TestPermutationTest.test_permutations.<locals>.statisticT)r  r   r   )r"   r.   )r   r@   r   r   r   null_distributionri   )	r,  r  Z
exact_sizer.   rG   rN   rm   r'  rT   r6   r6   r7   test_permutationsZ  s   	z%TestPermutationTest.test_permutationsc                 C   s   d\}}d\}}}t || ||ksJ tjj|d}tjj|d}||f}dd }	ddd||d	}
t||	fd
|i|
}t||	fd
tji|
}|j|jksRJ t	|j
|j
dd d S )N)rs   r   )r$  	   i]  r   c                 S   r   r\   r   rM   r6   r6   r7   rm     r   zNTestPermutationTest.test_randomized_test_against_exact_both.<locals>.statisticTr  r?   r   r  r&   ru   r.   r"   ry  rp   )r	   binomr   rx   ry   r   r2   infrm   r   r   r,  ru   r   nxnypermutationsrG   rN   rl   rm   r'  rT   rI   r6   r6   r7   'test_randomized_test_against_exact_bothz  s    
z;TestPermutationTest.test_randomized_test_against_exact_bothc                 C   s   d\}}d\}}}d| |ksJ t jj|d}t jj|d}||f}dd }	ddd	||d
}
t||	fd|i|
}t||	fdtji|
}|j|jksNJ t|j|jdd d S )N)rv   N)r   r   i }  r
   r   c                 S   s   t j| | |dS r\   r   rM   r6   r6   r7   rm     r  zQTestPermutationTest.test_randomized_test_against_exact_samples.<locals>.statisticTr  r?   r  r"   ry  rp   )	r   rx   ry   r   r2   r  rm   r   r   r  r6   r6   r7   *test_randomized_test_against_exact_samples  s    
z>TestPermutationTest.test_randomized_test_against_exact_samplesc                    s   d| j }}d\}}}t||ksJ tjj|d}tjj|d |g} fdd}t|}	ddd||d	}
t||	fd
|i|
}t||	fd
t	j
i|
}|j|jksWJ t|j|jdd d S )NrU  )r$  r$  i@  r   c                    s   t |  d S Nr   r   Zpearsonrr   rN   r6   r7   rP    rF  zTTestPermutationTest.test_randomized_test_against_exact_pairings.<locals>.statistic1dTr  r?   r  r"   ry  rp   )r   r	   	factorialr   rx   ry   r   r  r   r2   r  rm   r   r   )r,  ru   r   r  r  r  rG   rl   rP  rm   r'  rT   rI   r6   r  r7   +test_randomized_test_against_exact_pairings  s"   

z?TestPermutationTest.test_randomized_test_against_exact_pairingsru   rI  r  )r  g    eAr   r<   c              	   C   s   t dddd}t t dd d d d f d|}t jd}tj||||||d}dd	 }t jd}	t||f|d
||||	d}
t	|j
|
j
| jd t	|j|
j| jd d S )N<   r   r   re   r   l   ;WNa )r  r   r.   ru   c                 S      t j| ||djS r\   ro  rM   r6   r6   r7   rm     r  zETestPermutationTest.test_against_permutation_ttest.<locals>.statisticTr   r"   ru   r   r.   rn   )r2   rX   ra   Zmoveaxisr@   rw   r   rp  r   r   rm   ro   r   )r,  ru   r  r   rG   rN   r   rH   rm   r   rI   r6   r6   r7   test_against_permutation_ttest  s   
"z2TestPermutationTest.test_against_permutation_ttestrT  c                    s   | j jddd}| j jdddd}tj|| dd} fd	d
}t||f|tjd| j d}t|j|j| j	d t|j
|j
| j	d d S )Nr   r   ri   rh   re   r   )ri   rg   rh   exact)ru   rM  c                    s   t j| |d djS rK  )r   ks_2samprm   r3  r8  r6   r7   rP    s
   
z>TestPermutationTest.test_against_ks_2samp.<locals>.statistic1drv   r"   ru   r.   rn   )r   rq  r   r  r   r2   r  r   rm   ro   r   )r,  ru   rG   rN   r   rP  rT   r6   r8  r7   test_against_ks_2samp  s   z)TestPermutationTest.test_against_ks_2sampc           	      C   s   | j jddd}| j jddd}dddd	}|| }tj|||d
}dd }t||f|tj|| j d}t|j|j| j	d t|j
|j
| j	d d S )Nr   r   r  re   r   rv   rs   rU  rT  r8  c                 S      t | |jS rP   r   ansarirm   r3  r6   r6   r7   rP    r-  z<TestPermutationTest.test_against_ansari.<locals>.statistic1dr  rn   )r   rq  r   r  r   r2   r  r   rm   ro   r   )	r,  ru   rG   rN   Zalternative_correspondenceZalternative_scipyr   rP  rT   r6   r6   r7   test_against_ansari  s   z'TestPermutationTest.test_against_ansaric              	   C   s   t jjdd| jd}t jjdd| jd}t j||d|d}dd }t||f|d	tj|d| jd
}t|j	|j	| j
d t|j|j| j
d d S )N)r   re   r
   r   ri   rg   r.   皙?r   rx  c                 S   r  r\   )r   mannwhitneyurm   rM   r6   r6   r7   rm     r  z@TestPermutationTest.test_against_mannwhitneyu.<locals>.statisticTr  rn   )r   uniformry   r   r  r   r2   r  r   rm   ro   r   )r,  ru   rG   rN   r   rm   rT   r6   r6   r7   test_against_mannwhitneyu  s   z-TestPermutationTest.test_against_mannwhitneyuc                 C   s   t jjdd| jd}t jjddd| jd}t j||dd}d	d
 }t||f|tjd| jd}t|j	|j	| j
d t|j|j| j
d d S )Nr   r   )ri   rh   r.   re   r   )ri   rg   rh   r.   r  r'   c                 S      t j| |ddjS N
asymptoticr'   )r   cramervonmises_2samprm   r3  r6   r6   r7   rP  *  
   z9TestPermutationTest.test_against_cvm.<locals>.statistic1drv   r  rn   )r   rx   ry   r   r  r   r2   r  r   rm   ro   r   )r,  rG   rN   r   rP  rT   r6   r6   r7   test_against_cvm#  s   z$TestPermutationTest.test_against_cvm)rK   r
   c                 C   s.  t jd}|jdd}|jdd}|jdd}|||f}dd }dd	 }t|}	t|}
t |d
}t |d}t |d}|	||||d}|
||||d}d|dd| jd}t||fdt ji|}t||fddi|}t	|j
|| jd t	|j
|j
| jd t	|j|dd t	|j|jdd d S )Nl   Y}y!dh r   r   )r   r   r
   )r
   r   r   c                  W      t j|  jS rP   )r   kruskalrm   rl   r6   r6   r7   rP  G  r0  zITestPermutationTest.test_vectorized_nsamp_ptype_both.<locals>.statistic1dc                  W   r  rP   )r   r  r   r  r6   r6   r7   pvalue1dJ  r0  zFTestPermutationTest.test_vectorized_nsamp_ptype_both.<locals>.pvalue1d)r
   r   r   )r
   r   r
   rD  r   Frv   r  r   r   ru   r  r.   r"   r   rn   gQ?rp   r   )r2   r@   rw   r   r  r`   r   r   r  r   rm   ro   r   )r,  r   r   rG   rN   r]   rl   rP  r  rm   r   Zx2r   Zz2expected_statisticexpected_pvaluer'  rT   rI   r6   r6   r7    test_vectorized_nsamp_ptype_both5  s.   


z4TestPermutationTest.test_vectorized_nsamp_ptype_bothc                    s  t jjdd| jd}t jjdd| jd}dd }dd } fd	d
}t|}|||dd}|d }	|d }
dd d| jtjd}t|| f|fi |}t||f|fi |}t	|j
|j
| jd  dkrot	|j
|	| jd t	|j|
| jd t	|j|j| jd d S )N)r   r   r
   r   r  r  c                 S   s   t j| ddjS Nrs   r8  r   wilcoxonrm   )r]   r6   r6   r7   statistic_1samp_1dm  s   zETestPermutationTest.test_against_wilcoxon.<locals>.statistic_1samp_1dc                 S   r  r  r  r3  r6   r6   r7   statistic_2samp_1dq  r  zETestPermutationTest.test_against_wilcoxon.<locals>.statistic_2samp_1dc                    s   t j| | dS )Nr8  )r   r  r3  r8  r6   r7   test_1dt  rF  z:TestPermutationTest.test_against_wilcoxon.<locals>.test_1dr   r   Fr  )r   r   ru   r  r.   r"   rn   rU  )r   r  ry   r   r   r  r2   r  r   r   rm   ro   r   )r,  ru   rG   rN   r  r  r  testr   ri  rj  r'  rH   rI   r6   r8  r7   test_against_wilcoxone  s(   
z)TestPermutationTest.test_against_wilcoxonc           	   	   C   s   | j jdddd}d||dk< ddd}||dd}}}tj||||d	}tj|f|d
dtj| j |d}t|j|j| j	d d S )Nr   r
   r)   r   rK   c                 S   s   t j| dk|dS )Nr   r   r2   r   r   r6   r6   r7   rm     r  z=TestPermutationTest.test_against_binomtest.<locals>.statisticr  r8  Tr  )r   r  r"   r.   ru   rn   r   )
r   Zintegersr   r   r   r2   r  r   r   ro   )	r,  ru   rG   rm   krZ   r
  r   rT   r6   r6   r7   test_against_binomtest  s   
z*TestPermutationTest.test_against_binomtestc                    s   | j jdd}|| j jdd  tj| dd} fdd}t|f|dtj| j d}t|j|j| j	d	 t|j
|j
| j	d	 d S )
Nr   r   r  r'   c                    s   t j|  ddjS r  )r   
kendalltaurm   r   r  r6   r7   rP    r  z@TestPermutationTest.test_against_kendalltau.<locals>.statistic1dr  )r  r"   r.   rn   )r   rq  r   r  r   r2   r  r   rm   ro   r   )r,  rG   r   rP  rT   r6   r  r7   test_against_kendalltau  s   
z+TestPermutationTest.test_against_kendalltauc                    s    fdd}t jd}|ddkt}|dd|  dkt tj| d }t|f|dt j	||d	}tj
||d
}t|j|d  d S )Nc                    s   t | dk dk@ S r2  r  r   r  r6   r7   rm     s   z@TestPermutationTest.test_against_fisher_exact.<locals>.statisticl   	(yM4 rn  g333333?g      ?r   r  )r  r"   ru   r.   r8  )r2   r@   rw   Zastypefloatr   ZcontingencyZcrosstabr   r  Zfisher_exactr   r   )r,  ru   rm   r   rG   tabrT   rI   r6   r  r7   test_against_fisher_exact  s   
z-TestPermutationTest.test_against_fisher_exact)r   r   c                 C   s>  | j jdd}| j jdd}| j jdd}tj||d}tj||d}tj||d}|d }|||f}dd }d	d
 }t|}t|}	|tj| d|i}
|	tj| d|i}d|dddd}t||fdtj	i|}t||fddi|}t
|j|
| jd t
|j|j| jd t
|j|| jd t
|j|jdd d S )N)r
   r   r   r   )r   r   r   )r
   r   r   r   r   c                  W      t j| dddjS )NTr  Zrankedr(   )r   page_trend_testrm   r  r6   r6   r7   rP    r  zLTestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.statistic1dc                  W   r  )NTr  r  )r   r  r   r  r6   r6   r7   r    r  zITestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.pvalue1dr   Frv   r  r  r"   rf   rn   r   rp   )r   r@   r   Zrankdatar   r  r2   Zbroadcast_arraysr   r  r   rm   ro   r   )r,  r   rG   rN   r]   rl   rP  r  rm   r   r  r  r'  rT   rI   r6   r6   r7   #test_vectorized_nsamp_ptype_samples  s.   	


z7TestPermutationTest.test_vectorized_nsamp_ptype_samplesr   )r   r
   g      @g?g?g&_?g      @gd~$I"@glu?)rG   rN   expected_lessexpected_2sidedexpected_Pr_gte_S_meanr  expected_avgexpected_std)o   k   r?   r   ru  j   m   l   )	r  r  r  b   i   rv  n   r  r   gd?gd?gYo5 ?g     @@@g{C@gDmFA@casec                 C   sT  |d }|d }|d }|d }|d }|d }|d }|d }	d	d
 }
t j $}|td t||f|
t jdd}t||f|
t jdd}W d   n1 sPw   Y  t|j|| j	d t|j
|dd t|j
|dd t|j |dd t|j |	dd |j}|j }t|j}t t |j| t || k| }t|| dS )a  
        Results above from SAS PROC NPAR1WAY, e.g.

        DATA myData;
        INPUT X Y;
        CARDS;
        1 1
        1 2
        1 3
        1 4
        2 1.5
        2 2
        2 2.5
        ods graphics on;
        proc npar1way AB data=myData;
            class X;
            EXACT;
        run;
        ods graphics off;

        Note: SAS provides Pr >= |S-Mean|, which is different from our
        definition of a two-sided p-value.

        rG   rN   r  r  r  r  r  r  c                 S   r  rP   r  r3  r6   r6   r7   rP  '  r-  z7TestPermutationTest.test_with_ties.<locals>.statistic1dz$Ties preclude use of exact statisticrs   )r"   ru   rU  Nrn   g|=rp   gư>)r2   testingr   re  UserWarningr   r  r   rm   ro   r   r  r3   r|   rY   r   r   )r,  r  rG   rN   r  r  r  r  r  r  rP  rh  rT   rI   Sr3   rZ   ZPr_gte_S_meanr6   r6   r7   test_with_ties  s@   

z"TestPermutationTest.test_with_tieszalternative, expected_pvalue))rs   g?)rv   gOO?)rU  g<OO?c                    s\   g d}g d d} fdd}t |f|dtj|d}t|j|| jd t|j|d	d
 dS )aU  
        Results above from R cor.test, e.g.

        options(digits=16)
        x <- c(1.76405235, 0.40015721, 0.97873798,
               2.2408932, 1.86755799, -0.97727788)
        y <- c(2.71414076, 0.2488, 0.87551913,
               2.6514917, 2.01160156, 0.47699563)
        cor.test(x, y, method = "spearm", alternative = "t")
        )g@9?gY,?gOQ?g[iY@g|?g鈶BE)gQGn@gU?gz˱@?gmGA6@gB @g˭?g?c                    rd  rP   )r   Z	spearmanrrm   r   r  r6   r7   rP  X  r-  zDTestPermutationTest.test_against_spearmanr_in_R.<locals>.statistic1dr  )r  r"   ru   rn   gvIh%<=rp   N)r   r2   r  r   rm   ro   r   )r,  ru   r  rG   r  rP  rT   r6   r  r7   test_against_spearmanr_in_R?  s   
z/TestPermutationTest.test_against_spearmanr_in_Rr&   )rK   r   c                 C   sH   t jtdd ttg d| W d    d S 1 sw   Y  d S )Nz`batch` must be positive.r   r   )r/   r0   r1   rb   r   _batch_generator)r,  r&   r6   r6   r7   test_batch_generator_iva  s   "z+TestPermutationTest.test_batch_generator_ivr   )r   r   re   r$  rn  ziterable, batch, expectedc                 C   s    t t||}||ksJ d S rP   )rb   r   r  )r,  iterabler&   r   gotr6   r6   r7   test_batch_generatorj  s   z(TestPermutationTest.test_batch_generatorc           	      C   s   g d}g d}dd }t j||f|ddd}|j|j|j}}}dt||d	 k t| }||  kr<d
ks?J  J d S )N)r   r
   r   r   )r
   r   r   r$  c                 S   s   t | |d S r  r  r3  r6   r6   r7   rm   w  rF  zFTestPermutationTest.test_finite_precision_statistic.<locals>.statisticFr  )r   r  r
   r   gUUUUUU?)r   r   rm   r   r  r2   r   rY   )	r,  rG   rN   rm   rT   rr   nullZ	correct_pr6   r6   r7   test_finite_precision_statisticp  s    z3TestPermutationTest.test_finite_precision_statisticN)+r{  r|  r}  ro   r  r  r/   r~  r  r2   r@   r   rw   rB  r	   r  r  r  r  slowr  r  r  r  r  r  r  Zxslowr  r  r  r  r  r  Z
tie_case_1Z
tie_case_2r  r  r  r   Zbatch_generator_casesr  r  r6   r6   r6   r7   r    s    6$



.
%

+<


r  c                     s   t jg dtd t  } t }d}t D ]}|d7 }t || d d }|t	dd |D  qt 
 fddtt d D }t|| tt|| d S )	N)r   r
   r   )Zdtyper   r   rK   c                 S   s   g | ]}t |qS r6   )	frozensetr   rQ   r6   r6   r7   
<listcomp>  s    z4test_all_partitions_concatenated.<locals>.<listcomp>c              	      s4   g | ]}t t |d  t |d d  qS r2  )r	   r  r   r  rZ   r6   r7   r    s    ,)r2   r   intZcumsumsetr   Z_all_partitions_concatenatedsplitaddr4   prodr   rY   r   )ncZall_partitionsr>  Zpartition_concatenatedZpartitioningr   r6   r  r7    test_all_partitions_concatenated  s   

r  fun_namer   r   r   c                    s   t jd  jdd fdd}f ddf dd	|d
d}ddi}tt| }||  }|| fdd}|d|d d| |d|dd| dd }|d|d d| |d|dd| d S )Nl   r: r)   r   c                    s   t jj|  dS )Nr   )r   rx   ry   r   )r   r6   r7   ry     rF  z&test_parameter_vectorized.<locals>.rvsr:   )rl   r.   r(   r  )rl   r.   r  )r   ry   r  r"   r?   c                    s(   | j dkst|  sJ tj| |dS r<  )r   r2   r   r3   r   )r   r6   r7   rm     s   z,test_parameter_vectorized.<locals>.statistic)rm   r   Tc                 S   s   | j dksJ t| S r2  )r   r2   r3   r   r6   r6   r7   rm     s   
Fr6   )r2   r@   rw   r   r   r~   )r  ry   Zfun_optionsZcommon_optionsrc  optionsrm   r6   )r   r   r7   test_parameter_vectorized  s*   

r  )9numpyr2   r/   Zscipy.statsr   r   r   Znumpy.testingr   r   r   Zscipyr   r	    r   Zscipy._lib._utilr   Zscipy.optimizer   r8   r~  r  rJ   r[   rd   r   Ztests_Ritemsr   Ztests_against_itself_1sampr   r   r   Ztests_against_itself_2sampr   r   Zxfail_on_32bitr   r   r   r   r   r   r   r  r  r  r  r  r  filterwarningsr%  r&  r  r  r  r6   r6   r6   r7   <module>   s    ?
+

:
%
.








&  !     