
    5[g                       d Z ddlZddlZddlZddlmZ ddlmZ ddlm	c m
Z ddlZddlZddlmZmZ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c mZ ddl
mZm Z m!Z!m"Z"m#Z# ddl
Z$ddl%m&Z& ddl'm&c m(Z( ddl)m&c m*Z+ ddl,m-Z- dd	l.m/Z/ dd
l0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< ddl=m>Z>m?Z?m@Z@mAZA ddlBmCZC ddlDmEZEmFZF ddlGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZP ej                  j                  ZR	  eg deS      ZT eg deS      ZU eg deS      ZV eg deS      ZW eg deS      ZX eg deS      ZY eg deS      ZZ G d d      Z[ G d d      Z\eEej                  j                  d       eRd        G d! d"                           Z^ G d# d$      Z_ G d% d&      Z` G d' d(      Zad) Zbd* Zcd+ Zdd, Ze G d- d.      Zfd/ Zgd0 Zhd1 Zid2 Zj G d3 d4      Zk G d5 d6      Zld7 Zmd8 Znd9 Zo G d: d;      Zp G d< d=      ZqeE G d> d?             Zr G d@ dA      Zs G dB dC      ZtdD Zu G dE dF      Zv G dG dH      Zw G dI dJ      Zx G dK dLex      Zy G dM dNex      Zzej                  j                  dO        Z}ej                  j                  ddPgQ      ej                  j                  d      eE G dR dS                           Z~ G dT dU      Z edVg dW      Z eg dXddddYdZdY e$j                  d[      z  d\ e$j                  d]      z  z   z  dZd^ e$j                  d_      z  d^ e$j                  d`      z  z   z  daW       eg dXg dbdddcdZdY e$j                  d_      z  d^ e$j                  d[      z  z   d^ e$j                  dd      z  z   z  dZdZ e$j                  d[      z  de e$j                  d_      z  z   dZ e$j                  df      z  z   z  dgW       eg dXd^dddYdZdY e$j                  d[      z  d\ e$j                  d]      z  z   z  dZd^ e$j                  d_      z  d^ e$j                  d`      z  z   z  daW       eg dhg dhddddddW      gZ eg dddddddW       e e$j>                  g g g g      j                  dddg dig dig dig diW       e e$j>                  g g g g      dddg g g g W      gZeE G dj dk             ZeE G dl dm             ZeF G dn do             Zdp Z G dq dr      Z G ds dt      Z G du dv      Zdw Zdx Zdy Zej                  j                  dz e$j                   d{      d|f e$j                   d}      d~fg      d        Zd Zej                  j                  dg d      d        Zej                  j                  de&j(                   e$j@                  d      dffe&j*                   e$j@                  d       e$j@                  d      ffg      d        ZddZd Z G d d      Z G d d      Z G d d      Z G d d      Zd Zd Zd Zd Zej                  j                  dz e$j                   d{      d|f e$j                   d}      d~fg      d        Zd Zd Zd Zd Zd Zd Zej                  jP                  ej                  j                  ddPgQ      ej                  j                  d      eEd                             Zej                  j                  ddg      ej                  j                  d      eEd                      Zej                  j                  ddPgQ      ej                  j                  d      eEd                      Z G d d      ZeE G d d             Z G d de      Z G d de      Z G d de      Z G d d      ZeE G d d             Z G d d      Zd Zd Z	 	 ddZ	 	 ddZ	 	 ddZ G d d      Z G d d      Z G d d      Z G d d      Zd Zd Zd Z G d d«      Z G dÄ dī      Z G dń dƫ      Z G dǄ dȫ      Z G dɄ dʫ      Z G d˄ d̫      Z G d̈́ dΫ      Z G dτ dЫ      Z G dф dҫ      Z G dӄ dԫ      Z G dՄ d֫      Z G dׄ dث      Z G dل dګ      Z G dۄ dܫ      Ze$j                  j                  dݫ      ZeАj                  d      ZeАj                  d      Zej                  j                  de&j                  effe&j                  ee&j                  j                  ffe&j                  eeffe&j                  eeffg      d߄        Z G d d      ZeEd        Zej                  j                  ddg      ej                  j                  d      eEd                      Zy)z Test functions for stats module

    WRITTEN BY LOUIS LUANGKESORN <lluang@yahoo.com> FOR THE STATS MODULE
    BASED ON WILKINSON'S STATISTICS QUIZ
    https://www.stanford.edu/~clint/bench/wilk.txt

    Additional tests by a host of SciPy developers.
    N)
namedtuple)product)	assert_assert_equalassert_almost_equalassert_array_almost_equalassert_array_equalassert_approx_equalassert_allclosesuppress_warningsassert_array_less)raises)arrayarangefloat32float64power)kolmogn)FuncData)binom)optimize   )check_named_results)_broadcast_concatenateSmallSampleWarningtoo_small_nd_omittoo_small_nd_not_omittoo_small_1d_omittoo_small_1d_not_omit)_permutation_distribution_t_chk_asarray_momentLinregressResult)	AxisError)array_api_compatibleskip_xp_invalid_arg)xp_assert_closexp_assert_equalarray_namespacecopyis_numpyis_torchSCIPY_ARRAY_APIsize)	r                        	   )	r   r   r   r   r   r   r   r   r   )	iiiiiiiii)	g~?g<?gEk?g?ge(?gq?g?g8C?gG?)	g   mBg   }Bg  yӅBg   Bg  @0Bg  yӕBg  BwBg   Bg   ^B)	-q=g-=gAfc=g-=gdy=gAfc=gYLɞ=g-=gSSʣ=)	      ?      ?      @      @      @      @      @      @      !@c                   |    e Zd Z ej                  ej
                        j                  Zd Zd Z	d Z
d Zd Zd Zy)TestTrimmedStatsc           
         t        j                  t        dd      }t        |d| j                         t        j                  t        dd      }t        j                  t        d       }t        ||| j                         t        dt        	      j                  d
d      }t        j                  |d       }t        ||j                         | j                         t        j                  |d      }t        ||j                  d      d       t        j                  |d      }t        ||j                  d      d       t        j                  |dd       }t        |d| j                         t        j                  |dd      }g d}t        ||d       t        j                  |ddd      }g d}t        ||d       t        j                  |      }t        j                  |ddd f<   t        j                  |dd      }ddddt        j                  t        j                  t        j                  g}t        ||d       t               5 }|j                  t        d       t        j                  |dd      }d d!d"d#t        j                  t        j                  t        j                  t        j                  t        j                  g	}t        ||d       t        j                  |dd$d      }dd!d"d#t        j                  t        j                  t        j                  t        j                  t        j                  g	}t        ||d       d d d        y # 1 sw Y   y xY w)%Nr/   r5   TT      @significant)FFlimits	inclusiverJ   ?   dtyper6   r4   axisr   r5   decimalr   )r/   =   )rJ   rQ   g     ?@)r/      )         '@r6   
            TF)rJ   rK   rQ   )      %@rW   r6   rX   rY   rZ   r[   )r   r[   r<   r=   r>   Mean of empty slicer1   rX      rU   FT)statstmeanXr
   dprecr   r   reshapemeanr   npr   nanr   recordRuntimeWarning)selfyy1y2x_2dy_truex_2d_with_nansups           W/var/www/html/bid-api/venv/lib/python3.12/site-packages/scipy/stats/tests/test_stats.py
test_tmeanzTestTrimmedStats.test_tmeanP   sh   KK6<0As

;[[6^D[[4(B

;b(00A6KK4(Atyy{

CKK1%!!TYYAY%6BKK1%!!TYYAY%6BKKW48At<KKW15.!!VQ7KKWAN0!!VQ7!#b"#gKKgA>S#sBFFBFFBFF;!!VQ7 CJJ~'<=Dq9ARRVVRVVRVVRVVRVVLF%a;D&3!=A2r2rvvrvvrvvrvvrvvNF%a; !  s   DM..M7c                    t        j                  t        dd      }t        |d| j                         t        j                  t        d       }t        |t        j                  d      | j                         t        d	t        
      j                  d      }t        j                  |d       }t        ||j                  d      | j                         t        j                  |d      }t        |d   t        j                  dd      d       t        j                  |d      }t        |d   t        j                  dd      d       t        j                  |dd d f         }t        |d| j                         t               5 }|j                  t        d       t        j                  |ddd      }t        |d   d| j                         t        j                  |ddd      }t        |d   d| j                         t        |d   t        j                          d d d        y # 1 sw Y   y xY w)NrD   rE   rI   g@rG   rL   r   ddofrM   rN   )r6   r4   rP   r   )r   r4   g     v@r5   rR   )r   r6   g㪪@r0   g@z"Degrees of freedom <= 0 for slice.)r   r2   )rJ   rQ   rK   r:   r   r3   )rc   tvarre   r
   rf   varr   r   rg   r   ri   fullr   rk   rl   r   rj   )rm   rn   rq   rt   s       ru   	test_tvarzTestTrimmedStats.test_tvar   s   JJq<@A1tzzJJJq&Aquu!u}$**Eb(008JJt$'AtxxQx/TZZHJJt!$!!A$(EqQJJt!$!!A$
(CQOJJtAqDz"A0djjI CJJ~'KL 

4Q,OA!ctzzB 

4Q,OA!&7TZZP1rvv& !  s   BH66H?c                     t        j                  t        dd      }t        |d| j                         t        j                  t        d       }t        |t        j                  d      | j                         y )NrD   rE   gBĆ/H@rG   rL   r   rx   )rc   tstdre   r
   rf   stdrm   rn   s     ru   	test_tstdzTestTrimmedStats.test_tstd   sO    JJq&,/A1tzzJJJq&Aquu!u}$**E    c                    t        t        j                  d      d       t        j                  d      }t        t        j                  |      d       t        t        j                  |d      d       t        t        j                  |dd      d       |j                  d      }t        t        j                  |dd      d	dg       t        t        j                  |d
      g d       t        t        j                  |d 
      d       t        j                  d      }t        j                  |d<   t               5 }|j                  t        d       t        t        j                  |      t        j                         t        t        j                  |d      d       t        t        t        j                  |d       t        t        t        j                  |d       d}t        t        |      5  t        j                  |d       d d d        d d d        t               5 }|j                  t        d       t        j                  d      j                  dd      }t        j                  |dd      }t        |t        j                  dddg       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr1   rX   r   )
lowerlimitF)r   rK   r   r2   r/   r/   rP   )r   r/   r1   r3   r5         $@r6   invalid value*omit
nan_policy        raisefoobarnan_policy must be one of...matchfooAll-NaN slice encountered   )r   rQ   r5   rZ   )r   rc   tminri   r   rg   rj   r   rk   rl   assert_raises
ValueErrorfilter)rm   xrt   msgress        ru   	test_tminzTestTrimmedStats.test_tmin   s   UZZ]A&IIbMUZZ]A&UZZa0!4UZZa5A1EIIfUZZa5AAq6JUZZ*O<UZZ-q1IIcNvv! CJJ~'78A/A&92>*ejj!H*ejj!I0Cz5

1/ 6 !  CJJ~'BC		"%%a+A**Q115Crvvq!R01	 !  65 !  ! s2   B:J5<J)J5.A2K)J2	.J55J>K
c                    t        t        j                  d      d       t        j                  d      }t        t        j                  |      d       t        t        j                  |d      d       t        t        j                  |dd      d       |j                  d      }t        t        j                  |dd      dd	g       t        t        j                  |d
      g d       t        t        j                  |d       d       t        j                  d      }t        j                  |d<   t               5 }|j                  t        d       t        t        j                  |      t        j                         t        t        j                  |d      d       t        t        t        j                  |d       t        t        t        j                  |d       d d d        t               5 }|j                  t        d       t        j                  d      j                  dd      }t        j                  |dd
      }t        |dd	dt        j                  g       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr1   rX   r6   )
upperlimitF)r   rK   r5   r   r4   r   rP   r   r0   r2   r4   r6   r   r3   r   r   r         "@r   r   r   r   rY   )r   rQ   r0   )r   rc   tmaxri   r   rg   rj   r   rk   rl   r   r   r   )rm   r   rt   r   s       ru   	test_tmaxzTestTrimmedStats.test_tmax   s   UZZ]A&IIbMUZZ]A&UZZa0!4UZZa5A1EIIfUZZa5AAq6JUZZ*O<UZZ-q1IIcNvv! CJJ~'78A/A&92>*ejj!H*ejj!I !  CJJ~'BC		"%%a+A**Q2A6Cq!R01	 !  !  ! s   B'I6;A2J6I?Jc                    t        j                  t        dd      }t        j                  g d      }t        ||j                  d      t        j                  |j                        z  | j                         t        t        j                  t        dd	g
      t        j                  t        d 
      | j                         y )N)r0   r5   rb   rI   )r1   r2   r3   r4   r5   r   rx   rG   r^   rX   rL   )
rc   tsemre   ri   r   r
   r   sqrtr.   rf   )rm   rn   y_refs      ru   	test_tsemzTestTrimmedStats.test_tsem   s    JJq=A)Auyyay02775::3FF(,

	4 	EJJq"b:!JJq6(,

	4r   N)__name__
__module____qualname__ri   finfor   	precisionrf   rv   r~   r   r   r   r    r   ru   rB   rB   L   s>    BHHRZZ **E-<^'@F2B2<4r   rB   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d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestPearsonrWilkinsonE   W.II.D. Compute a correlation matrix on all the variables.

        All the correlations, except for ZERO and MISS, should be exactly 1.
        ZERO and MISS should have undefined or missing correlations with the
        other variables.  The same should go for SPEARMAN correlations, if
        your program has them.
    c                 b    t        j                  t        t              }|d   }t        |d       y Nr         ?)rc   pearsonrre   r
   rm   rn   rs      ru   test_pXXzTestPearsonrWilkinson.test_pXX   s%    NN1QaDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   re   BIGr
   r   s      ru   
test_pXBIGz TestPearsonrWilkinson.test_pXBIG   s%    NN1S!aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   re   LITTLEr
   r   s      ru   test_pXLITTLEz#TestPearsonrWilkinson.test_pXLITTLE  s%    NN1V$aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   re   HUGEr
   r   s      ru   test_pXHUGEz!TestPearsonrWilkinson.test_pXHUGE  %    NN1T"aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   re   TINYr
   r   s      ru   test_pXTINYz!TestPearsonrWilkinson.test_pXTINY  r   r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   re   ROUNDr
   r   s      ru   test_pXROUNDz"TestPearsonrWilkinson.test_pXROUND  s%    NN1U#aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r   r   r
   r   s      ru   test_pBIGBIGz"TestPearsonrWilkinson.test_pBIGBIG  s%    NN3s#aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pBIGLITTLEz%TestPearsonrWilkinson.test_pBIGLITTLE  s%    NN3v&aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pBIGHUGEz#TestPearsonrWilkinson.test_pBIGHUGE!  %    NN3t$aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pBIGTINYz#TestPearsonrWilkinson.test_pBIGTINY&  r   r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pBIGROUNDz$TestPearsonrWilkinson.test_pBIGROUND+  s%    NN3u%aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r   r   r
   r   s      ru   test_pLITTLELITTLEz(TestPearsonrWilkinson.test_pLITTLELITTLE0  s%    NN6&)aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pLITTLEHUGEz&TestPearsonrWilkinson.test_pLITTLEHUGE5  %    NN6$'aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pLITTLETINYz&TestPearsonrWilkinson.test_pLITTLETINY:  r   r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pLITTLEROUNDz'TestPearsonrWilkinson.test_pLITTLEROUND?  s%    NN6%(aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r   r   r
   r   s      ru   test_pHUGEHUGEz$TestPearsonrWilkinson.test_pHUGEHUGED  %    NN4%aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pHUGETINYz$TestPearsonrWilkinson.test_pHUGETINYI  r   r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pHUGEROUNDz%TestPearsonrWilkinson.test_pHUGEROUNDN  %    NN4&aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r   r   r
   r   s      ru   test_pTINYTINYz$TestPearsonrWilkinson.test_pTINYTINYS  r   r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r   r   r   r
   r   s      ru   test_pTINYROUNDz%TestPearsonrWilkinson.test_pTINYROUNDX  r   r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r   r   r
   r   s      ru   test_pROUNDROUNDz&TestPearsonrWilkinson.test_pROUNDROUND]  s%    NN5'aDAc"r   N)r   r   r   __doc__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ru   r   r      sp    #
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#r   r   skip_xp_backendsT)cpu_onlyc                       e Zd Z ed      d        Z eddgd      d        Z eddgd      d        Z eddgd      d	        Z eddgd      d
        Z eddgd      e	j                  j                  dddg      d               Z eddgd      d        Z eddgd      d        Z eddgd      d        Zd Zd Ze	j                  j                  d      e	j                  j                  dg d      d               Z eddgd      d        Z eddgd      d        Ze	j                  j                  d      d        Ze	j                  j-                  d      e	j                  j                  d      e	j                  j/                  d      e	j                  j                  dd      e	j                  j                  dd      d                                     Ze	j                  j                  d      e	j                  j                  dd      d!               Ze	j                  j                  d      e	j                  j                  d"d#d$g      d%               Ze	j                  j                  d      d&        Zd' Z eddgd      d(        Z eddgd      e	j                  j                  d"g d)      e	j                  j                  dg d      d*                      Zy+),TestPearsonrTnp_onlyc                     t        j                  t        t              }d}t        ||       t	        |j
                  |j                         y Ncorrelationpvalue)rc   r   re   r   r   r   	statisticrm   r   
attributess      ru   test_pearsonr_result_attributesz,TestPearsonr.test_pearsonr_result_attributesg  s3    nnQ".
C,S__cmm4r   	jax.numpy)JAX arrays do not support item assignment)reasonsr   c           
         |j                  d      }t        j                  ||      \  }}t        ||j	                  d      d       t        ||j	                  d      t        j                  dt        j                  d      z               y )N      @r   V瞯<atolr   r/   r   rc   r   r'   asarrayri   r   spacingrm   xpar   probs        ru   test_r_almost_exactly_pos1z'TestPearsonr.test_r_almost_exactly_pos1n  se     IIcN..A&42::c?7 	bjjoBGGAbjjo<M4NOr   c           
          |j                  d      }t        j                  ||       \  }}t        ||j	                  d      d       t        ||j	                  d      t        j                  dt        j                  d      z               y )Nr         r   r  r   r/   r   r  r  s        ru   test_r_almost_exactly_neg1z'TestPearsonr.test_r_almost_exactly_neg1z  sh     IIcN..QB'42::d+%8 	bjjoBGGAbjjo<M4NOr   c                     |j                  g d      }|j                  g d      }t        j                  ||      \  }}t        ||j                  d             t        ||j                  d             y )Nr^   r   r   )r   r   r0   LXz?UUUUUU?)r  rc   r   r'   )rm   r  r  br   r	  s         ru   
test_basiczTestPearsonr.test_basic  sY     JJz"JJy!..A&42::h/0bjjo.r   c                    d}t        j                  t        j                  |      5  |j	                  g d      }|j	                  g d      }t        j
                  ||      \  }}t        ||j	                  |j                               t        ||j	                  |j                               d d d        y # 1 sw Y   y xY w)NAn input array is constantr   MbX?r  r  grh|?gv/?gsh|??)pytestwarnsrc   ConstantInputWarningr  r   r'   rj   )rm   r  r   r   rn   r   ps          ru   test_constant_inputz TestPearsonr.test_constant_input  s     +\\%44C@

01A

01A>>!Q'DAqArzz"&&12Arzz"&&12 A@@s   B
B;;CrO   r   r   c           
         t        t        |      }t        ||      }|j                  dddt        j                  d|      z   g|      }|j                  ddddt        j                  d|      z  z   g|      }d}t	        j
                  t        j                  |      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr/   rN   r0   r3   z/An input array is nearly constant; the computedr   )	getattrri   r  r  r  r  rc   NearConstantInputWarningr   )rm   r  rO   npdtyper   rn   r   s          ru   test_near_constant_inputz%TestPearsonr.test_near_constant_input  s    
 "e$E"JJ1a"**Qg">>?uJMJJ1a!BJJq$@"@@AJO?\\%88D NN1a  EDDs   #CCc                 N   |j                  g d|j                        }|j                  g d|j                        }t        j                  ||      \  }}t	        ||j                  d|j                               t	        ||j                  d|j                               y )N)gy)r?gxd{s?gnp?g$9"o?ge =:k?rN   )goȟg`
,gzg2l?g>??'ge;E?g3R?r  r   rc   r   r'   rm   r  r   rn   r   r  s         ru   test_very_small_input_valuesz)TestPearsonr.test_very_small_input_values  s     JJVZZ  )JJNZZ  )~~a#1 	2::&8

:KL2::&8

:KLr   c                 V   d|j                  g d|j                        z  }d|j                  d|j                        z  }t        j                  ||      \  }}t        ||j                  d|j                               t        ||j                  d|j                               y )NgY)	kR)r   r   r   r   r   r   r   rN   r4   r  g͗~-?)r  r   r   rc   r   r'   r%  s         ru   test_very_large_input_valuesz)TestPearsonr.test_very_large_input_values  s     1DD1BJJ//~~a#1 	2::&8

:KL2::&:"**:MNr   c                 N   |j                  g d|j                        }|j                  g d|j                        }t        j                  ||      \  }}t	        ||j                  d|j                               t	        ||j                  d|j                               y )N)g7	igNig_b4igZbirN   )gDig<'(½igmQiZbtig*D{?gݣ?r$  r%  s         ru   !test_extremely_large_input_valuesz.TestPearsonr.test_extremely_large_input_values  s     JJ9JLJJ;2::JN~~a#1 	2::&7rzz:JK2::&7rzz:JKr   c                 0   |j                  ddg      }|j                  ddg      }t        j                  ||      }|\  }}|j                  d      }t        ||       t        ||       |j	                         \  }}	t        ||        t        |	|       y )Nr          @r   rF   r  rc   r   r(   confidence_interval
rm   r  r   rn   r   r   r  onelowhighs
             ru   test_length_two_pos1z!TestPearsonr.test_length_two_pos1  s     JJBx JJBx nnQ"1jjn33++-	TcT"c"r   c                 2   |j                  ddg      }|j                  ddg      }t        j                  ||      }|\  }}|j                  d      }t        ||        t        ||       |j	                         \  }}	t        ||        t        |	|       y )Nr-  r   r   rF   r.  r0  s
             ru   test_length_two_neg1z!TestPearsonr.test_length_two_neg1  s     JJBx JJBx nnQ"1jjnC4 3++-	TcT"c"r   z$alternative, pval, rlow, rhigh, sign))	two-sided?gmgƎ?r   )lessK˅?r^   g?
?r   )greater.?gդζr   r   )r7  r8  gfǎgl?r^   )r9  r<  r  gդζ?r^   )r;  r:  g?
r   r^   c                    g d}t        j                  g d      |z  }t        j                  |||      }t	        |j
                  d|z  d       t	        |j                  |d       |j                         }	t	        |	||fd       y )Nr   r/   r0   r1   )r   r   r8   r   alternativeg?r7   rtolư>)ri   r   rc   r   r   r   r   r/  )
rm   r@  pvalrlowrhighsignr   rn   resultcis
             ru   test_basic_examplezTestPearsonr.test_basic_example  st     HH^$t+1+>((*<T*ANt$7'')T5M5r   c                 $   |j                  d      }| }t        j                  ||d      }t        j                  ||d      }t        |j                  |j                  d             t        |j                  |j                  d      d       y )	Nr   r;  r?  r9  r   r   g#B;r  )r   rc   r   r'   r   r  )rm   r  r   rn   test_greater	test_lesss         ru   (test_negative_correlation_pvalue_gh17795z5TestPearsonr.test_negative_correlation_pvalue_gh17795  sn     IIcNB~~a	BNN1aV<	++RZZ^<	(("**R.uEr   c                 <   |j                  g d      }|j                  g d      }t        j                  ||      }|\  }}|j                  d      }t        ||        t        |d|z  d       |j	                         \  }}	t        ||        t        |	|       y )Nr   r-  r   )rF   g      g      *r   r   Hz>r  )r  rc   r   r'   r/  r(   r0  s
             ru   #test_length3_r_exactly_negative_onez0TestPearsonr.test_length3_r_exactly_negative_one"  s     JJ|$JJ'nnQ" 1jjoC4 1S5t,++-	TcT"c"r   c                 6   g d}ddg}d}t        j                  t        |      5  t        j                  ||       d d d        dg}dg}d}t        j                  t        |      5  t        j                  ||       d d d        g d	}g d	}d
}t        j                  t        |      5  t        j                  ||       d d d        d}t        j                  t        |      5  t        j                  ddgddgd       d d d        t        j                  ddgddg      }t        j                  t        |      5  |j                  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   xY w# 1 sw Y   y xY w)Nr   r/   r0   r1   r2   z3`x` and `y` must have the same length along `axis`.r   r   r/   (`x` and `y` must have length at least 2.)y             y              y             z+This function does not support complex dataz"`method` must be an instance of...r0   
asymptoticmethodexact)r  r   r   rc   r   r/  )rm   r   rn   messager   s        ru   test_input_validationz"TestPearsonr.test_input_validation3  s>   FG]]:W5NN1a  6 CC<]]:W5NN1a  6 ?]]:W5NN1a  6 7]]:W5NNAq6Aq6,? 6 nnaVaV,]]:W5##7#3 65) 65 65 65 65 65s;   E(E+,E7(FFE(+E47F FFr/   z-Monte Carlo method needs > a few kB of memoryr@  r9  r;  r7  rX  permutationmonte_carloc                    t         j                  j                  d      }|dk(  rdnd}|j                  |      }|j                  |      }t	        j
                  |      t	        j                  |j                  fdz        d	}||   }t	        j                  ||||d
      }t	        j                  |||d
      }	t        |j                  |	j                  d       t        |j                  |	j                  dd       y )Nl   o#[mr^  r/   d   )r/     r.   random_stater/   )rvsr]  r^   )r@  rX  rQ   r@  rQ   r   rA  {Gz?MbP?rB  r  )ri   randomdefault_rngnormalrc   PermutationMethodMonteCarloMethodr   r   r   r   )
rm   rX  r@  rngr.   r   rn   methodsr   refs
             ru   test_resampling_pvaluez#TestPearsonr.test_resampling_pvalueO  s     ii##$56!]2x	JJDJ!JJDJ!"'"9"9s"K"'"8"8cjj]1_"MOnnQ{6PRSnnQ{Ds}}5A

CJJTEr   c                 H   t         j                  j                  d      }|j                  d      }|j                  d      }t	        j
                  |||d      }t	        j                  |      }|j                  |      }|j                         }t        ||d	       y )
Nl   _Y F ra  rd  r^   rh  re  rW  gQ?r  )	ri   rl  rm  rn  rc   r   BootstrapMethodr/  r   )	rm   r@  rq  r   rn   r   rX  res_ciref_cis	            ru   test_bootstrap_cizTestPearsonr.test_bootstrap_cia  s     ii##$45JJHJ%JJHJ%nnQ{D&&C8(((7((*V4r   rQ   r   r   c                    t         j                  j                  d      }d}|j                  d|z         \  }}t	        j
                  |||      }|j                         }|dk(  r|j                  |j                  }}t        |j                  d         D ]  }	t	        j
                  ||	   ||	         }
|
j                         }t        |j                  |	   |
j                         t        |j                  |	   |
j                         t        |j                  |	   |j                         t        |j                  |	   |j                          y )N   I.v# r6   rX   r/   rd  rP   r   )ri   rl  rm  rn  rc   r   r/  Trangeshaper   r   r   r2  r3  )rm   rQ   r  rq  r  r   rn   r   rI  ires_ici_is               ru   test_axis01zTestPearsonr.test_axis01o  s    ii##K0zzte|z,1nnQ-$$&1933qAqwwqz"ANN1Q41.E,,.DCMM!,eoo>CJJqM5<<8BFF1Itxx0BGGAJ		2 #r   c                    t         j                  j                  d      }d}|j                  d|z         \  }}t	        j
                  ||d       }|j                         }t	        j
                  |j                         |j                               }|j                         }	t        |j                  |j                         t        |j                  |j                         t        ||	       y )Nr{  r|  r}  rd  rP   )ri   rl  rm  rn  rc   r   r/  ravelr   r   r   )
rm   r  rq  r  r   rn   r   rI  rs  ci_refs
             ru   test_axis_NonezTestPearsonr.test_axis_None  s    ii##K0zzte|z,1nnQ-$$&nnQWWY	2((*s}}5

CJJ/F#r   c                    |j                  d      x}}d}t        j                  t        |      5  t	        j
                  ||d       d d d        d}t        j                  t        |      5  t	        j
                  ||j                  d      d       d d d        d	}t        j                  t        |      5  t	        j
                  |j                  d      |j                  d      d       d d d        d
}t        j                  t        |      5  t	        j
                  ||j                  d      d       d d d        d}t        |      s`|j                  d      }t        j                  t        |      5  t	        j
                  ||t	        j                                d d d        y y # 1 sw Y   nxY w# 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)N)r/   r2   z`axis` must be an integer.r   r9   rP   z2`x` and `y` must have the same length along `axis`r/   r   r   rU  z"`x` and `y` must be broadcastable.r0   r2   z:`method` must be `None` if arguments are not NumPy arrays.rX   rW  )	onesr  r   r   rc   r   r+   r   ro  )rm   r  r   rn   rZ  s        ru   test_nd_input_validationz%TestPearsonr.test_nd_input_validation  sX   A.]]:W5NN1ac* 6 G]]:W5NN1bggfoA6 6 =]]:W5NN2776?BGGFO!D 6 7]]:W5NN1bggfoA6 6 O|		"Az9q!E,C,C,EF :9 ! 65 65 65 65 :9s;   F6/(G<7G(G+G(6G GGG%(G1c                    t         j                  j                  d      }|j                  |j                  d            }|j                  |j                  d            }d}t	        j
                  t        j                  |      5  t        |      }d|d<   t        j                  ||d      }|j                         }|j                  |j                  |j                        }	t        |j                  d	   |	       t        |j                  d	   |	       t        |j                   d	   |	       t        |j"                  d	   |	       |j%                  |j'                  |j                  dd              rJ |j%                  |j'                  |j                  dd              rJ |j%                  |j'                  |j                   dd              rJ |j%                  |j'                  |j"                  dd              rJ 	 d d d        d
}t	        j
                  t        j(                  |      5  dd<   t        j                  ||d       d d d        |j                  ddgddgddgddgg      }|j                  ddgddgddgddgg      }
|j+                  d      }t        j                  ||
d      }|j                         }t-        |j                  |j                  g d             t-        |j                  |       t-        |j                   |        t-        |j"                  |       y # 1 sw Y   5xY w# 1 sw Y   xY w)Nl   U!Jr  r  r   r   )r   .rP   rN   r   z!An input array is nearly constantg     ?r   r   r/   r   r1   r^   )r   r^   r^   r   )ri   rl  rm  r  r  r  rc   r  r*   r   r/  rj   r   r(   r   r   r2  r3  anyisnanr   r  r'   )rm   r  rq  x0y0rZ  r   r   rI  rj   rn   r  s               ru   test_nd_special_casesz"TestPearsonr.test_nd_special_cases  s    ii##N3ZZ

6*+ZZ

6*+.\\%44GDRAAfI..BQ/C((*B**RVV2::*6CCMM!,c2CJJqM3/BFF1Is+BGGAJ,vvbhhs}}QR'89:::vvbhhszz!"~6777vvbhhrvvabz2333vvbhhrwwqr{34444 E 6\\%88HAdGNN1bq) I
 JJAAAB89JJAAAB89wwqznnQ+$$&rzz/'BC

D)&&; ED  IHs   F L;7M;MM)r   r   Nc                    t         j                  d      \  }}t        j                  |j	                  |      |j	                  |      ||      }t        j                  ||||      }t        |j                  |j	                  |j                               t        |j                  |j	                  |j                               |j                         }|j                         }	t        |j                  |j	                  |	j                               t        |j                  |j	                  |	j                               y )N)r/   rX   rY   rd  rQ   r@  )rq  rn  rc   r   r  r'   r   r   r/  r2  r3  )
rm   r  rQ   r@  r   rn   r   rs  rw  rx  s
             ru   test_array_apizTestPearsonr.test_array_api  s     zz{z+1nnRZZ]BJJqM"&KAnnQ+Frzz#--'@A

BJJszz$:;((*((*

BJJvzz$:;RZZ%<=r   N)r   r   r   r   r   r
  r  r  r  r  markparametrizer"  r&  r(  r+  r4  r6  rJ  rN  rR  r[  	fail_slowxfail_on_32bitrt  ry  r  r  r  r  r  r   r   ru   r   r   c  s    d#5 $5 kJK#%P%P kJK#%P%P kJK#%/%/ kJK#%	3%	3 kJK#% [[Wy)&<=
! >%
! kJK#%M%M kJK#%O%O kJK#%L%L##* [[!!$!/[[CHI6I 06 kJK#%F%F kJK#%#%# [[!!$!/4 046 [[1[[!!$!/[[ OP[[],LM[[X'EFF G N Q 0 
F [[!!$!/[[],LM
5 N 0
5 [[!!$!/[[VaV,3 - 03  [[!!$!/
$ 0
$G0 kJK#%#'%#'J kJK#% [[V\2[[],LM> N 3%
>r   r   c                       e Zd ZdZd Zd Zd Zd Zej                  j                  d        Zd Zd Zd	 Zd
 Zej                  j!                  dg d      d        Zy)TestFisherExacta  Some tests to show that fisher_exact() works correctly.

    Note that in SciPy 0.9.0 this was not working well for large numbers due to
    inaccuracy of the hypergeom distribution (see #1218). Fixed now.

    Also note that R and SciPy have different argument formats for their
    hypergeometric distribution functions.

    R:
    > phyper(18999, 99000, 110000, 39000, lower.tail = FALSE)
    [1] 1.701815e-09
    c                    t         j                  } |ddgddgg      d   }t        |dd        |d	d
gddgg      d   }t        |dd        |d
dgdd
gg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgddgg      d   }t        |dd        |ddgdd
gg      d   }t        |d        |dd
gddgg      d   }t        |d        |d
dgdd
gg      }t        |d   dd       t        |d   d       y ) N8   N  0u  @  r   g؞Y?r1   rG   rb  r/   rc  r2   g,Ԛ?r4   r5   g2c?r3   rX   gY
A?      g_?r      gO^M?r   gօa?r0   r   ggE?g$I$I?)rc   fisher_exactr
   )rm   r  r   s      ru   r  zTestFisherExact.test_basic  s   ))UENUEN;<Q?Ca8S!HtQi01!4CQ7QFQF+,Q/C:QFRH-.q1C:QGb"X./2C:QGb"X./2C:RGb!W-.q1C:QFQF+,Q/C;QFQF+,Q/C%QFQF+,Q/C.QFQF+,CFI1=CFH-r   c                    ddgddggdfddgddggdfdd	gd
d
ggdfddgddggdfddgddggdfd
dgd
d	ggdfd
dgd
dggdfddgd	dggt         j                  dffddgd	dggdfdd	gddggt         j                  dffdd	gddggdfg}|D ]V  \  }}t        j                  t        j                  |            }t         j
                  j                  |d	   |d	   dd       X y )Nrb  r/   rc  r2   )gAn&	?g}K
T?r4   r5   )g	7?g?r   rX   )g!@j)A?r  r  )gU!a?gKY?r   r  )g7X?g~ltP?)gFu|?r  r   )r   gQN^?r1   gaa?r   r   gaa?r0   rY   T)rS   verbose)ri   infrc   r  r  testingr   )rm   tablisttableres_rr   s        ru   test_precisezTestFisherExact.test_precise
  s`    Ahq	"$TU!fq!fOP!fr2h!QR"gBx "RS"gBx "RS1gAw!QR1gAw!QR!fq!f(>?@!fq!fOP!fq!f(>?@!fq!fOP $LE5$$RZZ%67CJJ**3q658R37 + 9 $r   c                    ddgddgg}t        j                  |      }t        |d   d       ddgdd	gg}t        j                  |      }t        |d   d
       ddgddgg}t        j                  |      }t        |d   d       y )Nr3   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rc   r  r   rm   r   r   s      ru   test_gh4130zTestFisherExact.test_gh4130"  s     WsCj!  #A 12 !Wq#h  #A 56 "Xe}%  #A 56r   c                 `    ddgddgg}t        j                  |      }t        |d   dd       y )NiiX iV iW r   r   gѧRr  r  r  s      ru   test_gh9231zTestFisherExact.test_gh92318  s8     w'7!34  #A/r   c                     g d}t        |g d      D ]1  \  }}t        j                  ddgd|gg      d   }t        ||d       3 t        j                  d	d
gddgg      d   }t        |dd       y )N)g?=gNuP=gs=)K   L   M   i(E  i  i)  r   r1   rG   iPF  i8 r  i_ g^K=?)ziprc   r  r
   )rm   pvalsrD  numr   s        ru   test_large_numbersz"TestFisherExact.test_large_numbers?  s|     1UL1ID#$$uclT3K%@A!DCTq9 2   5%.5%.!AB1ECQ7r   c                     t        t        t        j                  t	        j
                  d      j                  dd             y )Nr3   r/   r0   )r   r   rc   r  ri   r   rg   rm   s    ru   test_raiseszTestFisherExact.test_raisesJ  s,    j%"4"4iil**1a0	2r   c                     ddgddggddgddggddgddggddgddggf}|D ]@  }t        j                  |      \  }}t        |d       t        |t        j                         B y )Nr   r2   rX   r   )rc   r  r   ri   rj   )rm   tablesr  	oddsratiorD  s        ru   test_row_or_col_zeroz$TestFisherExact.test_row_or_col_zeroO  s    q6Ar7#r7QF#q6Ar7#q6B7#% E#007OIts#BFF+ r   c                    ddgddggddgddggddgdd	ggd
dgddggddgddggddgddggddgddggddgddggddgddggf	}ddgddgddgddgddgddgddgddgddgf	}t        ||      D ]h  \  }}g }|j                  t        j                  |d      d          |j                  t        j                  |d       d          t	        ||dd!"       j y )#Nr/   r4   r5   r  i,     rU   r3   i     i   i  r   r0   r   r1   gI[?gq}!?r   g2\&gQp6g:O_?g a?皙?ffffff??333333?UUUUUU?r  r9  r?  r;  rQ  )r  rB  )r  appendrc   r  r   )rm   r  r  r  rD  r   s         ru   test_less_greaterz!TestFisherExact.test_less_greaterY  sR    VaV1X3x "X4y!3Z#s$ VaVVaVVaVVaVVaV  "#56)*()	"#J#J#J3K$K vu-KE4CJJu))%VDQGHJJu))%YGJKCAD9	 .r   c                 @    t        j                  ddgddgg      \  }}y )Nr   r/   r6   i")rc   r  )rm   oddsr   s      ru   test_gh3014zTestFisherExact.test_gh3014{  s%     ))Aq6Ax=*ABfr   r@  r7  r9  r;  c                     t        j                  ddgddgg      }t        j                  ||      }t	        |j
                  |j                  f|       y )Nr  r  r  r  r?  )ri   r   rc   r  r   r   r   )rm   r@  r  r   s       ru   test_resultzTestFisherExact.test_result  sF    5%.5%.9:  K@cmmSZZ0#6r   N)r   r   r   r   r  r  r  r  r  r  slowr  r  r  r  r  r  r  r   r   ru   r  r    sv    .6907,0 [[8 82
, :DC
 [[],LM7 N7r   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d 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d Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%y$)%TestCorrSpearmanrr   c                     t        j                  dd      }t        t        j                  |      j                                y )N      @r-  )rc   	spearmanrr   ri   r  allr   s     ru   test_scalarzTestCorrSpearmanr.test_scalar  s)    OOB#!"r   c                     t        t        t        j                  g dddg       t        t        t        j                  g dd       y )Nr   r/   r   r5   r6   )r   r   rc   r  r  s    ru   test_uneven_lengthsz%TestCorrSpearmanr.test_uneven_lengths  s*    j%//9q!fEj%//9a@r   c                 V   t         j                  j                  d       t         j                  j                  dd      }t         j                  j                  dd      }t	        j
                  ||      j                  j                  dk(  sJ t	        j
                  |j                  |j                  d      j                  j                  dk(  sJ t        t        t        j
                  ||d       t        t        t        j
                  |j                  |j                         y )N鄋 r1   r0   r/   r2   r2   r   rP   )ri   rl  seedrandnrc   r  r   r  r~  r   r   r   rm   r   rn   s      ru   test_uneven_2d_shapesz'TestCorrSpearmanr.test_uneven_2d_shapes  s    
		vIIOOAq!IIOOAq!q!$..44>>>qssACCa077==GGGj%//1aa@j%//133<r   c                    t         j                  j                  d       t         j                  j                  ddd      }t	        t
        t        j                  |       t	        t
        t        j                  ||       t	        t
        t        j                  |d d        t        t        j                  ||d       t        j                  |j                         |j                         d             y )Nr  r1   r0   r/   rP   r   )
ri   rl  r  r  r   r   rc   r  r   flattenrm   r   s     ru   test_ndim_too_highz$TestCorrSpearmanr.test_ndim_too_high  s    
		vIIOOAq!$j%//15j%//1a8j%//1dDA148		QYY[qI	Kr   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  ||      t         j                  t         j                  f       t        t	        j
                  ||d      d       t        t        t        j
                  ||d       t        t        t        j
                  ||d       y )Nr   r6   r   r   )r   r   r   r   )ri   r   rj   r	   rc   r  r   r   r  s     ru   test_nan_policyz!TestCorrSpearmanr.test_nan_policy  s    IIcNvv!5??1a02662662BC5??1aFC%	'j%//1aGLj%//1aHMr   c                 8   t         j                  j                  d       t         j                  j                  dd      }d}t         j                  |d d |f<   t        j
                  ||d      }t        j                  |d      \  }}t        j                  |      \  }}t        j
                  t        j
                  ||d      |d      }t        j
                  t        j
                  ||d      |d      }t        ||d	
       t        ||d	
       y )Nr2   rX   r3   r   rP   r   r   r   +=r  )	ri   rl  r  randrj   deleterc   r  r   )rm   r   krn   corxpxcorypys           ru   test_nan_policy_bug_12458z+TestCorrSpearmanr.test_nan_policy_bug_12458  s    
		qIINN1b!&&!Q$IIa#??18b??1%byy43QQ?YYryyQQ/;d/BU+r   c                    t         j                  j                  d       d}d}t         j                  j                  ||      }t         j                  |d<   t         j                  |d<   t        j                  |dd      \  }}t        |      D cg c]G  }t        |      D cg c]0  }t        j                  ||d d f   ||d d f         j                  2 c}I }}}t        ||       y c c}w c c}}w )Nr2   rX   r   r   )r0   r^   r   	propagaterQ   r   )
ri   rl  r  r  rj   rc   r  r  r   r   )	rm   mnr   corrr   jr  r   s	            ru   test_nan_policy_bug_12411z+TestCorrSpearmanr.test_nan_policy_bug_12411  s    
		qIIOOAq!&&$66%qq[Ifa" 1 FK1XNX!Q$1a41;;XN  	 "c" O "s   C4%5C/C4/C4c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r  re   r
   r   s      ru   test_sXXzTestCorrSpearmanr.test_sXX  s%    OOAa aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  re   r   r
   r   s      ru   
test_sXBIGzTestCorrSpearmanr.test_sXBIG  s%    OOAc"aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  re   r   r
   r   s      ru   test_sXLITTLEzTestCorrSpearmanr.test_sXLITTLE  s%    OOAf%aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  re   r   r
   r   s      ru   test_sXHUGEzTestCorrSpearmanr.test_sXHUGE  %    OOAd#aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  re   r   r
   r   s      ru   test_sXTINYzTestCorrSpearmanr.test_sXTINY  r  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  re   r   r
   r   s      ru   test_sXROUNDzTestCorrSpearmanr.test_sXROUND  s%    OOAe$aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r  r   r
   r   s      ru   test_sBIGBIGzTestCorrSpearmanr.test_sBIGBIG  s%    OOC$aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sBIGLITTLEz!TestCorrSpearmanr.test_sBIGLITTLE  s%    OOC'aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sBIGHUGEzTestCorrSpearmanr.test_sBIGHUGE  %    OOC%aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sBIGTINYzTestCorrSpearmanr.test_sBIGTINY  r  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sBIGROUNDz TestCorrSpearmanr.test_sBIGROUND  s%    OOC&aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r  r   r
   r   s      ru   test_sLITTLELITTLEz$TestCorrSpearmanr.test_sLITTLELITTLE  s%    OOF6*aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sLITTLEHUGEz"TestCorrSpearmanr.test_sLITTLEHUGE  %    OOF4(aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sLITTLETINYz"TestCorrSpearmanr.test_sLITTLETINY  r$  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sLITTLEROUNDz#TestCorrSpearmanr.test_sLITTLEROUND  s%    OOF5)aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r  r   r
   r   s      ru   test_sHUGEHUGEz TestCorrSpearmanr.test_sHUGEHUGE  %    OOD&aDAc"r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sHUGETINYz TestCorrSpearmanr.test_sHUGETINY  r+  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sHUGEROUNDz!TestCorrSpearmanr.test_sHUGEROUND$  %    OOD'aDAc"r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r  r   r
   r   s      ru   test_sTINYTINYz TestCorrSpearmanr.test_sTINYTINY)  r+  r   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rc   r  r   r   r
   r   s      ru   test_sTINYROUNDz!TestCorrSpearmanr.test_sTINYROUND.  r0  r   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rc   r  r   r
   r   s      ru   test_sROUNDROUNDz"TestCorrSpearmanr.test_sROUNDROUND3  s%    OOE%(aDAc"r   c                     t        j                  t        t              }d}t        ||       t	        |j
                  |j                         y r   )rc   r  re   r   r   r   r   r   s      ru    test_spearmanr_result_attributesz2TestCorrSpearmanr.test_spearmanr_result_attributes8  s3    ooa#.
C,S__cmm4r   c                     g d}g d}t        j                  ||      }t        j                  t        j                  ||g      j                        }t        ||       y )Nr   r/   r0   r1   r2   r3   )r   r/   r0   r1   r3   r2   )rc   r  ri   r  r~  r   rm   x1x2res1res2s        ru   test_1d_vs_2dzTestCorrSpearmanr.test_1d_vs_2d>  sG    r2&rzz2r(3556d#r   c                    dD ]  }dt         j                  ddddg}dddddt         j                  g}t        j                  |||      }t        j                  t        j                  ||g      j
                  |      }t        ||        y )	N)r  r   r   r0   r1   r2   r3   r/   r   )ri   rj   rc   r  r  r~  r   )rm   r   r<  r=  r>  r?  s         ru   test_1d_vs_2d_nansz$TestCorrSpearmanr.test_1d_vs_2d_nansE  sw    /JRVVQ1a(BQ1a(B??2rjAD??2::r2h#7#9#9jQDD$' 0r   c                    t        j                  d      }| }t        j                  g d      }t        j                  |||g      j                  }t        j                  |      }t        j                  g dg dg dg      }t        j                  dt              }d|d	d
d	f<   d|d
d	d	f<   t        |j                  |       t        |j                  |       y )Nr3   )r   r   r/   r0   r2   r1   )r   r^   3+?)r^   r   3+)rD  rE  r   r0   r0   rN   g+Hs]s?r/   r   )ri   r   r   r  r~  rc   r  zerosfloatr   r   r   )rm   r<  r=  x3r   actualexpected_correxpected_pvalues           ru   
test_3colszTestCorrSpearmanr.test_3colsN  s    YYq\SXX()JJB|$&&#"5"6">"@ A ((67"/1Q3"/!Q((-87r   c           
         t        j                  t         j                  ddddddgdt         j                  ddd	ddgg d
g      j                  }t        j                  t         j                  t         j                  t         j                  gt         j                  t         j                  t         j                  gt         j                  t         j                  dgg      }t	        t        j                  |d      j                  |       t        j                  |d      j                  }t	        |d   d   |d   d   |d   d   fdd       y )Nr   r  rF   ffffff@      @ffffff"@ffffff@g333333@皙@)r8   r  ffffff@ffffff@       @rO  ffffff@r   r  r   r   r   r   r/   )gacJC?g%ln?g_0nYt!޿rC  rA  )ri   r   rj   r~  r   rc   r  r   )rm   r   r  r   s       ru   test_gh_9103zTestCorrSpearmanr.test_gh_9103^  s   HHrvvsCc3<BFFCc3<9; <<=A 	
 xx"&&"&&"&&1&&"&&"&&1&&"&&"-/ 0 	kBLL	 ooaF3==QCF1Is1vay9:	Gr   c                 R   d}t         j                  j                  d       t         j                  j                  |      }t         j                  j                  |      dkD  }|dkD  }t        j                  |      }t        j                  ||d      j                  }t         j                  ||<   t        j                  ||d      j                  }|j                  t         j                        }t        j                  ||d      j                  }g d}	t        |||g|	       y )Nrb  iH r  r8   r   r   )gonj?)Wn%?rZ  )ri   rl  r  r  r   rc   r  r   rj   astypeint32r   )
rm   r  r   r  r  r  r>  r?  res3expecteds
             ru   test_gh_8111zTestCorrSpearmanr.test_gh_8111m  s    
		vIINN1IINN1# VHHQKq!7AA vv!q!7AA HHRXXq!7AA:tT*H5r   N)&r   r   r   r   r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r!  r#  r&  r(  r*  r-  r/  r2  r4  r6  r8  r@  rB  rM  rX  r_  r   r   ru   r  r    s    #A	=KN,
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
5$(8 G6r   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d Zd Zd Zd Zd Zej(                  j+                  dd      d        Zy)TestCorrSpearmanr2z-Some further tests of the spearmanr function.c                     g d}g d}d}t        j                  ||      }t        |d   |d          t        |d   |d          y )Nr   r/   r0   r1   r2   r2   r3   r4   r5   r4   gh
C?gR?r   r   )rc   r  r
   rm   r<  r=  r^  r   s        ru   test_spearmanr_vs_rz&TestCorrSpearmanr2.test_spearmanr_vs_r  sG     >oob"%CFHQK0CFHQK0r   c                     t        t        j                  g g       t        j                  t        j                  f       y N)r   rc   r  ri   rj   r  s    ru   test_empty_arraysz$TestCorrSpearmanr2.test_empty_arrays  s$    U__R,rvvrvv.>?r   c                    t         j                  j                  d       t        j                  t         j                  j	                  ddd      t         j                  j	                  ddd      g      }ddgddgg}t        j
                  t         j                  j                  |      |      }d}t        j                  |d   |d         }t        |d   |d          t        |d   |d          y )	Nz  r     locscaler.   r   r  )gCzYW?ge*=r   )ri   rl  r  r   rn  dotlinalgcholeskyrc   r  r
   )rm   r   r  r^  r   s        ru   test_normal_drawsz$TestCorrSpearmanr2.test_normal_draws  s    
		tHHbii&&1AC&@ii&&1AC&@B Cc
c
FF299%%d+Q/?ooadAaD)CFHQK0CFHQK0r   c                 R    t        t        j                  g dg d      d   d       y )Nr   r   r/   r   r   )r
   rc   r  r  s    ru   test_corr_1zTestCorrSpearmanr2.test_corr_1  s    EOOIyA!DcJr   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  ||      t         j                  t         j                  f       t        t	        j
                  ||d      d       t        t        t        j
                  ||d       t        t        t        j
                  ||d       y )Nr   r6   r   r   )r   r   r   r   )	ri   r   rj   r	   rc   r  r   r   r   r  s     ru   test_nan_policiesz$TestCorrSpearmanr2.test_nan_policies  s    IIcNvv!5??1a02662662BC1@ 	"j%//1aGLj%//1aHMr   c                     t        j                  d      }t        j                  d      }t        t        t        j
                  ||       y )Nr         4@)ri   r   r   r   rc   r  r  s      ru   test_unequal_lengthsz'TestCorrSpearmanr2.test_unequal_lengths  s.    IIcNIIcNj%//1a8r   c                     g d}dddt         j                  g}t        j                  ||d      }t        j                  |d d |d d d      }t	        ||       y )Nr>  r5   r4   r3   r   r   r0   )ri   rj   rc   r  r   r;  s        ru   test_omit_paired_valuez)TestCorrSpearmanr2.test_omit_paired_value  sS    Arvvr2&9r"1vr"1v&AT4 r   c                 d   t        t        d            }t        t        d            }|d   |d   c|d<   |d<   |d   |d   c|d<   |d<   |d   |d   c|d<   |d<   |j                  t        j                         |j                  d       t        t        j                  ||d	
      d   d       y )N  r6   r   i  rX   i  i  r   r   r   gV-?)listr  r  ri   rj   r   rc   r  r  s      ru   #test_gh_issue_6061_windows_overflowz6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflow  s    ttqT1Q4
!ad#""qvD'1S6#$ 	
	EOOAqVDQGOr   c                 b   d}t        j                  t        j                  |      5  t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         t        j                  g dg d      \  }}t        |t        j                         t        |t        j                         d d d        y # 1 sw Y   y xY w)Nr  r   r/   r/   r/   r/   r   r/   )r  r  rc   r  r  r   ri   rj   )rm   warn_msgr   r  s       ru   	test_tie0zTestCorrSpearmanr2.test_tie0  s    /\\%44HE??9i8DAqBFF#BFF#??9i8DAqBFF#BFF#??9i8DAqBFF#BFF# FEEs   C4D%%D.c                     g d}g d}g d}g d}t        j                  ||      }t        j                  ||      }t        ||       y )Nr   r-  r   r  )r   r-  r-  r   )r   r:   r:   r  )rc   r  r   r   )rm   r   rn   xryrsrprs          ru   	test_tie1zTestCorrSpearmanr2.test_tie1  sB      !! __Q"^^B#B#r   c                     g d}g d}ddddt         j                  g}ddddt         j                  g}t        j                  ||      }t        j                  ||d	      }t	        ||       y )
N)r   r/   r:   r/   )r   r0   r:   r1   r   r/   r:   r0   r1   r   r   )ri   rj   rc   r  r   )rm   r<  ro   r=  rp   sr1sr2s          ru   	test_tie2zTestCorrSpearmanr2.test_tie2  sd     CBFF#CBFF# oob"%oob"8C%r   c                    t        j                  g dg dg      }t        j                  g dg dg      }t        j                  g dg dg      }d}t        j                  t        j
                  |      5  t	        j                  |d      \  }}t        |t         j                         t        |t         j                         t	        j                  |d      \  }}t        |t         j                         t        |t         j                         t	        j                  |d      \  }}t        |t         j                         t        |t         j                         d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r>  r  r   r   rP   	ri   r   r  r  rc   r  r  r   rj   )rm   z1z2z3r  r   r  s          ru   test_ties_axis_1z#TestCorrSpearmanr2.test_ties_axis_1  s    XX|\23XX|\23XX|\23/\\%44HE??2A.DAqBFF#BFF#??2A.DAqBFF#BFF#??2A.DAqBFF#BFF# FEEs   9C+E--E6c                 r   t        j                  g d      }t        j                  g d      }d}t        j                  t        j
                  |      5  t	        j                  ||      \  }}t        |t         j                         t        |t         j                         d d d        y # 1 sw Y   y xY w)N)
r   r   r   r   r   r   r   r   r   r   
r   gN}	?r   r   g	/`?gY%uX-H?gC1tq1?r   r   g*I?r  r   r  )rm   r   rn   r  r   r  s         ru   test_gh_11111z TestCorrSpearmanr2.test_gh_11111  s|    HHGHHH - . 0\\%44HE??1a(DAqBFF#BFF# FEEs   AB--B6c                     t        j                  g d      }t        j                  g d      }t        t        t        j
                  ||d       y )N)
r         @r-  r   r   r   r   r   r   r   r  r/   rP   )ri   r   r   r   rc   r  r  s      ru   test_index_errorz#TestCorrSpearmanr2.test_index_error
  s:    HHGHHH - . 	j%//1aa@r   c                    g d}g d}d}t        j                  ||d      }t        |d   |d          t        |d   d|d   dz  z
         t        j                  ||d	      }t        |d   |d          t        |d   |d   dz         t        j                  t
        d
      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nrc  rd  re  r9  r?  r   r   r/   r;  `alternative` must be 'less'...r   	ekki-ekki)rc   r  r
   r  r   r   rf  s        ru   test_alternativez#TestCorrSpearmanr2.test_alternative  s      ? oob"&9CFHQK0CFA!q$9: oob")<CFHQK0CFHQK!O4]]:-NOOOB< POOs   'C		Cr@  r  c                    g d}g d}|t         j                  gz   }|t         j                  gz   }t        t        j                  ||      t         j                  t         j                  f       t        j                  ||d|      }t        j                  |||      }t        ||       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   IxY w# 1 sw Y   y xY w)Nrc  rd  r   r   r@  r?  The input contains nan valuesr   r   r   r  )	ri   rj   r	   rc   r  r   r  r   r   )	rm   r@  r<  r=  x1nanx2nan
res_actualres_expectedrZ  s	            ru   test_alternative_nan_policyz.TestCorrSpearmanr2.test_alternative_nan_policy(  s     bffXbffX 	5??5%8266266:JK __UEf1<>
r2;G
L1 2]]:W5OOE5W(35 6
 1]]:W5OOE5[(35 65 65 65s   	D+D7+D47E N)r   r   r   r   rg  rj  rt  rw  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r   r   ru   ra  ra    s|    71@
1KN9
!P$$&$ 	$A=. [[],LM5 N5r   ra  c                  \   d} g d}g d}d}| D ]<  }t        j                  ||      }t        |d   |d          t        |d   |d          > g d}g d}d}| D ]<  }t        j                  ||      }t        |d   |d          t        |d   |d          > g d	}g d
}d}| D ]<  }t        j                  ||      }t        |d   |d          t        |d   |d          > g d}g d}d}| D ]<  }t        j                  ||      }t        |d   |d          t        |d   |d          > t        j                  d      }t        j                  d      }d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ |d   }|d   |d<   ||d<   d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ |d   }|d   |d<   ||d<   d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ t        j                  d      }t        j                  d      d d d   }d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ |d   }|d   |d<   ||d<   d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ |d   }|d   |d<   ||d<   d}| D ]>  }t        j                  |||      }t        |d   |d          t        |d   |d          @ t        g d      }t        g d      }d}t        t        j                  ||d      d   |       d}t        t        j                  ||d       d   |       |d   |d<   t        t        t         j                  ||d!"       t        t        t         j                  ||d#"       t        t        t         j                  ||d$       g d%}g d&}d'}t        j                  ||      }t        |d   |d          t        |d   |d          d(}	| D ]F  }t        j                  |||      }t        ||	       t        |j                  |j                         H | D ]  }t        t        j                  g d)g d)|      t        j                  t        j                  f       t        t        j                  g d*g d)|      t        j                  t        j                  f       t        t        j                  g d)g d*|      t        j                  t        j                  f        t        t        j                  g g       t        j                  t        j                  f       t        j                  j                  d+       t        j
                  t        j                  j                  ddd,-      t        j                  j                  ddd,-      g      }d.d/gd/d.gg}
t        j                   t        j"                  j%                  |
      |      }d0}t        j                  |d   |d         }t        |d   |d          t        |d   |d          t        t        j                  g d1g d1d      d   d.       t        t        j                  g d1g d1d       d   d2       t        j                  d3      }t        j                  |d4<   t'        t        j                  ||      t        j                  t        j                  f       t)        t        j                  ||d56      d7d89       t)        t        j                  ||d5d:;      d<d89       t        t        t         j                  ||d=6       t        t        t         j                  ||d>6       t        j                  d3      }t        j                  d?      }t        t        t         j                  ||       t        j                  g g       \  }}t        t        j                  |       t        t        j                  |       t        j                  dgdg      \  }}t        t        j                  |       t        t        j                  |       t        j                  d@t*        A      }t        j,                  j/                  |dB      }t        j                  d@t*        A      }t        j0                  |dCd  |d dC f      }t3        t        j4                  t        j                  ||      d                y )DN)r  c)r2   r/   r   r0   r3   r1   r4   r5   )r2   r/   r3   r0   r   r5   r4   r1   r  r   r   )	r   r2   r/   r   r0   r3   r1   r4   r5   )	r2   r/   r   r3   r0   r   r5   r4   r1   )r2   r/   r   r0   r3   r1   r4   )r2   r/   r3   r0   r   r4   r1   )gJ$I¿gmK?)r/   r   r0   r3   r1   r4   r5   )r/   r3   r0   r   r5   r4   r1   )gJkaa?r   rX   )r   紞xO~>)variantr/   )g?>?aV>r2   r3   )g}'}'?o&5>r^   )r  r  )g?>r  )g}'}'r  )
r   r/   r/   r1   r1   r3   r3   r5   r6   r6   )
r   r/   r1   r1   r1   r1   r5   r5   r5   rX   gok|?r  gffffff?r  rY  rW  bananarmsrZ   r/   r   rZ   r/   r   r1   r4   r   r   )g}+޿g`=i?r   r  r  rl  rm  rn  r   r  )g\zf?g^n)=rv  g#q?r   r6   r   r   )r   g/>rC  rA  rV  )r   rX  )r   g&?r   r   r{  r  rN   i  rc  )rc   
kendalltaur
   ri   r   r   r   r   r   r   r   r   rj   rl  r  rn  rq  rr  rs  r	   r   rH  mamasked_greaterconcatenater   isfinite)variantsr   rn   r^  tauxr   r  r<  r=  r   r  taup_values                ru   test_kendalltaur  P  s    H 	!A A Hq!$CFHQK0CFHQK0  	$A#A Hq!$CFHQK0CFHQK0  	AA /Hq!$CFHQK0CFHQK0  	AA %Hq!$CFHQK0CFHQK0  			"A
		"A )Hq!T2CFHQK0CFHQK0  	
!AQ4AaDAaD 8Hq!T2CFHQK0CFHQK0  	
!AQ4AaDAaD 8Hq!T2CFHQK0CFHQK0  			"A
		"ddA *Hq!T2CFHQK0CFHQK0  	
!AQ4AaDAaD 9Hq!T2CFHQK0CFHQK0  	
!AQ4AaDAaD 9Hq!T2CFHQK0CFHQK0  	,-A-.AH((As;A>IH((As;A>I Q4AaD*e..1WE *e..1XF *e..1eD
 
B	B:H


2r
"CA,A, +Jr2t4C,S__cmm4  U%%iDIffbff%	'U%%iDIffbff%	'U%%iDIffbff%	'  !!"b)BFFBFF+;< IINN4
"))""q"<))""q"<> 	?A#J#JD
ryy!!$'+A<H


1Q41
&CA,A, ((IsKAN((IsKAN"$ 			#A66AaDu''1-/?@E$$Qf='e5E$$Qf\R1?*e..1I*e..1J 			#A
		#A*e..15 ##B+LC!##QC!-LC! 			$e$A
Q%A
		$e$A
$%!ET(+,ABKK((1-a012r   c                     t         j                  j                  d       t        dd      D ]  } g }t        |       D ]  }||g|z  z  } t	        |      }t         j                  j                  |       t         j                  j                  |       t        j                  ||      }t        j                  ||      }t        |d   |d          t        |d   |d           y )N*   r/   rX   r   r   )
ri   rl  r  r  r  shufflemstats_basicr  rc   r
   )sr  r  r  r^  rJ  s         ru   test_kendalltau_vs_mstats_basicr  *  s    IINN21R[qA!QJA G
		!
		!**1a0!!!Q'F1Ix{3F1Ix{3 r   c                      g d} t         j                  dddg}t        j                  | |d      }t        j                  | dd  |dd        }t	        |j
                  |j
                  d       y )	Nr  333333@333333@r   r   r   r   r  )ri   rj   rc   r  r   r   )r   rn   r1r2s       ru   test_kendalltau_nan_2nd_argr  :  s_    A	c3A			!Q6	2B			!AB%12	'BBLL",,U;r   c                     dd l } | j                  d       g d}d}| j                  ||      }| j                  ||      }t        j                  ||      }t        |j                  d       t        |j                  dd	       y )
Nr   i_ r   r/   r0   r1   r2   r3   r4   i@ r  g*8_2\S?gd`TR?gMb`?r  )rl  r  choicesrc   r  r   r   r   )rl  classes	n_samplesr   rn   r   s         ru    test_kendalltau_gh18139_overflowr  D  st     
KK#GIw),Aw),A


1a
 CCMM#89 CJJT2r   c            	       h   e Zd Zd ZdZej                  ej                  ej                  gZg dZg dZ	g dZ
g dZg dZg dZg d	Zg d
Zd Z e eeedgdz               e ee ee      dgdz              z   Zej,                  j/                  de      d        Z e eeedgdz               e ee ee      dgdz              z   Zej,                  j/                  de      d        Z e eee	dgdz               e ee ee	      dgdz              z   Zej,                  j/                  de      d        Z e eee
dgdz               e ee ee
      dgdz              z   Zej,                  j/                  de      d        Z e eeedgdz               e ee ee      dgdz              z   Zej,                  j/                  de      d        Z  e eeedgdz               e ee ee      dgdz              z   Z!ej,                  j/                  de!      d        Z" e eeedgdz               e ee ee      dgdz              z   Z#ej,                  j/                  de#      d        Z$ e eeedgdz               e ee ee      dgdz              z   Z%ej,                  j/                  de%      d        Z& e eeedgdz               e ee ee      dgdz              z   Z'ej,                  j/                  de'      d        Z( e eedgdz               e eedgdz              z   Z)ej,                  j/                  de)      d        Z*ej,                  j/                  dd      ej,                  j/                  dd      d               Z+y )!TestKendallTauAlternativec                 P   g d}g d}t        j                  ||d      }|d   dkD  sJ t        j                  ||d      }t        |d   |d          t        |d   d|d   dz  z
         t        j                  ||d	      }t        |d   |d          t        |d   |d   dz         |j	                          t        j                  ||d      }|d   dk  sJ t        j                  ||d	      }t        |d   |d          t        |d   d|d   dz  z
         t        j                  ||d      }t        |d   |d          t        |d   |d   dz         t        j                  t        d
      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nrc  rd  r7  r?  r   r9  r   r/   r;  r  r   r  )rc   r  r   r   reverser  r   r   rf  s        ru   &test_kendalltau_alternative_asymptoticz@TestKendallTauAlternative.test_kendalltau_alternative_asymptoticW  s     ##BD{Q r26:SVXa[)AXa[1_ 56 r29=SVXa[)Aa0 	

 ##BD{Q r29=SVXa[)AXa[1_ 56 r26:SVXa[)Aa0]]:-NOR= POOs   :FF%)r9  r7  r;  )r   r   r8   )r   RUUUU?ZUUUU?)g~?r  r  )?r   r  )ˮ[?r   r  )g?gSǌ?gSǌ?)g:
?g3
?g<t'.?)gN  A?gss?gYss?c                     |rt        j                  |       }|dz  }t        j                  ||d|      }||f}t	        ||       y )Nr^   rY  rX  r@  )ri   r  rc   r  r   )	rm   r   rn   r@  revstat_expected
p_expectedr   r  s	            ru   
exact_testz$TestKendallTauAlternative.exact_test  sH    AARMq!GM$j0\*r   Fr0   Tzalternative, p_expected, revc                 \    dgdg}}t         j                  }| j                  ||||||       y )Nr   r/   )ri   rj   r  rm   r@  r  r  r   rn   r  s          ru   test_against_R_n1z+TestKendallTauAlternative.test_against_R_n1  s.    sQC11k3zJr   c                 D    ddgddg}}d}| j                  ||||||       y )Nr   r/   r0   r1   g?r  r  s          ru   test_against_R_n2z+TestKendallTauAlternative.test_against_R_n2  s.    1v1v1*1k3zJr   c                 D    g dg d}}d}| j                  ||||||       y )NrT  r   r  r  s          ru   test_against_R_c0z+TestKendallTauAlternative.test_against_R_c0  s&    )11k3zJr   c                 D    g dg d}}d}| j                  ||||||       y )Nr>  )r   r/   r1   r0   gVUUUUU?r  r  s          ru   test_against_R_c1z+TestKendallTauAlternative.test_against_R_c1  s&    \1*1k3zJr   c                 D    g dg d}}d}| j                  ||||||       y )Nrc  )r   r2   r1   r/   r0   r   r  r  s          ru   test_against_R_no_correlationz7TestKendallTauAlternative.test_against_R_no_correlation  s&    11k3zJr   c                 D    g dg d}}d}| j                  ||||||       y )Nr   r/   r0   r1   r2   r3   r4   r5   )r5   r3   r   r0   r/   r2   r1   r4   r   r  r  s          ru   test_against_R_no_correlationbz8TestKendallTauAlternative.test_against_R_no_correlationb  s'    ')A11k3zJr   c                 D    g d}g d}d}| j                  ||||||       y )N)	g333333F@g33333F@g33333D@gfffffJ@gYF@gF@gYI@gF@gN@)	g@@r:   rF   @r  g@ffffff@rU  gqq?r  r  s          ru   test_against_R_lt_171z/TestKendallTauAlternative.test_against_R_lt_171  s*     C9*1k3zJr   c                     t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }d}| j	                  ||||||       y )Nr   rb  gUm*,ri   rl  r  r  r  r  s          ru   test_against_R_lt_171bz0TestKendallTauAlternative.test_against_R_lt_171b  sQ    
		qIINN3IINN3,1k3zJr   c                     t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }d}| j	                  ||||||       y )Nr      gH4?r  r  s          ru   test_against_R_lt_171cz0TestKendallTauAlternative.test_against_R_lt_171c  sQ    
		qIINN3IINN3*1k3zJr   zalternative, revc                 n   t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }t	        j
                  ||d|      }t	        j
                  ||d|      }t        |d   |d          t        |d   |d   d       y )	Nr   i  rY  r  rV  r   rj  rA  )ri   rl  r  r  rc   r  r   r   )rm   r@  r  r   rn   res0r>  s          ru   test_gt_171z%TestKendallTauAlternative.test_gt_171  s    
		qIINN3IINN31W,791\,79T!Wd1g&Qat4r   rX  )rY  rV  r@  r  c                    g d}g d}|t         j                  gz   }|t         j                  gz   }t        j                  ||||      }t         j                  t         j                  f}t	        ||       t        j                  ||d||      }t        j                  ||||      }t	        ||       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   JxY w# 1 sw Y   y xY w)Nrc  r2   r3   r4   r5   r6   r  r   )r   rX  r@  r  r   r   r   r  )ri   rj   rc   r  r   r  r   r   )
rm   rX  r@  r<  r=  r  r  r  r  rZ  s
             ru   r  z)TestKendallTauAlternative.test_nan_policy	  s#    bffXbffX %%eU-3N
'
L1 %%eUv-3N
''Bv4?A
L1 2]]:W5UEg$*E 6
 1]]:W5UEk$*E 65 65 65s   D6E6D?EN),r   r   r   r  alternativesri   rj   p_n1p_n2p_c0p_c1p_no_correlationp_no_correlationb
p_n_lt_171p_n_lt_171bp_n_lt_171cr  r  r  reversed	case_R_n1r  r  r  r  	case_R_n2r  	case_R_c0r  	case_R_c1r  case_R_no_corrr  case_no_cor_br  case_R_lt_171r  case_R_lt_171br  case_R_lt_171cr  case_gt_171r  r  r   r   ru   r  r  V  s   '>h 4LFFBFFBFF#DD0D>D<=DJCKGK+ c,ugai89L(4.4&(CDEI [[;YGK HK
 c,ugai89L(4.4&(CDEI [[;YGK HK
 c,ugai89L(4.4&(CDEI [[;YGK HK
 c,ugai89L(4.4&(CDEI [[;YGK HK
 3|-=wqyIJSx8H/I"&+ ,,N [[;^LK MK
 #l,=wqyIJCh7H.I!%q* ++M [[;]KK LK
 #lJ	BCChz.BTF1HMNOM [[;]KK LK 3|[5'!)DESx/D"&+ ,,N [[;^LK MK 3|[5'!)DESx/D"&+ ,,N [[;^LK MK L5'!)45L4&(345K [[/=	5 >	5 [[X'>?[[],LME N @Er   r  c                     g d} g d}t        j                  | |      \  }}t        |d       t        t        j
                  |       t        j                  | |d      \  }}t        |d       t        t        j
                  |       t        j                  | |d       \  }}t        |d	       t        t        j
                  |       t        j                  | |      }d
}t        ||       t        |j                  |j                         t        j                  | |d       \  }}t        |d       t        t        j
                  |       t        j                  || d       \  }}t        |d       t        t        j
                  |       t        j                  | |d d      \  }}t        |d       t        t        j
                  |       t        j                  || d d      \  }}t        |d       t        t        j
                  |       t        j                  | |d      \  }}t        |d       t        t        j
                  |       t        j                  | |dd       \  }}t        |d	       t        t        j
                  |       t        j                  || dd       \  }}t        |d	       t        t        j
                  |       t        j                  t	        j                  | t        j                        |      \  }}t        |d       t        j                  t	        j                  | t        j                        |      \  }}t        |d       t        j                  t	        j                  | t        j                        t	        j                  |t        j                              \  }}t        |d       t        j                  g g       \  }}t        t        j
                  |       t        t        j
                  |       t        j                  dgdg      \  }}t        t        j
                  |       t        t        j
                  |       t        t        t         j                  ddgg d       t        t        t         j                  ddgddgdg       g d} ddddt        j
                  g}t        j                  | |      \  }}t        |d       ddt        j
                  ddg} t        j                  | |      \  }}t        |d       g d} dd d!dt        j
                  g}t        j                  | |      \  }}t        |d       d"d#t        j
                  d"d#g} t        j                  | |      \  }}t        |d       g d$} g d%}t        j                  | |      \  }}t        |d&       d"d#t        j
                  d"t        j
                  g} t        j                  | |      \  }}t        |d&       t        j
                  d d!t        j
                  t        j
                  g}t        j                  | |      \  }}t        |d&       y )'Nr  r  gs$F)additivegROoc                      yNr   r   r   s    ru   <lambda>z"test_weightedtau.<locals>.<lambda>6  s    Qr   )weigherr  r   )rankgڿgn)r  r  g @ڿg[đ(gIکnTc                      yr  r   r  s    ru   r  z"test_weightedtau.<locals>.<lambda>Q      r   )r  r  c                      yr  r   r  s    ru   r  z"test_weightedtau.<locals>.<lambda>T  r   r   rN   r   r   r   r   r/   r1   r4   rZ   r/   )      (@r-  r   r#  r-  r   r  r  r#  r-  )r#  r-  r   r#  r   )r   r  r  r   r   gt34+)rc   weightedtaur
   r   ri   rj   r   r   r   r  r   int16r   r   )r   rn   r  r  r   r   s         ru   test_weightedtaur&  ,  s   AA$$Q*LC12!$$QE:LC12!$$Q;?LC12! 

Aq
!C*JZ(#--0 $$Q5LC01!$$Q5LC01!$$QuELC12!$$QuELC12!$$Q6LC12!$$QkJLC12!$$QkJLC12!$$RZZ%DaHLC12$$RZZ%BAFLC12$$RZZ%D%'ZZ%DFLC12$$R,LC!$$aS1#.LC!*e//!QC*e//!Q!Q!EA	
Aq!RVVA$$Q*LC12	QAA$$Q*LC12#A	c3RVV$A$$Q*LC12	sBFFD#&A$$Q*LC12#A!A$$Q*LC01	sBFFD"&&)A$$Q*LC01	c266266*A$$Q*LC01r   c                      t        j                  dgdg       t        j                  dgdg       t        j                  t        j                  gdg       y )Nr   r   4   )rc   r$  ri   rj   r   r   ru   test_segfault_issue_9710r)    sD     
qcC5!	qcC5!	rvvh%r   c                  *   d} t        j                  | dz         j                  t              }t        j                  | dz         j                  t              }t         j                  |d<   t        j                  ||dd      \  }}t        |d       y )N   r   r^   rY  r   )rX  r   r   )ri   r   r[  rH  rj   rc   r  r   )r  r   rn   _rD  s        ru   test_kendall_tau_larger-    sr    A
		!a%&A
		!a%&AFFAbEq!GGGAtsr   c            
      z   d } d }t         j                  j                  d       t        dd      D ]  }g }t        |      D ]  }||g|z  z  } t	        |      }t         j                  j                  |       t         j                  j                  |       t        j                  t        |      t         j                        }t        d      D ]c  }dD ]=  } | |||||      }	t        j                  |||||      j                  }
t        |	|
       ? t         j                  j                  |       e 	 y )	Nc                 h   dx}x}x}x}}	t        t        t        |             t        t        |                   D ]  \  }
}|r |||
          |||         z   n |||
          |||         z  }||z  }| |
   | |   k(  r||z  }||
   ||   k(  r|	|z  }	| |
   | |   k  r||
   ||   k  s| |
   | |   kD  r||
   ||   kD  r||z  }| |
   | |   k  r||
   ||   kD  s| |
   | |   kD  s||
   ||   k  s||z  } ||z
  t        j                  ||z
        z  t        j                  ||	z
        z  S )Nr   )r   r  lenri   r   )r   rn   r  r  addtotconcdiscuvr  r  ws                ru   wkqz*test_weightedtau_vs_quadratic.<locals>.wkq  sh   $%%%d%T%AeCFmU3q6];FQ7:Q 747#33T!W%Q(88 1HCtqt|Qtqt|Qtad{qtad{adQqTkadQqTk	1!1!!qt!qt	 < trwwsQw//"''#'2BBBr   c                     d| dz   z  S )Nr   r   r   r  s    ru   r  z.test_weightedtau_vs_quadratic.<locals>.weigher  s    QU|r   r  r0   rX   rN   r/   r\   )ri   rl  r  r  r  r  r   r0  intprc   r$  r   r
   )r8  r  r  r  r  r  r  r,  r1  r^  rJ  s              ru   test_weightedtau_vs_quadraticr;    s    C  IINN21R[qA!QJA G
		!
		!yyQrww/qA$q!T7C8**1awDNN#Hf5 %
 IId#  r   c                       e Zd Zd Zd Zy)TestFindRepeatsc                 t    g d}t        j                  |      \  }}t        |g d       t        |g d       y )N)r   r/   r0   r1   r   r/   r0   r1   r   r/   r2   r>  )r0   r0   r/   r/   rc   find_repeatsr	   )rm   r  r   numss       ru   r  zTestFindRepeats.test_basic  s/    -&&q)	T3-4.r   c                 z    g dg fD ]2  }t        j                  |      \  }}t        |g        t        |g        4 y )N)rX   r  2      (   r?  )rm   r  repeatedcountss       ru   test_empty_resultz!TestFindRepeats.test_empty_result  s:    &+A$11!4Hfx,vr* ,r   N)r   r   r   r  rH  r   r   ru   r=  r=    s    /+r   r=  c                   8   e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  d      d	        Ze
j                  j                  d      d
        Ze
j                  j                  d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestRegressionc                    t        j                  d      j                  d      }d}t        j                  |      5  t        j                  |       d d d        t        j                  |d   |d          y # 1 sw Y   &xY w)Nr  r/   rX   zInference of the two sets...r   r   r   )ri   r   rg   r  deprecated_callrc   
linregressrm   r   rZ  s      ru   test_one_arg_deprecationz'TestRegression.test_one_arg_deprecation  sa    IIbM!!'*0##'2Q 31qt$ 32s   A88Bc                     t        j                  t        t              }t	        |j
                  d       t	        |j                  d       t	        |j                  d       t	        |j                  d       y )Nir   r   )	rc   rN  re   r   r   	interceptrvaluestderrintercept_stderrrm   rH  s     ru   test_linregressBIGXz"TestRegression.test_linregressBIGX  sR    !!!S)F,,h7FMM3/ 	FMM3/F33S9r   c                     t        j                  t        t              }t        |j                  d       t        |j
                  d       t        |j                  d       t        |j                  d       y )Nr   r   )rc   rN  re   r   rR  rS  rT  rU  rV  s     ru   test_regressXXzTestRegression.test_regressXX  sR    
 !!!Q'F,,c2FMM3/FMM3/F33S9r   c                     t        j                  t        t              }t	        |j
                  d       t	        |j                  d       y )Nr   )rc   rN  re   ZEROr   rR  rS  rV  s     ru   test_regressZEROXz TestRegression.test_regressZEROX  s4    
 !!!T*F,,c2FMM3/r   c                 T   t        j                  ddd      }dt        j                  ddd      z  dz   }|t        j                  t        j                  ddd            z  }t        j                  ||      }t
        }t        t        ||             t        |j                  d       y )Nr   rb  皙?rX   r  穷4_Qc?)
ri   linspacesinrc   rN  r#   r   
isinstancer   rT  )rm   r   rn   rH  lrs        ru   test_regress_simplez"TestRegression.test_regress_simple  s    KK3$"++ac**R/	RVVBKK2s+,,!!!Q'
62&'FMM+@Ar   c                    t        j                  ddd      }dt        j                  ddd      z  dz   }|t        j                  t        j                  ddd            z  }t        j                  t
        d      5  t        j                  ||d	       d d d        t        j                  ||d
	      }t        j                  ||d	      }t        |j                  d|j                  dz  z
         t        j                  ||d	      }t        |j                  |j                  dz         |j                  |j                  cxk(  r|j                  k(  sJ  J y # 1 sw Y   xY w)Nr   rb  r^  rX   r  r  r   r  r?  r7  r9  r   r/   r;  )ri   r`  ra  r  r   r   rc   rN  r   r   rS  )rm   r   rn   r>  r?  r]  s         ru   test_regress_alternativez'TestRegression.test_regress_alternative  s   KK3$"++ac**R/	RVVBKK2s+,,]]:-NOQ{; P 1+> 1&9Q$++/%:; 1)<T[[1_5{{dkk8T[[88888 POs   =EE'c                 r   g d}g d}t        j                  ||d      }t        |j                  d       t        |j                  d       t        |j
                  t        j                  d             t        |j                  d       t        |j                  d	       t        |j                  d
       y )N)
                              )
rM   Q   8   [   /   9   r  H   >   r  r7  r?  gؗh?gJK@:Cgag?g->g5ՒO?g]؊E @)rc   rN  r   sloperR  rS  ri   r   r   rT  rU  )rm   r   rn   r   s       ru   test_regress_against_Rz%TestRegression.test_regress_against_R$  s     ?4q!=		?3'89

BGGM$:;

$56

O4,,o>r   ignore::DeprecationWarningc                 v   t        j                  ddd      }dt        j                  ddd      z  dz   }|t        j                  t        j                  ddd            z  }t        j                  ||f      }t	        j
                  |      }t        |j                  d       t        |j                  d       y )Nr   rb  r^  rX   r  r_  8?)	ri   r`  ra  vstackrc   rN  r   rT  rU  )rm   r   rn   rowsrH  s        ru   test_regress_simple_onearg_rowsz.TestRegression.test_regress_simple_onearg_rows9  s     KK3$"++ac**R/	RVVBKK2s+,,yy!Q !!$'FMM+@AF335JKr   c                    t        j                  ddd      }dt        j                  ddd      z  dz   }|t        j                  t        j                  ddd            z  }t        j                  t        j                  |d      t        j                  |d      f      }t        j                  |      }t        |j                  d       t        |j                  d       y )	Nr   rb  r^  rX   r  r   r_  r}  )
ri   r`  ra  hstackexpand_dimsrc   rN  r   rT  rU  )rm   r   rn   columnsrH  s        ru   test_regress_simple_onearg_colsz.TestRegression.test_regress_simple_onearg_colsH  s    KK3$"++ac**R/	RVVBKK2s+,,))R^^Aq12>>!Q3GHI!!'*FMM+@AF335JKr   c                 h    t        t        t        j                  t	        j
                  d             y )NrF  )r   r   rc   rN  ri   r  r  s    ru   test_regress_shape_errorz'TestRegression.test_regress_shape_errorU  s     	j%"2"2BGGFODr   c                    t        j                  d      }t        j                  dd      }|ddgxx   dz  cc<   |ddgxx   dz  cc<   t        j                  ||      }d } ||j                  d	        ||j
                  d
        ||j                  d        ||j                  d        ||j                  d        ||j                  d       y )NrY   r2   r   r   r   r^   c                     t        | |d      S )NrV   rR   )r   r   rn   s     ru   	assert_aez1TestRegression.test_linregress.<locals>.assert_aeh  s    &q!R88r   r   rF   gePUn?g.bt>gڽE?gʺL7?)
ri   r   rc   rN  ry  rR  rS  r   rT  rU  )rm   r   rn   rH  r  s        ru   test_linregresszTestRegression.test_linregress[  s    IIbMIIa	A+!	A+!!!!Q'	9&,,$&""C(&--!12&--1&--!56&))+>?r   c                    d\  }}t        j                  |d|z  |      }t        j                  d|z  ||      }t        j                  ||      }t	        |j
                  dk\         t        |j
                  d       t	        t        j                  |j                                t	        t        j                  |j                                y )N)gJr 11順 r/   r^   )
ri   r`  rc   rN  r   rS  r   r  rT  rU  )rm   r  r  r   rn   rH  s         ru    test_regress_simple_negative_corz/TestRegression.test_regress_simple_negative_corq  s     1KK1q5!$KKAq!$!!!Q' 	#$FMM2. 	BHHV]]++,BHHV44556r   c                 b   t        j                  ddd      }dt        j                  ddd      z  dz   }|t        j                  t        j                  ddd            z  }t        j                  ||      }t
        }t        t        ||             d}t        ||       dt        |      v sJ y )Nr   rb  r^  rX   r  )ry  rR  rS  r   rT  rU  )
ri   r`  ra  rc   rN  r#   r   rb  r   dir)rm   r   rn   rH  rc  r   s         ru   !test_linregress_result_attributesz0TestRegression.test_linregress_result_attributes  s    KK3$"++ac**R/	RVVBKK2s+,,!!!Q' 
62&' J
FJ/!S[000r   c                 
   t        j                  d      }t        j                  dd      }t        j                  ||      }t	        |j
                  d       t	        |j                  d       t	        |j                  d       y )Nr/   r0   r2   r   )ri   r   rc   rN  r   r   rT  rU  rm   r   rn   rH  s       ru   test_regress_two_inputsz&TestRegression.test_regress_two_inputs  s`    IIaLIIaO!!!Q' 	FMM3/ 	FMM3/F33S9r   c                    t        j                  d      }t        j                  d      }t        j                  ||      }t        |j                  d       t        |j                  d       t        |j                  d       y )Nr/   r   r   )	ri   r   r  rc   rN  r   r   rT  rU  r  s       ru   'test_regress_two_inputs_horizontal_linez6TestRegression.test_regress_two_inputs_horizontal_line  s^    IIaLGGAJ!!!Q' 	FMM3/ 	FMM3/F33S9r   c                 N   g d}g d}t        j                  ||      }t        |j                  d       t        |j                  d       t        |j
                  dz  d       t        |j                  d       t        |j                  d       t        |j                  d	       y )
N)$r^  gfffffu@ǧ]@g̤@333333$@g     Pl@gfffff҄@gfffff"@g	|@g     H@gq@皙?333333?g     <@g33333ׄ@g      u@g     {@g333333'@g     `@33333l@gfffff@g̼@g^@r  r  gffffff@g1u@g@g     8@g     X@g333333&@g33333]@gfffffl@g@fffff|@r8   )$r  g,u@gfffff]@     @rQ  r  g     @     4@g|@33333W@gy@r  r  gP@gfffff@4u@r  g%@gm@gl@g     0@gfffffƋ@gfffff]@r  r  gl@r  r  r  r  gffffff$@gffffff]@g̜l@g33333@g33333|@r^  g?g!пr/   gpX?r   gh-h*<?gg?)	rc   rN  r   ry  rR  rS  r   rT  rU  r  s       ru   test_nist_norriszTestRegression.test_nist_norris  s    4
4
 !!!Q'FLL*:;F,,.@AFMM1,.?@FMM3/FMM+;<F335EFr   c                    t        j                  ddd      }dt        j                  ddd      z  dz   }|t        j                  t        j                  ddd            z  }t        j                  ||      }t        j
                  ||d      }t        |j                  |d          t        |j                  |d          y )Nr   rb  r^  rX   r  r   )	ri   r`  ra  rc   rN  polyfitr   ry  rR  )rm   r   rn   rH  polys        ru   test_compare_to_polyfitz&TestRegression.test_compare_to_polyfit  s    KK3$"++ac**R/	RVVBKK2s+,,!!!Q'zz!Q" 	FLL$q'2F,,d1g6r   c                 D    t        t        t        j                  g g        y ri  )r   r   rc   rN  r  s    ru   test_empty_inputzTestRegression.test_empty_input  s    j%"2"2B;r   c                    t        j                  d      }t         j                  |d<   t        j                  d      5  t	        j
                  ||      }d d d        t        }t        t        |             t        |t         j                  fdz         t        |j                  t         j                         y # 1 sw Y   gxY w)Nr   r6   ignoreinvalidr2   )ri   r   rj   errstaterc   rN  r#   r   rb  r	   r   rU  )rm   r   rH  rc  s       ru   test_nan_inputzTestRegression.test_nan_input  s    IIcNvv![[*%%a+F + 
62&'6BFF9Q;/V,,bff5 +*s   B<<Cc                     t        j                  d      }t         j                  j                  d      }d}t        t        |      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)NrX   z$Cannot calculate a linear regressionr   )ri   rG  rl  r   r   rc   rN  rm   r   rn   r   s       ru   test_identical_xzTestRegression.test_identical_x  sN    HHRLIIR 4:S1Q" 211s   A((A1N)r   r   r   rP  rW  rY  r\  rd  rf  rz  r  r  filterwarningsr  r  r  r  r  r  r  r  r  r  r  r  r  r   r   ru   rJ  rJ    s    %:
:*0	B9*?* [[ <=
L >
L [[ <=L >L [[ <=E >E
@,7$1 ::G(
7<6#r   rJ  c                     t        j                  g d      \  } }}}t        | d       t        |d       d}t        j                  t
        |      5  t        j                  g dd       d d d        t        j                  g dd      \  } }}}t        | d       t        |d       g d	}g d
}t        j                  ||dd      \  } }}}t        | d       t        |d       t        |dd       t        |dd       t        j                  ||dd      \  } }}}t        | d       t        |d       t        |dd       t        |dd       y # 1 sw Y   xY w)Nr   r   r   r8   zHmethod must be either 'joint' or 'separate'.'joint_separate' is invalid.r   joint_separaterW  jointr   )r   r/   r0   r1   rX   rZ      )r6   r     r  -   7   N   gQ?separater1   r  gQ@r/   rR   gGz@rP  )rc   theilslopesr   r  r   r   )ry  rR  lowerupperr   r   rn   s          ru   test_theilslopesr    sB   %*%6%6w%?"E9eUs#	3'*C	z	-),<= 
. &+%6%6y>E&G"E9eUs#	3' 	!A#A%*%6%6q!T>H&J"E9eUq!	3'tQ/tQ/%*%6%6q!T>E&G"E9eUq!	3'tQ/tQ// 
.	-s   EE c                  (   g d} t        j                  | d      \  }}}}t        |t        j                  g d             t        j                  | dd      \  }}}}t        |dk(         d}t        j                  | dd      }t        ||       y )	Nr   r1   r/   r   r0   r   r1   numbins)r   r  rF   rP  )r9   r2   )r  defaultreallimitsr0   )cumcountr   binsizeextrapoints)rc   cumfreqr   ri   r   r   r   )r   cumfreqslowlimr  r  r   r   s          ru   test_cumfreqr  	  s    A-2]]1a-H*Hfg{h1A(BC-2]]	1.2*Hfg{K1 FJ
--1
ACZ(r   c                  6   t        j                  g d      } t        j                  | d      \  }}}}t	        |t        g d             d}t        j                  | d      }t        ||       t        j                  g dd      \  }}}}t	        ||       y )Nr  r1   r  )r8   K}\UU?r  r  )	frequencyr   r  r  )ri   r   rc   relfreqr   r   )r  relfreqsr  r  r  r   r   	relfreqs2s           ru   test_relfreqr  	  s    
#$A-2]]1a-H*Hfg{h#$MNP GJ
--1
%CZ( /4mm<NDE/G+Ivwh	2r   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestScoreatpercentilec                 :    g d| _         g d| _        g d| _        y )N)r0   r1   r2   rX   r_   r3   )r0   r  r5   r4   r1   r/   r   )r   r1   r2   rX   r_   r  r  r  )a1a2a3r  s    ru   setup_methodz"TestScoreatpercentile.setup_method'	  s    *,1r   c                     t        d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       y )	Nr5   r8   r   r   rb  r;   rC        ?)r   r   rc   scoreatpercentiler  s     ru   r  z TestScoreatpercentile.test_basic,	  sT    1IOU,,Q2B7U,,Q4c:U,,Q3T:r   c           	      F   t         j                  }t         |t        t	        d            d      d       t         |t        t	        d            dd      d       t         |t        t	        d            dd      d       t         |t        j                  g d      dd	      d
       t         |t        j                  g d      dd      d       t         |t        t	        d            dd      d       t         |t        t	        d            ddd      d       t         |t        t	        d            ddd      d       t         |t        j                  g d      dd	d      d
       t         |t        j                  g d      ddd      d       y )NrX   rC  r<   r/   r4   rb  r   r5   )limitr   rX   rb  rX   rb  r  r   rX   r=   fractioninterpolation_methodr  r  rc   r  r   r  r  ri   r   rm   scoreatpercs     ru   test_fractionz#TestScoreatpercentile.test_fraction2	  sP   -- 	[eBi"5s;[eBi"e<cB[eCj!12VDcJ[+!6HErJ[+!6FCSI 	[eBi":V	[eBi"F6@B	 	[eCj!12V6@B	 	[+!6I6@B	 	[+!6F6@B	r   c           	      X   t         j                  }t         |t        t	        d            dd      d       t         |t        t	        d            dd      d       t         |t        t	        d            ddd      d       t         |t        t	        d            ddd	      d       t         |t        t	        d
            ddd      d       t         |t        t	        d
            ddd      d       t         |t        j                  g d      ddd      d       t         |t        j                  g d      ddd	      d
       t         |t        j                  g d      ddd      d       t         |t        j                  g d      ddd	      d       y )NrX   rC  r  r  r1   higherr2   r  r  rb  r  r  r  r  r   r  r  s     ru   test_lower_higherz'TestScoreatpercentile.test_lower_higherL	  s~   -- 	[eBi"6=?@A	C[eBi"6>@AB	D[eBi"e6=?@A	C[eBi"E6>@AB	D[eCj!12u6=?@A	C[eCj!12u6>@AB	D[,!7Y6=?@B	D[,!796>@AD	F[,!7W6=?@A	C[,!776>@AC	Er   c           	      *   t        d      dz  }t        j                  g d      }t        j                  |g d      }t        ||       t        t        |t        j                               t        t        j                  |t        j                  g d            |       t        j                  t        j                   d      j                  d      t        j                  g d      d	      }t        g d
g dg dg dg      }t        ||       y )Nr5   r8   )r   r;   r  )r   rb  rC  rZ   r0   r1   )r   r   rb  rb  r   rP   )r   r1   r5   )Q?gQ@g(\ @r0   r4   rY   )
r   ri   r   rc   r  r   r   rb  ndarrayrg   )rm   r   r^  r   r?  	expected2s         ru   test_sequence_perz'TestScoreatpercentile.test_sequence_pere	  s    1IO88N+%%a6X&
3

+,//288L3IJ 	" &&ryy}'<'<U'C')xx0@'AK9-%%' (	 	i(r   c                     t         j                  }t        d      j                  dd      }t	         ||d      g d       g dg dg dg}t	         ||dd	
      |       g dg dg dg}t	         ||dd
      |       t        g dg dg dg dg dg      }t        j                  |d      }t	        |j                  d       t	        |d       t        j                  |dd	
      }t	        |j                  d       t	        |g d       y )NrZ   r0   r1   )r  rC  rb  )g      @r=         &@)r/   r0   r1   r2   r1   r2   r3   r4   )r5   r6   rX   rY   r   rP   )      ?g      @g     !@)r9   r=         #@r  r   r   r   r   )r1   r1   r0   rC  r   r   r0   )rc   r  r   rg   r   r   r  )rm   r  r   r0r  scores         ru   	test_axiszTestScoreatpercentile.test_axisw	  s    --2Jq!$[M24EFL.9[M:B? /:>[M:B?9	 
 ''2.U[["%UC ''2A6U[[$'UI&r   c                     t        t        t        j                  ddgdd       t        t        t        j                  dgd       t        t        t        j                  dgd       y )Nr   r/   rs  r   r  e   r^   )r   r   rc   r  r  s    ru   test_exceptionz$TestScoreatpercentile.test_exception	  sK    j%"9"9Aq62+3	5j%"9"9A3Dj%"9"9A3Cr   c                 f   t        t        j                  g d      t        j                         t        t        j                  t        j
                  g g g      d      t        j                         t        t        j                  g ddg      t        j                  t        j                  g       y )NrC  c   )r   rc   r  ri   rj   r   r  s    ru   
test_emptyz TestScoreatpercentile.test_empty	  sm    U,,R4bff=U,,RXXr2h-?DbffMU,,R"b:RVVRVV<LMr   N)r   r   r   r  r  r  r  r  r  r  r	  r   r   ru   r  r  &	  s-    2
;4E2)$'0DNr   r  c            
       
   e Zd Zd Zd Zd Zd Zej                  j                  d e
j                  dd            d        Zd	 Zd
 Zej                  j                  dg dde
j                  ddddgg dde
j                  ddgg      ej                  j                  dddg      d               Zej                  j                  d e
j                  dd            e
j"                  fd       Zd Zd Zej                  j                  dddg      d        Zd Zej                  j/                  d      ej                  j                  d e
j0                  d        e
j0                  d!      g      d"               Zd# Zy$)%TestModec                    t        j                  t        t              5  t	        j
                  g       \  }}d d d        t        t        j                  g              t        t        j                  g              y # 1 sw Y   HxY wNr   )	r  r  r   r   rc   moder   ri   r   rm   valsrG  s      ru   r	  zTestMode.test_empty	  sW    \\,4IJ ::b>LD& KT288B<(VRXXb\* KJs   B  B	c                     t        j                  d      \  }}t        |t        j                  dg             t        |t        j                  dg             y )Nr  r   )rc   r  r   ri   r   r  s      ru   r  zTestMode.test_scalar	  s;    zz"~fT288RD>*VRXXqc]+r   c                 r    g d}t        j                  |      }t        |d   d       t        |d   d       y )Nr0   r2   r   rX      r0   r/   r3   r5   r3   rX   r3   r   r3   r   r0   rc   r  r   )rm   data1r  s      ru   r  zTestMode.test_basic	  s1    7zz% T!Wa T!Wa r   c           
         g d}g d}g d}g d}g d}t        j                  |||||g      }t        j                  |d d      }t	        |d   t        j                  d	gg             t	        |d
   t        j                  dgg             t        j                  |dd      }t	        |d   t        j                  g dg             t	        |d
   t        j                  g dg             t        j                  |d
d      }t	        |d   t        j                  dgdgdgd	gd	gg             t	        |d
   t        j                  dgdgdgdgdgg             y )N)rX   rX   rD  rE  )rX   rX   rX   rX   )r  rX   r  r  )rD  rD  rD  rD  )rE  rD  rD  rD  TrQ   keepdimsr   rD  r   r5   )rX   rX   rD  rD  )r/   r0   r0   r/   rX   r  r/   r1   r0   )ri   r   rc   r  r   )rm   r  data2data3data4data5arrr  s           ru   	test_axeszTestMode.test_axes	  s+        hhueUE:;zz#D48T!Wbhhv./T!Wbhhuo.zz#A5T!Wbhh(8'9:;T!Wbhh~67zz#A5T!WbhhrdRD2$'EFGT!WbhhaS1#sQC'@ABr   rQ   r   c                 <   t         j                  j                  d       t         j                  j                  dddd      }t	        j
                  ||j                  |z         }t	        j
                  ||      }t         j                  j                  ||       y )N:rX   rY   rZ   r[   rP   )	ri   rl  r  r  rc   r  ndimr  r	   )rm   rQ   r  r  r>  s        ru   test_negative_axes_gh_15375z$TestMode.test_negative_axes_gh_15375	  sf    
		y!IINN2r2r*zz!!&&+.zz!$'


%%dD1r   c                     g d}g }t        j                  |      }d}t        ||       t        j                  t
        t              5  t        j                  |      }d d d        t        |       y # 1 sw Y   xY w)Nr  )r  countr   )rc   r  r   r  r  r   r   )rm   r  r  rJ  r   actual2s         ru   test_mode_result_attributesz$TestMode.test_mode_result_attributes	  sa    7E"&
FJ/\\,4IJjj'G KGZ0 KJs   	A44A=c                 J   dt         j                  dddddddddddg}t        j                  |      }t	        |d	       t        j                  |d
      }t	        |d	       t        t        t        j                  |d       t        t        t        j                  |d       y )Nr0   r2   r   rX   r  r/   r3   r5   )r3   r0   r   r   r   r   )ri   rj   rc   r  r   r   r   )rm   r  rJ  s      ru   test_mode_nanzTestMode.test_mode_nan	  s|    BFFAq"b!Q1aQ?E"VV$Ef5VV$j%**eHj%**eIr   data)r0   r2   r   r   r0   r0   r2   r   )r0   r2   r   r  FTc                 |    t        j                  |d|      }|rt        |d   d   d       y t        |d   d       y )Nr   )r   r  r   r   r  )rm   r+  r  rH  s       ru   test_smallest_equalzTestMode.test_smallest_equal	  s9     DVhG1q)A&r   r_   c                    t         j                  j                  d      }|j                  d      j	                  |      }t        j                  ||d      }t        |j                        }|j                  |       t         j                  j                  |j                  j                  |       t         j                  j                  |j                  j                  |       y )Nr"  r0   r1   r2   rd  Fr  )ri   rl  rm  uniformr[  rc   r  r  r  popr  r	   r&  )rm   rQ   rO   rq  r  r   reference_shapes          ru   test_mode_shape_gh_9955z TestMode.test_mode_shape_gh_9955	  s    ii##I.KKYK'..u5jj6qww-D!


%%chhnnoF


%%ciiooGr   c                     dt         j                  dt         j                  g}t        j                  |      }t        j                  |j                        r|j
                  dk(  sJ y Nr/   r   )ri   rj   rc   r  r  r&  )rm   r  r   s      ru   !test_nan_policy_propagate_gh_9815z*TestMode.test_nan_policy_propagate_gh_9815	  sI     266"jjmxx!cii1n44nr   c                 .   t        j                  d      }t        j                  |dd      }|j                  j                  |j
                  j                  cxk(  rdk(  sJ  J t        j                  |dd      }|j                  j                  |j
                  j                  cxk(  rdk(  sJ  J dddt         j                  gddt         j                  dgg}t        j                  |dd      }t        |j                  ddg       t        |j
                  d	dg       t        j                  |dd      }t        |j                  dgdgg       t        |j
                  d	gdgg       t        j                  |      }t        j                  |d d      }t        j                  |j                         d
      }t        ||       |j                  j                  |j                  j                  cxk(  rdk(  sJ  J t        j                  |d d      }t        j                  |j                         d
      }t        |j                  j                         |j                  j                                |j                  j                  dk(  sJ t        |j
                  j                         |j
                  j                                |j
                  j                  dk(  sJ dt         j                  t         j                  t         j                  dgt         j                  t         j                  t         j                  t         j                  d	gdd	t         j                  ddgg}t        j                  |ddd      }t        |j                  g d       t        |j
                  g d       t        j                  |ddd      }t        |j                  dgd	gdgg       t        |j
                  d	gdgd	gg       t        j                  |      }t        j                  |d dd      }t        j                  |j                         dd      }t        ||       |j                  j                  |j                  j                  cxk(  rdk(  sJ  J t        j                  |d dd      }t        j                  |j                         dd      }t        |j                  j                         |j                  j                                |j                  j                  dk(  sJ t        |j
                  j                         |j
                  j                                |j
                  j                  dk(  sJ y )N)r   r/   r0   r   r   Fr  )r   r0   r   T)r   r   r0   r   r0   r/   r  r   r   r   r2   r   )rQ   r  r   )r   r/   r2   )r/   r   r/   )r  r   )ri   rG  rc   r  r  r&  rj   r	   r   r  r   )rm   r  r   rs  s       ru   test_keepdimszTestMode.test_keepdims	  s   HH\"jjU3xx~~=I=====jjT2xx~~@L@@@@@ ArvvArvvq 12jjU3388aV,399q!f-jjT2388qcA3Z0399sQCj1HHQKjj6jjU33$xx~~5255555jj5jjT2SXX^^%sxx~~'78xx~~'''SYY__&		(9:yy&((( +ffbffbffbffa0BFFAq!# jjUvF388Y/399i0jjTfE388qcA3_5399sQC!o6HHQKjj&IjjUvF3$xx~~5255555jjHjjTfESXX^^%sxx~~'78xx~~'''SYY__&		(9:yy&(((r   r   r  r   c                    d}t        j                  |      }t         j                  |d<   t        j                  |dd|      }t        |j                  g d       t        |j                  g d       t        j                  dt         j                  fd	t         j                  d
fg      }t        j                  d|      }d}t        j                  t        |      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)N)r1   r0   r  r   F)r  rQ   r  r   r  r/   r0   r0   r0   asdfqwerr   rX   rN   z0Argument `a` is not....|An argument has dtype...r   r   )ri   r  rj   rc   r  r	   r&  rO   uint8r   rG  r  r   	TypeError)rm   r   r  r+  r   my_dtypetestrZ  s           ru   test_gh16955zTestMode.test_gh169559
  s     wwu~VVT
jj4a%JO388\2399l3 88fbhh/&"**d1KLMxx(+D]]9G4JJt
3 544s    DD
c                 ~   t        j                  t        t              5  t	        j
                  g       }d d d        t        j                  df}t        |       t        j                  t        t              5  t	        j
                  t        j                  gd      }d d d        t        ||       g dt        j                  t        j                  t        j                  gg}t        j                  t        t              5  t	        j
                  |dd      }d d d        dt        j                  gd	dgf}t        ||       t	        j
                  |dd
      }dt        j                  gd	dgf}t        ||       t        j                  g g g      }t        j                  t        t              5  t	        j
                  |d      }d d d        t        j                  t        j                  gddgf}t        ||       y # 1 sw Y   xY w# 1 sw Y   yxY w# 1 sw Y   xY w# 1 sw Y   axY w)Nr   r   r   r   )r   r{  r{  r   r  r  r/   r  r0   rP   )r  r  r   r   rc   r  ri   rj   r   r   r   r   r   )rm   r   rs  r  zs        ru   test_gh9955zTestMode.test_gh9955K
  s    \\,4IJ**R.C KvvqkS#\\,4EF**bffX&9C GS#rvvrvvrvv67\\,4EF**QQ6:C GBFF|aV$S#jj{;BFF|aV$S#HHb"X\\,4IJ**QQ'C K!Q(S#/ KJ
 GF
 GF KJs/   H;'HH&;H3HH#&H03H<zignore::RuntimeWarningrE  r"  rv  c                    |j                   dk(  rAt        j                  t        t              5  t        j                  |d d      }d d d        nt        j                  |d d      }t        j                  |d d      }d   j                  |d   j                  cxk(  r|j                  cxk(  rdk(  sJ  J y # 1 sw Y   \xY w)Nr   r   Tr  r   r  )
r.   r  r  r   r   rc   r  ri   rh   r  )rm   rE  r   rs  s       ru   test_gh17214zTestMode.test_gh17214h
  s     66Q;08MNjj= ON **QTD9CggadT21v||s1v||EsyyEIEEEEE ONs   B<<Cc                    t         rdnd} G d d      }t        j                  t        |      5  t	        j
                   |t        j                  d                   d d d        t        j                  t        |      5  t	        j
                  t        j                  dt                     d d d        y # 1 sw Y   \xY w# 1 sw Y   y xY w)Nz'...only boolean and numerical dtypes...z*Argument `a` is not recognized as numeric.c                       e Zd Zd ZddZy)8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikec                     || _         y ri  )_xr  s     ru   __init__zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__x
  s	    r   Nc                 @    | j                   j                  t              S ri  )rM  r[  object)rm   rO   r*   s      ru   	__array__zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__{
  s    ww~~f--r   )NN)r   r   r   rN  rQ  r   r   ru   ArrLikerK  w
  s    .r   rR  r   r0   rN   )	r-   r  r   r@  rc   r  ri   r   rP  )rm   rZ  rR  s      ru   test_raise_non_numeric_gh18254z'TestMode.test_raise_non_numeric_gh18254s
  s    @O<D 		. 	. ]]9G4JJwryy|,- 5]]9G4JJryy&12 54 5444s   /B:/C:CCN)r   r   r   r	  r  r  r  r  r  r  ri   r   r$  r(  r*  rj   r-  r   r3  r6  r:  rC  rF  r  emptyrH  rS  r   r   ru   r  r  	  s   +,
!C( [[VYRYYr1%562 721J [[V	
BFFAq!Q	
BFFAq	&  [[Z%7' 8' [[VYRYYr1%5624** H 7H5:)x [[\K+@A4 B4": [[ 89[[S8288I#68K"LMF N :F3r   r  c                   F    e Zd Zg dZdZd Zd Z eddg      d        Zy	)
TestSEMr  r  c                    |j                  | j                        d   }t        |      r>t        j                  t
        t              5  t        j                  |      }d d d        nft        j                  j                         5 }|j                  t               |j                  t               t        j                  |      }d d d        |j                        sJ y # 1 sw Y   xY w# 1 sw Y   )xY w)Nr   r   )r  scalar_testcaser+   r  r  r   r   rc   semri   r  r   r   UserWarningrl   r  )rm   r  rX  rn   rt   s        ru   test_sem_scalarzTestSEM.test_sem_scalar
  s     **T%9%9:2>B<08MNIIo. ON --/3

;'

>*IIo. 0 xx{{ ON 0/s   	C"A C."C+.C7c                 8   |j                  | j                        }t        j                  |      }t	        ||j                  d             t        | j                        }t	        t        j                  |d      ||dz
  z  dz  z  t        j                  |d             |j                  d      }|j                  |dk(  |j                  |j                        |      }t        t        j                  |      |j                  |j                               y )Ng㝎?r   rx   r/   r8   r   r6   )
r  testcaserc   rY  r'   r0  r   whererj   r(   )rm   r  r]  rn   r  r   s         ru   test_semzTestSEM.test_sem
  s    ::dmm,IIh2::l34		(3q!A#wnD		(3	5 IIcNHHQ!VRZZ/3		!bjj&89r   Tz(`nan_policy` only supports NumPy backendr   r   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  |d      d       t        t        t        j
                  |d       t        t        t        j
                  |d       y )Nr   r6   r   r   gH=6?r   r   )ri   r   rj   r   rc   rY  r   r   )rm   r  r   s      ru   test_sem_nan_policyzTestSEM.test_sem_nan_policy
  sX     IIcNvv!UYYqV46HIj%))Q7Cj%))Q8Dr   N)	r   r   r   r]  rX  r[  r_  r   rb  r   r   ru   rV  rV  
  s=      HO$
: dIJLELEr   rV  c                      e Zd Zej                  j                  dg dg dfg dg dfg      d        Zd Zd Zej                  j                  dd	d
g      d        Z	ej                  j                  dd	d
g      d        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d Zej                  j                  d ej2                  g        ej4                  d      g      d        Zd Zed        Zed        Zy )!TestZmapZscorezx, yr>  rT  )r   r   r/   r0   r1   c                     t        j                  ||      }|t        j                  |      z
  t        j                  |      z  }t        ||d       y )Nr7   rA  )rc   zmapri   rh   r   r   )rm   r   rn   rE  r^  s        ru   	test_zmapzTestZmapZscore.test_zmap
  s@     JJq! 
NBFF1I-8%0r   c                    t        j                  g dg dg dg      }dt        j                  d      z  }t        j                  d      dz  }t        j                  d      }t        j                  ||d	
      }t        j                  ||d
      }| | dz  | dz  dgd|| dz  |g|| dz  || gg}g d| | | t        j                  d      gg dg}t        ||       t        ||       y Nr   r   r   r   )r   r   r   r-  )r-  r   r-  r   r   r  r   r0   r-  r   rP   r   r/   r   r  r  r   r   )r   r  r   r  )ri   r   r   rc   rf  r   	rm   r   t1t2t3z0r  z0_expectedz1_expecteds	            ru   test_zmap_axiszTestZmapZscore.test_zmap_axis
  s    HH***, - WWR[]WWR[ZZ11%ZZ11%bSURCE3/R"Q+RCE2s+- .bS2#rwwr{3-/ 	""k2!"k2r   c                 b   t        j                  g dg dg      }t        j                  ||dd      }t        j                  g d      dt        j                  d      z  z  }t        j                  g d      t        j                  d	      z  }t        |d
   |       t        |d   |       y Nrj  )r   r   r-  r   r   rQ   ry   )      rw  r8   r8   r   r0   )      rw  r8   r9   g?r   )ri   r   rc   rf  r   r   rm   r   rE  rq  rr  s        ru   test_zmap_ddofzTestZmapZscore.test_zmap_ddof
  s    HH**, - JJq!!!,hh56BGGAJGhh56F!!A$4!!A$4r   ry   r   r/   c           
      H   t        j                  dddt         j                  g      }t        j                  dddddt         j                  g      }t        j                  |||d      }t        |t        j                  ||t        j                  |          |	             y )
Nr_   r^   r/   r4   rZ   r   ry   r   rx   )ri   r   rj   rc   rf  r   r  )rm   ry   scorescomparerE  s        ru   test_zmap_nan_policy_omitz(TestZmapZscore.test_zmap_nan_policy_omit
  s     2r1bff-.((BAq"bff56JJvwTfE5::fgrxx7H6H.I+/1 	2r   c                 f   t        j                  dd      j                  dd      }t        j                  ddd      j                  dd      }t         j                  |d<   t         j                  |d	<   t         j                  |d
<   t        j                  ||dd|      }t        j                  t        j                  |d   |d   t        j                  |d             |      t        j                  |d   |d   t        j                  |d             |      g      }t        ||d       y )N      r   r/   r^   r|  r3      )r   r1   rz   r9  r   r   )r   rQ   ry   r   rx   r  rA  )
ri   r   rg   r`  rj   rc   rf  r   r  r   )rm   ry   r~  r  rE  r^  s         ru   #test_zmap_nan_policy_omit_with_axisz2TestZmapZscore.test_zmap_nan_policy_omit_with_axis
  s    4%--a4++b!R(00B7JJvw6M88UZZq	(/
BHHWQZ4H3H(I-13 #ZZq	(/
BHHWQZ4H3H(I-134 5 	8%0r   c                    t        j                  g d      }t        j                  dddddt         j                  g      }t        j                  t
        d      5  t        j                  ||d	
       d d d        y # 1 sw Y   y xY w)NrT  r|  r_   r/   r4   rZ   zinput contains nanr   r   r   )ri   r   rj   r  r   r   rc   rf  )rm   r~  r  s      ru   test_zmap_nan_policy_raisez)TestZmapZscore.test_zmap_nan_policy_raise
  s[    )$((BAq"bff56]]:-ABJJvw7; CBBs   A>>Bc                 V    t        j                  g d      }g d}t        ||d       y )Nr>  )gOT\wg%ܿg%?gOT\w?rZ   rR   )rc   zscorer   )rm   rn   desireds      ru   test_zscorezTestZmapZscore.test_zscore  s%     LL&%!'1b9r   c                    t        j                  g dg dg dg      }dt        j                  d      z  }t        j                  d      dz  }t        j                  d      }t        j                  |d	
      }t        j                  |d
      }| | dz  | dz  dgd|| dz  |g|| dz  || gg}g d| | | t        j                  d      gg dg}t        ||       t        ||       y ri  )ri   r   r   rc   r  r   rl  s	            ru   test_zscore_axiszTestZmapZscore.test_zscore_axis  s    HH***, - WWR[]WWR[\\!!$\\!!$bSURCE3/R"Q+RCE2s+- .bS2#rwwr{3-/ 	""k2!"k2r   c                 `   t        j                  g dg dg      }t        j                  |dd      }t        j                  g d      dt        j                  d      z  z  }t        j                  g d      t        j                  d	      z  }t        |d
   |       t        |d   |       y ru  )ri   r   rc   r  r   r   ry  s        ru   test_zscore_ddofzTestZmapZscore.test_zscore_ddof"  s    HH**, - LL+hh56BGGAJGhh56F!!A$4!!A$4r   c                     t        j                  ddt         j                  ddg      }t        j                  |d      }t        t        j                  |            sJ y )Nr   r/   r1   r2   r  r   )ri   r   rj   rc   r  r  r  rm   r   rE  s      ru   test_zscore_nan_propagatez(TestZmapZscore.test_zscore_nan_propagate.  sE    HHaBFFAq)*LL{3288A;r   c                     t        j                  ddt         j                  ddg      }t        j                  |d      }t        j                  ddt         j                  d	d
g      }t        ||       y )Nr   r/   r1   r2   r   r   gIHb=gIHb=gIHb=?gIHb=?)ri   r   rj   rc   r  r   rm   r   rE  r^  s       ru   test_zscore_nan_omitz#TestZmapZscore.test_zscore_nan_omit3  sa    HHaBFFAq)*LLv.8800VV//	   	"!X.r   c                    t        j                  t         j                  dddddg      }t        j                  |dd      }t         j
                  t         j                  t        j                  |dd  d	      f   }t        ||d
       y )Nr   r   rF   r  r   r   r   r}  rx   vIh%<=rA  )ri   r   rj   rc   r  r_r   r  s       ru   test_zscore_nan_omit_with_ddofz-TestZmapZscore.test_zscore_nan_omit_with_ddof@  sg    HHbffc3S#67LLv655ae!!<<=8%0r   c                     t        j                  ddt         j                  ddg      }t        t        t
        j                  |d       y )Nr   r/   r1   r2   r   r   )ri   r   rj   r   r   rc   r  r  s     ru   test_zscore_nan_raisez$TestZmapZscore.test_zscore_nan_raiseF  s1    HHaBFFAq)*j%,,gFr   c                     dgdz  }t        j                  |      }t        |t        j                  t        |      t        j                               y )NgʡEr0   )rc   r  r   ri   r}   r0  rj   r  s      ru   test_zscore_constant_input_1dz,TestZmapZscore.test_zscore_constant_input_1dK  s7    HqLLLOQA/0r   c           
         t        j                  g dg dg      }t        j                  |d      }t	        |t        j                  t         j
                  dddgt         j
                  dddgg             t        j                  |d      }t	        |t        j                  t         j
                  t         j
                  t         j
                  t         j
                  gt        j                  |d         g             t        j                  |d       }t	        |t        j                  |j                               j                  |j                               t        j                  d      }t        j                  |d       }t	        |t        j                  |j                  t         j
                               y )	Nr   r   r   r   r   r  r#        *@r   rP   r  r   r   )r0   r3   )ri   r   rc   r  r   rj   r  rg   r  r  r}   )rm   r   rp  r  rE  rn   s         ru   test_zscore_constant_input_2dz,TestZmapZscore.test_zscore_constant_input_2dP  s+   HH..0 1\\!!$RBFFD$#=$&FFCc#:#< = 	>\\!!$RBFFBFFBFFBFF#C#(<<!#5#7 8 	9LL&QQWWY/77@AGGFOLL&Q01r   c                 l   t        j                  g ddddt         j                  gddt         j                  dgg      }t        j                  |dd      }t        j
                  d      }t        j
                  d	      }t        |t        j                  t         j                  | d
t         j                  gt         j                  ddt         j                  gt         j                  |t         j                  t         j                  gg             t        j                  |dd      }t        |t        j                  t         j                  t         j                  t         j                  t         j                  g| d|t         j                  g| d	z  |t         j                  | d	z  gg             y )Nr  r   r  r#  r   r   r   rQ   r9   r/   r  r   r   )ri   r   rj   rc   r  r   r   )rm   r   rp  r  s2r  s         ru   -test_zscore_constant_input_2d_nan_policy_omitz<TestZmapZscore.test_zscore_constant_input_2d_nan_policy_omit`  s>   HH.T40T266402 3 \\!Q7GGCLWWQZBHHrvvr4&@')vvq#rvv&>')vvq"&&"&&&A&C D 	E \\!Q7BHHrvvrvvrvvrvv&F()r1a&8(*s1ub"&&2#a%&@&B C 	Dr   c           	         t        j                  t         j                  t         j                  t         j                  t         j                  gg dg      }t        j                  |dd      }t        |t        j                  t         j                  t         j                  t         j                  t         j                  gg dg             y )N)r   r   r#  r#  r   r   r  rk  )ri   r   rj   rc   r  r   r  s      ru   test_zscore_2d_all_nan_rowz)TestZmapZscore.test_zscore_2d_all_nan_rowo  s}    HHrvvrvvrvvrvv6.0 1LLvA6Q266266266266"B"8": ; 	<r   c                     t        j                  dt         j                        }t        j                  |dd       }t        ||       y )Nr/   r0   r   r  )ri   r}   rj   rc   r  r   )rm   rn   rE  s      ru   test_zscore_2d_all_nanz%TestZmapZscore.test_zscore_2d_all_nanw  s2    GGFBFF#LLvD9Qr   r   )r0   r   r2   c                 F    t        j                  |      }t        ||       y ri  )rc   r  r   r  s      ru   test_zscore_empty_inputz&TestZmapZscore.test_zscore_empty_input}  s    LLOQr   c                     t        j                  g d      }t        j                  |      }t        j                  |t        j
                  |      z        t        j                  t        j                  |d            z  }t        ||       y )Nr>  r   rx   )ri   r   rc   gzscoreloggmeangstdr   )rm   r   rE  r  s       ru   test_gzscore_normal_arrayz(TestZmapZscore.test_gzscore_normal_array  s\    HH\"MM!&&U[[^+,rvvejj6K/LL#r   c                     t        j                  g d      }t         j                  j                  |g d      }t	        j
                  |      }ddt         j                  ddg}t        ||       y )N)r   r/   r^   r0   r1   )r   r   r   r   r   maskg0jg`ȿg/A?g(/?)ri   r   r  masked_arrayrc   r  r  r   )rm   r   mxrE  r  s        ru   test_gzscore_masked_arrayz(TestZmapZscore.test_gzscore_masked_array  sY    HH%&UU8MM"#_bffn"$#r   c                    t         j                  j                  d      }|j                  d      }t        j                  |      }t         j
                  j                  ||      }d|j                  d<   t        j                  |dd        }t        j                  t        j                  |            rJ t        j                  |      }t        |dd  |       t        j                  |d       }t        |dd  |       |d   |dd  t        j                  |      }t        |dd  t         j                         t        j                  |d       }t        |dd  t         j                         y )Ni_ rX   Tr   r   rP   )ri   rl  rm  standard_normal
zeros_liker  r  r  rc   r  r  r  r   r   rj   )rm   rq  r   r  rn   rs  r   s          ru   $test_zscore_masked_element_0_gh19039z3TestZmapZscore.test_zscore_masked_element_0_gh19039  s    ii##G,#}}QEEq$'q	ll1QR5!66"((3-(((ll1oAB%ll14(AB%!!"ll1oSWbff%ll14(SWbff%r   N) r   r   r   r  r  r  rg  rs  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ri   r   rG  r  r  r&   r  r  r   r   ru   rd  rd  
  sG   [[
	%
_	%	'
1
13.
5 [[VaV,2 -2 [[VaV,1 -1<:3.
5 
/1G
1
2 D< [[S8288B<)1D"EF G$ $ $ & &r   rd  c            
          e Zd Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  d	d
 ej                  ej                  ddg      fd ej                  ej                  ej                  dg      fg      d        Zej                  j                  ddg dfdg      d        Zd Zy)TestMedianAbsDeviationc                     t        j                  dddddddddddd	d
d
d
ddddddddt         j                  g      | _        t        j                  g d      | _        y )N皙@r  r:   皙@r  333333@=
ףp=@r  (\
@r  r;   r  皙@)\(@Q@)r  r  r  r  r:   r  r  r  r  r  r  r  r  r  r  r;   r  r  r  r  r  r  r  g33333<@)ri   r   rj   dat_nandatr  s    ru   setup_classz"TestMedianAbsDeviation.setup_class  sg    xxtS#sCc!%tT4c3!$c3S$bff!N O 88 ? @r   c                    t        t        j                  | j                  d       d       | j                  j	                  dd      }t        j                  |d      }t        j                  g d      }t        ||       y )NrP   gQ?r3   r1   r   )gףp=
?r8   ?r  )r   rc   median_abs_deviationr  rg   ri   r  r   )rm   r  madmad_expecteds       ru   test_median_abs_deviationz0TestMedianAbsDeviation.test_median_abs_deviation  sa    E66txxdK!	#hhq!$((15zz"9:!#|4r   c                 ^    t        j                  | j                  d      }t        |d       y )Nr   r   g(\?)rc   r  r  r   )rm   r  s     ru   test_mad_nan_omitz(TestMedianAbsDeviation.test_mad_nan_omit  s"    ((&IC&r   c                     t        j                  ddddt         j                  gg dg      }t        j                  |d      }t        |t        j                  t         j                  dg             y )Nr   r-  r   r  )r   r  rF   rV  r   r   rP   ri   r   rj   rc   r  r   )rm   r   r  s      ru   test_axis_and_nanz(TestMedianAbsDeviation.test_axis_and_nan  sV    HHsCc2662/1 2((3S"((BFFC=12r   c           	          t        j                  dddddt         j                  t         j                  g      }t	        j
                  |d      }t        |d       y )	Nr   r0   r1   r3   r  r   r   r   )ri   r   rj   r  rc   r  r   )rm   rE  r  s      ru   test_nan_policy_omit_with_infz4TestMedianAbsDeviation.test_nan_policy_omit_with_inf  sC    HHaAq"bffbff56((v>S#r   rQ   )r   r   r/   Nc                     t        j                  d      }t        j                  ||      }t	        |t        j
                  |j                  |      t         j                               y )N)r0   r   r1   rP   
fill_value)ri   rG  rc   r  r   	full_likesumrj   )rm   rQ   r   r  s       ru   test_size_zero_with_axisz/TestMedianAbsDeviation.test_size_zero_with_axis  sF    HHY((6S",,quu$u'7BFFKLr   znan_policy, expectedr   r9   r  c           	      x   t        j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  gddddt         j                  t         j                  gg dg      }t        j                  ||d      }t        ||       y )Nr   r2   r0   r3   )r2   r3   r4   r6   r6   rX   r  r  )rm   r   r^  r   r  s        ru   test_nan_policy_with_axisz0TestMedianAbsDeviation.test_nan_policy_with_axis  sy     HHrvvrvvrvvrvvrvvrvvF!Q2662662)+ , ((zJS(#r   zaxis, expectedr   )r:   r-  r#  )Nr<   c                     t        j                  ddddt         j                  gg dg dg      }t        j                  |t         j
                  d|      }t        ||d	d	
       y )Nr   r/   r1   r6   )r   r   r   r   rZ   )r  r  r  r  r   )centerr   rQ   r   rk  )ri   r   rj   rc   r  rh   r   )rm   rQ   r^  r   r  s        ru   test_center_mean_with_nanz0TestMedianAbsDeviation.test_center_mean_with_nan  s[     HHq!Q266*&-/ 0 ((277v.24XE>r   c                     t        j                  t        d      5  t        j                  g dd       d d d        y # 1 sw Y   y xY w)Ncallabler   )r   r/   r0   r2   r  r  )r  r   r@  rc   r  r  s    ru   test_center_not_callablez/TestMedianAbsDeviation.test_center_not_callable  s,    ]]9J7&&|B? 877s	   ?AN)r   r   r   r  r  r  r  r  r  r  r  r  ri   r   rj   r  r  r  r   r   ru   r  r    s    @5'3
 [[V_5M 6M
 [[3%xrxxc0B'CD*HBHHbffbffc5J,KLNO$O$ [[- "23[AC?C?@r   r  c                 l    t        t        |       |d       | D ]  }t        |j                  |u         y)z
    Checks that all of the warnings from a list returned by
    `warnings.catch_all(record=True)` are of the required type and that the list
    contains expected number of warnings.
    znumber of warningsN)r   r0  r   category)	warn_listexpected_typeexpected_lenwarn_s       ru   _check_warningsr    s0     Y/CD-/0 r   c                       e Zd Zd Zd Zej                  j                  dg  ej                  d      g      d        Z
d Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zy)TestIQRc                     t        j                  d      dz  }t         j                  j                  |       t	        t        j                  |      d       y )Nr5   r8   r  )ri   r   rl  r  r   rc   iqrr  s     ru   r  zTestIQR.test_basic  s8    IIaL3
		!UYYq\4(r   c           	         t        j                  d      }t        j                  |       t        j                  |d        t        j                  |d       t        j                  |d       t        j                  |d d       t        j                  |d dd       t        j                  |d ddd	       t        j                  |d d
ddd       t        j                  |d ddddd       y )Nr  r   r   r   )rX   Z   )rD  r  r   )r  r  r9   r  )rC  rC  rn  r   lineargٿr   r  T)ri   r  rc   r  )rm   ds     ru   test_apizTestIQR.test_api  s    GGFO		!		!T		!Q		!V		!T8$		!T8S)		!T8S+6		!T8XwA		!T8T67DAr   r   r   c                     t        j                  t        t              5  t	        t        j                  |      t        j                         d d d        y # 1 sw Y   y xY wr  )	r  r  r   r   r   rc   r  ri   rj   r  s     ru   r	  zTestIQR.test_empty  s5    \\,4IJ1rvv. KJJs   .AA c                 R   t        j                  d      }t        t        j                  |      d       t        t        j                  |d      t        j                  d             t        t        j                  |d      t        j                  d             t        t        j                  |d	      d       t        t        j                  |d
	      d       t        t        j                  |d	      d       t        t        j                  |d	      d       t        t        j                  |d	      d       t        j                  d      t        j                  d      z  }t        t        j                  |d      t        j                  d             t        t        j                  |d      t        j                  d             t        t        j                  |d      t        j                  dd             t        t        j                  |d      t        j                  d             t        t        j                  |d      t        j                  dd             t        t        j                  |d      t        j                  dd             y )N)r4   r1   r   r   rP   r1   r   r4   r  interpolationmidpointnearestr  r  r1   r2   r3   r3   )r2   r3   )r1   r3   r/   )r1   r2   r:   r  r   r/   r2   r   r   r/   )	ri   r  r   rc   r  r	   rG  r   r}   r  s      ru   test_constantzTestIQR.test_constant	  s   GGFOUYYq\3'599QQ/!=599QQ/!=UYYq93?UYYq
;SAUYYq	:C@UYYq8#>UYYq93? GGI1-599QQ/&1AB599QQ/&1AB599QQ/1EF599QV4bhhqkB599QV4bgganE599QV4bgganEr   c                     t        j                  d      dz   }t        t        j                  |d         d       t        t        j                  |      d       t        t        j                  |d      dg       y )Nr   r  r   r   Tr8  )ri   r   r   rc   r  r	   r  s     ru   test_scalarlikezTestIQR.test_scalarlike  sS    IIaL3UYYqt_c*UYYq\3'599Q6>r   c                    t        j                  d      j                  d      }t        t	        j
                  |      d       t        t	        j
                  |d      t        j                  dd             t        t	        j
                  |d      t        j                  d	d
             t        t	        j
                  |d      d       t        t	        j
                  |d      d       y )Nr  r  r  r   rP   r2   rF   r   r0   r-  r  r   )ri   r   rg   r   rc   r  r	   r}   r  s     ru   test_2DzTestIQR.test_2D%  s    IIbM!!&)UYYq\3'599QQ/B@599QQ/B@599QV4c:599QV4c:r   c                 2   t         j                  j                  d      }t        j                  |gdz        }t	        j
                  |      }t        t	        j
                  |d      |       t        j                  |dd      }t        t	        j
                  |d      |       |j                  dd	      }t        t	        j
                  |d
      |       |j                  dd	      }t        t	        j
                  |d      t	        j
                  |d              t        t	        j
                  |d      t	        j
                  |d             t        j                  d      }t         j                  j                  |       |j                  d      }t        t	        j
                  |d      d   t	        j
                  |d d d d d d df   j                                      t        t	        j
                  |d      d	   t	        j
                  |d d d d d	d d f   j                                      t        t	        j
                  |d      d   t	        j
                  |d d d d dd d f   j                                      t        t	        j
                  |d      d   t	        j
                  |dd d d d d d f   j                                      t        t	        j
                  |d      d   t	        j
                  |dd	d d d d f   j                                      t        t	        j
                  |d      d   t	        j
                  |dd d d d d	f   j                                      t        t	        j
                  |d      d   t	        j
                  |dd d dd d f   j                                      t        t        t        j
                  |d       t        t        t        j
                  |d       y )N)G   r  rd  rX   r  rP   r^   r   r  r   r   r"  r   i  r0   r2   r4   rY   r   r   r0   )r0   r   r   r/   )r0   r   r/   r0   r/   )r   r  )r   r0   r/   r/   r1   r  )ri   rl  rn  dstackrc   r  r   moveaxisswapaxesr   r  rg   r  r   r$   r   )rm   or   qr  s        ru   r  zTestIQR.test_axis-  s   II(+IIqcBhIIaLUYYqv.2KK2q!UYYqv.2JJq!UYYqv.2JJq!UYYqy1YYqt,	.UYYqt,YYqq)	+ IIn% 			!IIm$UYYqy1!4YYq1Q{0023	5UYYqy1!4YYq1a{0023	5UYYqz215YYq1a{0023	5UYYqy1!4YYq1Qqz//12	4UYYqv.t4YYqAa{0023	5UYYqw/5YYqAq!}2245	7UYYqv.t4YYqAq|1134	6 	iAA6j%))QV<r   c                    t        j                  d      }t        t        j                  |      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        t        j                  |d	       t        t        t        j                  |t         j                  d
f       t        t        t        j                  |d       y )Nr2   r/   )r  g     U@)rq  r:   )g      )@r  )rX   rC  g?)r   r  r  )r   rC  <   )
ri   r   r   rc   r  r   r   r   rj   r@  r  s     ru   test_rngzTestIQR.test_rngV  s    IIaLUYYq\1%UYYqj137UYYqj137EIIaX6<j%))QH=j%))QRVVRLAiA;?r   c                    t        j                  d      }t        j                  d      }t        t        j                  |      d       t        t        j                  |      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |dd	      d
       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |dd	      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |dd	      d       t        t        j                  |d      d       dD ]  }t        j                  ||        t        t        t        j                  |d       y )Nr2   r1   r/   r9   r  r  r  )r  P   )rq  r  r0   r  r  r   r  r:   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedr   )ri   r   r   rc   r  r   r   )rm   r   rn   rX  s       ru   test_interpolationzTestIQR.test_interpolationa  s   IIaLIIaLUYYq\1%UYYq\3'UYYq91=UYYq93?UYYq91=UYYqhhGKUYYq91=UYYq8!<UYYqhgFJUYYq8!<UYYq	:A>UYYq	:A>UYYq
;Q?UYYqhjI3OUYYq
;Q?*F IIav.	* 	j%))QhGr   c                    t        j                  d      }t        t        j                  |d d      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |d	d      j
                  d
       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |d d      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |d	d      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       t        t        j                  |dd      j
                  d       y )Nr
  Fr  r   r/   )r0   r2   rY   r  )r4   rY   )r   r0   )r2   r4   )r   r  r   r   r/   r0   r8  r  )r4   Tr  )r0   r2   r   rY   )r   r   r4   rY   )r   r2   r4   r   )r0   r   r4   rY   )r   r   r4   r   )ri   r  r   rc   r  r  r  s     ru   r:  zTestIQR.test_keepdims  s   GGM"UYYqte<BBBGUYYqq59??LUYYqv>DDgNUYYqv>DDfMUYYqte<BBJOUYYq,?EErJUYYqy5AGGNUYYqtd;AA<PUYYqq48>>NUYYqv=CC]SUYYqv=CC\RUYYqtd;AA=QUYYq,>DDlSUYYqy4@FFUr   c           	      j   t        j                  d      j                  d      }t        t	        j
                  |d      d       t        t	        j
                  |d      d       t        t	        j
                  |d      d       t         j                  |d<   t        j                  d	
      5  t        j                  d       t        t	        j
                  |d      t         j                         t        t	        j
                  |dd      ddt         j                  ddg       t        t	        j
                  |dd      dt         j                  dg       d d d        t        j                  d	
      5  t        j                  d       t        t	        j
                  |d      d       t        t	        j
                  |dd      t        j                  dd             t        t	        j
                  |dd      g d       d d d        t        t        t        j
                  |d       t        t        t        j
                  |dd       t        t        t        j
                  |dd       t        t        t        j
                  |d       y # 1 sw Y   @xY w# 1 sw Y   xY w)N      .@r  r  r   r4   r   r   r  Trk   alwaysr   r  r2   r   r/   r?   )r/   r:   r/   barfood)ri   r   rg   r   rc   r  rj   warningscatch_warningssimplefilterr}   r   r   r  s     ru   test_nanpolicyzTestIQR.test_nanpolicy  s   IIdO##F+ 	UYYq[91=UYYqV4a8UYYqW5q9 &&$$$D1!!(+1=!11EQ1-/11ERVVQ) 2 $$D1!!(+18#>11@"''!Q-P11@+N	 2 	j%))Q7Cj%))QQ7Kj%))QQ7K 	j%))Q9E) 21 21s   1B-J<BJ)J&)J2c           	      J   t        j                  d      j                  d      }t        t	        j
                  |d      d       t        t	        j
                  |d      d       t        t	        j
                  |d      d	       t         j                  |d
<   t        j                  d      5  t        j                  d       t        t	        j
                  |dd      t         j                         t        t	        j
                  |dd      t         j                         t        t	        j
                  |dd      t         j                         t        t	        j
                  |ddd      dt         j                  dg       t        t	        j
                  |ddd      t        j                  dt         j                  dg      dz         t        t	        j
                  |ddd      dt         j                  dg       d d d        t        t	        j
                  |dd      d       t        t	        j
                  |dd      d       t        t	        j
                  |dd      d       t        t        t        j
                  |d       y # 1 sw Y   xY w)Nr$  r  r   rp  r4   rn  g=V^w@r-  r;   r  Tr%  r&  r  )rp  r   r   )rQ   rp  r   r/   gF7k?r   r?   g	I1=@g      @r   )ri   r   rg   r   rc   r  r   rj   r(  r)  r*  r   r   r   r  s     ru   
test_scalezTestIQR.test_scale  s   IIdO##F+ 	UYYq,a0EIIax8-HUYYq,c2 &&$$$D1!!(+1CKH"&&Q1HMrvvV1CKH"&&Q11C.9;=>NL		!!85@!B "!RVVQ 89 DF 11CKPRVVQ) 2" 	UYYq?EEIIaxFK+	-UYYq?F 	j%))Qh?/ 21s   1EJJ"N)r   r   r   r  r  r  r  r  ri   r   r	  r  r  r  r  r  r   r:  r+  r.  r   r   ru   r  r    sw    )

B [[S2yryy|"45/ 6/F,?;'=R	@ HDV&F@!@r   r  c            	          e Zd ZdZg dZdZej                  j                  d       ej                  j                  d      Z
ddddZeej                  j                  d	d
dg      ej                  j                  d edd            d                      Zeej                  j                  d	d
dg      ej                  j                  dd      d                      Zed        Zd Zeej                  j                  dg d      ej                  j                  dddg      d                      Z eddg      ej                  j/                  d      ed                      Zed        Zed         Zd! Zeej                  j                  d"g d      ej                  j                  d#g d$      ej                  j                  d%dd&g      d'                             Zy)(TestMomentsa  
        Comparison numbers are found using R v.1.5.1
        note that length(testcase) = 4
        testmathworks comes from documentation for the
        Statistics Toolbox for Matlab and can be found at both
        https://www.mathworks.com/help/stats/kurtosis.html
        https://www.mathworks.com/help/stats/skewness.html
        Note that both test cases came from here.
    r  r    r  N)r  rO   c                    t        j                  |      }|t        j                  ||      }t        ||       ||j                  }|j                  |k(  sJ y ri  )ri   r  broadcast_tor	   rO   )rm   rJ  expectr  rO   s        ru   _assert_equalzTestMoments._assert_equal  sP    F#__VU3F66*=LLE||u$$$r   r.   rX   )rX   r/   zm, cr"  )Nr   r   c                 P   t         j                  j                  d      }|j                  |j                  |            }t	        j
                  |||      }||j                  |d      n|}|j                  ||z
  |z  d      |j                  d   z  }t        ||d       y )Nl   rHZ rd  r  r   rP   缉ؗҜ<r  )
ri   rl  rm  r  rc   momentrh   r  r  r'   )	rm   r.   r  r  r  rq  r   r   rs  s	            ru    test_moment_center_scalar_momentz,TestMoments.test_moment_center_scalar_moment  s     ii##$78JJszztz,-ll1a*"#)BGGAAGffa!eaZaf(3Su-r   r  c           
      |   t         j                  j                  d      }|j                  |j                  |            }g d}t	        j
                  |||      }t        |      }|j                  |D 	cg c])  }	t	        j
                  ||	|      |j                  df   + c}	      }
t        ||
       y c c}	w )Nl   %~.}~= rd  r"  r  .)
ri   rl  rm  r  rc   r8  r)   concatnewaxisr(   )rm   r.   r  r  rq  r   r  r   xp_testr  rs  s              ru   test_moment_center_array_momentz+TestMoments.test_moment_center_array_moment  s     ii##$78JJszztz,-ll1a*!!$nn'(*'(! $ll1a:7??C;OP'(* +S!*s   7.B9c                    j                  | j                        }t        j                  j                  | j                              }t        |j                  d             t        j                  |d      }t        |j                  d             t        j                  |d      }t        |j                  d             t        j                  |d      }t        |j                  d             t        j                  |d      }t        |j                  d             t        j                  |d      }t        |j                  d	             t        j                  |g d
      }t        |j                  g d             t        j                  |d      }t        |j                  d             d}t        j                  t        |      5  t        j                  |d       d d d        t        j                  |g d      }t        |j                  g d             fd}t              r,t        j                  t        d      5   |        d d d        y t        j                  j                         5 }|j                  t         d       |j                  t         d        |        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w# 1 sw Y   y xY w)Nr   r   r   r   r/         ?r0   r1        @r>  )r   r@  r   rA  z)All elements of `order` must be integral.r   333333?)r   r/   r0   r  c                      t        j                  j                  g             } t        | j                  j                               t        j                  j                  g j
                              } t        | j                  j                  j
                               t        j                  j                  d      d      } t        | j                  d             t        j                  j                  g g      d      } t        | j                  j                  g             t        j                  j                  g g      ddgd      } t        | j                  d             y )	NrN   r   r   rP   r	  r   orderrQ   )r/   r   )rc   r8  r  r(   rj   r   rG  rT  )rn   r  s    ru   
test_casesz+TestMoments.test_moment.<locals>.test_cases*  s   RZZ^,AArzz"&&12RZZ"**Z=>AArzz"&&

zCDRXXf-A6AArxx~.RZZ-A6AArzz266(34RZZ-aV!DAArxx/0r   zSee documentation for...zMean of empty slice.zinvalid value)r  r]  rc   r8  rX  r'   r  r   r   r+   r  r   ri   r  r   r   rl   )rm   r  r]  rn   rZ  rF  rt   s    `     ru   test_momentzTestMoments.test_moment
  s    ::dmm,LLD$8$89:2::c?+LL1%2::c?+LL1%2::c?+LL1%2::d+,LL1%2::c?+LL1%2::f-. LL<02::&:;< LL3'2::c?+=]]:W5LL3' 6LL#342::&:;<
	1 B<08RS TS --/3

>+AB

>?; 0/- 65& TS 0/s$   K	K4K!	KK!K*c                 v   t        j                  d      }t         j                  |d<   t        t	        j
                  |d      t         j                         t        t	        j
                  |d      d       t        t        t        j
                  |d       t        t        t        j
                  |d       y )	Nr   r6   r/   r   r   r   r   r   )	ri   r   rj   r   rc   r8  r   r   r   r  s     ru   r  zTestMoments.test_nan_policy@  sn    IIcNvv!U\\!Q'0ELLv>Dj%,,gFj%,,hGr   rO   )r   r   
complex128zexpect, orderr  r   c                    |dk(  rt        |      rt        j                          t        ||      }|j	                  t
        j                  j                  d      |      }t        j                  ||      }t        ||j	                  ||             t        j                  |j                  |d      d|      }t        ||j                  d||             t        j                  |j                  |d	      d
|      }t        ||j                  d||             t        j                  |j                  |d	      d |      }t        ||j                  d||             y )NrI  r2   rN   rE  )r3   r2   r   )rQ   rE  )r2   rc  r/   )r   r/   r1   r2   r   )r,   r  skipr  r  ri   rl  r  rc   r8  r(   r3  r}   )rm   rO   r4  rE  r  r   rn   s          ru   test_constant_momentsz!TestMoments.test_constant_momentsH  s    ,8B<KKME"JJryy~~a(J6LL%(2::fE::;LLF3!5I2774u7=>LLO<1$&277<u7EFLLO<4$&2772vU7;<r   r   r   r   r   c                     |j                  |j                  d      d      }t        j                  |d<   t	        j
                  |dd      }t        ||j                  dt        j                  g      d	       y )
NrV  r/   r^   r   r/   r   rP   r@  r   r  )rg   r   ri   rj   rc   r8  r'   r  )rm   r  r  mms       ru   test_moment_propagate_nanz%TestMoments.test_moment_propagate_nan^  sX     JJryy}g.&&$\\!QQ'BJJbff~6UCr   c                     t        j                  t        d      5  t        j                  |j                  g d      g        d d d        y # 1 sw Y   y xY w)Nz6'order' must be a scalar or a non-empty 1D list/array.r   r>  rK  )r  r   r   rc   r8  r  )rm   r  s     ru   test_moment_empty_orderz#TestMoments.test_moment_empty_orderj  sC     ]]: .J KLLL1<K K Ks   )AAc                     |j                  d      }t        j                  |d      }t        j                  |d      }t        ||       y )NrX   r0   )r8  rK  )r   rc   r8  r(   )rm   r  r   r   rs  s        ru   test_rename_moment_orderz$TestMoments.test_rename_moment_orderq  s;     IIbMll1Q'll1A&S!r   c                     | j                   t        j                  | j                         z
  }t        t        j                  |d      j                         t        j                  | j                   d             y )Nr  )testcase_moment_accuracyri   rh   r   r   rc   r8  )rm   
tc_no_means     ru   test_moment_accuracyz TestMoments.test_moment_accuracyz  sY     33 = =>?
R0557T%B%BBG	Ir   rE  rQ   r  r  r   c                 
   t         j                  j                  d      }|j                  d      }t        j                  |j                  |      |||      }|j                  t        ||||            }t        ||       y )Nl   hU~)r2   r3   r4   rd  )rQ   r  )rh   )ri   rl  rm  rc   r8  r  r"   r'   )	rm   r  rE  rQ   r  rq  r   r   rs  s	            ru   test_moment_array_apiz!TestMoments.test_moment_array_api  sg    
 ii##N3JJIJ&ll2::a=%d6JjjE4f=>S!r   )r   r   r   r   r]  rX  ri   rl  r  r  rX  r5  r%   r  r  r  r   r9  r>  rG  r  rM  r   usefixturesrR  rT  rV  rZ  r\  r   r   ru   r0  r0    s     HOIINN4!yy~~b159 % [[Vb']3[[VW\<%HI. J 4 . [[Vb']3[[S,/" 0 4 " 3 3jH [[W&JK[[_vv.>?= @ L =& kJKM[[/0D  1MD = = " "I [[Wl3[[VZ0[[Xay1" 2 1 4 "r   r0  c                        e Zd ZdZg dZg dZy)SkewKurtosisTestr  r  )gp=
ף?g?߾?gD9?gQI?g}?5^IN)r   r   r   rX  r]  testmathworksr   r   ru   r_  r_    s    OH<Mr   r_  c            	          e Zd Zeej
                  j                  dej                  ej                  g      d               Z
 eddg      ej
                  j                  d      ed                      Zd Zd	 Z eddg      ej
                  j                  d      ed
                      Zed        Z eddg      ej
                  j                  d      ed                      Z eddg      ej
                  j                  d      eej
                  j                  dg d      ej
                  j                  dddg      d                                    Zy)TestSkewstat_func                    |j                  g       }t        |      r1t        j                  t        t
              5   ||      }d d d        n[t        j                  j                         5 }|j                  t        d       |j                  t        d        ||      }d d d        t        |j                  |j                               y # 1 sw Y   /xY w# 1 sw Y   ;xY w)Nr   r`   zinvalid value encountered)r  r+   r  r  r   r   ri   r  r   r   rl   r(   rj   )rm   rc  r  r   r   rt   s         ru   test_empty_1dzTestSkew.test_empty_1d  s     JJrNB<08MNqk ON --/3

>+@A

>+FGqk	 0
 	RZZ/0 ON 0/s   	C,5CCC$r   r   rN  r   c                 p   t        j                  |j                  | j                              }t	        ||j                  |j
                               t        j                  |j                  | j                              }t	        ||j                  d      d       t        j                  |j                  | j                        d      }t	        ||j                  d      d       t        j                  |j                  | j                              }t	        ||j                  d      d       y )Ng7l*ҿ绽|=r  r   biasg2۠ۿr   )rc   skewr  rX  r'   rj   r`  r]  )rm   r  rn   s      ru   test_skewnesszTestSkew.test_skewness  s     JJrzz$"6"6782::bff-. JJrzz$"4"4562::&78uEJJrzz$"4"45A>2::&89FJJrzz$--012::c?7r   c                    t        j                  d      }t         j                  |d<   t        j                  d      5  t	        t        j                  |      t         j                         d d d        t	        t        j                  |d      d       t        t        t
        j                  |d       t        t        t
        j                  |d	       y # 1 sw Y   mxY w)
Nr   r6   r  r  r   r   r   r   r   )	ri   r   rj   r  r   rc   rj  r   r   r  s     ru   r  zTestSkew.test_nan_policy  s    IIcNvv![[*A/ +UZZf5r:j%**aGDj%**aHE	 +*s   .CC"c                 T    t        t        j                  t        d            d       y )NrX   r   )r   rc   rj  r   r  s    ru   test_skewness_scalarzTestSkew.test_skewness_scalar  s    UZZr
+S1r   c                 :   |j                  d      }|j                  |d      }|j                  |d<   t        j                  d      5  t        j                  |d      }d d d        t        |j                  d|j                  g             y # 1 sw Y   1xY w)	NrV  rP  r   r  r  r   rP   r   )	r   rg   rj   ri   r  rc   rj  r(   r  )rm   r  r  r  s       ru   test_skew_propagate_nanz TestSkew.test_skew_propagate_nan  ss     IIbMJJq'"&&$[[*

11%A +2::q"&&k23 +*s   	BBc                    t        j                  t        d      5  |j                  dgdz        }t	        t        j                  |      |j                  |j                               t	        t        j                  |dz        |j                  |j                               t	        t        j                  |dz        |j                  |j                               t	        t        j                  |d      |j                  |j                               |j                  dgd	z        }t	        t        j                  |      |j                  |j                               d
|j                  dd      dz  z   }t	        t        j                  |      |j                  |j                               d d d        y # 1 sw Y   y xY w)NPrecision loss occurredr   9ѿrX   g      CFrh  g,@r4   r         r1   r7  )	r  r  rl   r  r(   rc   rj  rj   r   rm   r  r  s      ru   test_skew_constant_valuez!TestSkew.test_skew_constant_value  s,    \\.0IJ

K=+,AEJJqM2::bff+=>EJJqx0"**RVV2DEEJJqx0"**RVV2DEEJJqu5rzz"&&7IJ 

D6!8$AEJJqM2::bff+=>RYYsA&u,,AEJJqM2::bff+=> KJJs   FG  G	c                     t        j                  t        d      5  t        j                  j                  d      }|j                  |j	                  d            }d|d d df<   t        j                  |       d d d        y # 1 sw Y   y xY w)Nrr  r   l   :"z` )rb  rX   rd  )\(?r   )	r  r  rl   ri   rl  rm  r  rc   rj  )rm   r  rq  r  s       ru   test_precision_loss_gh15554z$TestSkew.test_precision_loss_gh15554  se     \\.0IJ))''4C

3::9:56AAadGJJqM	 KJJs   ABBrQ   r^   r   r/   Nri  FTc                     t         j                  j                  d      }j                  |j                  d            }fd}t	        j
                  |||      } ||||      }t        ||       y )N   f#"r/  c                 $   |	j                  | d      } d}t        |       }|j                  | |d      }|j                  | |z
  dz  |      }|j                  | |      }||dz  z  }|s#| j                  |   }||dz
  |z  dz  |d	z
  z  z  }|S )
Nr^   r   Tr  r0   rP   r   r8   r-  )rg   r)   rh   r   r  )
r  rQ   ri  r=  rh   mu3r   r   r  r  s
            ru   skewnessz-TestSkew.test_vectorization.<locals>.skewness  s    |JJq%(%a(G<<t<<D,,D1}4,8C++ad++Cq.CGGDMSA#-S99Jr   )rQ   ri  )ri   rl  rm  r  rc   rj  r'   )	rm   r  rQ   ri  rq  r   r  r   rs  s	    `       ru   test_vectorizationzTestSkew.test_vectorization  sa     ii##M2JJszz),-	 jjD1qt$/S!r   N)r   r   r   r%   r  r  r  rc   rj  kurtosisre  r   r]  rk  r  rn  rp  rv  ry  r  r   r   ru   rb  rb    s   [[Z%**enn)EF1 G 1 kJKM[[/08  1M8F2 kJKM[[/04  1M4 ? ? kJKM[[/0  1M kJKM[[/0[[V%56[[VeT]3" 4 7  1M"r   rb  c            
          e Zd Z eddg      ej
                  j                  d      ed                      Zd Z	d Z
d Zed	        Z eddg      ej
                  j                  d      eej
                  j                  d
g d      ej
                  j                  dddg      ej
                  j                  dddg      d                                           Zy)TestKurtosisr   r   rN  r   c                 >   t        j                  |j                  | j                              }|j	                  |      sJ t        j                  |j                  | j
                        ddd      }t        ||j                  d             t        j                  |j                  | j
                        dd      }t        ||j                  d             t        j                  |j                  | j                        dd      }t        ||j                  d             |j                  d      }|j                  |dk(  |j                  |j                        |      }t        t        j                  |      |j                  |j                               y )	Nr   r   fisherri  gO߻S@gx|N@g=
ףp=?r   r5   )rc   r  r  rX  r  r`  r'   r]  r   r^  rj   r(   )rm   r  rn   r   s       ru   test_kurtosiszTestKurtosis.test_kurtosis  s"    NN2::d&:&:;<xx{{ NN2::d&8&891QQO2::o67 NN2::d&8&89!!L2::&789NN2::dmm4a;2::d+,IIcNHHQ!VRZZ/3q)2::bff+=>r   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  |d      d       t        t        t        j
                  |d       t        t        t        j
                  |d       y )Nr   r6   r   r   Gzr   r   )ri   r   rj   r   rc   r  r   r   r  s     ru   test_kurtosis_nan_policyz%TestKurtosis.test_kurtosis_nan_policy4  sU    IIcNvv!ENN1@)Lj%..!Hj%..!Ir   c                 t    t        t        t        j                  g d            t        j
                         y )NrT  )r   typerc   r  ri   r   r  s    ru   test_kurtosis_array_scalarz'TestKurtosis.test_kurtosis_array_scalar<  s    T%..34bjjAr   c                 .   t        j                  d      j                  dd      j                  t              }t         j
                  |d<   t        j                  |dd      }t         j                  j                  |dt         j
                  gd	
       y )Nr5   r/   r^   r   r   r  r  g(\r   r  )
ri   r   rg   r[  rH  rj   rc   r  r  r   )rm   r  r  s      ru   test_kurtosis_propagate_nanz(TestKurtosis.test_kurtosis_propagate_nan@  si     IIaL  B'..u5&&$NN11=


""1ubffoE"Br   c           	         |j                  dgdz        }t        j                  t        d      5  |j	                  t        j                  |d            sJ |j	                  t        j                  |t        d      z  d            sJ |j	                  t        j                  |t        d      z  d            sJ |j	                  t        j                  |dd            sJ 	 d d d        y # 1 sw Y   y xY w)	Nrs  rX   rr  r   F)r  l           r  )r  r  r  rl   r  rc   r  rH  ru  s      ru   test_kurtosis_constant_valuez)TestKurtosis.test_kurtosis_constant_valueI  s     JJ}R'(\\.0IJ88ENN1U;<<<88ENN1uU|+;EJKKK88ENN1uU|+;EJKKK88ENN1UGHHH	 KJJs   B:C55C>rQ   rz  ri  FTr  c                     t         j                  j                  d      }j                  |j                  d            }fd}t	        j
                  ||||      } |||||      }	t        ||	       y )Nr|  r  c                 f   |
j                  | d      } d}t        |       }|j                  | |d      }|j                  | |z
  dz  |      }|j                  | |d      }|r||dz  z  d	z
  }n8| j                  |   }	|	d
z
  |	dz
  |	d	z
  z  z  |	d
z   |z  |dz  z  d	|	d
z
  z  z
  z  }|r|S |d	z   S )Nr~  r   Tr  r1   rP   )rQ   
correctionr/   r0   r   )rg   r)   rh   r|   r  )r  rQ   ri  r  r=  rh   mu4mu2r   r  r  s             ru   r  z1TestKurtosis.test_vectorization.<locals>.kurtosis`  s    |JJq%(%a(G<<t<<D,,D1}4,8C++adq+9CCFlQ&GGDMs!!}-!a%3sAv1E1Q31OP !3-cAg-r   )rQ   ri  r  )ri   rl  rm  r  rc   r  r'   )
rm   r  rQ   ri  r  rq  r   r  r   rs  s
    `        ru   r  zTestKurtosis.test_vectorizationS  se     ii##M2JJszz),-	.( nnQTVDqt$v>S!r   N)r   r   r   r   r  r  r]  r%   r  r  r  r  r  r  r  r   r   ru   r  r    s   kJKM[[/0?  1M?>JBC I I kJKM[[/0[[V%56[[VeT]3[[Xt}5" 6 4 7  1M"r   r  c                    t        dd      }t        j                  dd      } | t        j                  t        j
                  ||            }g }t        j                         5  t        j                  d       t        t        |j                              D ]  }t        j                  t              5  t        j                   |d|      }t	        j"                  |d	kD        r9t	        j"                  t	        j$                  |            r|j'                  |       d d d         	 d d d        t)        j*                  |        | t(        j,                  j/                  |            }||fS # 1 sw Y   xY w# 1 sw Y   SxY w)
NF)	allow_nanallow_infinityr   r/   )min_dimsmin_side)rO   elementsr  errorrD  r   )dictnpstarray_shapesarraysri   r   r(  r)  r*  r  r0  r  
contextlibsuppress	Exceptionrc   r8  r  r  r  
hypothesisassume
strategiessampled_from)drawr  r  r+  ok_axesrQ   r|   s          ru   ttest_data_axis_strategyr  y  s    eE:Hq15E "**xuMND G 
	 	 	"g&#djj/*D$$Y/ll4qt<66#'?rvvbkk#.>'?NN4( 0/ + 
# g 
%%227;<D: 0/ 
#	"s&   'AE>7A*E2!
E>2E;7E>>FzUses NumPy for pvalue, CI)r   r   c                      e Zd Zg dZg dZdZdZdZdZdZ	dZ
d	ZdZed
z  Zded
z  z
  Zd Zd Zd Zej&                  j)                  dg d      d        Zd Zej&                  j.                   ej2                  ej4                  j7                  dd       e             ej&                  j)                  dddg      d                      Zy)TestStudentTest)r  r   r   )r   r   r-  r   r   gMXzg4/?gMXzgFX5t?gMXz?r/   r   c                 *   t               5 }t        j                  dd      5  |j                  t        d       t        |      s|j                  d      nd}t        j                  |d      \  }}d d d        d d d        t        |j                  |j                               t        |j                  |j                               t        j                  |j                  | j                        d      \  }}t        ||j                  | j                               t        ||j                  | j                               t        j                  |j                  | j                        d      }d}t        |||       t        j                  |j                  | j                         d      \  }}t        ||j                  | j"                               t        ||j                  | j$                               t        j                  |j                  | j                        d	      \  }}t        ||j                  | j&                               t        ||j                  | j(                               t        j                  |j                  | j                        d
      \  }}t        ||j                  | j*                               t        ||j                  | j,                               y # 1 sw Y   xY w# 1 sw Y   xY w)Nr  r  divide!Degrees of freedom <= 0 for slicer  r   r   r   r   r  r   r-  )r   ri   r  r   rl   r+   r  rc   ttest_1sampr(   rj   X1r'   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2)rm   r  rt   r  tr  r   r   s           ru   test_onesamplezTestStudentTest.test_onesample  s    CHX>JJ~'JK&.rl

2A$$Q+DAq ? !
 	2::bff-.2::bff-.  DGG!4b912::dii012::dii01

477 3R8,
C3  DGG!4b912::dii012::dii01  DGG!4b912::dii012::dii01  DGG!4b912::dii012::dii019 ?> ! s#   LAK;1L;L	 LLc                    t        |      s^|j                  ddd|j                  g      }d}t        j                  t
        |      5  t        j                  |dd       d d d        y t        j                  j                  dd	d
d      }t        j                  |d<   t        j                  d      5  t        t        j                  |d      t        j                  t        j                  f       t        t        j                  |dd      d       t        t        t        j                  |dd       t        t        t        j                  |dd       d d d        y # 1 sw Y   y xY w# 1 sw Y   y xY w)Nr   r-  r   %Use of `nan_policy` and `keepdims`...r   r   r   r2   rX   3   it ro  rp  r.   rf  rC  r  r  rF   )g̈́^Bg/kCm?r   r   )r+   r  rj   r  r   NotImplementedErrorrc   r  normrg  ri   r  r	   r   r   r   )rm   r  r   rZ  s       ru   test_onesample_nan_policyz)TestStudentTest.test_onesample_nan_policy  s   |

BB/0A=G2'B!!!RF; CJJNNq'NJ"[[*u00C8266266:JK%e&7&736&R&QS*e&7&7CGT*e&7&7C%-/ +* C +*s   E$6B%E0$E-0E9c                    d}t        j                  t        |      5  t        j                  |j                  | j                        dd       d d d        t        j                  |j                  | j                        dd      \  }}t        ||j                  | j                               t        ||j                  | j                               t        j                  |j                  | j                        dd      \  }}t        ||j                  | j                               t        ||j                  | j                               y # 1 sw Y   xY w)	Nz8`alternative` must be 'less', 'greater', or 'two-sided'.r   r   r  r?  r   r9  r;  )r  r   r   rc   r  r  r  r'   P1_1_lr  P1_1_g)rm   r  rZ  r  r  s        ru   test_1samp_alternativez&TestStudentTest.test_1samp_alternative  s    L]]:W5bjj127K 6   DGG!4bfM12::dkk232::dii01  DGG!4biP12::dkk232::dii01 65s   2EEr@  r  c                    t         j                  j                  d      }d}|j                  |dd      }|j                         }t	        |      r|j
                  n|j                  }|j                  ||      }|j                  ||      }ddgd	t         j                  gt         j                   d
gd}t        j                  |||      }	|	j                  d      }
t        |
j                  |j                  ||   d                t        |
j                  |j                  ||   d                t        |	j                   |j                  |dz
               y )Nl   <PleH rX   r9   r/   r.   ro  rp  rN   gÍ]?g$(}w@gS1?g]@r7  r;  r9  )popmeanr@  333333?confidence_levelr   r   )ri   rl  rm  rn  r,   r   r   r  r  rc   r  r/  r'   r2  r3  r(   df)rm   r  r@  rq  r  r   r  rO   rs  r   rI  s              ru   test_1samp_ci_1dz TestStudentTest.test_1samp_ci_1d  s(    ii##$78JJA3aJ0**, 'rl



JJqJ&**WE*2/1CD-rvv6!235 7L$$d$;

3{+;A+> ?@C,<Q,?!@A

1Q30r   c                     t        j                  |j                  d      d      }d}t        j                  t
        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr   r   4`confidence_level` must be a number between 0 and 1.r   rX   r  )rc   r  r   r  r   r   r/  )rm   r  r   rZ  s       ru   test_1samp_ci_ivz TestStudentTest.test_1samp_ci_iv  sL    		#3H]]:W5##R#8 655s   AA(r   g?)alpha	data_axisr9  r;  c                    |\  }}|j                  |      }t        j                  |d||      }|j                  |      \  }}	|dk(  r|n|	}
t	        |      }|j                  |
|      }
t        j                  ||
||      }t        |j                        }|j                  |       |j                  |j                  d|z
  |j                        |      }t        |j                  |       y )Nr   rh  r  r;  rP   r   rN   )r  rc   r  r/  r)   r  r  r  r1  r3  r   r'   r   )rm   r  r  r@  r  r+  rQ   r   lr5  r  r=  r  rs  s                 ru   test_pvalue_cizTestStudentTest.test_pvalue_ci  s     
dzz$b,7dD&&&>1"i/!Q!!$%%gD%9g;TRTZZ 		$oobjj5

jCUK

C(r   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  xslowr  givenr  floatsr  r  r   r   ru   r  r    s     
B	BDDDDDDDDAXF$(^F2@/(2 [[],LM1 N109 [[ZJ1188H 8 :<[[]VY,?@) A< )r   r  c                      e Zd Zd Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d      d        Z	ej
                  j                  dg d	      d
        Z
ej
                  j                  dg d      d        Zej
                  j                  dg d      d        Zej
                  j                  dg d	      d        Zej
                  j                  ddg dfdg dfdg dfdg dfg      d        Zej
                  j                  ddg dfdg dfdg dfdg dfg      d        Zdg dej"                  fdej"                  gdej"                  fdej"                  gg dej"                  ej"                  ej"                  gfdddgddej"                  gddej"                  gfd ddej"                  gg dg d!fd ddgd"dej"                  gd"dej"                  gfd ej"                  ej"                  gg dej"                  ej"                  ej"                  gfgZej
                  j                  d#e      d$        Zd%ddd&ej"                  gg d'd(fd%g d'ddd&ej"                  gd(fgZej
                  j                  d)e      d*        Zej
                  j                  d+g d,      d-        Zy.)/TestPercentileOfScorec                 ,    t        j                  |i |S ri  )rc   percentileofscore)rm   argskwargss      ru   fzTestPercentileOfScore.f'  s    &&777r   zkind, result))r  rE  )rh   #   strictrD  )weakrE  c                 H    g d}t        | j                  |d|      |       y )N
r   r/   r0   r1   r2   r3   r4   r5   r6   rX   r1   kindr   r  rm   r  rH  r  s       ru   test_uniquez!TestPercentileOfScore.test_unique*  s"    
 ,TVVAqtV,f5r   ))r  r  )rh   rE  r  )r  rC  c                 H    g d}t        | j                  |d|      |       y )N)
r   r/   r0   r1   r1   r2   r3   r4   r5   r6   r1   r  r  r  s       ru   test_multiple2z$TestPercentileOfScore.test_multiple22  "    
 +TVVAqtV,f5r   ))r  rC  )rh   r  r  )r  r  c                 H    g d}t        | j                  |d|      |       y )N)
r   r/   r0   r1   r1   r1   r2   r3   r4   r5   r1   r  r  r  s       ru   test_multiple3z$TestPercentileOfScore.test_multiple3:  r  r   ))r  rD  )rh   rD  r  )r  rD  c                 H    g d}t        | j                  |d|      |       y )N)
r   r/   r0   r2   r3   r4   r5   r6   rX   rY   r1   r  r  r  s       ru   test_missingz"TestPercentileOfScore.test_missingB  s"    
 -TVVAqtV,f5r   c                 H    g d}t        | j                  |d|      |       y )N
rX   r  rD  rE  rC  r  F   r  r  rb  rE  r  r  r  s       ru   r  z(TestPercentileOfScore.test_large_numbersJ  s"    
 6TVVArV-v6r   c                 H    g d}t        | j                  |d|      |       y )N)
rX   r  rD  rE  rE  rE  rC  r  r  r  rE  r  r  r  s       ru   test_large_numbers_multiple3z2TestPercentileOfScore.test_large_numbers_multiple3R  s"    
 5TVVArV-v6r   c                 H    g d}t        | j                  |d|      |       y )N
rX   r  rD  rC  r  r  r  r  rb  n   rE  r  r  r  s       ru   test_large_numbers_missingz0TestPercentileOfScore.test_large_numbers_missingZ  s"    
 7TVVArV-v6r   r  )r   rX   rb  rb  rh   )r   r2   _   rb  r  )r   r   r  rb  r  c                 L    g d}t        | j                  |g d|      |       y )Nr   )r   rX   r  r  r  r  r  s       ru   test_boundariesz%TestPercentileOfScore.test_boundariesb  s#    
 7TVVA0tV<fEr   )r   rX   rb  )r   r2   r  )r   r   r  c           
          ddddddddd	t         j                  g
}t        | j                  |t         j                   dt         j                  g|
      |       y )Nr   r/   r0   r1   r2   r3   r4   r5   r6   r  )ri   r  r   r  r  s       ru   test_infzTestPercentileOfScore.test_infj  sP    
 1aAq!Q0TVVARVVG44V@&Ir   r  r   r"  r/   rC  rb  r   )r   rC  rb  r   zpolicy, a, score, resultc                 @    t        | j                  |||      |       y )Nr   r  )rm   policyr  r  rH  s        ru   test_nans_okz"TestPercentileOfScore.test_nans_okz  s    TVVAuV8&Ar   r   r0   rT  r  zpolicy, a, score, messagec                 x    t        t        |      5  | j                  |||       d d d        y # 1 sw Y   y xY w)Nr   r   )r   r   r  )rm   r	  r  r  rZ  s        ru   test_nans_failz$TestPercentileOfScore.test_nans_fail  s*    :W5FF1eF/ 655s   09r  ))r3   r  r/   r   r0   )r/   r   r   r0   c                     t        j                  g d      }|j                  |      }|dz  }g d}t        | j	                  ||d      |       y )N)r   r   r/   r0   r1   r2   rX   r  r  r  )ri   r   rg   r   r  )rm   r  r  r~  resultss        ru   test_ndzTestPercentileOfScore.test_nd  sH     HH'(5!)+TVVAvFV3W=r   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  ri   rj   casesr
  r  r  r   r   ru   r  r  %  sf   8 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =7	=7 [[^ .< =7	=7 [[^ .< =7	=7 [[^v7H.I/5.G/7.I/57H.I.K LF	LF [[^v|.D/5z.B/7.D/5|.D.F GJ	GJ 2q"&&)BFF8Q/BFF8Y0HIAq6Aq"&&>BRVV3DEq!RVVni>q!fq!RVVnq"bffo>rvvrvv&	BFFBFFBFF3KLNE [[7?B @B 
1aBFF#Y	(	*	)aArvv.	(	*E [[8%@0 A0 [[W ' >>r   r  Case)f_obsf_expry   rQ   chi2r  mod_logcr)r1   r5   rZ   r5   r1   r/   r8   rZ   r9   r5   r-  r  gfx(@)r/   r   rZ   r/   r  r  r         ?g{T4@)r0   r2   r4   r6   r   r   r   c                   <   e Zd Zd Zej
                  j                  de      ej
                  j                  dg d      d               Zd Z	d Z
ej
                  j                  de      ej
                  j                  dg d      d	               Zd
 Zd Zd Zy)TestPowerDivergencec                 :   |j                  d      j                  }|j                  ||      }||j                  ||      n|}|t        |      }	n4t        |      }
||
j	                  ||      n|f}|d   j
                  |   }	t               5 }|j                  t        d       t        j                  |||||      \  }}t        ||j                  ||             |dk(  s|dk(  r9t        j                  ||||      \  }}t        ||j                  ||             d d d        t        j                   |      }t        j                  j                  j!                  ||	dz
  |z
        }t        |j                  ||             y # 1 sw Y   lxY w)	Nr   rN   r   r`   r  r  ry   rQ   lambda_r   pearson)r  r  ry   rQ   )r  rO   xp_sizer)   broadcast_arraysr  r   r   rl   rc   power_divergencer'   	chisquareri   distributionsr  sf)rm   r  r  ry   rQ   r  expected_statr  rO   num_obsr=  r  rt   statr  
expected_ps                   ru   check_power_divergencez*TestPowerDivergence.check_power_divergence  sy   

2$$

5
.272C

5
.<enG%e,G@E@Qg..ue<!8 Qiood+G CJJ~'<=,,&+5t%)7<GD! D"**]%*"HI!|w)3//U/35abjjej&LM ! zz$((--00181t1CE
2::j:>?! ! s   BFFcaselambda_stat))Nr  r  r  )r   r  log-likelihoodr  mod-log-likelihoodr  cressie-readr  r  r  c           	          |\  }}t        ||      }| j                  |j                  |j                  |j                  |j
                  |||       y ri  )r  r*  r  r  ry   rQ   rm   r+  r,  r  r  attrr&  s          ru   r  zTestPowerDivergence.test_basic  sG     $d+##DJJ

DIItyy$+]B	@r   c           	         t         d   }t         d   }t        j                  |j                  |j                  f      }t        j                  t        j                  |j                        t        j
                  |j                        z  |j                  f      }|j                  |      }||j                  |      n|}| j                  ||ddd|j                  |j                  g|       | j                  ||ddd|j                  |j                  g|       | j                  ||ddd|j                  |j                  g|       | j                  ||ddd|j                  |j                  g|       |j                  |j                  |j                        d      }| j                  |d dd d|j                  |       y )	Nr   r   r  r  r/  r1  r3  r  )power_div_1d_casesri   r~  r  	ones_likerh   r  r  r*  r  r  r  r  rg   )rm   r  case0case1r  r  f_obs_reshapes          ru   r  zTestPowerDivergence.test_axis  s   "1%"1%		5;;45		2<<4RWWU[[5II ;;( ) 

5!%*%6

5!E##eQ5::uzz2r 	$ 	; 	##eQ%))UYY!7B 	$ 	@ 	##eQ#emmU]]%C 	$ 	L 	##eQ%((3 	$ 	<
 

2::ekk#:FC##dAt%** 	$ 	-r   c                    t         d   }t         d   }t        j                  |j                  |j                  f      j                  }t        j                  t        j
                  |j                        t        j                  |j                        z  |j                  f      j                  }|j                  |j                  g}|j                  d      j                  }|j                  ||      }|j                  ||      }|j                  ||      }|j                  dgdgg      }t        j                  |||      \  }	}
t        |	|       t        j                  |||d         \  }}t        j                  |||d         \  }}t        |      }|j                  ||j                   d d f   ||j                   d d f   fd      }t        |
|       y )	Nr   r   r   rN   rx   r  r   rP   )r9  ri   r~  r  r~  r:  rh   r  r  r  rO   rc   r"  r'   r)   r;  r<  )rm   r  r;  r<  r  r  expected_chi2rO   ry   r(  r  stat0p0stat1p1r=  r)  s                    ru   test_ddof_broadcastingz*TestPowerDivergence.test_ddof_broadcasting#  s    #1%"1%		5;;4577		2<<4RWWU[[5II ;;( ))* 	 UZZ0

2$$

5
.

5
.

=
> zzA3*%((DAam, **5%d4jI	r**5%d4jI	r!%(^^R(:%;%'(:%;%=)* $ ,
 	:&r   )r-  r.  r0  r2  r4  c           
          |\  }}t        ||      }t        j                         5  | j                  |j                  |j
                  |j                  |j                  |||       d d d        y # 1 sw Y   y xY wri  )r  r(  r)  r*  r  r  ry   rQ   r6  s          ru   test_empty_casesz$TestPowerDivergence.test_empty_casesH  s_     $d+$$&''

DJJ		499, '&&s   A A//A8c                 L   t         d   j                  }t         d   j                  }t         d   j                  }t         d   j                  }|j                  d      j                  }|j                  ||      }t        j                  ||||d      }d}t        |||       y )Nr   r   rN   r  r  r  r  )
r9  r  r  ry   rQ   r  rO   rc   r"  r   )	rm   r  r  r  ry   rQ   rO   r   r   s	            ru   'test_power_divergence_result_attributesz;TestPowerDivergence.test_power_divergence_result_attributesU  s    "1%++"1%++!!$))!!$))

2$$

5
. $$5D*.	C,
C3r   c                 L   |j                  ddgddgg      }|j                  ddgddgg      }d}t        j                  t        |	      5  t	        j
                  ||j                  dd
g             d d d        t        j                  t        |	      5  t	        j
                  ||d       d d d        t	        j
                  ||      \  }}t        ||j                  ddg             t        ||j                  ddg             y # 1 sw Y   xY w# 1 sw Y   jxY w)Nr   r{        >@rF   r$  g     A@g      9@For each axis slice...r         N@r  r  r   )r  r  rQ   g̑m@gUUU@gj^4;?g4;?)r  r  r   r   rc   r"  r'   )rm   r  r  r  rZ  r(  rD  s          ru   test_power_divergence_gh_12282z2TestPowerDivergence.test_power_divergence_gh_12282c  s    

S#Jc
34

RISz23*]]:W5""bjj#s6LM 6]]:W5""e!D 6++%uE
dbjj*j)ABCbjj*j)ABC 6555s   )DDDD#c           	         |j                  g d      }d}|j                  d|j                  d   dz         }|j                  |j	                  |      |j	                  |j                  ||z              z        }|j                  |||z  z         }t        |      }|j                  ||j                  d d f   ||j                  d d f   f      j                  }|j                  g d      }	|j                  |	d      }	t        |	j                  d         D ]G  }|	|df   |	|df   }}
t        j                  |d d df   |d d df   |
      \  }}t        ||d	
       I y )N)r$  r        ,@g      1@rF   r  r   r  rV  r   r  r   r  r   rP  r   r   r  g*kqr   r   ) g      $g    @r  g     r@rt  gffffffP@g       gLD@rx  g      A@r  g     =@rw  g     :@r   g8@r8   gffffff7@gq=
ףp?g7@r   g333336@r9   g6@r-  gfffff6@r   g8@rF   g     A@r   g     j@)r^   r/   r   r  g{Gzt?rA  )r  r   r  r  r  expr)   r;  r<  r~  rg   r  rc   r"  r'   )rm   r  obsbetar  r  expected_countsr=  table4table5r  r&  r(  r  s                 ru   /test_power_divergence_against_cressie_read_datazCTestPowerDivergence.test_power_divergence_against_cressie_read_datap  sY    jj @ AIIb#))A,+,rvvc{RVVBFF46N%;;<&&a0 "#&W__a%7!8!0!1C!D!F GGHq 	   & FG,v||A'A%+AqD\6!Q$<]G,,VAaC[&1+5<>GD!D-d;	 (r   N)r   r   r   r*  r  r  r  r9  r  r  rD  power_div_empty_casesrF  rH  rN  rX  r   r   ru   r  r    s    @B [[V%78[[]	./@	/ 9
@-:#'J [[V%:;[[]	./,	/ <
,4D.<r   r  c                   Z    e Zd Zd Zej
                  j                  dddg      d        Zy)TestChisquarec                     t        t        d      5  |j                  ddg      }|j                  ddg      }t        j                  ||       d d d        y # 1 sw Y   y xY w)NrK  r   r   r{  rJ  rL  rM  )r   r   r  rc   r#  )rm   r  r  r  s       ru   test_gh_chisquare_12282z%TestChisquare.test_gh_chisquare_12282  sN     :-EFJJSz*EJJSz*EOO%u5 GFFs   >AA"zn, dtype)r  r?  )i@B r\  c           	      z   t        ||      }|j                  |dg|      }|j                  |dz  |dz  g|      }t        j                  ||      }|\  }}t	        ||j                  ||j                  d      j
                        d       t        |j                  |       t        |j                  |       y )Nr   rN   r/   r   r  rA  )	r  r  rc   r#  r'   rO   r(   r   r   )	rm   r  rO   r  rS  rR  r   r(  r  s	            ru   #test_chiquare_data_types_attributesz1TestChisquare.test_chiquare_data_types_attributes  s     E"jj!Quj-jj!q&!q&)j7ooc3'abjj"**R.2F2FjGeTt,

A&r   N)r   r   r   r]  r  r  r  r_  r   r   ru   r[  r[    s3    6 [[Z.:L)MN
' O
'r   r[  c                   T    e Zd Zej                  j                  d      d        Zd Zy)TestChisquareMAr{  c           	         t        j                  g dg dg      j                  }t        j                  g dg dg      j                  }t         j                  j	                  ||      }t        j                  ddg      }t        j                  ddt        j
                  d      z  d	t        j
                  d
      z  z   z  ddt        j
                  d      z  dt        j
                  d      z  z   z  g      }t        j                  j                  }t        j                  |      \  }}t        j                  ||       t        j                  ||j                  ||j                  d      dz
               t        j                  |d      \  }	}t        j                  |	|d       t        j                  ||j                  ||j                  d      dz
               t        j                  |j                  d      \  }}t        j                  ||       t        j                  ||j                  ||j                  j                  d      dz
               t        j                  |j                  dd      \  }	}t        j                  |	|d       t        j                  ||j                  ||j                  d      dz
               t         j                  j                  g dg d      }
t         j                  j                  g dg d      }t        j                  |
|      \  }}t        j                  |d       t        j                  t         j                  j                  g d      d       \  }}t!        t#        |t         j$                               t!        t#        |t         j$                               t'        |d       t)        |t        j                  j                  j                  dd             t        j*                  d      5  t-               5 }|j/                  t0        d        t        j                  t         j                  j                  g             \  }}d d d        d d d        t!        t#        |t         j                  j2                               t'        |j4                  d!       t!        |j6                         t         j                  j                  g g g g      }t        j                  |      \  }}t!        t#        |t         j                  j2                               t        j                  |g        t        j*                  d      5  t-               5 }|j/                  t0        d        t        j                  |j                        \  }}d d d        d d d        t!        t#        |t         j                  j2                               t'        |j4                  d"       t!        t        j8                  |j6                               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   xY w)#N)r5   r5   r       r^   )r^   r^   r0   r1   r2   )r   r   r   r   r   )r   r   r   r   r   g      8@r8   r/   r   rc  r-  r0   r  r2   r@  r   rP   r   r/  rQ  r  rR   )rQ   r  )r0   r2   r3   r  rX   )r   r   r   r   r   r  )r/   r1   r5   rX   r  )r  rT  r   r  r  r`   r   r   )ri   r   r~  r  r  r  rc   r$  r  r#  matr	   r   r%  r&  r"  r   rb  r   r   r   r  r   r   rl   MaskedArrayr  r  r  )rm   rS  r  mobsexpected_chisq
expected_gr  chisqr  gobs1exp1rt   empty3s                 ru   test_chisquare_masked_arraysz,TestChisquareMA.test_chisquare_masked_arrays  s    hh*,=>?AAxx/:;==uu!!#t,4+.XXq#bffSk/Brvvc{N"BC !BFF4L.1RVVD\>"ABD E
 ""''??4(qun5%%a151Ca1G*I 	J %%d4DE1%%aR@%%a151Ca1G*I 	J ??4662qun5%%a1511E1I*K 	L%%dff1>NO1%%aR@%%a151Ca1G*I 	J uu{{,?{Cuu{{,?{C//$d3a 	t_5 ??255;;w#7dCq
5"**-.
1bjj)*UC Au2277::3BC [[*"$

>+@A ??255;;r?;q % + 	
5"%%"3"345U[["%

bBZ( ??6*q
5"%%"3"345ub) [[*"$

>+@A ??6884q % +
 	
5"%%"3"345U[[$'uzz"#1 %$ +*& %$ +*sI   +Y
6AX=Y
=Y#9YY#=Y	Y

YY 	Y##Y,c                    t        j                  g d      }t         j                  j                  |      }d}t	        j
                  t        |      5  t        j                  |       d d d        t	        j
                  t        |      5  t        j                  ||       d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)NrP  z8`power_divergence` and `chisquare` support for masked...r   )	ri   r  r  r  r  r  DeprecationWarningrc   r#  )rm   r  r  rZ  s       ru   test_deprecation_warningz(TestChisquareMA.test_deprecation_warning  s~    JJ|$UU"L\\,G<OOB =\\,G<OOAr" =< =<<<s   B-B9-B69CN)r   r   r   r  r  r  rn  rq  r   r   ru   ra  ra    s,    [[ <=H$ >H$T#r   ra  c            	         t        g d      t        g d      t        g d      t        g d      g} t        g d      t        g d      t        g d      t        g d      g}t        g d	      t        g d
      t        g d      t        g d      g}t        t        j                  | d   | d   | d   | d         d       t        t        j                  |d   |d   |d   |d         d       t        t        j                  |d   |d   |d   |d         d       t	        t
        t        j                  |d   |d          d}t        j                  |  }t        ||       t        t        j                  | d   | d   | d   | d         d       t        t        j                  |d   |d   |d   |d         d       t	        t
        t        j                  |d   |d          y )N)g"~j?g^I+?gI+?gjt?gMbX9?gʡE?x&?-?g?r   gGz?g+?gv?g9v?)g~jt?gx?gOn?rs  g"~j?n?gK7A`?rt  g7A`?r   bX9?gZd;O?g1Zd?gK?)gy&1?gzG?g`"?g!rh?g'1Z?gZd;O?grh|?gjt?gʡE?r   gzG?gS?gJ4?gʡE?)gK7?gh|?5?gl?g/$?g#~j?ru  gQ?      ?g      ?r   rv  g rh?g333333?g
ףp=
?)r1   r0   r2   r0   r2   r0   r/   r2   r1   r1   r1   r0   )r/   r/   r   r/   r0   r   r/   r0   r/   r   r   r0   )r/   r1   r0   r0   r1   r0   r0   r1   r1   r   r/   r   )r0   r2   r1   r0   r1   r1   r0   r0   r0   r1   r1   r1   )r  g#@r@   rO  g$@)g333333@g@g@r;   g@)rS  rW  r=   r   @)g!@g!@333333 @ffffff
@g333333"@r   r   r/   r0   )gNt$@gBv?)g
__2@g5"]i2?)g\(\%@g+ԋ?r  )r   r   rc   friedmanchisquarer   r   r   mstats)r<  r=  rI  r   r   s        ru   test_friedmanchisquarer}    s   
  8 9
 9 :
 : ;
 9 :
;B )
*
)
*
)
*
)
*
,B &
'
%
&
%
&
%
&
(B
 e55beBqE"Q%1NDFe55beBqE"Q%1NFHe55beBqE"Q%1N9;*e55beBqEB )J

!
!2
&CZ( f66r!ube79!ubeEDF f66r!ube79!ubeE9; *f66r!uRUCr   c                   4    e Zd ZdZ	 ddZddZd Zd Zd Zy)	
TestKSTestzLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.c                     t        j                  |d||      }t        j                  ||g      }t	        t        j                  |      ||       y Nr  r@  r  rR   )rc   kstestri   r   r   	rm   r   r@  expected_statisticexpected_probr  rS   rH  r^  s	            ru   _testOnezTestKSTest._testOneK  s?    a[tL88/?@!"((6"2HgNr   c                     t        j                  |d||      }t        j                  |t         j                  j                  ||      }t        t        j                  |      ||       y r  )rc   r  ks_1sampr  cdfr   ri   r   )rm   r   r@  r  rS   rH  result_1samps          ru   _test_kstest_and_ks1sampz#TestKSTest._test_kstest_and_ks1sampQ  sK    a[tL~~a2=DJ!"((6"2L'Rr   c                 z    t        j                  ddd      }d}t        j                  |d      }t	        ||       y )Nr^   r   r6   r  r  )ri   r`  rc   r  r   rm   r   r   r   s       ru   test_namedtuple_attributesz%TestKSTest.test_namedtuple_attributesW  s3    KKAq!,
ll1f%C,r   c                 $   t        j                  ddd      }| j                  |d       t        j                  ddd      }| j                  |d       g d}| j                  |d       | j                  |dd	
       | j                  |dd	
       y )Nr^   r   r6   r7  r  
r  gQ?g333333g(\?gQ?g(\ſg{GzgHzG?g\(\gGzr;  rY  r  r9  )ri   r`  r  r  s     ru   test_agree_with_ks_1sampz#TestKSTest.test_agree_with_ks_1samp^  s    KKAq!%%a5KKR#%%a5N%%a5%%a%A%%ag%>r   c                    t         j                   ddt         j                  g}t        j                  |t        j                  j
                        }t        j                  |t        j                  j
                  d      }t        j                  t        j                  |            sJ t        ||       t        j                  |j                        rJ t        j                  |j                        rJ y )Nr   r   T)_no_deco)ri   r  rc   r  cauchyr  r  r  r   r  r   r   )rm   r  r   rs  s       ru   test_pm_inf_gh20386zTestKSTest.test_pm_inf_gh20386j  s     Arvv&ll4!1!12ll4!1!1DAvvbkk#&'''S#88CMM***88CJJ''''r   NautorV   )	r   r   r   r   r  r  r  r  r  r   r   ru   r  r  H  s%    V ')OS-
?	(r   r  c                       e Zd ZdZ	 ddZd Zd Zd Zd Ze	j                  j                  dej                  ej                  g      e	j                  j                  dg d	      d
               Zy)TestKSOneSamplezY
    Tests kstest and ks_samp 1-samples with K-S various sizes, alternatives, modes.
    c                     t        j                  |t         j                  j                  ||      }t	        j
                  ||g      }t        t	        j
                  |      ||       y )Nr  rR   )rc   r  r  r  ri   r   r   r  s	            ru   r  zTestKSOneSample._testOne}  sH    5::>>{QUV88/?@!"((6"2HgNr   c                     t        j                  ddd      }d}t        j                  |t        j                  j
                        }t        ||       y )Nr^   r   r6   r  )ri   r`  rc   r  r  r  r   r  s       ru   r  z*TestKSOneSample.test_namedtuple_attributes  s;    KKAq!,
nnQ

/C,r   c                 8   t        j                  ddd      }| j                  |ddd       t        j                  ddd      }| j                  |dd	d
       g d}| j                  |ddd       | j                  |dddd       | j                  |dddd       y )Nr^   r   r6   r7  g|N?g7.s?r  r  g{CTp?g M<b*?r  gZL?g86J4?r;  g+?rY  r  r9  gHD?gr?ri   r`  r  r  s     ru   test_agree_with_rz!TestKSOneSample.test_agree_with_r  s    KKAq!a&9;NOKKR#a&9;OPNa&79JKa$57HwWa!24EGTr   c                     t         j                  j                  ddd      }| j                  |dddd	       | j                  |d
dd       | j                  |ddd       y )Nr^  rb  h:)ro  r.   rf  r7  ghх?g7?asympr  r9  g^h?r;  gv!ԉ}?g*z)?)rc   r  rg  r  r  s     ru   test_known_examplesz#TestKSOneSample.test_known_examples  s`    JJNNs9NEa&9;O" 	 	$a!46JKa$9;NOr   c           	         t        t        j                  t        t        j                  dd                   t        t        d      5  t        ddd       d d d        t        t        j                  t        ddd                   t        j                  g d      }t        t        |dd	      j                  t        t        t        g
       y # 1 sw Y   {xY w)Nr   Tzn is not integral: 1.5r   r9   r^   ))r  r   Tr   )r  皙?Tr   )r  r   Tr   )r  gTr   )rc        ?Tr   )rc  r  Fr   )rc  r8   Tgb?)rc  r8   FgiNq>)rc        ?Tgv(?)rc  r  TgT	?)@  g\(\?Fr   )r        ?Fg(>)r  gQ?Fg@c?)r        ?FgX+ʳP?r"  r0   )dtypes)r   ri   r  r   rj   r   r   r  r   checkintrH  bool)rm   datasets     ru   test_ks1samp_allpathsz%TestKSOneSample.test_ks1samp_allpaths  s    D123:-EFCD! GQ-./** 
 4 	'9a066sE4>P6Q= GFs   	CCksfunc*alternative, x6val, ref_location, ref_sign))r;  r3   r3   r   )r9  r4   r4   r^   )r7  r3   r3   r   )r7  r4   r4   r^   c                    t        j                  d      dz   }||d<   t        j                  d      j                  } ||||      }t        |j                  dd       |j                  |k(  sJ |j                  |k(  sJ y )	NrX   r8   r3   r-  r?  r  r   rA  )	ri   r   rc   r0  r  r   r   statistic_locationstatistic_sign)	rm   r  r@  x6valref_locationref_signr   r  r   s	            ru   test_location_signz"TestKSOneSample.test_location_sign  sy     IIbMC!mm"%))Q5s7%%555!!X---r   Nr  )r   r   r   r   r  r  r  r  r  r  r  r  rc   r  r  r  r   r   ru   r  r  x  s|    
 ')O-UP!RF [[Xenn'EF[[I78

.8 G
.r   r  c                      e Zd ZdZ	 ddZd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
        Zej                  j                  d        Zd Zd Zej                  j&                  d        Zej                  j&                  d        Zej                  j                  d        Zd Zej                  j                  d        Zej                  j3                  dg dgfdgg fg g ff      d        Zej                  j&                  d        Zd Zej                  j3                  dej<                  ej>                  g      ej                  j3                  dg d      d               Z y)TestKSTwoSamplesz<Tests 2-samples with K-S various sizes, alternatives, modes.c                     t        j                  ||||      }t        j                  ||g      }t	        t        j                  |      |       y )Nr  )rc   ks_2sampri   r   r   )	rm   r<  r=  r@  r  r  r  rH  r^  s	            ru   r  zTestKSTwoSamples._testOne  s=    B$?88/?@!"((6"2H=r   c                    | j                  dgdgddd       | j                  dgdgddd       | j                  dgdgddd       | j                  dgdgddd       | j                  dgdgddd       | j                  dgdgddd       y )	Nr   r   r7  r   r;  r8   r9  r   )r  r  s    ru   	testSmallzTestKSTwoSamples.testSmall  s    qcA3UC8qcA3	5#6qcA3s3qcA3UC8qcA3	5#6qcA3s3r   c                 p   t        j                  ddg      }|dz   }|dz
  }t        j                  g d      }| j                  ||ddd       | j                  ||ddd       | j                  ||d	dd       | j                  ||dd
d       | j                  ||dd
d       | j                  ||d	dd       y )Nr   r-  ri  rP  r7  r  r;  r  r9  r  r  r  r   ri   r   r  rm   r  data1pdata1mr  s        ru   testTwoVsThreezTestKSTwoSamples.testTwoVsThree  s    #s$)fe['3?feY=feVWc:fe['3?feY=feVQ4r   c                 p   t        j                  ddg      }|dz   }|dz
  }t        j                  g d      }| j                  ||ddd       | j                  ||ddd	       | j                  ||d
dd       | j                  ||ddd       | j                  ||ddd       | j                  ||d
dd       y )Nr   r-  ri  r  r7  r8   g?r;  g?r9  r  皙?r  r  r^  r   r  r  s        ru   testTwoVsFourzTestKSTwoSamples.testTwoVsFour  s    #s$-.fe['7CfeY@feVWg>fe['6BfeY@feVQ4r   c                 N   t        j                  ddd      }|dz   dz   }|dz   dz
  }| j                  ||ddd       | j                  ||ddd	       | j                  ||d
dd       | j                  ||ddd       | j                  ||ddd       | j                  ||d
dd       y )Nr   rb  r/   r  r7  r  g~z?r;  gz;.B?r9  r   r   {Gz?gn2IU?r  )rm   x100	x100_2_p1	x100_2_m1s       ru   test100_100zTestKSTwoSamples.test100_100  s    {{1c3'1HsN	1HsN	dI{I?QRdIy)=OPdIvq#6dI{IsCdIy)=NOdIvq#6r   c                 |   t        j                  ddd      }t        j                  ddd      }|dz   dz   }|dz   dz
  }| j                  ||ddd       | j                  ||d	dd
       | j                  ||ddd       | j                  ||ddd       | j                  ||d	dd       | j                  ||ddd       y )Nr   rb  r  r  r  r7  g?g@߿?r;  g}n?r9  r   g:[?g]O);?gѫ);?r   r   r  )rm   r  x110
x110_20_p1
x110_20_m1s        ru   test100_110zTestKSTwoSamples.test100_110  s    {{1c3'{{1c3'BY_
BY_
dJ\CWXdJ	<AUVdJ15dJ\CWXdJ	<AUVdJS9r   c                 B   t        j                  dgdz  dgdz  z   dgdz  z   dgdz  z   t              }|dz   }t        j                  dgdz  dgdz  z   dgdz  z   dgdz  z   t              }t        j                  dgdz  dgdz  z   dgdz  z   d	gdz  z   t              }| j                  ||d
dd       | j                  ||ddd       | j                  ||ddd       | j                  ||d
dd       | j                  ||ddd       | j                  ||ddd       y )Nr/   r0   r1   r2   r3   rN   r   rX   r4   r7  g      ?g^dH?r;  gQl6y?r9  r   r   gVdEVdE?g(f^?g!?gii?g+ ϖ?)ri   r   r  r  )rm   x2233x3344x2356x3467s        ru   testRepeatedValuesz#TestKSTwoSamples.testRepeatedValues  s-   !qA37*aS1W4sQw>cJ	!qA37*aS2X5a?sK!rQC!G+qcBh6!q@LeUK9KLeUIv7JKeUFFC8eUK>PQeUI{<NOeUFJ8JKr   c                    t        j                  g d      }| j                  ||dz   ddd       | j                  ||dz   ddd       | j                  ||dz   dd	d       | j                  ||d
z   ddd       | j                  ||d
z   ddd       | j                  ||d
z   dd	d       | j                  ||d
z
  ddd       | j                  ||d
z
  dd	d       | j                  ||d
z
  ddd       y )NrP  r   r7  r  r   r;  r  r9  r   r8   r  )rm   r  s     ru   testEqualSizeszTestKSTwoSamples.testEqualSizes%  s    )eU1Wk5#>eU1Wi=eU1WfeR8eU3YUC@eU3Y	5$?eU3Yr:eU3YUC@eU3Y	5#>eU3Yt<r   c           	      2   d\  }}d|z  |z  dz  dz  }t        j                  dd|      |z
  }t        j                  dd|      }| j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd
	       | j                  ||dd|z  |z  dd
	       | j                  ||dd|z  |z  dd
	       t               5 }d}|j	                  t
        |       | j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd	       d d d        t        j                  d      5 }t        j                  d       | j                  ||dd|z  |z  dd	       t        |t
        d       d d d        y # 1 sw Y   lxY w# 1 sw Y   y xY w)N)rm  iX  r   r/   r   r  r7  g     @@r  r  r  r;  g2JE?r9  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.rY  Tr%  r&  
ri   r`  r  r   r   rl   r(  r)  r*  r  	rm   n1n2deltar   rn   rt   rZ  r7  s	            ru   testMiddlingBothz!TestKSTwoSamples.testMiddlingBoth1  s    BBr	!AKK3#e+KK3#aK"r)93! 	 	#aK"r)93" 	 	$aIv{R'79K" 	 	$aFEBJO5G" 	 	$ CAGJJ~w/MM!Q	6B;+;=O&  (MM!Q
R9K&  ( ! $$D1Q!!(+MM!Q
R9K&  (A~q1	 21 !  21   AF4AFF
Fc           	      2   d\  }}d|z  |z  dz  dz  }t        j                  dd|      |z
  }t        j                  dd|      }| j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd
	       | j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd	       t               5 }d}|j	                  t
        |       | j                  ||dd|z  |z  dd	       | j                  ||dd|z  |z  dd	       d d d        t        j                  d      5 }t        j                  d       | j                  ||dd|z  |z  dd	       t        |t
        d       d d d        y # 1 sw Y   lxY w# 1 sw Y   y xY w)N)rc  L  r   r/   r   r  r7  g     ȹ@r  r  r  r;  gZ?r9  g     @@g@J?r  rY  Tr%  r&  r  r  s	            ru   testMediumBothzTestKSTwoSamples.testMediumBothM  s    BBr	!AKK3#e+KK3#aK"r)93" 	 	$aK"r)93! 	 	#aIv{R'79K" 	 	$aFFRK"$46H" 	 	$  CAGJJ~w/MM!Q	6B;+;=O&  (MM!Qb(8:L&  ( ! $$D1Q!!(+MM!Qb(8:L&  (A~q1	 21 !  21r  c                 &   d\  }}|dz  }d|z  |z  dz  dz  }t        j                  dd|      |z
  }t        j                  dd|      }| j                  ||dd	|z  d
       | j                  ||dd|z  d       | j                  ||dd	|z  d       y )N)'  r  r  r   r/   r   r  rb  r7  g    `@g      <r;  g     @g򼉷?r9  gimb:r  )rm   r  r  lcmr  r   rn   s          ru   	testLargezTestKSTwoSamples.testLargej  s    BgBr	!AKK3#e+KK3#aK38NOaIus{4GHaFGcM3IJr   c                 $   t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      dz  }| j	                  ||dddd	
       | j	                  ||dddd
       y )N@ i  rd  i  r9   r7  gC?      <r  r  rY  ri   rl  r  rn  r  r  s      ru   test_gh11184zTestKSTwoSamples.test_gh11184u  s    
		vII$'II$'#-aK)<>T" 	 	$aK)<>T" 	 	$r   c                    t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      dz  }| j	                  ||dddd	
       | j	                  ||dddd
       | j	                  ||dddd	
       | j	                  ||dddd	
       y )Nr  r  rd  i'  r9   r7  g 	_r!?gAD5r  r  r  rY  r;  gלN#y7r9  gvqw?r  r  s      ru   test_gh11184_biggerz$TestKSTwoSamples.test_gh11184_bigger  s     			vII%(II%(3.aK)<>T" 	 	$aK)<>T" 	 	$aI':<R" 	 	$aF$79O" 	 	$r   c                    t         j                  j                  d       t        ddd      D ]  }t         j                  j	                  |      }t         j                  j	                  |dz   d      }t        j                  ||d	      j                  }t        j                  ||d
	      j                  }t        |d|z         t        |d|z          y )Nr  rc  i.  rd  rX   r8   r.   ro  rY  r  r  r0   )	ri   rl  r  r  rn  rc   r  r   r   )rm   r   vals1vals2rY  r  s         ru   test_gh12999zTestKSTwoSamples.test_gh12999  s    
		vtUD)AII$$1$.EII$$1r6$<ENN5%g>EEENN5%g>EEEeQY/eQY/ *r   c           	      h   d\  }}|dz  }d|z  |z  dz  dz  }t        j                  dd|      |z
  }t        j                  dd|      }| j                  ||dd|z  d	d
       | j                  ||dd|z  dd       | j                  ||dd|z  d	d       | j                  ||dd|z  d       | j                  ||dd|z  d       t               5 }d}|j	                  t
        |       | j                  ||dd|z  dd       | j                  ||dd|z  dd       d d d        y # 1 sw Y   y xY w)N)r  i*  r  r   r/   r   r  r7  g     @gkHY?r  r  gLɔ.?rY  r  r;  g.LbG2?r9  r   gr?֎?r  )ri   r`  r  r   r   rl   )	rm   r  r  r  r  r   rn   rt   rZ  s	            ru   testLargeBothzTestKSTwoSamples.testLargeBoth  s\    BgBr	!AKK3#e+KK3#aK6H" 	 	$aK6H" 	 	$aK6H! 	 	#aIus{4FGaFD3J0BC CAGJJ~w/MM!Q	53;8J&  (MM!Qs
4F&  ( !  s   AD((D1c                 R    d}t        j                  ddgdg      }t        ||       y )Nr  r   r/   r0   )rc   r  r   rm   r   r   s      ru   testNamedAttributesz$TestKSTwoSamples.testNamedAttributes  s'    ,
nnaVaS)C,r   c           	          ddl m}m}  |dddd        |dddd       t        j                  d      5  t        t        |dd	dd       t        t        |d
ddd       d d d        y # 1 sw Y   y xY w)Nr   )_count_paths_outside_method!_compute_outer_prob_inside_methodr   rc  i  r   r  r  iK  r  )scipy.stats._stats_pyr   r  ri   r  r   FloatingPointError)rm   r   r  s      ru   test_some_code_pathsz%TestKSTwoSamples.test_some_code_paths  sk    	

 	*!Q15#D!Q5[[),.Ia,,.Ia, *))s   )A''A0r+  r   c                     t        j                  t        t              5  t	        j
                  | }t        |j                  t        j                         t        |j                  t        j                         d d d        y # 1 sw Y   y xY wr  )r  r  r   r   rc   r  r   r   ri   rj   r   rm   r+  r   s      ru   test_argument_checkingz'TestKSTwoSamples.test_argument_checking  sS     \\,4IJ..$'C/RVV, KJJ   ABBc                 *   t         j                  j                  d       d}t        j                  j                  |dd      }|dz   }t        j                  ||dd       t        j                  ||d	d       t        j                  ||d
d       y)zEnsure gh-12218 is fixed.Na i    r   r   r  r;  r  r  r9  r7  N)ri   rl  r  rc   r0  rg  r  )rm   r  rvs1rvs2s       ru   test_gh12218zTestKSTwoSamples.test_gh12218  ss    
 			x }}  bb :axtTywGtTvGDtT{Ir   c                 V   t         j                  j                  d      }|j                  d      dz   }|j                  d      }d}t        j                  t
        |      5  t        j                  ||d	
      }t        |j                  dd       d d d        y # 1 sw Y   y xY w)Ni{fr  iq  rd  r8   iq  z(ks_2samp: Exact calculation unsuccessfulr   r9  r?  r   r  r  )
ri   rl  RandomStater  r  rl   rc   r  r   r   )rm   rq  r  r  rZ  r   s         ru   test_warnings_gh_14019z'TestKSTwoSamples.test_warnings_gh_14019  s     ii###2


$s*


$<\\.8..6BCCJJ6 988s   %1BB(r  r  ))r;  皙@r  r   )r9  ffffff@rP  r^   )r7  r  r  r   )r7  r  rP  r^   c                    t        j                  dt         j                        }|j                         }||d<   t	        j
                  |||      }|j                  dk(  sJ |j                  |k(  sJ |j                  |k(  sJ y )NrX   rN   r3   r?  r  )	ri   r   r   r*   rc   r  r   r  r  )	rm   r  r@  r  r  r  r   rn   r   s	            ru   r  z#TestKSTwoSamples.test_location_sign  sx     IIb

+FFH!nnQ{;}}###%%555!!X---r   N)r  )!r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rc   r  r  r  r   r   ru   r  r    s   F >4
55	7:
L
= [[2 26 [[2 28	K$ [[$ $ [[	0 	0 [[( (.- [[, ,  [[VrA3i1#rRH%EF- G- [[
J 
J
7 [[Xenn'EF[[I;<

.< G
.r   r  c            	      $   d\  } }| |  g||gf}t        j                  ddd      }t        j                  ddd      }t        j                  t        j                  ddd      t        j                  ddd      g      }t        j                  t        j                  ddd      t        j                  ddd      g      }t        j                  ||d      \  }}t        ||g| |f       t        j                  |j                  |j                  d      \  }}t        ||g|       t        j                  ||d      \  }}t        ||g|       t               5 }	t        j                  dd	      5  |	j                  t        d
       t        j                  dd      \  }}d d d        d d d        t        t        j                  |             t        t        j                  |             d}
t        j                  ||d      }t        ||
       t        j                  |||g      }t        j                  |||g      }t        j                  ||d      \  }}t        t        j                  |      |        t        t        j                  |      |       t!        |j"                  d       t        j                  t        j$                  |dd      t        j$                  |dd      d      \  }}t        t        j                  |      |        t        t        j                  |      |       t!        |j"                  d       t'        t(        t        j                  ||d       t        j                  ||dd      \  }}t+        |d|dz  z
         t+        ||        t        j                  ||dd      \  }}t+        ||dz         t+        ||        t         j,                  j/                  d      }t        j0                  j3                  ddd|      }t         j4                  |d<   t        j0                  j3                  ddd|      t        j0                  j3                  dd|      z   }t         j4                  |d<   t        j                  d      5  t7        t        j                  ||      t         j4                  t         j4                  f       d d d        t        t        j                  ||d       d!       t'        t(        t        j                  ||d"        t'        t(        t        j                  ||d#        t9        j:                  t        d$%      5  t        j                  g d&g d'      \  }}d d d        t!        t        j                  |      |ft         j<                  df       t        j                  d      5  t!        t        j                  g d&g d&      t         j4                  t         j4                  f       t        j                  dt         j4                  gd(dgg      }t!        t        j                  |t        j>                  d)            dt         j4                  gdt         j4                  gf       d d d        t        j@                  d*      }t'        t(        t        j                  |jC                  d+      |jC                  d,             d- }t        jD                  |      }t         j4                  |d d d.d/f<   t         j4                  |d d d0d1f<   t9        j:                  tF        tH        %      5  t        j                  ||dd       \  } }d d d        t9        j:                  tF        tH        %      5  t        j                  ||ddd2      \  }}d d d        t+        || d34       t        j                  d      5  t+        | || |d      d34       d d d        t9        j:                  tF        tH        %      5  t        j                  ||ddd2      \  }}d d d        t+        || d34       t        j                  d      5  t+        | || |d      d34       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   3xY w# 1 sw Y   0xY w# 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   xY w# 1 sw Y   y xY w)5N)gu?gȵI?r   rb  rx  gKX@r   rP   r  r  r  r  r   r  r  r/   r  r  r?  r9  r  r;  r
  r2   rX     r  rm  r^  )rp  r.   rf  r  r   r   )ghm#1?gry̧?r   r   rr  r   r  r  r^   r  r  )r5   r0   r/   r0   r1   c                 D    | dk  r|dk(  s
| dkD  r
|dk(  r|dz  S d|dz  z
  S Nr   r9  r;  r/   r   r   r  r  alts      ru   convertztest_ttest_rel.<locals>.convertW  3    EcVmQ3)3Cq5LAE{r   r  rD  r  r  r  r  rA  )%ri   r`  r   rc   	ttest_relr   r~  r   r  r   rl   r   r  r   r  absr   r  r  r   r   r   rl  r  r  rg  rj   r	   r  r  r  rG  r   rg   	vectorizer   r   )trr  tprr  r  rvs1_2Drvs2_2Dr  r  rt   r   r   rvs1_3Drvs2_3Drq  r   rn   ananr  	converters                       ru   test_ttest_relr)    s   4EBrs8RG
C;;qS!D;;tF3'DhhAc#.D0LMNGhhD4bkk!C6LMNG
//$1
-CAaqeRG,
//'))WYYQ
7CAaqeC(
//'7
3CAaqeC( 
	KK:

>#FGr2&1 ; 
 BHHQKBHHQK )J
//$1
-CZ( ii12Gii12G
//'7
3CAabffQi,bffQi,&!??2;;w15;;w15 !#DAq bffQi,bffQi,&! *eootTwO??4A6BDAqAq2a4x Ar??4A9EDAqAr!tAr ))


)C

1BSsCAVVAcF	ARc	D	c#	>
?AVVAcF	X	&5??1a02662662BC 
' eooavFGI*eooq!H*eooq!I 
n,E	Fy)41 
G"&&)Q"&&!-	X	&U__Y	:RVVRVV<LM xx!RVVr1g./U__T288F+;<"&&kArvv;/	1 
' 			"A*eooqyy/@))I&( W%IGAr"uHGAr"uH	(0A	B'1HB 
C 
(0A	Bw*0fF1 
C Ar&	X	&9RV45A 
' 
(0A	Bw*0iI1 
C Ar&	X	&9RY7eD 
'	&} ;: 
	\ 
'	& 
G	F 
'	&. 
C	B 
C	B 
'	& 
C	B 
'	&s   b 20b"b #?b-+b:Ccc!c!+c.)c:3db	b  b*-b7:ccc!c+.c7:ddc                     t         j                  dddg} g d}t        j                  | |d      }t        j                  || d      }t	        |j
                  |j
                   d       t	        |j                  |j                  d       t        j                  |d	d  | d	d        }t	        ||d       t	        |d
d       y )Nr-  r   r  r   r-  r   r-  r   r   r   r  r   )r  grh|?-C6?)ri   rj   rc   r  r   r   r   r   rn   r  r  r3s        ru   test_ttest_rel_nan_2nd_argr/  r  s    	c3AA	A&	1B	A&	1BBLL2<<-e<BIIryyu5 
12!"	&BB' B40r   c                  8   t        j                  t        t              5  t	        j
                  g g       } d d d        t         t        j                  j                        sJ t        | t        j                  t        j                  f       y # 1 sw Y   ZxY wr  )r  r  r   r   rc   r  rb  	_stats_pyTtestResultr   ri   rj   rH  s    ru   #test_ttest_rel_empty_1d_returns_nanr4    e     
(0E	FR( 
Gfeoo99:::"&&"&&)* 
G	F   BBzb, expected_shape)r   r2   r   r  r   r   r   )r0   r   c                    t        j                  d      }t         j                  j                         5 }|j	                  t
        t               t        j                  || d      }d d d        t        t        j                  j                        sJ t        j                  |t         j                        }t        |j                  |       t        |j                   |       y # 1 sw Y   xY wN)r0   r   r   r^   rP   r  )ri   rT  r  r   r   r   r   rc   r  rb  r1  r2  r}   rj   r   r   r   r  expected_shaper  rt   rH  expected_values         ru   test_ttest_rel_axis_size_zeror=         	A		%	%	'3

%'<=AB/ 
( feoo99:::WW^?N!!>2/ 
(	'   3C''C0c                  T   t        j                  d      } t        j                  d      }t        j                  | |d      }t	        |t        j
                  j                        sJ t        |j                  j                  d       t        |j                  j                  d       y N)r   r5   r   r2   r5   r   r   rP   r2   r   )ri   rT  rc   r  rb  r1  r2  r   r   r  r   r  r  rH  s      ru    test_ttest_rel_nonaxis_size_zerorE    v    
 	A
A__Q*Ffeoo99:::!!''0$$f-r   r@  r  c                    t         j                  j                  d      }d}|j                  |dd      }|j                  |dd      }ddgdt         j                  gt         j                   d	gd
}t        j                  |||       }|j                  d      }t        |||           t        |j                  |dz
         y )Nl   C67l:  rX   r9   r/   r  gZ?Ygi{a?g8 gC?r  r?  r  r  r   )ri   rl  rm  rn  r  rc   r  r/  r   r   r  )r@  rq  r  r   rn   rs  r   rI  s           ru   test_ttest_rel_ci_1drH    s     ))

 3
4C
A

s!
,A

q
*A ,->?)2662VVG013C //!QK
8C		 	 $	 	7BBK()1r   ztest_fun, argsrX   c                      | | }d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr  r   rX   r  )r  r   r   r/  )test_funr  r   rZ  s       ru   test_ttest_ci_ivrK    s=    
 D/CDG	z	14 
2	1	1s	   ?Ac                 0    dd} || |       |||      z   S )Nc                     t        j                  |       } t        j                  | |      }t        j                  | |d      }| j                  |   }|||fS )NrP   r   rv  )ri   r  rh   r   r  )r   rQ   mur   nobss        ru   _statsz_desc_stats.<locals>._stats  sJ    JJqMWWQT"ffQT*wwt}3}r   r	  r   )r<  r=  rQ   rP  s       ru   _desc_statsrQ    s"     "dfR...r   c            	         d} d}| |  g||gf}t        j                  ddd      }t        j                  ddd      }t        j                  ||g      }t        j                  ||g      }t        j                  ||d      \  }}t        ||g| |f       t        t        j                  t        ||       ||g       t        j                  |j                  |j                  d      \  }}t        ||g|       t        |j                  |j                        }	t        t        j                  |	 ||g       t        j                  ||d      \  }}t        ||g|       t        ||d      }	t        t        j                  |	 ||g       t               5 }
t        j                  d	
      5  |
j                  t        d       t        j                  dd      \  }}d d d        d d d        t        t        j                  |             t        t        j                  |             t        j                  |||g      }t        j                  |||g      }t        j                  ||d      \  }}t!        t        j"                  |      t        j"                  |              t        t        j"                  |      |       t%        |j&                  d       t        j                  t        j(                  |dd      t        j(                  |dd      d      \  }}t        t        j"                  |      t        j"                  |              t        t        j"                  |      |       t%        |j&                  d       t+        t,        t        j                  ||d       t+        t,        t        j                  gt        |j                  |j                        ddi t        j                  ||d      \  }}t/        |d|dz  z
         t/        ||        t        j                  ||d      \  }}t/        ||dz         t/        ||        t        j                  |j                  |j                  dd      \  }}t        |j                  |j                        }	t/        t        j                  |	ddi||g       t        j                  |j                  |j                  dd      \  }}t        |j                  |j                        }	t/        t        j                  |	ddi||g       t         j0                  j3                  d      }t        j4                  j7                  ddd|      }t         j8                  |d<   t        j4                  j7                  ddd|      }t        j                  d	
      5  t;        t        j                  ||      t         j8                  t         j8                  f       d d d        t        t        j                  ||d      d       t+        t,        t        j                  ||d       t+        t,        t        j                  ||d        t=        j>                  t        d!"      5  t        j                  g d#g d$      \  }}d d d        t%        t        j"                  |      |ft         j@                  df       t        j                  d	
      5  t%        t        j                  g d#g d#      t         j8                  t         j8                  f       t        j                  dt         j8                  gd%dgg      }t%        t        j                  |t        jB                  d&            dt         j8                  gdt         j8                  gf       d d d        t         j8                  |d d d d dd'f<   t         j8                  |d d d d d(d)f<   d* }t        jD                  |      }t        j                  ||dd      \  } }t        j                  ||ddd+      \  }}t/        || d,-       t/        | || |d      d,-       t        j                  ||ddd+      \  }}t/        || d,-       t/        | || |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   0xY w# 1 sw Y   -xY w).N	ru?g8Mѱ?r   rb  r2   i   r   rP   r  r  r  r  r   r  r/   r  r  r?  r@  r9  r;  r  r
  rX   r  r  rm  r   r   )guͷ?g*,?r   r   rr  r   r  r  r^   r  r  r3   rZ   c                 D    | dk  r|dk(  s
| dkD  r
|dk(  r|dz  S d|dz  z
  S r  r   r  s      ru   r  ztest_ttest_ind.<locals>.convertF  r  r   r  r  rA  )#ri   r`  r   rc   	ttest_indr   ttest_ind_from_statsrQ  r~  r   r  r   rl   r   r  r  r   r  r   r  r  r   r   r   rl  r  r  rg  rj   r	   r  r  r  rG  r   )r!  r  r"  r  r  r#  r$  r  r  r  rt   r%  r&  rq  r   rn   r'  r  r(  s                      ru   test_ttest_indrX    s   	B	Bs8RG
C;;qS!D;;qS!Dhhd|$Ghhd|$G
//$1
-CAaqeRG,e88+dFJ;L M !f& //'))WYYQ
7CAaqeC(wyy')),De88$? !f&
//'7
3CAaqeC(wa0De88$? !f& 
	R[[%B

>#FGr2&1 &C	 BHHQKBHHQK ii12Gii12G
//'7
3CAaq	266":.bffQi,&!??2;;w15;;w15 !#DAq bffQi4bffQi,&! *eootTwO*e88 Kwyy'))4KBIK ??46:DAqAqBqDz"Ar??49=DAqAr!tAr ??799giiaVLDAqwyy')),D""D=f=1vG ??799giiaYODAqwyy')),D""D@i@1a&J ))


)C

1BSsCAVVAcF

1BSsCA	X	&5??1a02662662BC 
' eooavFHJ*eooq!H*eooq!I 
n,E	Fy)41 
G"&&)Q"&&!-	X	&U__Y	:RVVRVV<LM xx!RVVr1g./U__T288F+;<"&&kArvv;/	1 
' 66GAq"R%K&&GAq!B$J W%I__WgqVDFB??7GQ6'-/DAqAr&AyR0u=??7GQ6'02DAqAr&AyR3%@{ &C%B		h 
'	& 
G	F 
'	&sI   c.0b6c	?cc>Cc*6c 	;cccc'*c4c                      e Zd ZdZej
                  j                  d        ej                   ej                  dez  dz        ej
                  j                  dez  dz        f      Z	 ej                   ej                  edz        dz   ej
                  j                  edz        f      Z
 ej                  d      Z ej                  d      dz   ZddgZddgZej
                  j                  d       ej                   j#                  d	dd
      j%                  dd	      j&                  Zej                   j#                  ddd      ZddgZddgZg dZe	e
ddiefe	j&                  e
j&                  ddiefe	dddf   e
dddf   ddied   fe	dddf   j3                         e
dddf   j3                         ddied   fe	e
dddefe	e
ej
                  j5                  d      ddefeeddidfeedddefeei dfe	e
ej
                  j7                  d      ddefg
Zej<                  j?                  de      d        Z d Z!d Z"d Z#d Z$ej<                  jK                         d        Z&d  Z'd! Z(d" Z)y)#Test_ttest_ind_permutationsr  r   r0   r1   rb  rX   r   r/   r2   rm  rn  r5   g'^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rQ   N)rf  rQ   	equal_varTr^   )rQ   rf  r  za,b,update,p_dc                     d dd}d dddd}|j                  |       |j                  |       t        j                  ||fi |\  }}t        j                  ||fi |\  }	}
t        ||	d       t        |
|       y )NFrQ   r[  rc  r   )rQ   r[  permutationsrf  r2   )updaterc   rV  r   )rm   r  r  r_  p_d	options_a	options_pstat_ar,  stat_pr   s              ru   test_ttest_ind_permutationsz7Test_ttest_ind_permutations.test_ttest_ind_permutations  s    !6	!%)1>	  OOAq6I6	A;;!&&!4!&#.r   c                 V   t         j                  j                  d       d}t         j                  j                  d|d      }t         j                  j                  d|d      }ddd}|j	                  d       t        j                  ||fi |}t        j                  ||fi |}|j	                  d	       t        j                  ||fi |}t        j                  ||fi |}|j	                  d
       t        j                  ||fi |}	t        j                  ||fi |}
t        |j                  |j                         t        |j                  |	j                         t        |j                  |j                          t        |j                  |j                          t        |	j                  |
j                          t        |	j                  |
j                         t        |j                  |j                         t        |j                  |j                         |j                  dk  }t        |j                  |   |j                  |   z   |	j                  |          t        |j                  |    |j                  |    z   |	j                  |           y )Nr   r0   r/   r   rc  )rQ   r^  r;  r?  r9  r7  r8   
ri   rl  r  r  r_  rc   rV  r   r   r   )rm   Nr  r  rb  res_g_abres_g_bares_l_abres_l_bares_2_abres_2_bar  s               ru    test_ttest_ind_exact_alternativez<Test_ttest_ind_permutations.test_ttest_ind_exact_alternative  s!   
		qIINN1a#IINN1a#5	Y/??1a595??1a595V,??1a595??1a595[1??1a595??1a595 	X''););<X''););< 	X''(*<*<)<=X''(*<*<)<=X''(*<*<)<= 	X__hoo6 	X__hoo6X__hoo6#%X__T*X__T-BB__T*	,X__dU+hoote.DD__dU+	-r   c                 <   t         j                  j                  d       d}t         j                  j                  |      }t         j                  j                  |      }t	        j
                  ||      }t	        j
                  ||d      }t	        j
                  ||d      }t	        j
                  ||t         j                        }|j                  |j                  k7  sJ |j                  |j                  k(  sJ |j                  |j                  k(  sJ y )Nr   r0   rc  r^  )ri   rl  r  r  rc   rV  r  r   )rm   rh  r  r  r  r>  r?  r]  s           ru   test_ttest_ind_exact_selectionz:Test_ttest_ind_permutations.test_ttest_ind_exact_selection  s    
		qIINN1IINN1q!$q!$7q!!4q!"&&9{{dkk))){{dkk))){{dkk)))r   c                    t         j                  j                  d       t         j                  j                  d      }t         j                  j                  d      }t        j                  ||f      }t        |      t        |      }}d}t        |||d      \  }}}t        t        |            }	|	t        ||z   |      k(  sJ t        |      |	k(  sJ y )Nr   r0   r1   r  T)	ri   rl  r  r  r  r0  r    setr   )
rm   r  r  r+  nanbr^  t_statr,  n_uniques
             ru   !test_ttest_ind_exact_distributionz=Test_ttest_ind_permutations.test_ttest_ind_exact_distribution  s     			qIINN1IINN1~~q!f%QQB24r3791 s6{#5b"----6{h&&&r   c                 T   t         j                  j                  d       d}t         j                  j                  dd|      }t         j                  j                  d|      }dddd}|j	                  d	       t        j                  ||fi |}t        j                  ||fi |}|j	                  d
	       t        j                  ||fi |}t        j                  ||fi |}t        |j                  |j                         t        |j                  |j                          t        |j                  |j                          t        |j                  |j                  z   dd|d   dz   z  z          t        |j                  |j                  z   dd|d   dz   z  z          y )Nr   rC  r/   r0   r^   rc  )rQ   r^  rf  r;  r?  r9  r   r^  rg  )	rm   rh  r  r  rb  ri  rj  rk  rl  s	            ru   #test_ttest_ind_randperm_alternativez?Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative  sm   
		qIINN1a#IINN1a qI	Y/??1a595??1a595V,??1a595??1a595 	X''););< 	X''(*<*<)<=X''(*<*<)<= 	X__x6In59::	<X__x6In59::	<r   c                    t         j                  j                  d       d}t         j                  j                  |d      }t         j                  j                  |d      }ddd}|j	                  d       t        j                  ||fi |}|j	                  d       t        j                  ||fi |}|j	                  d	       t        j                  ||fi |}t        |j                  |j                  z   d
d
|d   d
z   z  z          |j                  dk  }t        d|j                  |   z  |j                  |   d       t        dd
|j                  |    z
  z  |j                  |    d       t        d|j                  |    z  |j                  |    d       t        dd
|j                  |   z
  z  |j                  |   d       y )Nr   rC  r1   r  r^  rf  r;  r?  r9  r7  r   r^  r8   r/   r  r  )
ri   rl  r  r  r_  rc   rV  r   r   r   )	rm   rh  r  r  rb  ri  rk  rm  r  s	            ru   $test_ttest_ind_randperm_alternative2z@Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative2  s   
		qIINN1a IINN1a %*A>	Y/??1a595V,??1a595[1??1a595 	X__x6In59::	<
 #%HOOD11 -D	:Qxu556 .T	;HOOTE22 .T	;Qxt445 -D	:r   c                    t         j                  j                  d       d}t         j                  j                  |d      }t         j                  j                  |d      }t         j                  |d<   t         j                  |d<   t         j                  |d<   t         j                  |d<   ddd}|j                  d	
       t        t        d      5  t        j                  ||fi |}d d d        t               5 }|j                  t        d       |j                  d
       t        j                  ||fi |}t        j                  |      j                  d      t        j                  |      j                  d      z  }t        j                  |d d | f   |d d | f   fi |}t        |j                   |   t         j                         t        |j"                  |   t         j                         t%        |j                   |    |j                          t%        |j"                  |    |j"                         t        j                  |j'                         |j'                         fi |}t        j                  |j                         sJ t        j                  |j"                        sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   rC  r2   r2   r   )r5   r/   )r6   r0   rc  r}  r   r   r  r   r   r  rP   )ri   rl  r  r  rj   r_  r   r   rc   rV  r   rk   rl   r  r  r   r   r   r   r  )	rm   rh  r  r  rb  r   rt   r  r?  s	            ru   $test_ttest_ind_permutation_nanpolicyz@Test_ttest_ind_permutations.test_ttest_ind_permutation_nanpolicy  s   
		qIINN1a IINN1a &&$&&$&&$&&$%)1=	 	G,:-LM//!Q4)4C N  CJJ~'784//!Q4)4C88A;???*RXXa[__!_-DDD??1QX;!dU(IyIDD)2662t,bff5CJJu-t{{;CMM4%0$..A //!'')QWWYD)DC88CJJ'''88CMM***# ! 	 NM ! s   K F=KKKc                    t        t        d      5  t        j                  | j                  | j
                  d       d d d        t        t        d      5  t        j                  | j                  | j
                  d       d d d        t        t        d      5  t        j                  | j                  | j                  ddd	       d d d        y # 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   y xY w)
NzPermutations must ber   r_   rq  r9   z'hello' cannot be usedr   hello)r^  rf  rQ   )r   r   rc   rV  r  b2r  r  r  s    ru   'test_ttest_ind_permutation_check_inputszCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputs=  s    :-CDOODGGTWW2> E:-CDOODGGTWW3? E:-EFOODFFDFF)0q: GF	 EDDDFFs#   -C-C"/C.C"C+.C7c                     d}t         j                  j                  |d      }t         j                  j                  |d      }t        j                  ||d      j
                  }t        d|v       d|vsJ y )NrX   r  r   rq  r   )ri   rl  r  rc   rV  r   print)rm   rh  r  r  p_valuess        ru   )test_ttest_ind_permutation_check_p_valueszETest_ttest_ind_permutations.test_ttest_ind_permutation_check_p_valuesF  sb    IINN1b!IINN1b!??1aa8??c!"("""r   )*r   r   r   rh  ri   rl  r  r~  r   r  r  r  r  r  b3rc   r  rg  rg   r~  r  r  r`  p_d_genp_d_bigtolistr  rm  paramsr  r  r  re  ro  rr  ry  r{  r  r~  r  r  r  r   r   ru   rZ  rZ  Y  s   
A IINN1		9299QqS!V$bii&6&6qsAv&>?@A		9299QT?S("))*:*:1a4*@ABA 
2B	2	B QB
QB IINN1::>>ar"  $$+GCOAA 	::>>ar>4D<
 C~&G+G 
A{C 	
accFA;$	
1a4!AqD'FD>3q62	
1a4	1QT7>>+fd^SVD	
A1-s3	
A		 5 5a 8!DcJ	R+t$f-	tb!4g>	RS	
A		 5 5a 8!DgN
F [[-v6
/ 7
/(-T*'&<: [[: :B"+H:#r   rZ  c                      e Zd Zej                  j                         ej                  j                  ddddddii gg d      ej                  j                  d	d
dgd	dg      d                      Zej                  j                  ddddddii gg d      ej                  j                  dddg      d               Zy)Test_ttest_ind_commonkwdsr  r   r}  trimr^  )r^  r  basic)idsr[  TFunequal_varc           	      R   t         j                  j                  d       t         j                  j                  dddddd      }t         j                  j                  ddddd      }t	        j
                  ||fd	d
i|}d\  }}}||d d |d d dd d f   }	|d d dd d |d d f   }
t	        j
                  |	|
fd	di|}t        |j                  |d d ||d d f   |j                         t        |j                  |d d ||d d f   |j                         t        j                  t        j                  |d      d
d      }t        j                  t        j                  |d      d
d      }|j                  d d }t        j                  |      }t        j                  |      }t        d |D         D ]C  }||   }||   }t	        j
                  ||fd	di|}|j                  ||<   |j                  ||<   E t        ||j                         t        ||j                         y )Nr   r2   r1   r4   r   r3   r5   r/   rQ   r_   )r/   r0   r   r  r   r   r   r   r/   r   r^   r2   r   r1   r   r   r   c              3   2   K   | ]  }t        |        y wri  r  .0r  s     ru   	<genexpr>z=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>r  s      95aq5   )ri   rl  r  r  rc   rV  r   r   r   r  tiler  rG  r   r   )rm   r  r[  r  r  r   r  r  r  r  r  r?  r   rn   r  
statisticspvaluesindicesxiyir]  s                        ru   test_ttest_many_dimsz*Test_ttest_ind_common.test_ttest_many_dimsS  s    			qIINN1aAq!,IINN1aAq)ooa44t4 1aq!Q1a q!Q1}r27B7$7S]]1aAq=1^^	%SZZ1aA.[[	" KK#56B?KK#56B?XXe_
((5/ 95 9:G7B7B??2r;;d;D"&..Jw#{{GG ; 	
CMM2,r   )r  r^  r  rQ   r^   c                 L   t         j                  j                  dd      j                  d      }t         j                  j                  dd      j                  d      }t         j                  |d   d   d<   t         j                  |d   d   d<   t        j
                  t        j                  ||z   |	            }t               5 }t        j                  d
      5  |j                  t        d       |j                  t        d       t        j                  ||fd|i|}d d d        d d d        t        j
                  j                        }t        ||       t        j
                  |j                        }	t        |	|       y # 1 sw Y   hxY w# 1 sw Y   lxY w)NrX   )r2   r0   rX   rd  rH  r   r/   r0   r3   rP   r  r  z'invalid value encountered in less_equalrr  rQ   )ri   rl  randintr[  rj   r  r  r   r  r   rl   rc   rV  r   r	   r   )
rm   r  rQ   r  r  r^  rt   r   p_nansstatistic_nanss
             ru   test_nans_on_axisz'Test_ttest_ind_common.test_nans_on_axis|  s9    IIbz299'BIIbz299'BVV!Q
VV!Q
 88BFF1q5t45  CX)FJJ~@BJJ~'@A//!Q:T:T:C	 *G 
 #**%68,#--0>84 *G)F  s%   
F!AF'FF	FF#N)	r   r   r   r  r  r  r  r  r  r   r   ru   r  r  P  s     [[[[VsA&N'-rlB&8!B  D [[[4-"-}!=  ?!-?D !-F [[VsA&N'-rlB&8!B  D [[Vb!W-5 .D5r   r  c            	       V   e Zd Zg dg ddddgg dg ddddgg dg dd	d
dgg dg ddddgg dg ddddggZej
                  j                  de      d        Zd Zd Z	ej
                  j                  dd      d        Z
d Zej
                  j                  dg d      d        Zy) Test_ttest_trimrT  r  r  g@9(?er^  )rs  g33333`@rZ   g33333^@g(\P@r  gfffffڇ@gBM)u?g]@gyd?g	s5v@g{Gz?r  r  r  r   ffffff?r   rU  rU  r  r  r  r>   g@ry  r;   r8   rU  g333333@rS  r  g@rR  gn4aƂg?^)g,
gm?giI@gE|x!gvwQ?glfPg_)gXG~?g=n@g8$mg({g]:m?gYv gb?gb	gSTß}g9yg.Ͽv?g޺i?g	'X@)g>_\?g hO?gau?@g׌g+?g:؜^gz54g7f?gDO%@g#xG@g\F?g4E?gnfg>P"ۿguX@gvR?g%?g2Ydzgo?gih?gn?g!nu?gJ+bza,b,pr,tr,trimc                 t    t        j                  |||d      \  }}t        ||d       t        ||d       y)a  
        Using PairedData's yuen.t.test method. Something to note is that there
        are at least 3 R packages that come with a trimmed t-test method, and
        comparisons were made between them. It was found that PairedData's
        method's results match this method, SAS, and one of the other R
        methods. A notable discrepancy was the DescTools implementation of the
        function, which only sometimes agreed with SAS, WRS2, PairedData and
        this implementation. For this reason, most comparisons in R are made
        against PairedData's method.

        Rather than providing the input and output for all evaluations, here is
        a representative example:
        > library(PairedData)
        > a <- c(1, 2, 3)
        > b <- c(1.1, 2.9, 4.2)
        > options(digits=16)
        > yuen.t.test(a, b, tr=.2)

            Two-sample Yuen test, trim=0.2

        data:  x and y
        t = -0.68649512735573, df = 3.4104431643464, p-value = 0.5361949075313
        alternative hypothesis: true difference in trimmed means is not equal
        to 0
        95 percent confidence interval:
         -3.912777195645217  2.446110528978550
        sample estimates:
        trimmed mean of x trimmed mean of y
        2.000000000000000 2.73333333333333
        Fr  r[  r   r  Nrc   rV  r   )rm   r  r  r  r!  r  r   r   s           ru   test_ttest_compare_rz$Test_ttest_trim.test_ttest_compare_r  s6    @ "OOAqtuM	6	2E2/r   c                     g d}g d}t        j                  ||dd      \  }}t        |dd       t        |d	d       y )
N)rZ   rV   r  r  rc  ,   rZ   rV   r  r  rc  r  )ra   r  rV   rZ   rD     r  ra   r  rV   rZ   rD  r  r  g
ףp=
?Fr  gRbv?rC  r  gOi?r  rm   r  r  r   r   s        ru   test_compare_SASz Test_ttest_trim.test_compare_SAS  sA     =D "OOAqseL	6t4	8$7r   c                     g d}g d}t        j                  ||d      \  }}t        |dd       t        |dd       y	)
a  
        The PairedData library only supports unequal variances. To compare
        samples with equal variances, the multicon library is used.
        > library(multicon)
        > a <- c(2.7, 2.7, 1.1, 3.0, 1.9, 3.0, 3.8, 3.8, 0.3, 1.9, 1.9)
        > b <- c(6.5, 5.4, 8.1, 3.5, 0.5, 3.8, 6.8, 4.9, 9.5, 6.2, 4.1)
        > dv = c(a,b)
        > iv = c(rep('a', length(a)), rep('b', length(b)))
        > yuenContrast(dv~ iv, EQVAR = TRUE)
        $Ms
           N                 M wgt
        a 11 2.442857142857143   1
        b 11 5.385714285714286  -1

        $test
                              stat df              crit                   p
        results -4.246116897032513 12 2.178812829667228 0.00113508833897713
        r  r  r^  r  gR?rg  r  g^Nr  r  s        ru   test_equal_varzTest_ttest_trim.test_equal_var  s@    & DC!OOAqr:	6 3%@	#5EBr   z	alt,pr,tr))r;  gjΜ>5?r  )r9  gn4aƂW?r  c                     g d}g d}t        j                  ||dd|      \  }}t        ||d       t        ||d       y)	z
        > library(PairedData)
        > a <- c(2.7,2.7,1.1,3.0,1.9,3.0,3.8,3.8,0.3,1.9,1.9)
        > b <- c(6.5,5.4,8.1,3.5,0.5,3.8,6.8,4.9,9.5,6.2,4.1)
        > options(digits=16)
        > yuen.t.test(a, b, alternative = 'greater')
        r  r  r^  F)r  r[  r@  rg  r  Nr  )rm   r  r  r!  r  r  r   r   s           ru   test_alternativesz!Test_ttest_trim.test_alternatives  sE     DC!OOAqrU8;=	6/	2E2r   c                     d}t        t        |      5  t        j                  ddgddgdd       d d d        y # 1 sw Y   y xY w)Nz7Permutations are currently not supported with trimming.r   r   r/   r0   r^  )r  r^  r   r   rc   rV  )rm   r   s     ru   test_errors_unsupportedz'Test_ttest_trim.test_errors_unsupported  s:     J:U3OOQFQF!D 433s	   ;Ar  )gɿr8   r   c                     d}t        t        |      5  t        j                  ddgddg|       d d d        y # 1 sw Y   y xY w)Nz/Trimming percentage should be 0 <= `trim` < .5.r   r   r/   r  r  )rm   r  r   s      ru   test_trim_bounds_errorz&Test_ttest_trim.test_trim_bounds_error  s5    A:U3OOQFQF6 433s	   :AN)r   r   r   r  r  r  r  r  r  r  r  r  r  r   r   ru   r  r    s    	O%8:M			1?	/	5	1?	/	6	@	@	,b	2
H
  "34Db	JKF& [[-v6!0 7!0F8C4 [[[N3	3 E [[V\27 37r   r  c                      e Zd Z ej                  d      Zg ded<   dddej                   dged	<   ddd
dej                  ged<   g ded<   dddej                   dged<   ddddej                  ged<   g ded<   g ded<   g ded<   g ded<   g ded <   g d!ed"<   ej                  j                  d#g d$      ej                  j                  d%d&d'g      ej                  j                  d(d)d*g      d+                      Z
y,)-Test_ttest_CI)r0   r/   r/   r2   )r  )gͿe13@gv7?gę"Ͽg8 {M(?r  r  r  gv7?gx_?r7  g
/?gD .ɿ)r/   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   r  r  g?JJ?gF?)r   r   r   g{?gads2ѿ)r/   r   r   )s"%οr  gW"?NN)r   r   r   )r  r  gW"?NNr   r   r   )r  r  g:T'?NN)r/   r   r   ):пrV   g0:5?NNr  )r  rV   g0:5?NNr  )r  rV   g be?NN)r/   r   r   r@  r  r[  FTr  r   r^  c                    |r|rt        j                  d       t        j                  j	                  d      }|j                  d      }|j                  d      }t        j                  |||||      }dddd	}| j                  ||   t        |      t        t        j                  |            f   }	|	\  }
}}}}t        |j                  |
       t        |j                  |       t        |j                  |       |s>|j                  d
      }t        |j                  |       t        |j                   |       y y )Nz3Discrepancy in `main`; needs further investigation.l   'Nk' rY   r[   )r@  r[  r  r   r   r/   r  r  )r  xfailri   rl  rm  rc   rV  r   r  ceilr   r   r  r   r/  r2  r3  )rm   r@  r[  r  rq  r   rn   r   r  rs  r   r  r   r2  r3  rI  s                   ru   test_confidence_intervalz&Test_ttest_CI.test_confidence_intervalG  s    LLNOii##$78JJrNJJrNooa(1> &'a@ff\+.IBGGDM@RRS+.(	2vsDy1#

F+((-BBFFC(BGGT* r   N)r   r   r   ri   rT  r   r  r  r  r  r  r   r   ru   r  r    s   : 	|$ANAgJibffWlKAgJiM266JAgJLAgJibffWlKAgJiL"&&IAgJJAgJJAgJJAgJJAgJJAgJJAgJ[[],LM[[[5$-8[[VaX.+ / 9 N+r   r  c            	      D   t         j                  j                  d       t         j                  j                  dddddd      } t         j                  j                  ddddd      }t	        | |fd	
      }t        j
                  | d      } t        j
                  |d   d      }t        d |j                  D         D ]`  }|\  }}}}}}	|| j                  d	   k  r| ||||||	f   |||||||	f   k(  r6J |||||| j                  d	   z
  ||	f   |||||||	f   k(  r`J  y )Nr   r2   r1   r0   r   r3   r5   r/   r_   rP   r  )N.r  c              3   2   K   | ]  }t        |        y wri  r  r  s     ru   r  z.test__broadcast_concatenate.<locals>.<genexpr>k  s     5W58Wr  )ri   rl  r  r  r   r  r   r  )
r  r  r  indexr  r  r  r  r  r  s
             ru   test__broadcast_concatenater  a  s*    IINN1
		q!Q1a(A
		q!Q1%A1vB/A
%&A
)01A5QWW56 1aAqqwwr{?Q1aA%&!Aq!Q1,<*====Q1a!''"+oq!34!Q1a:J8KKKK 7r   c            	         d} d}d}d}t        j                  | |d      \  }}t        ||g||g       t        t        j                  t	        | |      ddi||g       d} d	}d
}t        j                  | |d      \  }}t        ||g||g       t        t        j                  t	        | |      ddi||g       d}d}d}d}|| g||gf}t        j                  ddd      }	t        j                  ddd      }
t        j                  ddd      }t        j                  ||
g      }t        j                  |
|g      }t        j                  ||
dd      \  }}t        ||g||f       t        t        j                  t	        ||
      ddi||f       t        j                  ||	dd      \  }}t        ||g||f       t        t        j                  t	        ||	      ddi||f       t        j                  |j                  |j                  dd      \  }}t        ||g|       t	        |j                  |j                        }t        t        j                  |ddi||f       t        j                  ||dd      \  }}t        ||g|       t	        ||d      }t        t        j                  |ddi||f       d}t        j                  ||
dd      }t        ||       t        j                  |||g      }t        j                  |||g      }t        j                  ||dd      \  }}t        t        j                  |      t        j                  |             t        t        j                  |      |       t        |j                  d       t	        ||d      }t        j                  |ddi\  }}t        t        j                  |      t        j                  |             t        t        j                  |      |       t        |j                  d       t        j                  t        j                  |dd      t        j                  |dd      dd      \  }}t        t        j                  |      t        j                  |             t        t        j                  |      |       t        |j                  d       t	        t        j                  |dd      t        j                  |dd      d      }t        j                  |ddi\  }}t        t        j                  |      t        j                  |             t        t        j                  |      |       t        |j                  d       t!        j"                  t$        d      5  t        j                  g dg dd      \  }}d d d        t        t        j                  |      |ft
        j&                  df       t        j(                  d       5  t        t        j                  g dg dd      t
        j*                  t
        j*                  f       t        j                  dt
        j*                  gd!dgg      }t        t        j                  |t        j,                  d"      d      dt
        j*                  gdt
        j*                  gf       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)#NrT  r  r  r  Fr[  r[  r>  gJ?g*ʿrS  g@[?gωұ?ghG?r   rb  r  r2   rT  r   r]  rP   r  r  r/   r  rr  r   r  r  r  r  r^   r  )rc   rV  r   rW  rQ  ri   r`  r   r~  r   r  r   r  r   r  r  r  r  rl   r  r  rj   rG  )r  r  r  r!  r  r  	tr_uneq_n	pr_uneq_nr"  rvs3r  r  r#  r$  r  r   r   r%  r&  r'  s                       ru   test_ttest_ind_with_uneq_varr  s  s   AA	B	B??1a51DAqqeb"X.e88+a:K JCHJ !f& 	A	B	B??1a51DAqqeb"X.e88+a:K JCHJ !f&
 
B#I	B#Is8RG
C;;qb!D;;qS!D;;qS!Dhhd|$Ghhd|$G
//$1
>CAaqeRG,e88+dFJ;L JCHJ  !!f&
 //$1
>CAaqei%;<e88+dFJ;L JCHJ  !!f&
 //'))WYYQ%
HCAaqeC(wyy')),De88$ JCHJ !f& //'7e
DCAaqeC(wa0De88$ JCHJ !f&
 )J
//$1
>CZ( ii12Gii12G
//'7e
DCAaq	266":.bffQi,&!wa0D%%t=u=DAqq	266":.bffQi,&!??2;;w15;;w15 !U4DAq bffQi4bffQi,&!r{{7Aq1{{7Aq1;D%%t=u=DAqbffQi4bffQi,&! 
n,E	Fy)uE1 
G"&&)Q"&&!-		"U__Y	UKffbff%	' xx!RVVr1g./U__T288F+;uM"&&kArvv;/	1 
#	" 
G	F 
#	"s   + [(C[5([25[>c                     t         j                  dddg} g d}t        j                  | |d      }t        j                  || d      }t	        |j
                  |j
                   d       t	        |j                  |j                  d       t        j                  || d	d        }t	        ||d       t	        |d
d       y )Nr-  r   r  r+  r   r   r   r  r   )g8HgW@?)ri   rj   rc   rV  r   r   r   r-  s        ru   test_ttest_ind_nan_2nd_argr    s    	c3AA	A&	1B	A&	1BBLL2<<-e<BIIryyu5 
AabE	"BB' BC r   c                  8   t        j                  t        t              5  t	        j
                  g g       } d d d        t         t        j                  j                        sJ t        | t        j                  t        j                  f       y # 1 sw Y   ZxY wr  )r  r  r   r   rc   rV  rb  r1  r2  r   ri   rj   r3  s    ru   #test_ttest_ind_empty_1d_returns_nanr    r5  r6  c                    t        j                  d      }t         j                  j                         5 }|j	                  t
        t               t        j                  || d      }d d d        t        t        j                  j                        sJ t        j                  |t         j                        }t        |j                  |       t        |j                   |       y # 1 sw Y   xY wr9  )ri   rT  r  r   r   r   r   rc   rV  rb  r1  r2  r}   rj   r   r   r   r:  s         ru   test_ttest_ind_axis_size_zeror    r>  r?  c                  T   t        j                  d      } t        j                  d      }t        j                  | |d      }t	        |t        j
                  j                        sJ t        |j                  j                  d       t        |j                  j                  d       y rA  ri   rT  rc   rV  rb  r1  r2  r   r   r  r   rD  s      ru    test_ttest_ind_nonaxis_size_zeror    rF  r   c                  T   t        j                  d      } t        j                  d      }t        j                  | |d      }t	        |t        j
                  j                        sJ t        |j                  j                  d       t        |j                  j                  d       y )N)r   r4   r   rB  r   rP   rC  r  rD  s      ru   2test_ttest_ind_nonaxis_size_zero_different_lengthsr    sv     	A
A__Q*Ffeoo99:::!!''0$$f-r   c                  L   t        j                  ddg      t        j                  ddg      }} t        j                  ddg      t        j                  ddg      }}t        j                  ddg      t        j                  dd	g      }}t        j                  | |||||       y )
Nr   r/   r0   r1   r2         rb     )ri   r   rc   rW  )mean1mean2std1std2nobs1nobs2s         ru   test_gh5686r  ,  s    88QF#RXXq!f%55E1a&!288QF#3$D88S#J'3*)=5E	udE5$Fr   c            	          t        j                  ddddddd      } t        | t        j                  t        j                  g       y )Nr   r3   Fr  )rc   rW  r   ri   rj   r3  s    ru   %test_ttest_ind_from_stats_inputs_zeror  4  s5    ''1aAqEJF"&&"&&)*r   c                  L   t         j                  j                  d      } | j                  d      }| j                  d      }| j	                  d      }t        j                  ||dd      }t        j                  |j                  t        j                         j                        j                  d	kD  sJ t        t        j                  |j                  |dz        |d
       t        j                  ||dd      }t        j                  |j                  t        j                         j                        j                  d	kD  sJ t        t        j                  |j                  |dz        |d
       t        j                  g ddgd      }t        |dd       y )Nl   bQ )r  r/   rd  )r  r   rb  Tr^   )r[  rQ   r  ri  r  )r/   r0   r2   r9   r  )gzNd?gJ?rg  rA  )ri   rl  rm  rn  r0  rc   rV  r  r   r  r   
percentile)rq  r   rn   r  r   s        ru   test_ttest_single_observationr  :  s-   
))


0C



#A



#AA
//!Q$R
8C>>#**emmo&9&9:AACGGGBMM#**ae4adC
//!Q$R
8C>>#**emmo&9&9:AACGGGBMM#**ae4adC
 //)cUd
;CC:Gr   c                     |j                  |dk(        }|j                  |dk(        }| dk  |z  | dkD  |z  z  }|j                  ||dz  d|dz  z
        S )Nr9  r;  r   r/   r   )r  r^  )r  r  r  r  r9  r;  r  s          ru   _convert_pvalue_alternativer  P  sc     ::cVm$Djj	)*G
a%4QUg-.A88AqsA!G$$r   c                 R	   d\  }}}t         j                  j                  dd|||f      }| j                  |      }| j	                  d||f      }t        j
                  ||d      \  }}t        j
                  |dd      \  }}	t        j
                  |d d ddf   d      \  }
}t        ||d	
       t        |d   |
d	
       t        |j                  ||f       | j	                  |d|f      }t        j
                  ||d      \  }}t        j
                  |dd      \  }}	t        j
                  |dd d df   d      \  }
}t        ||d	
       t        |d   |
d	
       t        |j                  ||f       | j	                  ||df      }t        j
                  ||d      \  }}t        j
                  |dd      \  }}	t        j
                  |ddd d f   d      \  }
}t        ||d	
       t        |d   |
d	
       t        |j                  ||f       t        j
                  | j                  g d      d      \  }}t        | j                  |      | j                  | j                               t        || j                  d             t        j
                  |d d d d d d f   d      \  }}t        j
                  |d d d d d d f   dd      \  }}t        ||d|       }t        ||       t        ||       t        j
                  |d d d d d d f   dd      \  }}t        ||d|       }t        ||       t        ||       t        j                  d      5  t        j
                  | j                  g d      d      }t        |j                  | j                  | j                                t        |j"                  | j                  | j                                | j                  dt        j                   gddgg      }t        j
                  |d      }t        |j                  | j                  d| j                   g             t        |j"                  | j                  d| j                   g             d d d        y # 1 sw Y   y xY w)NrX   r  r  r2   rX   rn  r   r   rP   r   r  rA  r  r/   )r   r   r   r   r;  r?  r9  r  r  r  )rc   r  rg  r  r  r  r'   r   r  r(   r  r  r  ri   r  r   rj   r   )r  r  r  n3rvn1r  rm  rC  rn  p2ro  p3r  r  r!  r  pcr   r'  s                      ru   test_ttest_1samp_newr  Y  s    JBB::>>arR>=D::dD ggq"bk"GtW15FBtRa0FBtAq!G}b1FBB'BtHbu-B8$ggr1bk"GtW15FBtRa0FBtAq!G}b1FBB'BtHbu-B8$ggr2qk"GtW15FBtRa0FBtAq!G}b1FBB'BtHbu-B8$ RZZ5r:DAqBFF1Irzz"&&12Arzz"~&tAq!G}b1FBT!Q']BIFDAq	$RY	;BArArT!Q']BFCDAq	$RVR	8BArAr		"

< 8"=rzz"&&'9:

BJJrvv$67 zzB<#r34b)rzz2rvv,'?@

BJJBFF|$<= 
#	"	"s   1D#RR&z(Only NumPy has nan_policy='omit' for nowr`  c                 2   d\  }}}t         j                  j                  dd|||f      }| j                  |      }| j                  |ddddd	d
f<   t        j
                  |d d d d d d f   dd      \  }}t        j
                  |d d d d d d f   ddd      \  }}t        ||d|       }	t        ||	       t        ||       t        j
                  |d d d d d d f   ddd      \  }}t        ||d|       }	t        ||	       t        ||       y )N)r2   rX   r  r2   rX   rn  r   r/   r   r0   r1   r5   r   r   r   r;  r  r9  )rc   r  rg  r  rj   r  r  r'   )
r  r  r  r  r  r!  r  r  r  r  s
             ru   test_ttest_1samp_new_omitr    s   
 JBB::>>arR>=D::dD&&D1ac1Q3tAq!G}bVDFBT!Q']B6)24DAq	$RY	;BArArT!Q']B6)/1DAq	$RVR	8BArArr   c                    t         j                  j                  d      }|j                  d      }| j                  |      }d}| j                  |j                  d            }t	        j
                  t        |      5  t        j                  ||d       d d d        | j                  |j                  d	            }t        j                  ||d      }|j                  j                  d
k(  sJ t        |      }|j                         \  }}|j                  |d      }|j                  |d      }t        j                  ||d      }| j                  | j                  d| j                        |j                   j                        }	t#        |j                   |	       t        j                  ||d      }t#        |j                   |	       y # 1 sw Y   @xY w)Nl   iI}pC )r   r  r  rd  z%`popmean.shape\[axis\]` must equal 1.)r2   r/   r  r   r  )r  rQ   )r2   r   r  )r2   r  rP   g?rN   )ri   rl  rm  r  r  r   r   rc   r  r   r  r)   r/  r  r3  r   r   r'   )
r  rq  r   rZ  r  r   r=  r  r5  rs  s
             ru   test_ttest_1samp_popmean_arrayr    s~    ))

 3
4C


$A


1A6Gjj45G	z	1!W26 
2 jj45G


AwR
8C==')))a G""$DAqAB'AAB'A


Aqr
2C
//"**T*<cjj>N>N
OCCJJ$


Aqr
2CCJJ$# 
2	1s   GG"c                   x    e Zd Zed        Zed        Zd Zed        Zd Zed        Z	ed        Z
ed        Zy	)
TestDescribec                    t               5 }t        j                  dd      5  |j                  t        d       t        j                  |j                  d      d         \  }}}}}}d d d        d d d        dk(  sJ t        d   |j                  d             t        |d   |j                  d             t        |j                  d             t        |j                  |j                               t        |j                  |j                               t        |j                  |j                               y # 1 sw Y   xY w# 1 sw Y   xY w)Nr  r  r  r  r   r   r   )
r   ri   r  r   rl   rc   describer  r(   rj   )	rm   r  rt   r  rQ  r  r6  skkurts	            ru   test_describe_scalarz!TestDescribe.test_describe_scalar  s     Ckk(8<JJ~'JK$)NN2::b>"3E$F!Ar1aT = ! Avv1rzz#/1rzz#/2::c?+2::bff-.BJJrvv./bjj01 =< ! s#   EAE(EE	EEc                    t        |j                  d            }|j                  |j                  d      |j	                  dd      f      }d}|j                  g d      |j                  g d      f}|j                  g d      }|j                  g d	      }|j                  d
gdz        }|j                  dgdz        }	t        j                  |      \  }
}}}}}|
|k(  sJ t        |d   |d          t        |d   |d          t        ||d|j                  |j                        j                  z         t        ||d|j                  |j                        j                  z         t        ||       t        ||	       t        j                  |j                  d      \  }
}}}}}|
|k(  sJ t        |d   |d          t        |d   |d          t        ||d|j                  |j                        j                  z         t        ||d|j                  |j                        j                  z         t        ||       t        ||	       y )Nr   r  r/   r1   r-  r2   r   r   r   r   r-  r-  r-  r-  ffffff?r  r  r  )r  r  r  r  H,p ?r1   TUUUUUr   r   rA  rP   )r)   r  r;  r  r}   rc   r  r(   r'   r   rO   epsr~  rm   r  r=  r   ncmmcmcvcskckurtcr  rQ  r  r6  r  r  s                   ru   test_describe_numbersz"TestDescribe.test_describe_numbers  s   !"**R.1NNBGGFORWWVR-@ABzz*+RZZ8H-IJZZ,-ZZ,-jj-.23

./!34 %q 12q!RBww1s1v&1s1v&2A(9(=(=$=>2A(9(=(=$=>C e$ %qss ;2q!RBww1s1v&1s1v&2A(9(=(=$=>2A(9(=(=$=>C e$r   c                 >   t        j                  d      }t         j                  |d<   d\  }}d}d}d}d}t        j                  |d	      \  }}	}
}}}t        ||       t        |	|       t        |
|       t        ||       t        ||       t        ||d
       y )Nr   r6   )r6   )r   rV  r  r?   r   gGzr   r   r[   rR   )ri   r   rj   rc   r  r   r   )rm   r   r  r  r  r  r  r  r  rQ  r  r6  r  r  s                 ru   describe_nan_policy_omit_testz*TestDescribe.describe_nan_policy_omit_test  s    IIcNvv!!C# %qV D2q!RQRQQ!"c*!$r:r   c                    |j                  d      }|j                  |dk(  |j                  |j                        |      }d}t	        j
                  t        |      5  t        j                  |d       d d d        t        j                  |d      \  }}}}}}	|j                  |j                        d   }
|d	k(  sJ t        |d
   |
       t        |d   |
       t        ||
       t        ||
       t        ||
       t        |	|
       t        |      r| j                          n=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   2xY w# 1 sw Y   TxY w# 1 sw Y   y xY w)Nr   r6   r  r   r   r   r  r   rX   r   r   z9`nan_policy='omit' is incompatible with non-NumPy arrays.r   r   r   )r   r^  r  rj   r  r   r   rc   r  r(   r+   r!  )rm   r  r   rZ  r  rQ  r  r6  r  r  rs  s              ru   test_describe_nan_policy_otherz+TestDescribe.test_describe_nan_policy_other  s\   IIcNHHQT2::bff-q11]]:W5NN11 6 !&q[ I2q!Rjj $Bww1s#1s#33C c"B<..0QGz9qV4 : 1]]:W5NN12 65+ 65" :9 65s$   F&F3F?&F03F<?Gc                 p    t        j                  t        j                  d            }d}t	        ||       y )NrF   )rO  minmaxrh   variancer  r  )rc   r  ri   r   r   )rm   rJ  r   s      ru   test_describe_result_attributesz,TestDescribe.test_describe_result_attributes0  s)     		".S
FJ/r   c                 ~   t        |j                  d            }|j                  |j                  d      |j	                  dd      f      }d}|j                  g d      |j                  g d      f}|j                  g d      }|j                  g d	      }|j                  d
gdz        }|j                  dgdz        }	t        j                  |d      \  }
}}}}}|
|k(  sJ t        |d   |d          t        |d   |d          t        ||       t        ||       t        ||       t        ||	       y )Nr   r  r  r-  r2   r  r  r  )Q?r)  r)  r)  r  r1   r  r   rx   r   	r)   r  r;  r  r}   rc   r  r(   r'   r  s                   ru   test_describe_ddofzTestDescribe.test_describe_ddof7  s   !"**R.1NNBGGFORWWVR-@ABzz*+RZZ8H-IJZZ,-ZZ01jj-.23

./!34 %qq 92q!RBww1s1v&1s1v&22C e$r   c                 ^   t        |j                  d            }|j                  |j                  d      |j	                  dd      f      }d}|j                  d      |j                  d      f}|j                  d      }|j                  d      }|j                  d      }|j                  d	      }	t        j                  |d 
      \  }
}}}}}|
|k(  sJ t        |d   |d          t        |d   |d          t        ||       t        ||       t        ||       t        ||	       y )Nr   r  r  r-  r  r  ga+?gE,p ?gUUUUUUrP   r   r   r*  r  s                   ru   test_describe_axis_nonez$TestDescribe.test_describe_axis_noneJ  s   !"**R.1NNBGGFORWWVR-@AB zz#

30ZZ*+ZZ+,jj+,

./ !&qt <2q!RBww1s1v&1s1v&22C e$r   c                     d}t        j                  t        |      5  t        j                  |j                  g              d d d        y # 1 sw Y   y xY w)NzThe input must not be empty.r   )r  r   r   rc   r  r  )rm   r  rZ  s      ru   test_describe_emptyz TestDescribe.test_describe_emptyb  s5    0]]:W5NN2::b>* 655s   %AAN)r   r   r   r%   r  r  r!  r#  r'  r+  r-  r/  r   r   ru   r	  r	    s    2 2 % %6;" 3 3:0 % %$ % %. + +r   r	  c                   `    e Zd Zd Zej
                  j                  dg d      d        Zd Zy)NormalityTestsc                    t        t        | j                        }|j                  d      }t	        |      rxt        j                  t        t              5   ||      }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y d}t        j                  t        |      5   ||       d d d        y # 1 sw Y   y xY w# 1 sw Y   y xY w)Nr  r   z...requires at least...)r  rc   	test_namer  r+   r  r  r   r   rj   r(   r   r   r   r   )rm   r  rJ  r   r   NaNrZ  s          ru   test_too_smallzNormalityTests.test_too_smallk  s    5$..1JJrNB<08MNqkjj(s3

C0	 ON 0Gz9 :9 ON :9s   AC	C*C'*C3r@  r  c                    | j                   }t        t        |      }|j                  | j                  d         }|j                  | j                  d         }i }|dv r=|dv r$|dk(  r|dz  nd|dz  z
  }|dk(  rd|z
  n|}||d<   nt        j                  d	       |j                  d
      dz  } ||fi |}	|	\  }
}t        |
|       t        ||       t        |	d|       y )Nr   r   >   r9  r;  >   skewtestkurtosistestr9  r/   r7  r@  z,`alternative` not available for `normaltest`)r  r^   r   r   r/   r   r  r^   r   r   r/   r   r  r^   r   r   r/   r   r  r^   r   r   r/   r   r  r  )	r3  r  rc   r  case_refr  rL  r'   r   )rm   r@  r  r3  rJ  ref_statistic
ref_pvaluer  r   r   res_statistic
res_pvalues               ru   test_against_RzNormalityTests.test_against_Rz  s     NN	5),zz$--"23ZZa 01
--88-8F-BZ\*UV,
-6*-DQz\*
(3}%JKJJ./2q#F#$'!z}5
J/C!8R@r   c                    t        t        | j                        }|j                  d      }|j	                  |j
                  |j                        }|j                  |dk(  ||      }t        j                  d      5   ||      }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)NrJ  rN   r  r  r  )r  rc   r3  r   r  rj   rO   r^  ri   r  r(   r   r   )rm   r  rJ  r   r4  r   s         ru   test_nanzNormalityTests.test_nan  s    5$..1IIcNjjqwwj/HHQ"Wc1%[[*1+CCMM3/CJJ, +**s   ?5B==CN)	r   r   r   r5  r  r  r  r>  r@  r   r   ru   r1  r1  i  s5     [[],LMA NA<	-r   r1  c                        e Zd ZdZdZd Zd Zy)TestSkewTestr7  )gvO?gbH`?c                     t         j                  j                  ddd      }|j                  |      }t        j                  |d      j
                  }t        ||j                  d|j                        d	
       y )Nr   r  {   )r  r.   rf  r;  r?  r   rN   g?̔>r  )rc   skewnormrg  r  r7  r   r'   rO   )rm   r  r  a1_xprD  s        ru   test_intuitivezTestSkewTest.test_intuitive  s]    ^^!%cB

2~~e;BBbjjEKKj@tLr   c                 4   t        j                  |j                  d             |j                  d      }t        |      rt	        j
                  t        t              5  t        j                  |      }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y d}t	        j                  t        |      5  t        j                  |       d d d        y # 1 sw Y   y xY w# 1 sw Y   y xY w)NrV  r  r   z+`skewtest` requires at least 8 observations)rc   r7  r   r+   r  r  r   r   r  rj   r(   r   r   r   r   rm   r  r   r   r4  rZ  s         ru   "test_skewtest_too_few_observationsz/TestSkewTest.test_skewtest_too_few_observations  s     	ryy~&IIcNB<08MNnnQ'jj(s3

C0	 ON DGz9q! :9 ON :9s    AD#DDDN)r   r   r   r3  r9  rG  rJ  r   r   ru   rB  rB    s    I9HM"r   rB  c                   &    e Zd ZdZdZd Zd Zd Zy)TestKurtosisTestr8  )gglg2J@?c                     t         j                  j                  dd      }|j                  |      }t        j                  |d      j
                  }t        ||j                  d|j                        d	       y )
Nr  rD  r.   rf  r;  r?  r   rN   r   r  )rc   laplacerg  r  r8  r   r'   rO   )rm   r  r  a2_xprD  s        ru   rG  zTestKurtosisTest.test_intuitive  s]    ]]E<

2!!%Y?FFbjjEKKj@uMr   c           
         g d}t        j                  t        |      D cg c]  \  }}t        j                  ||       c}}      }|j	                  ||j
                        }t        j                  |      d   dk  sJ y c c}}w )N)
rl  r   :   r4   r   )   r   r   r      rN   r   ri  )ri   r  	enumerater}   r  r   rc   r8  )rm   r  rG  r  r  r   s         ru   test_gh9033_regressionz'TestKurtosisTest.test_gh9033_regression  su     7II61BC1BArwwq!}1BCDJJq

J+!!!$Q'$... Ds    B
c                    t        j                  |j                  d             d}t        j                  t
        |      5  t        j                  |j                  d             d d d        t        j                  t
        |      5  t        j                  |j                  d             d d d        |j                  d      }t        |      rt        j                  t        t              5  t        j                  |      }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y d}t        j                  t         |      5  t        j                  |       d d d        y # 1 sw Y   /xY w# 1 sw Y   xY w# 1 sw Y   y xY w# 1 sw Y   y xY w)Nr{  z+`kurtosistest` p-value may be inaccurate...r   rF   g      3@r  z/`kurtosistest` requires at least 5 observations)rc   r8  r   r  r  rZ  r+   r   r   r7  r  rj   r(   r   r   r   r   )rm   r  rZ  r   r   r4  s         ru   &test_kurtosistest_too_few_observationsz7TestKurtosisTest.test_kurtosistest_too_few_observations  s+    	299T?+?\\+W5ryy~. 6\\+W5ryy/ 6 IIcNB<08MNnnQ'jj(s3

C0	 ON HGz9""1% :9 6555
 ON :9s1   %F
%F!2AF-5F9F!F*-F69GN)r   r   r   r3  r9  rG  rV  rX  r   r   ru   rL  rL    s    I:HN/&r   rL  c                       e Zd ZdZdZy)TestNormalTest
normaltest)gاc@g?N)r   r   r   r3  r9  r   r   ru   rZ  rZ    s    I9Hr   rZ  c                       e Zd Zej                  j                  d       ej                  j                  dd      \  ZZe	j                  j                  dg d      d        Zd Zd Zy	)
TestRankSumsr   r/   rX   r@  r\  c                     t        j                  | j                  | j                  |      j                  }t        j
                  | j                  | j                  d|      j                  }t        ||       y )Nr?  F)use_continuityr@  )rc   ranksumsr   rn   r   mannwhitneyur   )rm   r@  r>  r?  s       ru   test_ranksums_result_attributesz,TestRankSums.test_ranksums_result_attributes  s\     ~~dffdff*577=v 	!!$&&$&&.9;;A6 	d#r   c                 p    t        j                  | j                  | j                        }t	        |d       y )Nr  )rc   r`  r   rn   r   )rm   r   s     ru   test_ranksums_named_resultsz(TestRankSums.test_ranksums_named_results   s%    nnTVVTVV,C!89r   c                     t        t        d      5  t        j                  | j                  | j
                  d       d d d        y # 1 sw Y   y xY w)Nz`alternative` must be 'less'r   r   r?  )r   r   rc   r`  r   rn   r  s    ru   r[  z"TestRankSums.test_input_validation  s2    :-KLNN466466x@ MLLs   -AAN)r   r   r   ri   rl  r  r  r   rn   r  r  r  rb  rd  r[  r   r   ru   r]  r]    sZ    IINN199>>!R DAq[[],LM$ N$:Ar   r]  c                   x    e Zd Zd Z ed      ej                  j                  d      d               Zd Z	d Z
y)	TestJarqueBerac                     g d}|j                  |      }|j                  ddg      }t        j                  |      }t        |j                  |d          t        |j
                  |d          y )N)g8MK~Ŀg/?g6r=TgGg!J_l gq"?gPHK?r   r   )r  rc   jarque_berar'   r   r   )rm   r  r   rs  r   s        ru   test_jarque_bera_against_Rz)TestJarqueBera.test_jarque_bera_against_R  s^    
;JJqMjj*O<="s1v.

CF+r   Tr   r   c                 d   t         j                  j                  d       t         j                  j                  ddd      }t	        j
                  t        |            x}\  }}t	        j
                  t        |            x}\  }}t	        j
                  |j                  dd            x}\  }	}
||cxk(  r6|	cxk(  r0|j                  cxk(  r |j                  cxk(  r|j                  k(  sJ  J ||cxk(  r6|
cxk(  r0|j                  cxk(  r |j                  cxk(  r|j                  k(  sJ  J y )Nr  r   r   r  r/   P  )ri   rl  r  rn  rc   ri  r  tuplerg   r   r   )rm   r   jb_test1JB1rC  jb_test2JB2r   jb_test3JB3r  s              ru   test_jarque_bera_array_likez*TestJarqueBera.test_jarque_bera_array_like  s     			y!IIQ6*"..tAw7773"..uQx8873"..qyyE/BCC73cbSbH$6$6b(:L:LbPXPbPbbbbbbRV2VVHOOVxVVVVVr   c                    |j                  g       }t        |      rt        j                  t        t
              5  t        j                  |      }d d d        |j                  |j                        }t        j                  |       t        |j                  |       y d}t        j                  t        |      5  t        j                  |      }d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   z%At least one observation is required.)r  r+   r  r  r   r   rc   ri  rj   r(   r   r   r   r   rI  s         ru   test_jarque_bera_sizez$TestJarqueBera.test_jarque_bera_size&  s    JJrNB<08MN''* O**RVV$CCMM3/CJJ,=Gz9''* :9 ON :9s   C?C*C'*C3c                    t         j                  j                  d      }|j                  |j                  d            }t	        j
                  |d       }t	        j
                  |j                  |d            }t        |j                  |j                         t        |j                  |j                         t	        j
                  |d      }t	        j
                  |dd d f         \  }}t	        j
                  |dd d f         \  }}	t        |j                  |j                  ||g             t        |j                  |j                  ||	g             t	        j
                  |j                  d      }
t        |j                  |
j                         t        |j                  |
j                         y )	NiKr  )r/   r  rd  rP   r~  r   r   )ri   rl  r  r  rc   ri  rg   r(   r   r   r'   r~  )rm   r  rq  r   r   rs  s0rA  s1rC  resTs              ru   r  zTestJarqueBera.test_axis3  s=   ii###3JJszzwz/0-

1e 45s}}5

CJJ/*""1QT7+B""1QT7+Brzz2r(';<

BJJBx$89  1-t~~6

DKK0r   N)r   r   r   rj  r   r  r  r]  rt  rv  r  r   r   ru   rg  rg  	  sD    , d#[[/0
W 1 $
W+1r   rg  c                   D    e Zd Zg dZg dZdZd Zd Zd Zd Z	d Z
d	 Zy
)TestMannWhitneyU)g	U3@g^3@gt3@g]o5@gzS4@gt< 4@gM	X3@gXmCk4@gLo&3@gfɘ2@g{m;^3@ga A$|3@gMѢ_4@g#3@g19T_3@ggC2@gqR4@gKk/4@g܁3@gZ2@g_
3@g$`3@g
x4@g3#л5@g;VND1@g >H2@gr4@gyܤ2@g?4@g=bɇ3@)gpG3@gL:j0@g2@gJNnC1@gR;`(3@g+Pi,2@g6:Z2@gZ"3=2@gF	uSa	3@gXҀ2@gX3^83@g21@gJ2@gZ)E2@gU83@g50@gԆ3@gFz33@gz3@gڴ3@rV   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||       t	        ||       t        ||k7         t	        |d       t	        |d       t	        |d       t	        |d       t        |d| j                         t        |d| j                         y )	Nr9  r?  r;    r  g=_A?rG   glPz.?rc   ra  re   Yr   r   r
   rH   	rm   u1rC  u2r   u3r  u4p4s	            ru   test_mannwhitneyu_one_sidedz,TestMannWhitneyU.test_mannwhitneyu_one_sidedY  s    ##DFFDFFGB##DFFDFF	JB##DFFDFF	JB##DFFDFFGBRRbRRRRB 1t?O?OPB 3AQAQRr   c                 8   t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||       t	        |d       t	        |d       t        |d| j                         y )Nr7  r?  r~  r  glPz.?rG   rc   ra  re   r  r   r
   rH   rm   r  rC  r  r   s        ru   test_mannwhitneyu_two_sidedz,TestMannWhitneyU.test_mannwhitneyu_two_sidedi  sv    ##DFFDFFLB##DFFDFFLBRRRB 2(,(8(8	:r   c                    t        j                  | j                  | j                  dd      \  }}t        j                  | j                  | j                  dd      \  }}t        j                  | j                  | j                  dd      \  }}t        j                  | j                  | j                  dd      \  }}t	        ||       t	        ||       t        ||k7         t	        |d       t	        |d       t	        |d       t	        |d       t        |d| j                         t        |d	| j                         y )
NFr9  r?  r;  r~  r  gii5?rG   g22?r  r  s	            ru   &test_mannwhitneyu_no_correct_one_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_one_sideds  s   ##DFFDFFE068B##DFFDFFE09;B##DFFDFFE09;B##DFFDFFE068B 	RRbRRRRB 1t?O?OPB 4$BRBRSr   c                 <   t        j                  | j                  | j                  dd      \  }}t        j                  | j                  | j                  dd      \  }}t	        ||       t	        |d       t	        |d       t        |d| j                         y )NFr7  r?  r~  r  g22?rG   r  r  s        ru   &test_mannwhitneyu_no_correct_two_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sided  s    ##DFFDFFE0;=B##DFFDFFE0;=B 	RRRB 4(,(8(8	:r   c                 ,   t        j                  g d      }t        j                  g d      }t        t        j                  ||d      d       t        t        j                  ||d      d       t        t        j                  ||d      d	       y )
N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r   r   r-  r   r   r-  r   r   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r   r   r   r   r   r   r   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r-  r   r-  r   r   r   r   r-  r   r   r   r-  r   r   r   r   r   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r-  r   r   r   r   r   r   r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r   r   r   r-  r-  r   r   r-  r   r   r-  r   r-  r   r   r   r   r-  r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r   r   r   r-  r-  r-  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r-  r   r   r   r   r-  r   r   r   r   r   r   r   r   r   r   r   r   r-  r   r   r   r-  r   r   r   r   r   r   r9  r?  )     @g ?չ>r;  )r  g&)E?r7  )r  g?չ?)ri   r   r   rc   ra  r  s      ru   test_mannwhitneyu_onesz'TestMannWhitneyU.test_mannwhitneyu_ones  s    HH . /& HH & ' 	**1aVD:	< 	**1aYG2	4**1a[I5	7r   c                 x    d}t        j                  | j                  | j                  d      }t	        ||       y )Nr  r9  r?  )rc   ra  re   r  r   r  s      ru   #test_mannwhitneyu_result_attributesz4TestMannWhitneyU.test_mannwhitneyu_result_attributes  s-    ,
  VDC,r   N)r   r   r   re   r  rH   r  r  r  r  r  r  r   r   ru   r|  r|  G  s9    	-A	NA KS :T(
:)7V-r   r|  c                      g d} g d}t        t        j                  | |      d   dd       d}t        j                  | |      }t        ||       t	        |j
                  |j                         y )N)"r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )"g-@g+@g(@r  rT  r  g333333@ffffff@g333333@r;   rz  皙	@r   r  r  r:   r  gffffff@ @333333?r  r9   ?r  rB  rB  r  r  r  r  r8   r^  r^  r  r   g/"?r2   r   )r   rc   pointbiserialrr   r   r   r   )r   rn   r   r   s       ru   test_pointbiserialr    se    	A	&A ,,Q215wB +J


q!
$CZ(#--0r   c                     t        j                  g d      } t        j                  |       }g d}t	        |d   |       t        j                  g d      }t        j                  |      }t        j                  g d      }t	        |d   |       t        j                  | |      \  }}t        ||d          t        ||d          t        j                  | ||       \  }}}t        ||d          t        ||d          t        ||d          t        j                  d      } t        j                  g dg dg      }t        t        j                  | d	| z        |d
       t        dd      }	t        j                  g d      }
t        j                  |	|
      }t        j                  g d      }t        j                  ||
      }t        j                  |      }t        |d   |d       y )N)r   r/   r1   )r4   r  r4   r   )r   r0   r3   r6   )rD  r   r   rD  r2   )㪪@I?g&>ڿr  r  )5@㪪@gIr  r  r/   r5   rR   rY   )r2   rY   r6   r0   r/   r/   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r1   )
ri   r   rc   obrientransformr   r   r   r   r  repeat)r<  rm  r^  r=  rn  r  r  r  rH  valuesrepsr+  transformed_valuess                ru   test_obrientransformr    s   	)	B			r	"BHBqE8$	,	B			r	"Bxx'HBqE8$   R(DAqBqEBqE ##BB/GAq!BqEBqEBqE 
1BXXDFHIF e33B"=vqQ 1b\F88'(D99VT"D #< =yy+T2H""4(FfQi1=r   c                 ~    t        j                  | |||      }t        |||       t        |j                  |       y N)rQ   rO   weightsrA  )rc   r  r   r   rO   
array_liker  rQ   rO   rB  r  r   s          ru   check_equal_gmeanr    s2     	JTHAAwT*% r   c                 ~    t        j                  | |||      }t        |||       t        |j                  |       y r  )rc   hmeanr   r   rO   r  s          ru   check_equal_hmeanr  	  s0    JTHAAwT*% r   c                     t        j                  | ||||      }t        |||       t        |j                  |       y r  )rc   pmeanr   r   rO   )r  rR  r  rQ   rO   rB  r  r   s           ru   check_equal_pmeanr    s2    J$eWMAAwT*% r   c                   f    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d Zd Zd Zd Zy)TestHarMeanc                 (    g d}d}t        ||       y N)r   r   r/   r   r  rm   r  r  s      ru   test_0zTestHarMean.test_0      !W%r   c                 L    g d}d}t        ||       g d}d}t        ||       y )Nr  =b#A@r>  gQ?r  r  s      ru   test_1d_listzTestHarMean.test_1d_list  s*    5!W%:!W%r   c                 N    t        j                  g d      }d}t        ||       y )Nr  r  ri   r   r  r  s      ru   test_1d_arrayzTestHarMean.test_1d_array'  s     HH>?!W%r   c                 t    t        j                  ddg      }d}t        t        j                  |      |       y )Nr   r   r   )ri   r   r   rc   r  r  s      ru   test_1d_array_with_zeroz#TestHarMean.test_1d_array_with_zero-  s+    HHaVU[[^W-r   c                 p    t        j                  g d      }t        t        t        j
                  |       y )Nr   r   r^   )ri   r   r   r   rc   r  rm   r  s     ru   !test_1d_array_with_negative_valuez-TestHarMean.test_1d_array_with_negative_value2  s     HHZ j%++q1r   c                 6    g dg dg dg}d}t        ||       y NrX   r  rD  rE  rC  r  r  r  r  rb  r  x   gmWUC@r  r  s      ru   test_2d_listzTestHarMean.test_2d_list7  s    /1DE!W%r   c                 \    g dg dg dg}d}t        t        j                  |      |       y r  )r  ri   r   r  s      ru   test_2d_arrayzTestHarMean.test_2d_array=  s'    /1DE"((1+w/r   c                 d    g dg dg dg}t        j                  g d      }t        ||d       y )Nr  r  r  )U|ϊ6@g4.=C@JQ6LsJ@E]P@r   rP   r  r  s      ru   test_2d_axis0zTestHarMean.test_2d_axis0C  s+    /1DE((OP!W1-r   c                     g dg dg dg}t        j                  g d      }t        t        j                  |d      |       y )NrX   r   rD  rE  r  r  )r  r   r  r  r   rP   ri   r   r   rc   r  r  s      ru   test_2d_axis0_with_zeroz#TestHarMean.test_2d_axis0_with_zeroI  s4    .0CD((GHAA.8r   c                 d    g dg dg dg}t        j                  g d      }t        ||d       y )Nr  r  r  )g3333333@O@y@Y@r   rP   r  r  s      ru   test_2d_axis1zTestHarMean.test_2d_axis1N  s+    /1DE((<=!W1-r   c                     g dg dg dg}t        j                  g d      }t        t        j                  |d      |       y )Nr  r  r  )r   r  r  r   rP   r  r  s      ru   test_2d_axis1_with_zeroz#TestHarMean.test_2d_axis1_with_zeroT  s4    .0CD((;<AA.8r   c                 6    g d}g d}d}t        |||d       y )Nr/   rX   r3   rX   r2   r0   r0   h㈵>r  rB  r  rm   r  r  r  s       ru   test_weights_1d_listz TestHarMean.test_weights_1d_listY  s!     !WgDAr   c                     t        j                  ddgddgddgg      }t        j                  ddgddgddgg      }t        j                  ddg      }t        ||d|d	       y )
Nr/   r2   rX   r3   r   r0   r   r  rQ   r  rB  r  r  s       ru   test_weights_2d_array_axis0z'TestHarMean.test_weights_2d_array_axis0a  sh     HHq!fr1g1v./((RGaVaV45((Aq6"!W1gDIr   c                     t        j                  g dg dg      }t        j                  g dg dg      }t        j                  ddg      }t        ||d|d	       y )
Nr  r4   r4   r4   r  r  r0   r4   r   r  r  r  r  s       ru   test_weights_2d_array_axis1z'TestHarMean.test_weights_2d_array_axis1i  sL     HHj),-((J	23((Aq6"!W1gDIr   c                     t        j                  g d      }t         j                  j                  g dg d      }d}t        |||d       y )Nr/   rX   r3   r  rX   r2   r0   r  r   r   r   r   r  r0   r  r  )ri   r   r  r  r  s       ru   test_weights_masked_1d_arrayz(TestHarMean.test_weights_masked_1d_arrayq  s;     HH^$%%++n<+@!WgDAr   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   ru   r  r    sQ    &
&&.
2
&0.9
.9
BJJBr   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d Zd Zd Zy)TestGeoMeanc                 (    g d}d}t        ||       y r  r  r  s      ru   r  zTestGeoMean.test_0{  r  r   c                 d    g d}d}t        ||       g d}t        dd      }t        ||d       y )Nr  sŤF@r>  r  r  r  rA  )r  r   r  s      ru   r  zTestGeoMean.test_1d_list  s3    5!W%w/!W51r   c                     t        j                  g d      }d}t        ||       t        g dt              }t	        dd      }t        ||t               y )Nr  r  r>  r  r  rN   )ri   r   r  r   r   r  s      ru   r  zTestGeoMean.test_1d_array  sD    HH>?!W%,(w/!WG4r   c                 6    g dg dg dg}d}t        ||       y Nr  r  r  g/,$qJ@r  r  s      ru   r  zTestGeoMean.test_2d_list  s    /1DE!W%r   c                 H    g dg dg dg}d}t        t        |      |       y r  )r  r   r  s      ru   r  zTestGeoMean.test_2d_array  s#    /1DE%(G,r   c                     g dg dg dg}t        j                  g d      }t        ||d       t        g dg dg dg      }t        g d      }t        ||dd	       y )
Nr  r  r  )g4@A@g5H@g`8|wЭN@gm~&+R@r   rP   r>  r  rQ   rB  ri   r   r  r  s      ru   r  zTestGeoMean.test_2d_axis0  sT    /1DE((NO!W1-<|<=%!W159r   c                     g dg dg dg}t        j                  g d      }t        ||d       t        g dg dg dg      }t        dd	      }t        |||g      }t        ||dd
       y )Nr  r  r  )gD" 6"6@gcP@g
ҧZ@r   rP   r>  r  r  r  r  )ri   r   r  r   )rm   r  r  r6  s       ru   r  zTestGeoMean.test_2d_axis1  sf    /1DE((CD!W1-<|<=-)Aq	"!W159r   c                 >    t        g d      }d}t        ||d       y )N)g}Ô%ITr*  gu <7~r*  r  rA  )r   r  r  s      ru   test_large_valueszTestGeoMean.test_large_values  s    '(!W51r   c                 ~    g d}d}t        j                  d      5  t        ||       d d d        y # 1 sw Y   y xY w)N
rX   r  rD  rE  rC  r  r  r  r  r   r   r  r  )ri   r  r  r  s      ru   test_1d_list0zTestGeoMean.test_1d_list0  s.    3[[X&a) '&&s   3<c                     t        j                  g d      }d}t        j                  d      5  t        ||       d d d        y # 1 sw Y   y xY w)Nr	  r   r  )r  )ri   r   r  r  r  s      ru   test_1d_array0zTestGeoMean.test_1d_array0  s8    HH<=[[)a) *))s   AAc                     g d}t         j                  }t        j                  d      5  t        ||       d d d        y # 1 sw Y   y xY w)N)
rX   r  rD  rE  rC  r  r  r  r  r^   r  r  )ri   rj   r  r  r  s      ru   test_1d_list_negzTestGeoMean.test_1d_list_neg  s2    4&&[[*a) +**s   AA
c                 6    g d}g d}d}t        |||d       y Nrc  )r/   r2   r3   r1   r0   GZ*oG8@r  r  r  r  s       ru   r  z TestGeoMean.test_weights_1d_list  s!     !!WgDAr   c                     t        j                  g d      }t        j                  g d      }d}t        |||d       y r
	  r  r  s       ru   test_weights_1d_arrayz!TestGeoMean.test_weights_1d_array  s3     HH_%((?+!WgDAr   c                     t        j                  g d      }t         j                  j                  g dg d      }d}t        |||d       y )Nr:  )r/   r2   r3   r1   r0   r2   )r   r   r   r   r   r   r  r	  r  r  )ri   r   r  r  r  s       ru   r  z(TestGeoMean.test_weights_masked_1d_array  s>     HH'(%%++07I+J!WgDAr   N)r   r   r   r  r  r  r  r  r  r  r	  r	  r	  r	  r  r	  r  r   r   ru   r  r  z  sK    &
25&-:	:2
***BBBr   r  c            
          e 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dgddggdf ej                  d	d
gddgddgg      dfg      d        Ze
j                  j                  dg dg dg dgdfg dg dg dgdfg      d        Ze
j                  j                  dg dg dg dgdfg dg dg dgdfg      d        Zd Zd Ze
j                  j                  dg d      d        Zy)TestPowMeanc                 X    t        j                  | |z        | j                  z  d|z  z  S r  )ri   r  r.   r  r  s     ru   pmean_referencezTestPowMean.pmean_reference  s&    q!tqvv%1--r   c                 p    t        j                  || |z  z        t        j                  |      z  d|z  z  S r  )ri   r  )r  r  r  s      ru   wpmean_referencezTestPowMean.wpmean_reference  s/    wA~&8AaC@@r   c                 N   t        j                  t        d      5  t        j                  g ddg       d d d        t        j                  t        d      5  t        j                  g dt        j                  dg             d d d        y # 1 sw Y   ZxY w# 1 sw Y   y xY w)NzPower mean only defined forr   rT  r   )r  r   r   rc   r  ri   r   r  s    ru   test_bad_exponentzTestPowMean.test_bad_exponent  sh    ]]:-JKKK	A3' L]]:-JKKK	288QC=1 LK LKKKs   B-BBB$c                     g dd}}t         j                  t        j                  |      |      }t	        |||       g dd}}t        j
                  d      }t	        |||       y )Nr  r;   r>  r/   r?   )r	  r	  ri   r   r  r   rm   r  r  r  s       ru   r  zTestPowMean.test_1d_list  sU    8#1--bhhqk1=!Q(Q1''9:!Q(r   c                 |    t        j                  g d      d}}t        j                  ||      }t	        |||       y )Nr  g      )ri   r   r	  r	  r  r	  s       ru   r  zTestPowMean.test_1d_array   s3    xxABD1--a3!Q(r   c                 z    t        j                  ddg      d}}d}t        t        j                  ||      |       y )Nr   r   r^   r   )ri   r   r   rc   r  r	  s       ru   r  z#TestPowMean.test_1d_array_with_zero  s2    xxA1U[[A&0r   c                     t        j                  g d      d}}t        j                  t        d      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr  gGz?zPower mean only defined if allr   )ri   r   r  r   r   rc   r  )rm   r  r  s      ru   r  z-TestPowMean.test_1d_array_with_negative_value
  s>    xx
#T1]]:-MNKK1 ONNs   AAr	  rX   r  rC  r  r  rb  rw  r8   c                 p    t         j                  t        j                  |      |      }t	        |||       y ri  r	  r	  ri   r   r  r	  s       ru   test_2d_axisnonezTestPowMean.test_2d_axisnone  s*     --bhhqk1=!Q(r   r  r  r  r  c                    t        t        |d               D cg c]Q  }t        j                  t	        j
                  t        t        |            D cg c]
  }||   |    c}      |      S }}}t        |||d       y c c}w c c}}w )Nr   rP   )r  r0  r	  r	  ri   r   r  )rm   r  r  r  r  r  s         ru   test_2d_list_axis0zTestPowMean.test_2d_list_axis0  s     3qt9%	
 & ''5Q=9=a!A$q'=9:A &	 	 
 	!Qa0	 :
s   9B	B#B	B	c                     |D cg c]+  }t         j                  t        j                  |      |      - }}t	        |||d       y c c}w )Nr   rP   r	  )rm   r  r  a_r  s        ru   test_2d_list_axis1zTestPowMean.test_2d_list_axis1&  sC     KLL!B;..rxx|Q?!L!Qa0 Ms   0Ac                     g dd}}g d}t         j                  t        j                  |      ||      }t	        ||||d       y )Nr  gރBr  r  r  )r	  r	  ri   r   r  rm   r  r  r  r  s        ru   r  z TestPowMean.test_weights_1d_list/  s<    ;1..rxx{AwG!QtDr   c                     t        j                  g d      d}}t         j                  j                  g dg d      }t        j                  ||      }t	        ||||d       y )	Nr  r   r  r  r  r  r  r  )ri   r   r  averager  r&	  s        ru   r  z(TestPowMean.test_weights_masked_1d_array5  sJ    xx'1%%++n<+@**Q0!QtDr   )rQ   fun_namer  ))Nr	  g3E#@)r   r  r   )r   r  r^   c                     |dk(  rfd}nt        t        |      }t        j                  ddgddgddgg      }t        j                  ddgddgddgg      } ||||	      }t	        ||||d
       y )Nr	  c                 2    t         j                  | |      S ri  )r	  r	  )r  rQ   r  r  s      ru   funz.TestPowMean.test_weights_2d_array.<locals>.funC  s    "33Aq'BBr   r/   r2   rX   r3   r   r0   )rQ   r  r  r  )r  rc   ri   r   r  )rm   rQ   r*	  r  r-	  r  r  r  s      `    ru   test_weights_2d_arrayz!TestPowMean.test_weights_2d_array;  s     ))C %*CHHq!fr1g1v./((RGaVaV45adG4!QdG$Or   N)r   r   r   r	  r	  r	  r  r  r  r  r  r  r  ri   r   r	  r!	  r$	  r  r  r.	  r   r   ru   r	  r	    sg   .A2))
1

 [[8b"XCy
)4	0
"((RHr2hS	2
3S	9	;
)
) [[-/B
CT	J,.A
BC	H	J
1
1 [[-/B
CT	J,.A
BC	H	J
1
1EE [[!		P	Pr   r	  c                      e Zd Z ej                  d      dz   ZdZej                  ddd      Zd Z	d Z
d	 Zej                  j                  d
ddej                  ej                   f      d        Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestGeometricStandardDeviationr  r   gv aZ@r/   r0   r1   c                 n    t        j                  | j                        }t        || j                         y ri  )rc   r  array_1dr   gstd_array_1drm   gstd_actuals     ru   r  z,TestGeometricStandardDeviation.test_1d_arrayS  s$    jj/T%7%78r   c                     t        j                  t        | j                              }t	        || j
                         y ri  )rc   r  rm  r2	  r   r3	  r4	  s     ru    test_1d_numeric_array_like_inputz?TestGeometricStandardDeviation.test_1d_numeric_array_like_inputW  s)    jjt}}!56T%7%78r   c                     t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nzufunc 'log' not supportedr   z*You cannot take the logarithm of a string.)r  r   r@  rc   r  r  s    ru   )test_raises_value_error_non_numeric_inputzHTestGeometricStandardDeviation.test_raises_value_error_non_numeric_input[  s+    ]]9,GHJJCD IHHs	   ;A	bad_valuer   r^   c                 ^   t        j                  | j                  |g      }t        j                  |      r<d}t	        j
                  t        |      5  t        j                  |      }d d d        nt        j                  |      }t        t         j                         y # 1 sw Y   $xY w)Nz3The geometric standard deviation is only defined...r   )ri   r  r2	  r  r  r  rl   rc   r  r   rj   )rm   r:	  r   rZ  r   s        ru   test_returns_nan_invalid_valuez=TestGeometricStandardDeviation.test_returns_nan_invalid_value`  sr    IIdmmi[1;;y!KGnG<jjm =< **Q-CS"&&!	 =<s   B##B,c                     t        g dt        j                  dddgg      }t        j                  |d      }t        |t        j                   dt        j                  g             y )N)r   r   r   r   r   r/   r0   rP   r1   )r   ri   rj   rc   r  r   )rm   r  r5	  s      ru   test_propagates_nan_valuesz9TestGeometricStandardDeviation.test_propagates_nan_valuesk  sI    =2661a"345jj+RXXq"&&k%:;r   c                     t        j                  t        d      5  t        t	        j
                  | j                  | j                  j                        t        j                         d d d        y # 1 sw Y   y xY w)NzDegrees of freedom <= 0r   rx   )
r  r  rl   r   rc   r  r2	  r.   ri   r  r  s    ru   )test_ddof_equal_to_number_of_observationszHTestGeometricStandardDeviation.test_ddof_equal_to_number_of_observationsp  sE    \\.0IJDMM8J8JKRVVT KJJs   AA33A<c                 r    t        j                  | j                  d       }t        || j                         y )NrP   )rc   r  array_3dr   r3	  r4	  s     ru   test_3d_arrayz,TestGeometricStandardDeviation.test_3d_arrayt  s&    jjT:T%7%78r   c                 b    t        j                  | j                  d      }t        |ddg       y )Nr  rP   g~d@g<
?)rc   r  rB	  r   r4	  s     ru   test_3d_array_axis_type_tuplez<TestGeometricStandardDeviation.test_3d_array_axis_type_tuplex  s%    jjU;j*%=>r   c                     t        j                  | j                  d      }t        j                  g dg dg dg      }t        ||       y )Nr   rP   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?rc   r  rB	  ri   r   r   rm   r5	  gstd_desireds      ru   test_3d_array_axis_0z3TestGeometricStandardDeviation.test_3d_array_axis_0|  s>    jjQ7xxOOO!
 
 	\2r   c                     t        j                  | j                  d      }t        j                  g dg dg      }t        ||       y )Nr   rP   )gN@g85@g'ĥ?gwth?)gHnaX?gG?gBu?gE?rG	  rH	  s      ru   test_3d_array_axis_1z3TestGeometricStandardDeviation.test_3d_array_axis_1  s;    jjQ7xxLL!
  	\2r   c                     t        j                  | j                  d      }t        j                  g dg dg      }t        ||       y )Nr/   rP   )gt80?gі?g?)gۘ]~?gmT6(?g	G?rG	  rH	  s      ru   test_3d_array_axis_2z3TestGeometricStandardDeviation.test_3d_array_axis_2  s;    jjQ7xx??!
  	\2r   c                    t         j                  j                  | j                  dkD  | j                        }d}t	        j
                  t        |      5  t        j                  |d      }d d d        t        j                  | j                  d      }g dg dg}t        |       t        |j                  |       y # 1 sw Y   UxY w)Nr   z:`gstd` support for masked array input was deprecated in...r   r/   rP   r  r  )ri   r  masked_whererB	  r  r  rp  rc   r  r   r   r  )rm   r  rZ  r5	  rI	  r  s         ru   test_masked_3d_arrayz3TestGeometricStandardDeviation.test_masked_3d_array  s    UU 2DMMBN\\,G<**Ra0K =zz$--a89%\2[%%t, =<s   CC
N)r   r   r   ri   r   r2	  r3	  rg   rB	  r  r7	  r9	  r  r  r  r  rj   r<	  r>	  r@	  rC	  rE	  rJ	  rL	  rN	  rQ	  r   r   ru   r0	  r0	  M  s    ryy#a'H"M1a(H99E
 [[[1b"&&"&&*AB" C"<
U9?333-r   r0	  c            	         t        j                  t        j                  ddd      t        j                  ddd      t        j                  ddd      f      } d}d	}g d
}t        | |      D ]6  \  }}t	        t        j                  |||      j                  |dd|        8 t	        t        j                  ddd      j                  dd       y )Nr  r^  r2   r  g?r  ffffff?r  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|>rZ   z
fail forp=)rH   err_msgrC  rb  gVݶ3;rG   )ri   r  r`  r  r
   rc   	binomtestr   )ppr  r   r  r  r   s         ru   test_binomtestrW	    s    	S#q1T43T435 
6B 	AA(G b'"3EOOAq!4;;S(*j4D	F # C5<</$&(r   c                     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  }t        |dz         D cg c]#  }t        j                  ||d      j                  % }}t	        || |dz
     d       R y c c}w )Nr   )r8   r   r8   )r  r   r   r  )r  rw  r   rw  r  )r        ?r   r   rY	  r  )r        ?      ?r   r[	  rZ	  r  )r  r        ?r   r   r\	  r  r  )	      ?      ?     ?     @?r   r`	  r_	  r^	  r]	  )
      p?      ?      ?     @?r   r   rd	  rc	  rb	  ra	  )      `?      ?      ?      ?      ?r   ri	  rh	  rg	  rf	  re	  r   rY   r8   rX   rR   )r  rc   rU	  r   r   )r?  r  r6  r>  s       ru   test_binomtest2rj	    s     
c
 +8G		*	E	D" 1b\;@Q<H<a1c*11<HD$qs)R8 Hs    (Bc                     t        dd      D  cg c]:  } t        dd      D ])  }t        j                  | | |z  d|z        j                  + < }} }t	        |t        j                  t        |      t                     t        j                  g d      }t        j                  g d      }t        dd      D  cg c]=  } t        dd      D ],  }t        j                  | dz   | |z  d|z        j                  . ? }} }t        dd      D  cg c]=  } t        dd      D ],  }t        j                  | dz
  | |z  d|z        j                  . ? }} }t        ||d       t        ||d       y c c}} w c c}} w c c}} w )	Nr   rY   r/   r   )Zr8   grq?g     ?glq?gx0f#?g%d)MO?g   	o?g6?g:X@?rw  gsw?g    ?gR'jMV?gEf?gF5a?gAQU?g'W?gk?r[	  g
ņB?g  ?g$?g{dU'?gD:B?gwV?gR0Nf?gOq?r`	  g[k^?g T+?gO?gggh(?gP-@?gOQ?g}^?gV7_i?ri	  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?)Zr8   gw	%?g     ?gS g?gv^?g*uCi?g  a?g]?gE9Q?rw  g/?g     ?g	x&~?g#?g5B?g	A'9?gpZ?gWV$u?r[	  gqIb?g  @N?g1Y?g5?gO?gc-?gk?g )?r`	  glMV?g?$?gT*r?gCqRv?grx?gωZ?gExY?g<T ?ri	  gJ9Ͻd?g `Ԗt?gT?gEz?gQ?g7C<*?g<?g~ K?rl	  g8?g~ȍEt?g⿒?g<v?gHE:?g8Z$?gbº5?gvC?rm	  g`Yw?gA?$??gE=?g4?g3?g{G9?gp?gH ?rn	  gz6f?g¯F?g(+?g	$V?gq^ws?g!?gXNJ?gK?ro	  g4P?g<q?gdV;?gy?g$w?gU<vO?gMX?g	șz*?rp	  giqSp?gMM?g0V$)?g]
yi/Q?gl?gl?g3Ȇ?gѾ_c?r[   rR   )r  rc   rU	  r   r   ri   r  r0  r  r   r   )r6  r  r]  binom_testm1binom_testp1res4_p1res4_m1s          ru   test_binomtest3ru	    sy    1b\9!5B<a OOAqsBqD)00+7 1! 	 9rwws4y#./ 88 
 LP 88 
 L@ a<$1eArl qsAaCA.55.: 6$  < a<$1eArl qsAaCA.55.: 6$  < r:r:q9d<<s   ?E2<AE8AE>c                       e Zd Zd Zd Zd Zy)TestTrimc           	      `   t        j                  d      }t        t        j                  t	        j
                  |d            t        j                  d             t        t        j                  t	        j
                  |d            t        j                  d             t        t        j                  t	        j
                  |dd            t        j                  dd             t        t        j                  t	        j
                  |d	d            t        j                  d
d             t        t	        j
                  |d      g        t        t	        j
                  |dd      g        t        t	        j
                  g d      g        t        t	        j
                  g d	d      g        t        t	        j
                  g d      g        t        j                  d      j                  dd      }t        j                  dd      j                  dd      }d}t	        j
                  |dd|      }t        t        j                  ||      |       d}t	        j
                  |j                  dd|      }t        t        j                  ||      |j                         y )NrY   r  rX   r^  r6   left)tailr/   tE]t?r0   r   r  r  r3   r1   r2   r   )rz	  rQ   rP   r   )ri   r   r   sortrc   trim1rg   r~  )rm   r  rs  rQ   trimmeds        ru   
test_trim1zTestTrim.test_trim1/  s   IIbMRWWU[[C01299R=ARWWU[[C01299Q<@RWWU[[Cf=>YYq"%	'RWWU[[E?@YYq"%	'U[[C("-U[[Cf5r: 	U[[S)2.U[[U8"=U[[T*B/ IIbM!!!Q'ii2&&q!,++a6=RWWW40#6++acc3V$?RWWW40#%%8r   c           
         t        j                  d      }t        t        j                  t	        j
                  |d            t        j                  dd             t        t        j                  t	        j
                  |d            t        j                  g d             t        t        j                  t	        j
                  t        j                  d      j                  dd	      d            t        j                  d	d
      j                  d	d	             t        t        j                  t	        j
                  t        j                  d      j                  d	d      j                  d            t        j                  g dg dg             t        t        t        j
                  t        j                  d      j                  d	d      j                  d       t        t	        j
                  g d      g        t        t	        j
                  g d      g        t        t	        j
                  g d      g        y )NrY   r{	  r0   r5   r^  )r/   r0   r1   r2   r3   r4   r5   r  r3   r1   r  r  )r/   r5   rV   r  )r0   r6   r  rU   r  r  )ri   r   r   r|	  rc   trimbothr   rg   r~  r   r   r  s     ru   test_trimbothzTestTrim.test_trimbothK  ss   IIbMRWWU^^Au56		!QHRWWU^^As34XX34	6RWWU^^BIIbM,A,A!Q,GMNYYq"%--a3	5RWWU^^BIIbM,A,A!Q,G,I,I,02 3XX~~>?	A 	j%..iim++Aq133T	; 	U^^B,b1U^^B.3U^^B-r2r   c                    t        j                  g d      }t        j                  g d      }t        j                  d      j                  dd      |d d f   }t        j                  d      j                  ddd      |d d f   }t	        t        j                  |d      t        j                  g d	             t	        t        j                  |d      t        j                  g d
             t        j                  g d      }t        j                  d      j                  dd      |d d f   }t	        t        j                  |d      t        j                  g d             g d}t	        t        j                  |d      d       t	        t        j                  g dd      d       t         j                  j                  d       t         j                  j                  dd      }dD ]Q  }t        j                  |d|      }t        j                  t        j                  ||d      d      }	t	        ||	       S t        j                  |dd       }t        j                  |j                         d      }	t	        ||	       t        t        t
        j                  |d       t	        t        j                  g d      t         j                         t	        t        j                  g d      t         j                         y )N)r1   r5   r/   r   r6   r2   rX   r   r4   r0   r3   )r0   r2   r   r   r/   r1   r  r3   r1   FrK  r  )r:   r@   g      -@g     4@r  )r   r   r0   r/   )r   r   r  r#  r  rP  )r4   rY   rZ   rU   r   r3   r  r   r2   r   r  rX   ra   r6   r  r  r  r  r/   rV   r1   r[   r5   r0   rW   )r2   r1   r0   r   r/   r   r:   r1  r  )r2   r3   r1   r4   rd  )r   r   r/   r0   r^   rP   r   r  r   )ri   r   r   rg   r   rc   	trim_meanrl  r  r  r  r  r   r   rj   )
rm   r  idxr  r  idx4a4rQ   r>  r?  s
             ru   test_trim_meanzTestTrim.test_trim_mean]  s   HH78hh)*YYr]""1a(a0YYr]""1as"3CF;U__R.XX45	7U__R.XX23	5xx%YYr]""1a(q1U__R.XX;<	>%U__Q-t4U__]D93? 			tIIb|4$D??1d6D??2;;q$#:DADt$ %
 q$T2qwwy$/T4 j%//1c: 	U__R-rvv6U__R-rvv6r   N)r   r   r   r	  r	  r	  r   r   ru   rw	  rw	  -  s    983$$7r   rw	  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestSigmaClipc                 $   t        j                  t        j                  ddd      t        j                  ddd      f      }d}t        j                  |      \  }}}t        |j                         |kD         t        |j                         |k         t        ||j                         ||j                         z  z
         t        ||j                         ||j                         z  z          t        |j                  |j                         y )Nr  r]      r   r  r2   r1   ri   r  r`  rc   	sigmaclipr   minmaxr   rh   r   r.   rm   r  factr  r2  upps         ru   test_sigmaclip1zTestSigmaClip.test_sigmaclip1  s    NNBKKT26Ar18MNOooa(3##S!&&(T!%%'\12S!&&(T!%%'\12QVVQVV$r   c                 @   t        j                  t        j                  ddd      t        j                  ddd      f      }d}t        j                  |||      \  }}}t        |j                         |kD         t        |j                         |k         t        ||j                         ||j                         z  z
         t        ||j                         ||j                         z  z          t        |j                  d       t        |j                  d	       y )
Nr  r]   r	  r   r  r2   r9   r1   $   r	  r	  s         ru   test_sigmaclip2zTestSigmaClip.test_sigmaclip2  s    NNBKKT26Ar18MNOooat43##S!&&(T!%%'\12S!&&(T!%%'\12QVVQQVVR r   c                 *   t        j                  t        j                  ddd      t        j                  ddd      f      }d}t        j                  |||      \  }}}t        |j                         |kD         t        |j                         |k         t        ||j                         ||j                         z  z
         t        ||j                         ||j                         z  z          t        |t        j                  ddd             y )Nr  r]   rY   r0   ?)ri   r  r`  rc   r	  r   r	  r	  r   rh   r   r	  s         ru   test_sigmaclip3zTestSigmaClip.test_sigmaclip3  s    NNBKKT26KKc157 8ooat43##S!&&(T!%%'\12S!&&(T!%%'\12QCr23r   c                     t        j                  t        j                  ddd      t        j                  ddd      f      }d}t        j                  |||      }d}t        ||       y )	Nr  r]   rY   r	  r	  r0   r	  )clippedr  r  )ri   r  r`  rc   r	  r   )rm   r  r	  r   r   s        ru    test_sigmaclip_result_attributesz.TestSigmaClip.test_sigmaclip_result_attributes  sZ    NNBKKT26KKc157 8ooat,2
C,r   c                 r    t        j                  d      }t        t        j                  |      d   |       y )NrX   r   )ri   r  r   rc   r	  r  s     ru   test_std_zerozTestSigmaClip.test_std_zero  s'    GGBKU__Q'*A.r   N)r   r   r   r	  r	  r	  r	  r	  r   r   ru   r	  r	    s    %	!	4-/r   r	  c                       e Zd Zd Zej
                  j                  dddgg fddgdfddgdgfg      d        Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zy)TestAlexanderGovernc                    g dg dg dg dg}t        j                  |t         j                        }t        j                  |t         j                        }t        j                  |t         j                        }t        j                  |t         j
                        }t        j                  | }t        j                  | }t        j                  | }t        j                  | }	|j                  |j                  cxk(  r |j                  cxk(  r|	j                  k(  sJ  J |j                  |j                  cxk(  r |j                  cxk(  r|	j                  k(  sJ  J y )N)	r[   r[   r[   r[   r[   r[   r[   rZ   rZ   )	rV   r[   rZ   rZ   rZ   rZ   rZ   rY   rY   )	rV   rV   r[   r[   r[   r[   r[   rZ   rZ   )	r  rV   r[   r[   r[   rZ   rZ   rZ   rY   rN   )
ri   r   r%  r\  r?  r   rc   alexandergovernr   r   )
rm   r  
args_int16
args_int32
args_uint8args_float64	res_int16	res_int32	res_unit8res_float64s
             ru   test_compare_dtypesz'TestAlexanderGovern.test_compare_dtypes  s3   44446 XXd"((3
XXd"((3
XXd"((3
xxBJJ7)):6	)):6	)):6	++\:  I$4$4 7  7$/$6$67 	8 7 	8 7##y':': =##='2'<'<= 	> = 	> =r   r+  r   r/   c                     t        j                  t        t              5  t	        j
                  | }t        |j                  t        j                         t        |j                  t        j                         d d d        y # 1 sw Y   y xY wr  )r  r  r   r   rc   r	  r   r   ri   rj   r   r  s      ru   test_too_small_inputsz)TestAlexanderGovern.test_too_small_inputs  sU     \\,4IJ''.C/RVV, KJJr  c                     t        t        d      5  t        j                  ddgt        j
                  t        j
                  g       d d d        y # 1 sw Y   y xY w)NzInput samples must be finite.r   r   r/   )r   r   rc   r	  ri   r  r  s    ru   test_bad_inputsz#TestAlexanderGovern.test_bad_inputs  s;    :-LM!!1a&266266*:; NMMs   7AAc                     g d}g d}g d}t        j                  |||      }t        |j                  d       t        |j                  d       y)a  
        Data generated in R with
        > set.seed(1)
        > library("onewaytests")
        > library("tibble")
        > y <- c(rnorm(40, sd=10),
        +        rnorm(30, sd=15),
        +        rnorm(20, sd=20))
        > x <- c(rep("one", times=40),
        +        rep("two", times=30),
        +        rep("eight", times=20))
        > x <- factor(x)
        > ag.test(y ~ x, tibble(y,x))

        Alexander-Govern Test (alpha = 0.05)
        -------------------------------------------------------------
        data : y and x

        statistic  : 1.359941
        parameter  : 2
        p.value    : 0.5066321

        Result     : Difference is not statistically significant.
        -------------------------------------------------------------
        Example adapted from:
        https://eval-serv2.metpsy.uni-jena.de/wiki-metheval-hp/index.php/R_FUN_Alexander-Govern

        )(g5gb?gl"k g^s/@gQ\
@gRh gIF@gpZ>q@g7D @g-ѪZng(Q<.@gON/@g	Ogҷ%6gs&@gw)ܿg789Ŀgzp"@gzl @g57@g>m@*a"@g,ZbI@gX9
]?g3g1@gg"Jbgy:@j-g2A g;@gL97vp,+@gp/rg"@gfT|7g^v+g٘Yg0/gglA! &@go@)g!_5*gqTEgg1$@g	a, @gˤ$g9%gZ@gT6U'@gS g6aGn*@gO@g\\"g^4w@g0gr~5@gDP=@gٿԙg:4R/gOx]r!@gU4 gta)B@g,Gg2$@gD%?gI,VL&g@gч
;g5@gWJc@gYjK@@)gj7#@g<e,g}m(@gr2g#^9gr/P@g:RO!g'9?g6F
?gcʱ'gt*&gg~*0Ώ7@gWzx>gIK'@g?Ң@g7C5@g;C>ϯUg7@g)n}.^@gFQ?gsdlT6?Nrc   r	  r   r   r   )rm   r1  twoeightsolns        ru   test_compare_rz"TestAlexanderGovern.test_compare_r  sL    :"	I7 $$S#u5(=>%;<r   c                    g d}g d}g d}t        j                  |||      }t        |j                  dd       t        |j                  dd       	 t        |j                  d	       t        |j                  d
       y)z
        Data taken from 'The Modification and Evaluation of the
        Alexander-Govern Test in Terms of Power' by Kingsley Ochuko, T.,
        Abdullah, S., Binti Zain, Z., & Soaad Syed Yahaya, S. (2015).
        )g{G&~@g(\E~@g=
ףp~@gfffff~@gp=
~@gףp=
k@gR@gQ2@g8@g`@g)\`@g=
ףp@g(\#@g@g=
ףpE@gQ@g
ףp=@gףp=
Մ@g33333#@)g=
ףpt@g{G&u@gq=
ףv@gQDy@g     X{@g\(P}@g]~@gt~@gzG~@g)\~@g1@gzG@)gGz8@g     @gp=
ב@g
ףp=@gGzԀ@gq=
ףր@gRi@g{Gt@gw@g=
ףp@gQS@gQ@g(\©@gQ-@gQ@g]FxK@rj  r  g R8߱?r,  g.UikL@g&Zݱ?Nr	  )rm   youngmiddleoldr	  s        ru   test_compare_scholarz(TestAlexanderGovern.test_compare_scholar  so    08G$$UFC8T:W48	: 	1Z0r   c                     g d}g d}t        j                  ||      }t        |j                  dd       t        |j                  dd       	 t        |j                  d       t        |j                  d       y	)
aA  
        Data taken from 'Robustness And Comparative Power Of WelchAspin,
        Alexander-Govern And Yuen Tests Under Non-Normality And Variance
        Heteroscedasticity', by Ayed A. Almoied. 2017. Page 34-37.
        https://digitalcommons.wayne.edu/cgi/viewcontent.cgi?article=2775&context=oa_dissertations
        )gQhgMOgY9gnSgdȿg}"Ogиp $?g8~4?g
p?gZ?g)J=?gX?gpG?gᛦ?gg?gh8en?g?guwg?gbX?g9SI?)gN]g	cZgAJigMg'gk,	Pg<gΈ׿g%zrKտg0BxҿgPNg:ǀgvꭁg?k~?gI\߇?gi?g<)?g0Xr?g
F%u?gsFZ*o?g7n:?g[z4?r  r  gOZ}?g9$?g6MDd}?Nr	  )rm   r<  r=  r	  s       ru   test_compare_scholar3z)TestAlexanderGovern.test_compare_scholar3I  sg    "! $$R,t<XD9	8 		2Y/r   c                     g ddt         j                  gg}t        j                  | }t	        |j
                  t         j                         t	        |j                  t         j                         y )Nr>  r   ri   rj   rc   r	  r   r   r   )rm   r  r   s      ru   test_nan_policy_propogatez-TestAlexanderGovern.test_nan_policy_propogate{  sH    q"&&k*##T*SZZ(S]]BFF+r   c                     g ddt         j                  gg}t        t        d      5  t	        j
                  |ddi d d d        y # 1 sw Y   y xY w)Nr>  r   r  r   r   r   )ri   rj   r   r   rc   r	  )rm   r  s     ru   test_nan_policy_raisez)TestAlexanderGovern.test_nan_policy_raise  s?    q"&&k*:-LM!!4<G< NMMs   AAc                 4   dddt         j                  dgdt         j                  ddgg}g dg dg}t        j                  |d	d
i}t        j                  | }t	        |j
                  |j
                         t	        |j                  |j                         y )Nr   r/   r0   r1   r  r  r>  )r   r  r  r   r   r	  )rm   args_nanargs_no_nanres_nan
res_no_nans        ru   test_nan_policy_omitz(TestAlexanderGovern.test_nan_policy_omit  s    1bffa(1bffb"*=>#[1''EfE**K8
W^^Z%6%67W&&
(<(<=r   c                 @   d}t        j                  t        j                  |      5  t        j                  g dg d      }t        |j                  t        j                         t        |j                  t        j                         d d d        y # 1 sw Y   y xY w)Nz9An input array is constant; the statistic is not defined.r   r  r  )
r  r  rc   r  r	  r   r   ri   rj   r   )rm   r   r   s      ru   r  z'TestAlexanderGovern.test_constant_input  sb    I\\%44C@''(=(=?C/RVV,	 A@@s   A#BBN)r   r   r   r	  r  r  r  r	  r	  r	  r	  r	  r	  r	  r	  r  r   r   ru   r	  r	    sz    >( [[Vq!fb\QFA;!Q!$NO- P-<
@=D01d00d,=
>-r   r	  c            	          e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  d ej                  g d       ej                  g d	      ej                  d
ff ej                  g d       ej                  g d      ej                  ej                  ffg      d        Ze	j                  j                  dg d      d        Zd Zd Zd Zd Ze	j                  j                  ddg dfg      d        Zd Zd Zy)TestFOneWayc                 n    t        j                  ddgddg      \  }}t        |d       t        |d       y )Nr   r/   r   r   rc   f_onewayr   rm   r	  r  s      ru   test_trivialzTestFOneWay.test_trivial  s2    ~~q!fq!f-1QQr   c                     t        j                  ddgddg      \  }}t        |d       t        |dt	        j
                  d      z
  d       y )	Nr   r/   r1   r-  r   r8   r  rA  )rc   r	  r   r   ri   r   r	  s      ru   r  zTestFOneWay.test_basic  sC     ~~q!fq!f-1Q1rwws|+%8r   c                 p    t        j                  dgdgg d      \  }}t        |d       t        |d       y )Nr/   r  r  rw  r	  r	  s      ru   test_known_exactzTestFOneWay.test_known_exact  s4     ~~qcA3	21 	QQr   c                     t        j                  ddgt         j                        }t        j                  ddgt         j                        }t        j                  ||      \  }}t        |dd       y )	N    rN       gŸ?r  rA  )ri   r   uint16rc   r	  r   )rm   r  r  r	  r  s        ru   test_large_integer_arrayz$TestFOneWay.test_large_integer_array  sU    HHc3Zryy1HHc3Zryy1~~a#1 	.U;r   c                     t        j                  ddgt         j                        }t        j                  ddgt         j                        }t        j                  ||      }d}t        ||       y )Nr	  r	  rN   r	  r	  r  )ri   r   r	  rc   r	  r   )rm   r  r  r   r   s        ru   test_result_attributesz"TestFOneWay.test_result_attributes  sQ    HHc3Zryy1HHc3Zryy1nnQ",
C,r   c                    g d}|D ]l  }d}t         j                  j                  t         j                  j                  t         j                  j	                  t
              d|            }t        |      5 }|j                         j                  d      }d d d        dd D cg c]"  }|j                         r|j                         $ }}t        j                  |d      }	|	j                  \  }
}|
j                  t              }
t        j                  |
      }t!        |d	   d
         }|D cg c]
  }||
|k(      }}t#        j$                  | }d}||v rd}t'        |d	   ||d|        o y # 1 sw Y   xY wc c}w c c}w )N)z
SiRstv.datz
SmLs01.datz
SmLs02.datz
SmLs03.datzAtmWtAg.datz
SmLs04.datz
SmLs05.datz
SmLs06.dat
SmLs07.dat
SmLs08.dat
SmLs09.datrQ  zdata/nist_anova
rE  r  r  )skiprowsr   r^   )r	  r	  r	  r,  zFailing testcase: )rB  rT	  )ospathabspathjoindirname__file__openreadsplitstripri   loadtxtr~  r[  r  uniquerH  rc   r	  r   )rm   	filenames	test_caserB  fnamer  contentline	certifieddatafrn   r   catyr  xlistr   hard_tcs                    ru   	test_nistzTestFOneWay.test_nist  sZ   ?	 #IDGGOOBGGLL1J1BI%O PEe&&(... 29"R. *.$ JJL .I *JJur2E77DAqA99Q<Dil2&'A(,-1QqAvYE-..%(C AGG#CFAD&8$DF- # * .s   7 E8&'F4F	8F	za, b, expected)r  r  r  r  r   c                     d}t        j                  t        j                  |      5  t        j                  ||      \  }}|s
J ||k(         	 d d d        y # 1 sw Y   y xY w)N%Each of the input arrays is constant;r   )r  r  rc   r  r	  )rm   r  r  r^  r   r  r  s          ru   r  zTestFOneWay.test_constant_input  sO     6\\%44C@>>!Q'DAq#a8m#1 A@@s   &AA!rQ   )r  r^   r   r   c                 h   t        j                  g dg dg dg dg dg      }t        j                  g dg dg dg dg d	g d
g dg dg      }t        j                  g dg dg dg dg      }|dv r'|j                  }|j                  }|j                  }d}nd}d}t        j                  t
        j                  |      5  t        j                  ||||      \  }}d d d        dD ]}  }	t        j                  t        j                  ||	|      t        j                  ||	|      t        j                  ||	|            \  }
}t        |	   |
d       t        |	   |d        dD ]  }	t        j                  t
        j                  |      5  t        j                  t        j                  ||	|      t        j                  ||	|      t        j                  ||	|            \  }
}t        |	   |
       t        |	   |       d d d         y # 1 sw Y   9xY w# 1 sw Y   xY w)N)r   r1   r0   r0   )r/   r2   r0   r0   )r0   r3   r0   r0   r<  )r0   r   r2   r0   )r1   r3   r2   r0   )r1   r0   r2   r0   )r   r2   r2   r0   )r2   r2   r2   r0   )r/   r0   r2   r0   )r5   r/   r2   r0   )r/   r/   r2   r0   )r1   r0   r1   r0   )r1   r/   r1   r0   )r2   r1   r1   r0   )r^   r   r   r   r	  r   rP   r  r  rA  r  )ri   r   r~  r  r  rc   r  r	  taker   r   )rm   rQ   r  r  r  	take_axisr  r  r  r  fjpjs               ru   test_2d_inputszTestFOneWay.test_2d_inputs  s   HHl""""	$ %
 HHl"""""""$ % HHl"""$ %
 7?AAAII:\\%44HE>>!Q5DAq F
 A^^BGGAq)$<$&GGAq)$<$&GGAq)$<>FB AaD"51AaD"51  Ae88I1i(@(*1i(@(*1i(@BB QqT2&QqT2& JI  FE JIs   HA8H(H%(H1	c           
         dt        j                  dd      j                  ddd      z  }dt        j                  dd      j                  dd	d      z  }t        j                  dt        j                  dd
      j                  ddd      z        }t	        j
                  |||d      \  }}|j                  dk(  sJ |j                  dk(  sJ t        |j                  d         D ]s  }t        |j                  d         D ]V  }t	        j
                  ||d d |f   ||d d |f   ||d d |f         \  }}	t        ||||f          t        |	|||f          X u y )Nr   r      r1   r2   r4   r/      r5   q   rP   )r1   r4   r   )	ri   r   rg   cosrc   r	  r  r  r   )
rm   r  r  r  r  r  r  r  fijpijs
             ru   test_3d_inputszTestFOneWay.test_3d_inputs  s9   biiY'//1a88biiY'//1a88FF1RYYsI.66q!Q??@~~aAA.1ww&   ww&   qwwqz"A1771:& >>!Aq!G*a1aj!Aq!G*MSQq!tW-Qq!tW- ' #r   c                     t        j                  t        t              5  t	        j
                  g dg g d      }t        |t        j                  t        j                  f       d d d        y # 1 sw Y   y xY w)Nr   rT  r  )	r  r  r   r   rc   r	  r   ri   rj   rV  s     ru   test_length0_1d_errorz!TestFOneWay.test_length0_1d_error-  sH    \\,4IJ^^Ir<@F"&&"&&!12 KJJs   AA//A8c                    t        j                  t        t              5  d}t	        j
                  d|f      }t	        j
                  d|f      }t	        j
                  d|f      }t        j                  |||      \  }}t	        j                  |ft        j                        }t        ||       t        ||       d d d        y # 1 sw Y   y xY w)Nr   r0   r1   r   r2   r  )r  r  r   r   ri   r  rc   r	  r}   rj   r   )rm   ncolsr  r  r  r  r  nanss           ru   test_length0_2d_errorz!TestFOneWay.test_length0_2d_error3  s    \\,4IJEE
#AE
#AE
#A>>!Q*DAq77E87DD!D! KJJs   B C		Cc                     t        j                  t              5  t        j                  dgdgdgdg      }t        |t        j                  t        j                  f       d d d        y # 1 sw Y   y xY w)NrX   rY   rZ   r[   )r  r  r   rc   r	  r   ri   rj   rV  s     ru   test_all_length_onezTestFOneWay.test_all_length_one>  sN    \\,-^^RD2$rd;F"&&"&&!12 .--s   AA**A3r  r   rT  c                 x    d}t        t        |      5  t        j                  |  d d d        y # 1 sw Y   y xY w)Nz$At least two samples are required...r   )r   r@  rc   r	  )rm   r  rZ  s      ru   test_too_few_inputszTestFOneWay.test_too_few_inputsC  s)    89G4NND! 544s   09c                     t        j                  d      }t        j                  d      }t        t              5  t	        j
                  ||d       d d d        y # 1 sw Y   y xY w)Nr  r2   r1   r/   rP   )ri   r  r   r$   rc   r	  rm   r  r  s      ru   test_axis_errorzTestFOneWay.test_axis_errorI  s@    GGFOGGFO9%NN1aa( &%%   AA%c                     t        j                  d      }t        j                  d      }t        t              5  t	        j
                  ||d       d d d        y # 1 sw Y   y xY w)Nr  r
  r   rP   )ri   r  r   r   rc   r	  r
  s      ru   test_bad_shapeszTestFOneWay.test_bad_shapesO  s@    GGFOGGFO:&NN1aa( '&&r
  N)r   r   r   r	  r  r	  r	  r	  r	  r  r  r  ri   r   r  rj   r  r
  r
  r
  r
  r
  r
  r
  r
  r   r   ru   r	  r	    s   9<-F@ [[-	,	)!4rvvqkB	,	,!7"&&"&&9IJ0
 $	$ [[V^4-' 5-'^."3	"3
 [[Vb9,%78" 9"
))r   r	  c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestKruskalc                    dg}dg}t        j                  ||      \  }}t        |d       t        |t         j                  j
                  j                  |d             t        j                  t        j                  |      t        j                  |            \  }}t        |d       t        |t         j                  j
                  j                  |d             y )Nr   r/   r   )	rc   kruskalr   r
   r$  r  r%  ri   r   rm   r   rn   hr  s        ru   test_simplezTestKruskal.test_simpleW  s    CC}}Q"1QAu2277::1a@A}}RXXa["((1+61QAu2277::1a@Ar   c                    g d}g d}t        j                  ||      \  }}t        |dd       t        |t         j                  j                  j                  dd             t        j                  t        j                  |      t        j                  |            \  }}t        |dd       t        |t         j                  j                  j                  dd             y )Nr   r/   r1   r3   r5   rX   r{	  rX   rG   r   )rc   r!
  r
   r$  r  r%  ri   r   r"
  s        ru   r  zTestKruskal.test_basica  s    }}Q"1Au"5Au2277::5!DE}}RXXa["((1+61Au"5Au2277::5!DEr   c                 n    dg}ddg}d}d}||z  }t        j                  ||      \  }}t        ||       y )Nr   r/   rY	  r  )rc   r!
  r   rm   r   rn   h_uncorrr  r^  r#
  r  s           ru   test_simple_tiezTestKruskal.test_simple_tiek  sE    CF*d?}}Q"1 	Q!r   c                     g d}g d}d}dt        d      dz  z
  }||z  }t        j                  ||      \  }}t        ||       y )N)r   r   r   r/   )r/   r/   r/   r/   r   r        )rH  rc   r!
  r
   r(
  s           ru   test_another_tiezTestKruskal.test_another_tiev  sM    >5,-::d?}}Q"1Ax(r   c                     g d}g d}ddg}d}dt        d      dz  z
  }||z  }t        j                  |||      \  }}t        ||       t        |t        j                  j
                  j                  |d             y )Nr  r  r/   rF   r   r,
  r-
  )rH  rc   r!
  r
   r$  r  r%  )	rm   r   rn   rE  r)
  r  r^  r#
  r  s	            ru   test_three_groupszTestKruskal.test_three_groups  s{    FG5,-::d?}}Q1%1Ax(Au2277::1a@Ar   c                     g d}g d}g }t        j                  t        t              5  t	        t        j                  |||      t        j                  t        j                  f       d d d        y # 1 sw Y   y xY w)Nr  r  r   )	r  r  r   r   r   rc   r!
  ri   rj   )rm   r   rn   rE  s       ru   r	  zTestKruskal.test_empty  sR    \\,4IJq!Q/"&&"&&1AB KJJs   A A33A<c                 \    g d}g d}t        j                  ||      }d}t        ||       y )Nr   r&
  r  )rc   r!
  r   )rm   r   rn   r   r   s        ru   test_kruskal_result_attributesz*TestKruskal.test_kruskal_result_attributes  s+    mmAq!,
C,r   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  ||      t         j                  t         j                  f       t        t	        j
                  ||d      d       t        t        t        j
                  ||d       t        t        t        j
                  ||d       y )Nr   r6   r   r   r  r   r   )	ri   r   rj   r   rc   r!
  r   r   r   r  s     ru   r  zTestKruskal.test_nan_policy  s}    IIcNvv!U]]1a(266266*:;EMM!Q6BJOj%--A'Jj%--A(Kr   c                     d}t         j                  j                  |      }t         j                  j                  |      dz   }t        j                  ||      \  }}d}t        ||       y )Nrl  rC  r   )ri   rl  r  rc   r!
  r
   )rm   r  r   rn   r#
  r  r^  s          ru   test_large_no_samplesz!TestKruskal.test_large_no_samples  sS    IIOOAIIOOA#}}Q"1Ax(r   c                     d}t        j                  t        |      5  t        j                          d d d        y # 1 sw Y   y xY w)Nz-Need at least two groups in stats.kruskal\(\)r   )r  r   r   rc   r!
  rm   rZ  s     ru   test_no_args_gh20661z TestKruskal.test_no_args_gh20661  s*    B]]:W5MMO 655s	   <AN)r   r   r   r$
  r  r*
  r.
  r0
  r	  r3
  r  r6
  r9
  r   r   ru   r
  r
  V  s9    BF	")
BC-L)r   r
  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zg d
Zej                  j                  dg d      ej                  j                  de      d               Zej                  j                  de      d        Zy)TestCombinePvaluesc                 X    t        j                  g dd      \  }}t        |dd       y )Nri  r^  r  r  rW  gf?r1   rG   rc   combine_pvaluesr
   )rm   xsqr  s      ru   test_fisherzTestCombinePvalues.test_fisher  s$    &&}XFQAwA6r   c                 X    t        j                  g dd      \  }}t        |dd       y )Nr=
  stoufferrW  S:X?r1   rG   r>
  rm   Zr  s      ru   test_stoufferz TestCombinePvalues.test_stouffer  s$    $$]:F1AwA6r   c                 X    t        j                  g dd      \  }}t        |dd       y )N)r8   r8   r8   rC
  rW  r8   r1   rG   r>
  rE
  s      ru   test_stouffer2z!TestCombinePvalues.test_stouffer2  s$    $$\*E1As2r   c                     t        j                  g ddt        j                  d            \  }}t	        |dd       y )Nr=
  rC
  r0   rX  r  rD
  r1   rG   )rc   r?
  ri   r  r
   rE
  s      ru   test_weighted_stoufferz)TestCombinePvalues.test_weighted_stouffer  s1    $$]:-/WWQZ91AwA6r   c                     t        j                  g ddt        j                  d            \  }}t	        |dd       y )Nr=
  rC
  )r   r1   r6   rK
  g46<?r1   rG   )rc   r?
  ri   r   r
   rE
  s      ru   test_weighted_stouffer2z*TestCombinePvalues.test_weighted_stouffer2  s3    $$]:-/XXi-@B1Av15r   c                 X    t        j                  g dd      \  }}t        |dd       y )Nr=
  r  rW  gE
)??r1   rG   r>
  rE
  s      ru   test_pearsonzTestCombinePvalues.test_pearson  s$    $$]9E1AwA6r   c                 X    t        j                  g dd      \  }}t        |dd       y )Nr=
  tippettrW  gBi?r1   rG   r>
  rE
  s      ru   test_tippettzTestCombinePvalues.test_tippett  s$    $$]9E1Av15r   c                 X    t        j                  g dd      \  }}t        |dd       y )N)r  r  r  mudholkar_georgerW  g&?r1   rG   r>
  rE
  s      ru   test_mudholkar_georgez(TestCombinePvalues.test_mudholkar_george  s%    $$\:LM1AxQ7r   c                     t        j                  g dd      \  }}t        j                  g dd      \  }}t        j                  g dd      \  }}t        d||z   z  |d       y )	Nr=
  rU
  rW  r  r  r8   r1   rG   r>
  )rm   rF
  r  Z_fp_fZ_pp_ps          ru   2test_mudholkar_george_equal_fisher_pearson_averagezETestCombinePvalues.test_mudholkar_george_equal_fisher_pearson_average  sY    $$];MN1((xHS((yISC3s7OQA>r   )r  r  rR
  rC
  rU
  r  )singler  rl  rX  c                 n   d\  }}t         j                  j                  d      }|dk(  rFt        j                  ||f|j                  |            }t        j                  dd|      |d d df<   nm|dk(  r8t        j                  ||ft        j                  dd|            j
                  }n0|dk(  r+t        j                  |j                  dd	||f
      d      }D cg c]  }t        j                  ||      d	    }}t        j                  t        j                  |      dk\        sJ y c c}w )N)rX   r4   l	   TrU(	"b-= r]
  r  r  r   r  rl  r   rd  rP   rW  )ri   rl  rm  r}   r`  r~  r|	  r0  rc   r?
  r  diff)	rm   r  rX  r  r  rq  pvaluessr  combined_pvaluess	            ru   test_monotonicityz$TestCombinePvalues.test_monotonicity  s    1ii##$KL hww1vszz!}5H[[c15HQTNww1vr{{3Q'?@BBH wws{{1aq!f{=AFH $
# !!'&9!<# 	 
 vvbgg./14555	
s   !!D2c                 z    t        j                  g d|      }t        |j                  |j                  f|       y )Nr=
  rW  )rc   r?
  r   r   r   )rm   rX  r   s      ru   r  zTestCombinePvalues.test_result  s+    ##M&AcmmSZZ0#6r   N)r   r   r   rA
  rG
  rI
  rL
  rN
  rP
  rS
  rV
  r\
  rr  r  r  r  rb
  r  r   r   ru   r;
  r;
    s    7
737
6
768? OG[[Y(CD[[Xw/6 0 E6. [[Xw/7 07r   r;
  c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)TestCdfDistanceValidationzg
    Test that _cdf_distance() (via wasserstein_distance()) raises ValueErrors
    for bad inputs.
    c           	          t        t        t        j                  dgdgdgddg       t        t        t        j                  dgdgddg       y )Nr   r/   r1   r0   r   r   r   rc   wasserstein_distancer  s    ru   &test_distinct_value_and_weight_lengthsz@TestCdfDistanceValidation.test_distinct_value_and_weight_lengths  sG     	j%"<"<cA3aV	-j%"<"<qcA3AOr   c                     t        t        t        j                  ddgdgddg       t        t        t        j                  ddgdgddgdg       y )Nr   r   r/   r0   rg
  r  s    ru   test_zero_weightz*TestCdfDistanceValidation.test_zero_weight
  sN     	j%"<"<!fqcAq6	+j%"<"<!fqcAq6A3	0r   c           	      X    t        t        t        j                  ddgddgddgddg       y )Nr   r   r/   r0   r^   rg
  r  s    ru   test_negative_weightsz/TestCdfDistanceValidation.test_negative_weights  s-    j%"<"<!fq!fq!fq"g	7r   c                     t        t        t        j                  g ddg       t        t        t        j                  dgg        y r5  rg
  r  s    ru   test_empty_distributionz1TestCdfDistanceValidation.test_empty_distribution  s2     	j%"<"<b1a&Ij%"<"<qc2Fr   c           	      v    t        t        t        j                  g dddgdt        j
                  dgddg       y )Nr  r   )r   r   rc   rh
  ri   r  r  s    ru   test_inf_weightz)TestCdfDistanceValidation.test_inf_weight  s0    j%"<"<!Q!RVVQ!Q	Ar   N)	r   r   r   r   ri
  rk
  rm
  ro
  rq
  r   r   ru   re
  re
    s#    
P07
GAr   re
  c                   l   e Zd ZdZd Zej                  j                  dd      ej                  j                  dd      ej                  j                  dd      d	                      Zej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Z	ej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Z
d Zej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Zej                  j                  d
d      ej                  j                  dd      ej                  j                  dd      d                      Zd Zej                  j                  dg d      ej                  j                  dg d      d               Zy) TestWassersteinDistanceNDz8 Tests for wasserstein_distance_nd() output values.
    c                    g d}g d}t        j                  ||      }t        j                  g d      }t        j                  g d      }t        j                  ||z        t        j                  |      z  }t        ||       y )N)r9  r9  r9  r9  r9  r9  r9  r9  r9  r9  )r1   r/   r3   r   ru
  )r  r  r  r  r  r  r  r  r  r  r  r  )r4   r   )r-  r   rF   r   r   r   )r   gw@r  g;f?r   r   )rc   wasserstein_distance_ndri   r   r  r   )rm   r5  r6  r   flowdistrs  s          ru   test_published_valuesz/TestWassersteinDistanceND.test_published_values'  sm    
"" ++Aq1 xx01xx@AffTD[!"&&,.S!r   n_value)r1   r  r  r#  )r0   r1   r4   max_repeats)r2   rX   c                 :   t         j                  j                  d      }|j                  d||t              }|j                  ||f      }t        j
                  ||d      }|j                  t        j                  |            }t        j
                  t        j                  t        |            |      }	t        j                  |	|      }
|j                  t        |            }||   ||   }}t        j                  |||
|      }t        |dd	       y )
Nl   na{F.aP	 r   )r.   rO   rd  r   rP   r(	  r   r  )ri   rl  rm  integersr  r  r  r   r0  bincountr^  rc   rv
  r   )rm   r#  rz
  r{
  rq  repeatsu_valuesv_values	v_weightsrange_repeat	u_weightsr  r   s                ru   test_same_distribution_nDz3TestWassersteinDistanceND.test_same_distribution_nD:  s     ii##$<=,,q+G3,G::GT?:399XwQ7JJrvvg/	yy3w<!8'BKKi@	I/&uoy/?)++Hh	9UQU+r   nu)r5   r6   &   nv)r5   rZ   ra   )r0   r2   r  c                    t         j                  j                  d      }|j                  ||f      }t        j                  ||f      }|j                  |      }|j                  |      }t        j                  t         j
                  j                  |d      |      }	t        j                  ||||      }
t        |
|	       y )N   }&=:! rd  r   rP   r(	  )
ri   rl  rm  rG  r)	  rr  r  rc   rv
  r   )rm   r
  r
  r#  rq  r
  r
  r
  r
  rs  r   s              ru   test_collapse_nDz*TestWassersteinDistanceND.test_collapse_nDN  s     ii##$89::B::.88RJ'JJBJ'	JJBJ'	jjq99M++Hh	9US!r   )r5   r   rc  )r   r/   r3   c                 2   t         j                  j                  d      }|j                  ||f      }|j                  ||f      }|j                  |      }|j                  |      }t        j                  ||||      }	|j                  d|d      \  }
}|j                  ||f      }t        j                  ||
|d      }t        j                  ||
t        j                  |      d      }t        j                  ||||      }t        ||	       y )Nr
  rd  r   r/   rP   )	ri   rl  rm  rc   rv
  r}
  insertrG  r   )rm   r
  r
  r#  rq  r
  r
  r
  r
  rs  add_rownrows	add_valuer   s                 ru   test_zero_weight_nDz-TestWassersteinDistanceND.test_zero_weight_nD^  s    
 ii##$89::B::.::B::.JJBJ'	JJBJ'	++Hh	9Ua!4JJUDMJ2	99Xw	BIIi"((5/J	++Hh	9US!r   c                    ddgddggt         j                  t         j                   ggddg}}}t        j                  |||      }t	        |t         j                         t        j
                  d      5  t         j                  t         j                  ggt         j                  t         j                   gg}}t        j                  ||      }t	        |t         j                         d d d        y # 1 sw Y   y xY w)Nr   r/   r  r  )ri   r  rc   rv
  r   r  rj   )rm   uvvvuwdistances        ru   test_inf_valuesz)TestWassersteinDistanceND.test_inf_valuesq  s     !fq!f%"&&(9':QFB00R<Xrvv&[[*vvrvv&'266BFF7*;)<B44R<H266* +**s   6A4C33C<r  )r   r0   r2   c                    t         j                  j                  d      }|j                  ||f      }|j                  ||f      }|j                  |      }|j                  |      }t        j                  ||||      }	|j                  d|      }
|j                         }t        j                  ||
|d      }t        j                  ||
|d      }t        j                  ||||      }t        ||	       y )Nl   Lq/ rd  r   r   rP   )ri   rl  rm  rc   rv
  r}
  r
  r   )rm   r
  r
  r#  rq  r
  r
  r
  r
  rs  add_dimr
  r   s                ru   test_multi_dim_nDz+TestWassersteinDistanceND.test_multi_dim_nD|  s    
 ii##$78::B::.::B::.JJBJ'	JJBJ'	++Hh	9U,,q$'JJL	99Xw	B99Xw	B++Hh	9US!r   )r4   r[   r  )r/   r1   r4   c                    t         j                  j                  d      }|j                  ||f      }|j                  ||f      }|j                  |      }|j                  |      }t        j                  ||||      }	t        j
                  |      }
|
j                  |      }|j                  |      }t        j                  ||z  |z   ||z  |z   ||      }t        ||	       y )Nl   uAh~rd  re  )ri   rl  rm  rc   rv
  ortho_grouprg  r   )rm   r
  r
  r#  rq  r
  r
  r
  r
  rs  rx
  	transformshiftr   s                 ru   test_orthogonal_nDz,TestWassersteinDistanceND.test_orthogonal_nD  s     ii##N3::B::.::B::.JJBJ'	JJBJ'	++Hh	9U  &HH#H.	


%++Hy,@5,H)1I)=)E)2I? 	S!r   c                    t         j                  j                  d      }t        j                  t
        d      5  |j                  d      }|j                  d      }t        j                  ||      }d d d        t        j                  t
        d      5  |j                  d      }|j                  d	      }t        j                  ||      }d d d        t        j                  t
        d
      5  |j                  d      }|j                  d      }t        j                  ||      }d d d        y # 1 sw Y   xY w# 1 sw Y   txY w# 1 sw Y   y xY w)Nl   e36^[Y{lz Invalid input values. The inputsr   )r1   rX   r  rd  )r3   r/   r4   z Invalid input values. Dimensions)r  )r0   r  z(Invalid input values. If two-dimensionalrL  r  )ri   rl  rm  r  r   r   rc   rv
  )rm   rq  r
  r
  r,  s        ru   test_error_codez)TestWassersteinDistanceND.test_error_code  s   ii##$>?]]:-OPzz{z3Hzzyz1H--hAA Q ]]:-OPzzuz-Hzzwz/H--hAA Q ]]:<>zzwz/Hzzvz.H--hAA	> > QP QP> >s#   ;D;;E7;E;EEEu_size)r   rX   rC  v_sizec                    t         j                  j                  d      }|j                  |df      }|j                  |df      }|j                         }|j                         }t	        j
                  ||      }t	        j                  ||      }	t	        j                  ||      }
t        |	|       t        |
|       |j                  |      }|j                  |      }t	        j
                  ||||      }t	        j                  ||||      }	t	        j                  ||||      }
t        |	|       t        |
|       y )Nl   Ku@* r   rd  )ri   rl  rm  r  rc   rh
  rv
  r   )rm   r
  r
  rq  r
  r
  u_values_flatv_values_flatd1d2d3r
  r
  s                ru   test_optimization_vs_analyticalz9TestWassersteinDistanceND.test_optimization_vs_analytical  s#    ii##K0::FA;:/::FA;:/ ( ( ''}E**8X>**=-HBBJJFJ+	JJFJ+	''}(19>**8X(19>**=-(19>BBr   N)r   r   r   r   ry
  r  r  r  r
  r
  r
  r
  r
  r
  r
  r
  r   r   ru   rs
  rs
  #  s   "& [[Y4[[VY/[[]G4, 5 0 5," [[T:.[[T;/[[VZ0" 1 0 /" [[T;/[[T;/[[VY/" 0 0 0" 	+ [[T<0[[T<0[[VY/" 0 1 1"" [[T;/[[T;/[[VY/" 0 0 0"$B  [[X{3[[X{3  4 4 r   rs
  c                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y	)
TestWassersteinDistancez5 Tests for wasserstein_distance() output values.
    c                 <   t        t        j                  ddgdgddgdg      d       t        t        j                  ddgdgddgdg      d       t        t        j                  ddgdgddgdg      d       t        t        j                  g dg d      d       y )	Nr   r   r8   r0   r  r/   r"  rT  r   rc   rh
  r  s    ru   r$
  z#TestWassersteinDistance.test_simple  s     	&&1vsQFQC@	 	22FQC!Q!&	 	22FQC!Q!&	 	22y"	r   c           	          t        t        j                  g dg d      d       t        t        j                  g dddgg dddg      d       y 	NrT  r  r   )r   r   r   r1   r1   r   r  r0   )r   rc   rh
  r  s    ru   test_same_distributionz.TestWassersteinDistance.test_same_distribution  sE     	U//	9EqI&&|aV'3aV=	r   c           	      (   t        t        j                  dgdg      d       t        t        j                  dgdg      d       t        t        j                  g dg d      d       t        t        j                  g dg d	g d
g d      d       y )Nr   r   r  r2   rX   rc  )rY   rZ   r[   rV   r  )r<   g@r  )r  r4   rQ  )r0   r   r   )r   r0   r   r:   r
  r  s    ru   
test_shiftz"TestWassersteinDistance.test_shift  sz     	22A3<a@22B4!=rB&&8LM	 	&&'0)=	r   c           
          t        t        j                  g dg dg dg d      t        j                  g dg dg dg d             y N)r   r   r   r   r   r   r2   )r   r0   r0   r0   r0   r1   r1   )r   r   r   r   r   r   r   )r2   r   r   )r   r1   r0   r   r/   r1   r
  r  s    ru   test_combine_weightsz,TestWassersteinDistance.test_combine_weights  s?     	&&%'<%'<> &&y)'0)=		>r   c                    t        j                  ddd      }t        j                  |      }t        t	        j
                  ||      t        j                  t        j                  |                   t        j                  t        |            }|d d d   }t        t	        j
                  ||||      t        j                  t        j                  |      |             y )Nr  rD  r  r^   r(	  )
ri   r   r  r   rc   rh
  rh   r  r0  r)	  )rm   r5  r6  r
  r
  s        ru   test_collapsez%TestWassersteinDistance.test_collapse   s     IIc2s#MM!&&q!,GGBFF1I	  IIc!f%	ddO	&&q!Y	BJJrvvay)4	6r   c           
          t        t        j                  g dddgg dddg      t        j                  ddgddgddgddg             y N)r   r/   r  r   r  r/   r
  r  s    ru   rk
  z(TestWassersteinDistance.test_zero_weight   sN    &&~1v'01a&:&&1v1v1v1vF	Hr   c                    t        t        j                  ddt        j                  gddg      t        j                         t        t        j                  ddt        j                  gt        j                   dg      t        j                         t        t        j                  dt        j                   t        j                  gddg      t        j                         t               5 }|j                  t        d       t        t        j                  ddt        j                  gt        j                  dg      t        j                         d d d        y # 1 sw Y   y xY wNr   r/   r   )	r   rc   rh
  ri   r  r   rk   rl   rj   rm   rt   s     ru   r
  z'TestWassersteinDistance.test_inf_values   s     	&&1bff~1v>FF	 	&&1bff~|DFF	 	&&BFF7BFF';aVDFF	  CJJ~'78**Aq"&&>BFFA;G !     ,A&EE$N)r   r   r   r   r$
  r
  r
  r
  r
  rk
  r
  r   r   ru   r
  r
    s+     >6 Hr   r
  c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	TestEnergyDistancez0 Tests for energy_distance() output values.
    c                    t        t        j                  ddgdgddgdg      t        j                  d      dz         t        t        j                  ddgdgddgdg      t        j                  d      dz         t        t        j                  ddgdgddgdg      d       t        t        j                  g dg d	      t        j                  d      d
z         y )Nr   r   r/   r8   r0   r  r   r"  rT  g3Ey?r   rc   energy_distanceri   r   r  s    ru   r$
  zTestEnergyDistance.test_simple4   s     	!!1a&1#1vs;GGAJO	 	E11FQC!Q!&GGAJ	 	E11FQC!Q!&	 	!!)Y7GGAJ**	,r   c           	          t        t        j                  g dg d      d       t        t        j                  g dddgg dddg      d       y r
  )r   rc   r
  r  s    ru   r
  z)TestEnergyDistance.test_same_distributionD   sB     	U**9i@!D!!,Aq!fM	r   c                     t        t        j                  dgdg      t        j                  d             t        t        j                  dgdg      t        j                  d      dz         y )Nr   r   r/   r  r2   gS[:XL	@r
  r  s    ru   r
  zTestEnergyDistance.test_shiftL   sS     	E111#s;RWWQZH!!2$,GGAJ	!r   c           
          t        t        j                  g dg dg dg d      t        j                  g dg dg dg d             y r
  r   rc   r
  r  s    ru   r
  z'TestEnergyDistance.test_combine_weightsT   s<     	!!"79N"79NP!!)Y	9M	Or   c           
          t        t        j                  g dddgg dddg      t        j                  ddgddgddgddg             y r
  r
  r  s    ru   rk
  z#TestEnergyDistance.test_zero_weight\   sK    !!.1a&)aVL!!1a&1a&1a&1a&A	Cr   c                    t        t        j                  ddt        j                  gddg      t        j                         t        t        j                  ddt        j                  gt        j                   dg      t        j                         t        t        j                  dt        j                   t        j                  gddg      t        j                         t               5 }|j                  t        d       t        t        j                  ddt        j                  gt        j                  dg      t        j                         d d d        y # 1 sw Y   y xY wr
  )	r   rc   r
  ri   r  r   rk   rl   rj   r
  s     ru   r
  z"TestEnergyDistance.test_inf_valuesb   s     	U**Aq"&&>Aq6BBFFK!!1a.BFF7A,?FF	 	!!1rvvgrvv"6A?FF	  CJJ~'78%%q!RVVnrvvqkB !  r
  N)
r   r   r   r   r$
  r
  r
  r
  rk
  r
  r   r   ru   r
  r
  0   s'    , !OCr   r
  c                       e Zd Zg dZg dZdZd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
dg idg ig g dg      d        Zd Zd Zd Zd Zd Zy)TestBrunnerMunzel)r   r/   r   r   r   r   r   r   r   r   r/   r1   r   r   r0   r0   r1   r0   r   r/   r0   r   r   r2   r1   r[   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        ||| j
                         t        ||k7         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )	Nr9  r?  r;  rG   |	&	@|	&	gҏGg?g@-pL?)rc   brunnermunzelre   r  r
   rH   r   r  s	            ru   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sidedy   s6   $$TVVTVVHB$$TVVTVVKB$$TVVTVVKB$$TVVTVVHBB0@0@AB0@0@AbB 2(,(8(8	:B 3(,(8(8	:B 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:B 3(,(8(8	:r   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr7  r?  rG   r
  r
   ҏGw?rc   r
  re   r  r
   rH   r  s        ru   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sided   s    $$TVVTVVMB$$TVVTVVMBB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:r   c                 x   t        j                  | j                  | j                        \  }}t        j                  | j                  | j                        \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )NrG   r
  r
  r
  r
  r  s        ru   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default   s    $$TVVTVV4B$$TVVTVV4BB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:r   c           	          d}d}d}t        |dv       t        t        t        j                  | j
                  | j                  |||       y )Nr  r  r  r  r   r   r   rc   r
  re   r  rm   r@  distributionr   s       ru   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error   sI     
#CCDj))ffff!" 	"r   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nrn  r
  rG   r
  r
  g "H[?r
  r  s        ru   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_norm   s    $$TVVTVV(KB$$TVVTVV(KBB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:r   c           	          d}d}d}t        |dv       t        t        t        j                  | j
                  | j                  |||       y )Nr7  r  r  )r  rn  r
  r
  s       ru   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error   sH    ! 
?23j))ffff!" 	"r   kwarg_updatern   r   r  c                 X   | j                   | j                  d}|j                  |       t        j                  t
        t              5  t        j                  di |\  }}d d d        t        t        j                         t        t        j                         y # 1 sw Y   >xY w)Nr  r   r   )re   r  r_  r  r  r   r   rc   r
  r   ri   rj   )rm   r
  r  r   r   s        ru   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput   sv     vvDFF+l#\\,4IJ % 3 3 =f =Iv KY'VRVV$ KJs   
B  B)c                    ddddddddddddddt         j                  g}g d}t        j                  ||d      \  }}t        j                  ||d      \  }}t	        |t         j                         t	        |t         j                         t	        |t         j                         t	        |t         j                         y )Nr   r/   r1   r
  r  r   )ri   rj   rc   r
  r   rm   re   r  r  rC  r  r   s          ru   &test_brunnermunzel_nan_input_propagatez8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagate   s    1aAq!Q1aArvv>-$$QkBB$$QkBBR R R R r   c                     ddddddddddddddt         j                  g}g d}d}d}d}t        t        t        j
                  |||||       t        t        t        j
                  |||||       y )Nr   r/   r1   r
  r7  r  r   )ri   rj   r   r   rc   r
  )rm   re   r  r@  r
  r   s         ru   "test_brunnermunzel_nan_input_raisez4TestBrunnerMunzel.test_brunnermunzel_nan_input_raise   s    1aAq!Q1aArvv>-!
j))!" 	" 	j))!" 	"r   c                 v   ddddddddddddddt         j                  g}g d}t        j                  ||d      \  }}t        j                  ||d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d	| j
                         t	        |d
| j
                         y )Nr   r/   r1   r
  r   r   rG   r
  r
  r
  )ri   rj   rc   r
  r
   rH   r
  s          ru   !test_brunnermunzel_nan_input_omitz3TestBrunnerMunzel.test_brunnermunzel_nan_input_omit   s    1aAq!Q1aArvv>-$$Qf=B$$Qf=BB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:r   c                     g d}g d}d}t        j                  t        |      5  t        j                  ||d       ddd       y# 1 sw Y   yxY w)z| tests that a warning is emitted when p is nan
        p-value with t-distributions can be nan (0/0) (see gh-15843)
        rT  r  zDp-value cannot be estimated|divide by zero|invalid value encounteredr   r  r
  N)r  r  rl   rc   r
  r  s       ru   test_brunnermunzel_return_nanz/TestBrunnerMunzel.test_brunnermunzel_return_nan!  s?     T\\.4137 544s   AAc                     g d}g d}t        j                  t        d      5  t        j                  ||d      \  }}ddd       t        d       y# 1 sw Y   xY w)	zo tests that a p is 0 for datasets that cause p->nan
        when t-distribution is used (see gh-15843)
        rT  r  zdivide by zeror   rn  r
  Nr   )r  r  rl   rc   r
  r   )rm   r   rn   r,  r  s        ru   test_brunnermunzel_normal_distz0TestBrunnerMunzel.test_brunnermunzel_normal_dist!  sO     \\.0@A&&q!(CDAq BQ BAs   AAN)r   r   r   re   r  rH   r
  r
  r
  r
  r
  r
  r  r  r  r
  r
  r
  r
  r
  r
  r   r   ru   r
  r
  s   s    2A)AK:.::"	:" [[^sBi#r46R.@.B C%C%	!",:	8	r   r
  c                       e Zd ZdZd Zy)TestRatioUniformsz{ Tests for rvs_ratio_uniforms are in test_sampling.py,
    as rvs_ratio_uniforms is deprecated and moved to stats.sampling c           	         t         j                  j                  }t        j                   |t        j                  d                  t        j                  d      z  }t        j                   |d            }t         j
                  j                  ||| |d      }|j                  d      }d}t        j                  t        |      5  t        j                  ||| |dd      }d d d        t        |       y # 1 sw Y   xY w)	Nr/   r   i90  )umaxvminvmaxrf  rX   zEPlease use `RatioUniforms` from the `scipy.stats.sampling` namespace.r   rN  )rc   r  pdfri   r   samplingRatioUniformsrg  r  r  rp  rvs_ratio_uniformsr   )rm   r  r6  r
  genr  deprecation_msgr  s           ru   test_consistencyz"TestRatioUniforms.test_consistency"!  s    JJNNGGAbggajM"RWWQZ/wwqt}nn**14qbq8= + ?WWR[?\\,OD))!TA2qr7<>B E 	R EDs   C??DN)r   r   r   r   r
  r   r   ru   r
  r
  !  s    Hr   r
  c                      e Zd ZdZd Zej                  j                  dg dg dddej                   dd	gd
ddej                  dgg      d        Z
ej                  j                  dg dg dg      d        Zej                  j                  dddg      ej                  j                  dd	dg      ej                  j                  dddg      d                      Zd Zy)TestQuantileTestzb Test the non-parametric quantile test,
    including the computation of confidence intervals
    c                 (   g d}d}t        j                  t        |      5  t        j                  |g       d d d        d}t        j                  t        |      5  t        j                  |ddg       d d d        d}t        j                  t        |      5  t        j                  |d	d
g       d d d        t        j                  t        |      5  t        j                  |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        d}t        j                  t        |      5  t        j                  |      j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   TxY w# 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   xY w# 1 sw Y   y xY w)NrT  z/`x` must be a one-dimensional array of numbers.r   z`q` must be a scalar.r   r/   )r  z-`p` must be a float strictly between 0 and 1.r8   r  )r  rw  z`alternative` must be one of...z	one-sidedr?  r  )r  r   r   rc   quantile_testr/  rO  s      ru   test_quantile_test_ivz&TestQuantileTest.test_quantile_test_iv6!  sn   C]]:W5$ 6 *]]:W5aV, 6 B]]:W5c4[1 6]]:W5Q' 6]]:W5T* 6 4]]:W5{; 6 I]]:W5"66q9 65) 65 65 655555 65 65sS   F=G
GG$G0G<%H=G
GG!$G-0G9<HHzp, alpha, lb, ub, alternative)r  rS	  gX݊?g蜶?r7  )r8   r  g-tA?gP"?r7  r  rS	  g{gA?r9  r  r  gg @r;  c                     t        j                  t        j                  ddd            }t        j                  |||      }t        |j                  |      ||gd       y )Nr   rx  ri  )r  r@  r   rA  )ri   rR  r   rc   r  r   r/  )rm   r  r  lbubr@  r   r   s           ru   test_R_ci_quantilez#TestQuantileTest.test_R_ci_quantileQ!  sN      FF299Qd+,!!!qkB//6RuMr   zq, p, alternative, ref)rB  r  r7  gͯI	?)r	  r8   r7  gɍQ%e?c                     t        j                  t        j                  ddd            }t        j                  ||||      }t        |j                  |d       y )Nr   rx  ri  r  r  r@  r7   rA  )ri   rR  r   rc   r  r   r   )rm   r  r  r@  rs  r   r   s          ru   test_R_pvaluezTestQuantileTest.test_R_pvaluee!  sE     FF299Qd+,!!!qA;G

Ce4r   r+  
continuousdiscreter@  r  c                    t        dt        |      z  t        |      z   |z        }t        j                  j	                  |      }|dk(  r(|j                  d      \  }}|j                  d      }n6|j                  ddd      }|j                         }|j                  dd      }t        j                  ||||      }	|	j                  |	      }
|d
k(  r||
j                  k  }n||
j                  k\  }||   D ]/  }t        j                  ||||      }	|	j                  d|z
  kD  r/J  ||    D ]/  }t        j                  ||||      }	|	j                  d|z
  k  r/J  y )Nr4   r
  r/   rd  rb  r   rY   r  r  r9  )r  r0  ri   rl  rm  r}
  rc   r  r/  r3  r2  r   )rm   r+  r@  r  r  rq  r  r  rg  r   rI  i_insider   s                ru   test_pval_ci_matchz#TestQuantileTest.test_pval_ci_matcht!  sY    As4yL3{#33U:;ii##D)<::1:%DAq**#*&C,,q"3,/C

AQ#A!!#a[I$$e$< & bgg~Hbff}HXA%%cQ!MC::E	)))  hYA%%cQ!MC::E	)))  r   c                 <   g d}d}t        j                  |ddd      }t        |j                  |d       d	gd
z  dgdz  z   }t        j                  dd      j                  d
      }t        j                  |ddd      }t        |j                  |d       y )N)                                    ri        geX?r  r  r7  r  r  rA  ;   r5   rT   h   r8   p   )r  r  r  r  r;  rg  r  )rc   r  r   r   r   pmf)rm   r   pvalue_expectedr   s       ru   test_match_conover_examplesz,TestQuantileTest.test_match_conover_examples!  s     !!!sdL

O$? DFbT5\!++s377!7<!!!rSiH

O%@r   N)r   r   r   r   r  r  r  r  ri   r  r  r	  r  r#  r   r   ru   r
  r
  1!  s   :6 [['	G	F
rvvg/	8
s%rvvy	9	;NN [[ 	2	1	3
5
5 [[VlJ%?@[[]VY,?@[[WsDk2$* 3 A A$*LAr   r
  c                       e Zd Zej                  j                  d       ej                  j                  dd      Zej                  j                  dd      Zdddd	efd
ddd	efdddd	g dg dg dgfddddg dg dg dgfddd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fddd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fd"d#ddg d$g d$g d%gfd&d'ddg d(g d(g d(g d(g d(g d(g d)g d*g d*g d*g
fd+d,d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fd-d.ddg d/g d/g d0g d1gfd2d3ddg dg dg dg dg dg dg dg dg dg d g d!gfgZ	e
j                  j                  d4e	      d5        Zd6d7ddg d8g d9gfd:d;ddg d8g d8g d8g d<g d=gfd>d?ddg d@g d@g d@g d@g d@g d@g d@g d@g d@g dAg dBg dBg dBg dBg dBgfgZe
j                  j                  d4e	      e
j                  j                         dC               ZdD ZdE ZdF ZyG)HTestPageTrendTestr   r0   r  rX      i2  g:hў?FrV  i  gsH?i,0  gY@?)rw  ru  I   r  ru  `   rD  r  rS  r	  rs  1   rr  +   r  ru  r  r  rx  r  rT   r  r  r  rC  )D   r(  r  "   r  r  A   X   rU   rr  r  r	  r	  C   E   r  rD  r  rE  W   r  r*  rC  r(  r*  )rr  r[   U   r  O   rZ   \   V   rU   @   r   r6  r+  ra   r   Y   r  r*  r*  r	  6   r[   B   r  r  i
  gXY?rY  )r9   r  g @r2   r  rY   )r2   r1   r;   rX   r  rU   )rx  r  rX   rZ   rV   r  iL  gs˜?T)r1   r0   r/   r   )r0   r1   r   r/   r>     gĞ?)r0   r/   r   r  rT     g>K=?)r3   r2   r1   r0   r/   r   )r   r0   r1   r2   r/   r3   i  gqူ?)r2   r1   r0   r/   r   )r1   r   r0   r/   r2   rc     ga?i  g;?)r4   r3   r2   r1   r0   r/   r   )r3   r2   r4   r1   r0   r/   r   r  u   g[^6?zL, p, ranked, method, datac                     t         j                  j                  d       t        j                  |||      }t        ||j                         t        ||j                         t        ||j                         y Nr  )rankedrX  
ri   rl  r  rc   page_trend_testr   r   r   r   rX  rm   Lr  r@  rX  r+  r   s          ru   test_accuracyzTestPageTrendTest.test_accuracy!  sP    
		r##DGQ&3::&VSZZ(r   i  g-lpW?)
rX   r6   r5   r4   r3   r2   r1   r0   r/   r   )
r   r5   r1   r4   r3   r2   r6   r0   r/   rX   i*  gh[?)
r6   r/   r5   r4   r3   r2   r1   r0   rX   r   r  i  g&]2?)r5   r4   r3   r2   r1   r0   r/   r   )r   r0   r2   r3   r1   r4   r/   r5   r  c                     t         j                  j                  d       t        j                  |||      }t        ||j                         t        ||j                         t        ||j                         y r?  rA  rC  s          ru   test_accuracy2z TestPageTrendTest.test_accuracy2"  sR     			r##DGQ&3::&VSZZ(r   c                 F   t         j                  j                  d       d\  }}t        j                  d|dz         }t         j                  j	                  t        j                  |            }t         j                  j                  ||      }t        j                  |d      }t        j                  |      }t        j                  |d      }t        j                  |d      }	t        j                  ||      }
t        j                  |d d |f   ||         }t        |j                  |j                         t        |j                  |	j                         t        |j                  |
j                         t        |j                  |j                         y )	Nr  )rX   r  r   rP   Tr@  F)predicted_ranks)ri   rl  r  r   r^  r  rc   rankdatarB  r   r   )rm   r  r  rJ  permr+  ranksr>  r?  r]  res4res5s               ru   test_optionszTestPageTrendTest.test_options!"  s    
		r1))Aqs+yy$$RYYq\2yy~~a#t!,$$U+$$U48$$T%8$$UOL$$U1d7^5DT5JLT^^T^^4T^^T^^4T^^T^^4T^^T^^4r   c                    t         j                  j                  d       g dg dg dg dg dg dg}t        j                  |      j                  }t        j
                  dd	      }t        j                  |d
|d      }t        |j                  d       t        |j                  dd       t        j                  |d
|d      }t        |j                  d       t        |j                  dd       y )Nr  )r  r=  o   )rt  r  k   )g      y   )rm  r  r,
  )r        )   r  t   r   r4   FrV  )r@  rJ  rX  i  gy&1l?r1   rR   rY  gHPsb?)ri   rl  r  r   r~  r   rc   rB  r   r   r   r   )rm   r+  rJ  r   s       ru   test_Ames_assayz!TestPageTrendTest.test_Ames_assay3"  s    
		r/Cxx~))Aq/##D4C+79 	S]]C(CJJ:##D4C+24 	S]]C(CJJ:r   c                 D   t        t        d      5  t        j                  d        d d d        t        t        d      5  t        j                  g        d d d        t        t        d      5  t        j                  ddg       d d d        t        t        d      5  t        j                  dggg       d d d        t        t        d      5  t        j                  t        j
                  j                  dd             d d d        t        t        d      5  t        j                  t        j
                  j                  dd             d d d        d}t        t        |      5  t        j                  g dg dgg d	
       d d d        t        t        |      5  t        j                  g dg dgg d
       d d d        t        t        |      5  t        j                  g dg dgg d
       d d d        t        t        |      5  t        j                  g dg dgd
       d d d        t        t        d      5  t        j                  g dg dgd       d d d        t        t        d      5  t        j                  g dg dgd       d d d        t        t        d      5  t        j                  g dddt        j                  ggd       d d d        t        t        d      5  t        j                  g dg dgd       d d d        t        t        d      5  t        j                  g dg dg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   xY w# 1 sw Y   xY w# 1 sw Y   PxY w# 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   xY w# 1 sw Y   wxY w# 1 sw Y   NxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nz`data` must be a 2d array.r   r   r/   zPage's L is only appropriater0   z+`predicted_ranks` must include each integerrT  r"  )r+  rJ  )r  r/   r0   )r   r/   r0   r0   r  z`data` is not properly ranked)r   r/   r0   Tr
  z`data` contains NaNsFrI  z`method` must be inekki)r+  rX  z`ranked` must be boolean.)r+  r@  )	r   r   rc   rB  ri   rl  r  rj   r@  r8
  s     ru   r[  z'TestPageTrendTest.test_input_validationH"  s   :-IJ!!$' K:-IJ!!"% K:-IJ!!1a&) K:-IJ!!QC5'* K :-KL!!"))..A"67 M:-KL!!"))..A"67 M @:W5!!	9'=2;= 6 :W5!!	9'=2=? 6 :W5!!	9'=2>@ 6 :W5!!	9'=2;= 6
 :-LM!!9i"8$? N:-LM!!9i"8$? N :-CD!!9q!RVVn"=).0 E :-BC!!	9'=)/1 D 9,GH!!	9'=)/1 IHW KJJJJJJJ MLLL
 65 65 65 65
 NMMM ED DC IHs   M!M.0M;!N4N 4N"/ N/( N<! O	OO#O0=-O=P
:P!M+.M8;NNN"N,/N9<O	OO #O-0O:=P
PPN)r   r   r   ri   rl  r  r  	data_3_25
data_10_26tsr  r  r  rE  ts2r  rG  rP  r[  r[  r   r   ru   r%  r%  !  s    IINN1		q"%IB'J $e\9
E%ulJ
G$e\===	>? %ug%#&() "D',l,l,l,()
 "D'y)Y	9y)Y	9y)Y	9y)-.
 "D' 24FGI"D'_o_o_o
 "D'y)Y	9y)Y	9y)Y	9
 !4!#8!#8:; "D'y)Y	9y)Y	CDO*
BX [[92>) ?) #T7,,./ $dG,.M,.M,./ $dG%'?%'?%'?%'?%'?%'?%'?%'(C* [[92>[[)  ?)5$;*/1r   r%  iv5z	fun, argsc                      | |ddi} | |ddi}t        ||       | j                   d}t        j                  t        t        j                  |            5   | |ddd d d d        y # 1 sw Y   y xY w)NrX  rY  r  z#() got multiple values for argumentr   )rX  r  )r   r   r  r   r@  reescape)r-	  r  r   r?  errs        ru   test_rename_mode_methodrf  "  sk     t
$G
$C#7#Ddll^>
?C	y		#	7T'0 
8	7	7s   
A--A6c                       e Zd Zd Zd Zd Zd Zej                  j                  dg d      ej                  j                  ddd	g      d
               Z
ej                  j                  ddd	g      d        Zy)TestExpectilec                     t         j                  j                  d      }|j                  d      }t        t	        j
                  |d      t        j                  |             y )Nr  r  rd  r8   r  )ri   rl  rm  r   rc   	expectilerh   rm   rq  r   s      ru   test_same_as_meanzTestExpectile.test_same_as_mean"  sC    ii##B'JJBJ5rwwqzBr   c                     t         j                  j                  d      }|j                  d      }t        t	        j
                  |d      t        j                  |             y )Nr  r  rd  r   rj  )ri   rl  rm  r   rc   rk  aminrl  s      ru   test_minimumzTestExpectile.test_minimum"  C    ii##B'JJBJ3RWWQZ@r   c                     t         j                  j                  d      }|j                  d      }t        t	        j
                  |d      t        j                  |             y )Nr  r  rd  r   rj  )ri   rl  rm  r   rc   rk  amaxrl  s      ru   test_maximumzTestExpectile.test_maximum"  rq  r   c                   	 t         j                  j                  d      }d 		fd}d}|j                  |      }|j                         }|j                  |      }t        j                  |||      } ||||      }t        ||       y )Nl   b@lN c                     t        j                  ||      }d|z
  ||| k  <   t        j                  ||z  || z
  dz  z        S )Nr  r   r/   )ri   r  r  )r5  r  r  r  r7  s        ru   r-	  z'TestExpectile.test_weights.<locals>.fun"  sC    Q51AE	Aa1fI66!g+Q
233r   c                     t        j                  |       t        j                  |       f}t        j                  || ||f      j
                  S )N)bracketr  )ri   r	  r	  r   minimize_scalarr   )r  r  r  rx  r-	  s       ru   
expectile2z.TestExpectile.test_weights.<locals>.expectile2"  sE    ffQi*G++C23UG1DFFGaHr   rX   r(	  )ri   rl  rm  rc   rk  r   )
rm   rq  rz  r  r  r  r  r   rs  r-	  s
            @ru   test_weightszTestExpectile.test_weights"  s{    
 ii##$78	4
	H
 JJqM

**Q-ooa8E7+S!r   r  )r^  g?r8   g/#    ?r  r  r  r  c           
      h   t         j                  j                  d      }|j                  |      }dD ]8  }t	        t        j                  t        j                  ||      |      |       : |j                         }t	        t        j                  ||z   |      t        j                  ||      |z          t	        t        j                  ||z
  |      t        j                  ||      |z
         t	        t        j                  ||z  |      |t        j                  ||      z         |j                  |d      }|dk(  rd	 }n|dkD  rd
 }nd } |t        j                  t         j                  ||z      |      t        j                  ||      t        j                  ||      z          |j                  |d      }t        j                  ||      t        j                  ||      k  sJ |j                  |d      }dD ]b  } |t        j                  d|z
  |z  ||z  z   |      d|z
  t        j                  ||      z  |t        j                  ||      z  z          d t	        t        j                  | |      t        j                  |d|z
                y)u  
        See Section 6 of
        I. Steinwart, C. Pasin, R.C. Williamson & S. Zhang (2014).
        "Elicitation and Identification of Properties". COLT.
        http://proceedings.mlr.press/v35/steinwart14.html

        and

        Propositions 5, 6, 7 of
        F. Bellini, B. Klar, and A. Müller and E. Rosazza Gianin (2013).
        "Generalized Quantiles as Risk Measures"
        http://doi.org/10.2139/ssrn.2225751
        r  rd  )r  r   r8   )r  r  rj  rX   r  r8   c                     t        | |       y ri  )r   r  r  s     ru   	assert_opz:TestExpectile.test_expectile_properties.<locals>.assert_op"  s    1%r   c                     | |k  sJ y ri  r   r~  s     ru   r  z:TestExpectile.test_expectile_properties.<locals>.assert_op"      1uur   c                     | |kD  sJ y ri  r   r~  s     ru   r  z:TestExpectile.test_expectile_properties.<locals>.assert_op"  r  r   r2   )r  r8   r  r   N)ri   rl  rm  rn  r   rc   rk  r}   exponentiallogisticr  )rm   r  r  rq  r   r  rn   r  s           ru   test_expectile_propertiesz'TestExpectile.test_expectile_properties"  sE   $ ii##B'JJAJ
 AaA >eL  OOOOAE/OOAU+a/	
 	OOAE/OOAU+a/	
 	OOAE///	
 LLaRL(C<& S[ 	OOBEE!a%L6OOAU+ooau-.	
 JJA1J%OOAU+uq/NN	
N LLaRL( A1a!A#U;177EOOAU334 ! 	OOQBe,__Qag..	
r   c                    t         j                  j                  d      }|j                  d|      }g }t        j                  dt        j
                  d      d      }t         j                  d|d|d d	d	   z
  df   D ](  }|j                  t        j                  ||
             * t        j                  t        j                  |      dkD        sJ y )Nr  r/   )r  r.   r  r8   rb  r   r   r^   rj  )ri   rl  rm  paretologspacelog10r  r  rc   rk  r  r_
  )rm   r  rq  r   e_list	alpha_seqr  s          ru   test_monotonicity_in_alphaz(TestExpectile.test_monotonicity_in_alpha#  s    ii##B'JJJ#KKRXXc]C8	UU1iYv2v->)>ABEMM%//!59: Cvvbggfo)***r   N)r   r   r   rm  rp  rt  r{  r  r  r  r  r  r   r   ru   rh  rh  "  s    C
A
A
"4 [[: [[S2t*-_
 ._
B [[S2t*-+ .+r   rh  c           	      2   t         j                  j                  d      }|j                  d      }| j                  |      }d}t	        |||       \  }}t        || j                  |             t        ||       d }t	        |||       \  }}t        || j                  |j                                      t        |d       d}t	        |d   ||       \  }}t        || j                  t        j                  |d                      t        ||       y )	Nl   ~Mr  rd  r   )rQ   r  r   r/   r  )	ri   rl  rm  r  r!   r(   r   r  
atleast_1d)r  rq  r  r   rQ   x_outaxis_outs          ru   test_chk_asarrayr  +#  s    
))


.C		#B


2AD"14B7OE8E2::b>*4 D"14B7OE8E2::bhhj121D"1W:DR@OE8E2::bmmBwK&@AB4 r   numpyz,These parameters *are* compatible with NumPyrN  c                 J   | j                  g d      }d}t        j                  t        |      5  t	        j
                  |d       d d d        t        j                  t        |      5  t	        j
                  |d       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)Nr>  r  r   r   r   Tr8  )r  r  r   r  rc   rj  )r  r   rZ  s      ru   'test_axis_nan_policy_keepdims_nanpolicyr  A#  sn     	

< A5G	*'	:

1( 
;	*'	:

1t$ 
;	: 
;	:	:	:s   B,BBB"r	  )NNrQ  N)r   r	  rc  r(  collectionsr   	itertoolsr   hypothesis.extra.numpyextrar  r  r  r  numpy.testingr   r   r   r   r	   r
   r   r   r   r  r   r   numpy.ma.testutilsr  	testutilsrd  r   r   r   r   r   ri   scipy.statsrc   scipy.stats.mstatsr|  scipy.stats._mstats_basic_mstats_basicr  scipy.stats._ksstatsr   scipy.special._testutilsr   scipy.specialr   scipyr   common_testsr   scipy.stats._axis_nan_policyr   r   r   r   r   r   r  r    r!   r"   r#   scipy._lib._utilr$   scipy.conftestr%   r&   scipy._lib._array_apir'   r(   r)   r*   r+   r,   r-   r.   r   r  r   rH  re   r[  r   r   r   r   r   rB   r   r]  r   r  r  ra  r  r  r  r  r  r&  r)  r-  r;  r=  rJ  r  r  r  r  r  rV  rd  r  r  r  r0  r_  rb  r  r  	compositer  r  r  PowerDivCaser  r9  r~  rY  r  r[  ra  r}  r  r  r  r)  r/  r4  r  rT  r=  rE  rH  r  r  rK  rQ  rX  rZ  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r1  rB  rL  rZ  r]  rg  r|  r  r  r  r  r  r  r  r	  r0	  rW	  rj	  ru	  rw	  r	  r	  r	  r
  r;
  re
  rs
  r
  r
  r
  r
  r
  r%  rl  rm  rq  r   rn   wilcoxonr  r  r  r  r  rf  rh  r  r  r   r   ru   <module>r     sa   
 	  "  % %  . . .
  *     8 8   # # 0 0 ( -   -T T5 5 & D4 4 4 ;;//  

u% %(  !&(	 238
:DeLDeL3U;a4 a4Hp# p#f +,4 x> x> ! - x>vc7 c7L{6 {6|~5 ~5VW3t4 <3$SE SElW2t&&$R+ + O# O#d0D)3"rN rNjf3 f3R *E *E *EZs& s&j<@ <@~1f@ f@Rq" q"h= =x" x"vg"# g"T    !< t'B&C  E+,F) F)  -EF)Rp> p>f & }Dqt&"&&+6266$<78AfbffSkMAfbffTlN:;I	K }N&"&&+&"&&,66266#;FGAfbffSkMBvrvvd|O;asmKL1	2 }AAD&"&&+6266$<78AfbffSkMAfbffTlN:;I	K |<aaQa1+ : r!!Qa1
 xrxxBr
+--!!" xrxxBr
+!!# 4 F< F< F<R ' ' '0 S# S# S#l4Dn+( +(`Z. Z.~c. c.L	rEj1*+ ,#288I.7#288I.79:0:0
. (HI J. ) ,,yryy}a.@A ??YRYYr]IBIIbM,JKMN5N5/zAzt# t#nF5 F5R@7 @7FB+ B+JL$j1Z ,+ ,#288I.7#288I.79:0:0
..G+H,% t'B&C  E+,9>  -E 
9>x d'Q&R  T+,  -T, t'B&C  E+,%  -E%<P+ P+f 8- 8- 8-t"> ":)&~ )&X:^ :
A A. :1 :1 :1z{- {-|1"(>V HL"! HL"! BF)-!`B `BFlB lB^aP aPHP- P-f(.90[;|T7 T7n,/ ,/^c- c-Lz) z)zX XvI7 I7X#A #ALl  l ^[ [|@ @Fi iX $HA HAV{1 {1| 	iiI&JJrNJJrN  >>A40 >>Auzz~~+>? >>Aq62 <<!Q011X+ X+v ! !* g'U&V  X+,
%  -X
%r   