
    Џkh/<                        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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
l+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? ddl@mAZA ddlBmCZC ddlDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZM ddlNmOZOmPZP ddlQmRc mSZT e!gZUej                  j                  ZW	  eg deX      ZY eg deX      ZZ eg deX      Z[ eg deX      Z\ eg deX      Z] eg deX      Z^ eg deX      Z_ G d d      Z` G d d      Za eMe!j                         G d d              Zc G d! d"      Zd G d# d$      Ze G d% d&      Zfd' Zgd( Zhd) Ziej                  j                  d*        Zk G d+ d,      Zld- Zmd. Znd/ Zod0 Zp G d1 d2      Zq G d3 d4      Zrd5 Zsd6 Ztd7 Zu G d8 d9      Zv G d: d;      Zw eMe!j                         G d< d=             Zy eMe!j                         G d> d?             Z{ eMe!j                         G d@ dA             Z} eMe!j                         G dB dC             Z G dD dE      ZdF Z G dG dH      Z eMe!j                         G dI dJ             Z G dK dL      Z eMe!j                         G dM dNe             Z eMe!j                         G dO dPe             Zej                  j                  dQ        Z eMe!j                         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j6                  g g g g      j&                  dddg dig dig dig diW       e ej6                  g g g g      dddg g g g W      gZ eMe!j*                         G dj dk             Z eMe!j.                         G dl dm             Zdn Z G do dp      Z G dq dr      Z G ds dt      Zdu Zdv Zdw Zej                  jA                  dx ejB                  dy      dzf ejB                  d{      d|fg      d}        Zd~ Zej                  jA                  dg d      d        Zej                  jA                  de!j                   ej8                  d      dffe!jJ                   ej8                  d       ej8                  d      ffg      d        ZddddZ eMe!jP                  e!jR                        d        Zd Zd Zej                  j[                  d       G d d             Zej                  j[                  d       G d d             Z G d d      Z eMe!jP                         G d d             Zd Z eMe!jP                         G d d             Z eMe!jR                         G d d             Zej                  j                  dd      ej                  j[                  d      d               Zd Zej                  jn                  ej                  j[                  d      ej                  j[                  d       eMe!j                        d                             Z eWdd      d        Z eMe!j                        ej                  j                  dd      d               Z eMe!jv                         G d d             Z G d d      Z eMe!j|                         G d de             Z eMe!j                         G d de             Z eMe!j                         G d de             Z G d d      Z eMe!j                         G d d             Z G d d      Zd Zd ZddddddZd Zd Zd Z eMe!j                         G d d             Z eMe!j                         G d dë             Z eMe!j                         G dĄ dū             Z eMe!j                         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 eMe!j                         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                  jA                  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      Z G d d      Z G d d      Z G d d      Zd Z eWdd򬦫      d        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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_xp_mean_xp_var_SimpleChi2)	AxisError)skip_xp_invalid_arg)	array_namespaceeager_warnsis_lazy_arrayis_numpyis_torchxp_default_dtypexp_sizeSCIPY_ARRAY_APImake_xp_test_case)xp_assert_closexp_assert_equal)	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 ee	j                        d        Z ee	j                        ej                  j                  d      d               Z ee	j"                        d        Z ee	j&                        d        Z edd      d	        Z ee	j.                        d
        Z edd      d        Z ee	j&                  e	j.                        d        Z edd       ee	j&                  e	j.                        d               Z ee	j8                        d        Zy)TestTrimmedStatsc           	         t        |      }|j                  t        |      }t        j                  |dd      }t        ||j                  d             t        j                  |dd      }t        j                  |d       }t        ||       |j                  |j                  d      d	      }t        j                  |d 
      }t        ||j                  |             t        j                  |d
      }t        ||j                  |d
             t        j                  |d
      }t        ||j                  |d
             t        j                  |dd       }t        ||j                  d             t        j                  |dd      }g d}t        ||j                  |             t        j                  |ddd      }g d}t        ||j                  |             t        j                  |      ddd f   j                  |j                  d      }	t        j                  |	dd      }dddd|j                  |j                  |j                  g}t        ||j                  |             t        j                  |dd      }ddd d!|j                  |j                  |j                  |j                  |j                  g	}t        ||j                  |             t        j                  |dd"d      }ddd d!|j                  |j                  |j                  |j                  |j                  g	}t        ||j                  |             y )#Ndtyper3   r9   TT      @)FFlimits	inclusiverN        O@r:   r8   axisr   r   )r3   =   )rN   rT   g     ?@)r3      )         '@r:   
            TF)rN   rO   rT   )      %@rX   r:   rY   rZ   r[   r\   T)copy)r   r\   r8   r@   rA   rB   r5   rY      rV   FT)r-   asarrayXstatstmeanr1   reshaper   meanxpxatsetnan)
selfxpdefault_dtypexyy1y2x_2dy_truex_2d_with_nans
             X/var/www/teggl/fontify/venv/lib/python3.12/site-packages/scipy/stats/tests/test_stats.py
test_tmeanzTestTrimmedStats.test_tmeanR   s   (,JJqJ.KK6<02::c?+[[6^D[[4(Bzz"))C.&1KK4(2774=)KK1%2774a701KK1%2774a701KKW482::d+,KKW15.2::f-.KKWAN02::f-.tRW-11"&&t1DKKgA>S#sBFFBFFBFF;2::f-.KKW15RRH2::f-.KKW"/a9r2r266266266266266J2::f-.    z>ignore:invalid value encountered in divide:RuntimeWarning:daskc                    |j                  t        j                               }t        j                  |dd      }t        ||j                  d             t        j                  |d       }t        ||j                  |d             |j                  |j                  d      d	      }t        j                  |d 
      }t        ||j                  |d             t        j                  |d
      }t        ||j                  dd             t        j                  |d
      }t        ||j                  dd             t        j                  |ddd      }t        |d   |j                  d             t        j                  |ddd      }t        |d   |j                  d             t        |d   |j                  |j                               y )NrJ   rK   rM   g@rP   r   
correctionrQ   rR   rS   r   r8   g     v@)r:   g㪪@r   r6   )rN   rT   rO   r>   r   r7   g@)rd   re   tolistrf   tvarr1   varrh   r   fullr2   rm   )rn   ro   rq   rr   ru   s        rx   	test_tvarzTestTrimmedStats.test_tvar   sc   
 JJqxxz"JJq<@2::&89:JJq&266!623zz"))C.&1JJt$'266$1656JJt!$2774/0JJt!$277445 JJtFlK!bjjo. JJtFlK!bjj):;<!bjj01rz   c                    |j                  t        j                               }t        j                  |dd      }t        ||j                  d             t        j                  |d       }t        ||j                  |d             y )NrJ   rK   gBĆ/H@rP   r   r|   )rd   re   r   rf   tstdr1   stdrn   ro   rq   rr   s       rx   	test_tstdzTestTrimmedStats.test_tstd   sc    JJqxxz"JJq&,/2::&89:JJq&266!623rz   c           	      J   |j                  d      }t        t        j                  |      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |dd      |j	                  d             |j                  |d      }t        t        j                  |dd      |j	                  d	dg             t        t        j                  |d
      |j	                  g d             t        t        j                  |d       |j	                  d             t        j                  |j                  d      d      j                  |j                        }t        t        j                  |      |j	                  |j                               |j                  |j                  d      d      }t        j                  |dd
      }t        ||j	                  t        j                  dddg             y )N      $@        r   
lowerlimitF)r   rO         ?r6   r3          @r   rS   )r   r         @      @       @r:      r5   r5   r5   )r   rT   r9   r[   )r   r2   rf   tminrd   rh   rj   rk   rl   rm   nprn   ro   rq   ress       rx   	test_tminzTestTrimmedStats.test_tmin   sk   IIcN

1rzz"~6

13RZZ^D

1eDbjjQSnUJJq&!

1eD

B8,	.

11-rzz:N/OP

140"**R.AFF299S>1%))"&&1

1rzz"&&'9: JJryy}f-jjqq1RZZAr(:;<rz   Tz4Only NumPy arrays support scalar input/`nan_policy`.np_onlyreasonc                 :   t        t        j                  d      d       t        j                  d      }t        j
                  |d<   t               5 }|j                  t        d       t        t        j                  |d      d       d}t        t        |	      5  t        j                  |d
       d d d        d}t        t        |	      5  t        j                  |d       d d d        d d d        y # 1 sw Y   ExY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr5   r   r:   invalid value*omit
nan_policyr   The input contains nan valuesmatchraisenan_policy must be one of...foobar)r   rf   r   r   r   rm   r   recordRuntimeWarningassert_raises
ValueErrorrn   ro   rq   supmsgs        rx   test_tmin_scalar_and_nanpolicyz/TestTrimmedStats.test_tmin_scalar_and_nanpolicy        	UZZ]A&IIcNvv!  	3CJJ~'78A&92>1Cz5 2

1120Cz5 3

123	3 	32 23 3	3 	3=   ADC95DD(D9D	>DD	
DDc           
         |j                  d      }t        t        j                  |      |j	                  d             t        t        j                  |d      |j	                  d             t        t        j                  |dd      |j	                  d             |j                  |d      }t        t        j                  |dd      |j	                  dd	g             t        t        j                  |d
      |j	                  g d             t        t        j                  |d       |j	                  d             t        j                  |j                  d      d      j                  |j                        }t        t        j                  |      |j	                  |j                               t               5 }|j                  t        d       |j                  |j                  d      d      }t        j                  |dd
      }t        ||j	                  dddt        j                  g             d d d        y # 1 sw Y   y xY w)Nr         "@r:   
upperlimitF)r   rO   r   r         @r   rS   )r         @rL   r   r   zAll-NaN slice encounteredr   r   rZ   )r   rT   r4   r8   )r   r2   rf   tmaxrd   rh   rj   rk   rl   rm   r   filterr   r   )rn   ro   rq   r   r   s        rx   	test_tmaxzTestTrimmedStats.test_tmax   s   IIcN

1rzz"~6

13RZZ^D

1eDbjjQSnUJJq&!

1eD

B8,	.

11-rzz:N/OP

140"**R.AFF299S>1%))"&&1

1rzz"&&'9:   	ACJJ~'BC

299R=&1A**Q2A6CCQ2rvv,>!?@		A 	A 	As   A=IIc                 :   t        t        j                  d      d       t        j                  d      }t        j
                  |d<   t               5 }|j                  t        d       t        t        j                  |d      d       d}t        t        |	      5  t        j                  |d
       d d d        d}t        t        |	      5  t        j                  |d       d d d        d d d        y # 1 sw Y   ExY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr5   r   r7   r   r   r   r   r   r   r   r   r   )r   rf   r   r   r   rm   r   r   r   r   r   r   s        rx   test_tmax_scalar_and_nanpolicyz/TestTrimmedStats.test_tmax_scalar_and_nanpolicy   r   r   c                 n   |j                  |j                  d|j                        d      j                  }t	        |      rt        |      n|j                  }t        t        j                  |      |j                  ddg|             t        t        j                  |      |j                  ddg|             t        t        j                  |d	      |j                  |j                  d
g             t        t        j                  |d      |j                  d|j                  g             y )NrY   rH   r3   r6   r   r6   r5   r:   r7   r   r   r4   r   r   )rh   r   int16Tr*   r-   rI   r2   rf   r   rd   r   rm   )rn   ro   rq   expect_dtypes       rx   test_tmin_tmax_int_dtypez)TestTrimmedStats.test_tmin_tmax_int_dtype   s    JJryy288y4f=??
 0=Q/?'+QWW

1rzz1a&z'MN

1rzz1a&z'MN 	

13RZZ5MN

13RZZRVV5MNrz   z%Only with data-dependent output dtype
eager_onlyr   c                     |j                  dd      }t        t        j                  |d d d f         |       t        t        j                  |d d d f         |       y )Nl            l   
        )r   r2   rf   r   r   rn   ro   rq   s      rx   test_gh_22626zTestTrimmedStats.test_gh_22626
  sJ     IIeX&

1T1W:.2

1T1W:.2rz   c                 h   |j                  t        j                               }t        j                  |dd      }|j                  g d      }t        ||j                  |d      t        |      dz  z         t        t        j                  |dd	g
      t        j                  |d 
             y )N)r4   r9   rc   rM   )r   rL   r   r   r   r   r|   r<   r_   rY   rP   )rd   re   r   rf   tsemr1   r   r.   )rn   ro   rq   rr   y_refs        rx   	test_tsemzTestTrimmedStats.test_tsem  s    JJqxxz"JJq=A

/0266%A669LLM

1b"X6

1T8RSrz   N)__name__
__module____qualname__r   finfofloat64	precisiondprecr0   rf   rg   ry   r   pytestmarkfilterwarningsr   r   r   r   r   skip_xp_backendsr   r   r   r   r   r   r   r    rz   rx   rF   rF   N   s   BHHRZZ **Eu{{#,/ $,/\ uzz"[[H2 #28 uzz"4 #4 uzz"= #=* dSU3U3 uzz"A #A. dSU3U3 uzz5::.O /O .UVuzz5::.3 / W3 uzz"T #Trz   rF   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   r   )rf   pearsonrre   r
   rn   rr   rs      rx   test_pXXzTestPearsonrWilkinson.test_pXX%  s%    NN1QaDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   re   BIGr
   r   s      rx   
test_pXBIGz TestPearsonrWilkinson.test_pXBIG*  s%    NN1S!aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   re   LITTLEr
   r   s      rx   test_pXLITTLEz#TestPearsonrWilkinson.test_pXLITTLE/  s%    NN1V$aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   re   HUGEr
   r   s      rx   test_pXHUGEz!TestPearsonrWilkinson.test_pXHUGE4  %    NN1T"aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   re   TINYr
   r   s      rx   test_pXTINYz!TestPearsonrWilkinson.test_pXTINY9  r   rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   re   ROUNDr
   r   s      rx   test_pXROUNDz"TestPearsonrWilkinson.test_pXROUND>  s%    NN1U#aDAc"rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r   r   r
   r   s      rx   test_pBIGBIGz"TestPearsonrWilkinson.test_pBIGBIGC  s%    NN3s#aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pBIGLITTLEz%TestPearsonrWilkinson.test_pBIGLITTLEH  s%    NN3v&aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pBIGHUGEz#TestPearsonrWilkinson.test_pBIGHUGEM  %    NN3t$aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pBIGTINYz#TestPearsonrWilkinson.test_pBIGTINYR  r   rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pBIGROUNDz$TestPearsonrWilkinson.test_pBIGROUNDW  s%    NN3u%aDAc"rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r   r   r
   r   s      rx   test_pLITTLELITTLEz(TestPearsonrWilkinson.test_pLITTLELITTLE\  s%    NN6&)aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pLITTLEHUGEz&TestPearsonrWilkinson.test_pLITTLEHUGEa  %    NN6$'aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pLITTLETINYz&TestPearsonrWilkinson.test_pLITTLETINYf  r  rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pLITTLEROUNDz'TestPearsonrWilkinson.test_pLITTLEROUNDk  s%    NN6%(aDAc"rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r   r   r
   r   s      rx   test_pHUGEHUGEz$TestPearsonrWilkinson.test_pHUGEHUGEp  %    NN4%aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pHUGETINYz$TestPearsonrWilkinson.test_pHUGETINYu  r
  rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pHUGEROUNDz%TestPearsonrWilkinson.test_pHUGEROUNDz  %    NN4&aDAc"rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r   r   r
   r   s      rx   test_pTINYTINYz$TestPearsonrWilkinson.test_pTINYTINY  r
  rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r   r   r   r
   r   s      rx   test_pTINYROUNDz%TestPearsonrWilkinson.test_pTINYROUND  r  rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r   r   r
   r   s      rx   test_pROUNDROUNDz&TestPearsonrWilkinson.test_pROUNDROUND  s%    NN5'aDAc"rz   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   rz   rx   r   r     sp    #
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#rz   r   c                      e Zd Zd Zd Zd Zd Zd Zej                  j                  dddg      d	        Zd
 Zd Zd Zd Zd Zej                  j#                  d      d        Z ed      ej                  j                  dg d      d               Zd Zd Zd Zej                  j1                  d      ej                  j3                  d      ej                  j                  dd      ej                  j                  dd      d                             Zej                  j6                  ej                  j                  dd      d                Zej                  j                  d!d"d#g      d$        Zd% Zd& Zej                  j#                  d      d'        Z d( Z!ej                  j                  d!g d)      ej                  j                  dg d      d*               Z"y+),TestPearsonrc                     t        j                  t        t              }d}t        ||       t	        |j
                  |j                         y Ncorrelationpvalue)rf   r   re   r   r   r  	statisticrn   r   
attributess      rx   test_pearsonr_result_attributesz,TestPearsonr.test_pearsonr_result_attributes  s3    nnQ".
C,S__cmm4rz   c           
         |j                  d      }t        j                  ||      \  }}t        ||j	                  d      d       t        ||j	                  d      t        j                  dt        j                  d      z               y )Nr   r   V瞯<atolr   r3   r   rf   r   r1   rd   r   sqrtspacingrn   ro   ar   probs        rx   test_r_almost_exactly_pos1z'TestPearsonr.test_r_almost_exactly_pos1  sc    IIcN..A&42::c?7 	bjjoBGGAbjjo<M4NOrz   c           
          |j                  d      }t        j                  ||       \  }}t        ||j	                  d      d       t        ||j	                  d      t        j                  dt        j                  d      z               y )Nr         r#  r$  r   r3   r   r&  r)  s        rx   test_r_almost_exactly_neg1z'TestPearsonr.test_r_almost_exactly_neg1  sf    IIcN..QB'42::d+%8 	bjjoBGGAbjjo<M4NOrz   c                     |j                  g d      }|j                  g d      }t        j                  ||      \  }}t        ||j                  d             t        ||j                  d             y )Nr_   r   r   )r   r   r4   LXz?UUUUUU?)rd   rf   r   r1   )rn   ro   r*  br   r+  s         rx   
test_basiczTestPearsonr.test_basic  sY     JJz"JJy!..A&42::h/0bjjo.rz   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?r9  r9  rh|?v/?gsh|??r   warnsrf   ConstantInputWarningrd   r   r1   rm   rn   ro   r   rq   rr   r   ps          rx   test_constant_inputz TestPearsonr.test_constant_input  s     +\\%44C@ 	3

01A

01A>>!Q'DAqArzz"&&12Arzz"&&12	3 	3 	3   B
B;;CrI   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)Nr3   rH   r4   r7   z/An input array is nearly constant; the computedr   )	getattrr   rd   r(  r   r>  rf   NearConstantInputWarningr   )rn   ro   rI   npdtyperq   rr   r   s          rx   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 	! 	! 	!s   #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?rH   )goȟg`
,gzg2l?g>??'ge;E?g3R?rd   r   rf   r   r1   rn   ro   rq   rr   r   rA  s         rx   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Lrz   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   rH   r8   r2  g͗~-?)rd   r   r   rf   r   r1   rK  s         rx   test_very_large_input_valuesz)TestPearsonr.test_very_large_input_values  s     1DD1BJJ//~~a#1 	2::&8

:KL2::&:"**:MNrz   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irH   )gDig<'(½igmQiZbtig*D{?gݣ?rJ  rK  s         rx   !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Krz   c                 0   |j                  ddg      }|j                  ddg      }t        j                  ||      }|\  }}|j                  d      }t        ||       t        ||       |j	                         \  }}	t        ||        t        |	|       y )Nr   r   r   rL   rd   rf   r   r2   confidence_interval
rn   ro   rq   rr   r   r   rA  onelowhighs
             rx   test_length_two_pos1z!TestPearsonr.test_length_two_pos1  s     JJBx JJBx nnQ"1jjn33++-	TcT"c"rz   c                 2   |j                  ddg      }|j                  ddg      }t        j                  ||      }|\  }}|j                  d      }t        ||        t        ||       |j	                         \  }}	t        ||        t        |	|       y )Nr   r   r   rL   rS  rU  s
             rx   test_length_two_neg1z!TestPearsonr.test_length_two_neg1  s     JJBx JJBx nnQ"1jjnC4 3++-	TcT"c"rz   *ignore:invalid value encountered in dividec                    d}t        j                  t        j                  |      5  |j	                  ddg      }|j	                  ddg      }t        j
                  ||      \  }}t        ||j	                  |j                               t        ||j	                  |j                               d d d        y # 1 sw Y   y xY w)Nr7  r   r9  r;  r<  r=  r@  s          rx   test_length_two_constant_inputz+TestPearsonr.test_length_two_constant_input  s    
 +\\%44C@ 	3

E5>*A

E5>*A>>!Q'DAqArzz"&&12Arzz"&&12	3 	3 	3rC  Tr   z$alternative, pval, rlow, rhigh, sign))	two-sided?gmgƎ?r   )lessK˅?r_   g?
?r   )greater.?gդζr   r   )r`  ra  gfǎgl?r_   )rb  re  r.  gդζ?r_   )rd  rc  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   r3   r4   r5   )r   r   r<   r   alternativeg?r;   rtolư>)r   r   rf   r   r   r  r  rT  )rn   ri  pvalrlowrhighsignro   rq   rr   resultcis              rx   test_basic_examplezTestPearsonr.test_basic_example$  st     HH^$t+1+>((*<T*ANt$7'')T5M5rz   c                 $   |j                  d      }| }t        j                  ||d      }t        j                  ||d      }t        |j                  |j                  d             t        |j                  |j                  d      d       y )	Nr   rd  rh  rb  r   r   g#B;r$  )r   rf   r   r1   r  rd   )rn   ro   rq   rr   test_greater	test_lesss         rx   (test_negative_correlation_pvalue_gh17795z5TestPearsonr.test_negative_correlation_pvalue_gh177955  sl    IIcNB~~a	BNN1aV<	++RZZ^<	(("**R.uErz   c                 <   |j                  g d      }|j                  g d      }t        j                  ||      }|\  }}|j                  d      }t        ||        t        |d|z  d       |j	                         \  }}	t        ||        t        |	|       y )Nr   r   r   )rL   g      g      *r   r   Hz>r$  )rd   rf   r   r1   rT  r2   rU  s
             rx   #test_length3_r_exactly_negative_onez0TestPearsonr.test_length3_r_exactly_negative_one=  s    JJ|$JJ'nnQ" 1jjoC4 1S5t,++-	TcT"c"rz   c                    g d}dg}d}t        j                  t        |      5  t        j                  ||       d d d        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   gx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   y xY w)Nr   r3   r4   r5   z3`x` and `y` must have the same length along `axis`.r   r6   "`x` and `y` must be broadcastable.r   r3   (`x` and `y` must have length at least 2.)             y              y             z+This function does not support complex dataz"`method` must be an instance of...r4   
asymptoticmethodexact)r   r   r   rf   r   rT  )rn   rq   rr   messager   s        rx   test_input_validationz"TestPearsonr.test_input_validationK  s   CG]]:W5 	!NN1a 	! F6]]:W5 	!NN1a 	! CC<]]:W5 	!NN1a 	! ?]]:W5 	!NN1a 	! 7]]:W5 	@NNAq6Aq6,?	@ nnaVaV,]]:W5 	4##7#3	4 	45	! 	!	! 	!	! 	!	! 	!	@ 	@	4 	4sG   F!)F.+F;/G+GG!F+.F8;GGGG(rY   z-Monte Carlo method needs > a few kB of memoryri  rb  rd  r`  method_namepermutationmonte_carlomonte_carlo2c                 "   t         j                  j                  d      }|dk(  rdnd}|j                  |      }|j                  |      }t	        j
                  |      t	        j                  |j                  fdz        t	        j                  d	      d
}||   }t	        j                  ||||d      }	t	        j                  |||d      }
t        |	j                  |
j                  d       t        |	j                  |
j                  dd       |dk(  rqt	        j                  d	      }t	        j                  ||||d      }t        |j                  |	j                         t        |j                  |	j                         y y )Nl   o#[mr  r3   d   )r3     sizerngr3   rvsi  r  r_   )ri  r  rT   ri  rT   r#  rj  {Gz?MbP?rk  r%  r  )r   randomdefault_rngnormalrf   PermutationMethodMonteCarloMethodr   r   r  r  r   )rn   r  ri  r  r  rq   rr   methodsr  r   refres2s               rx   test_resampling_pvaluez#TestPearsonr.test_resampling_pvaluem  s<    ii##$56&-7xYJJDJ!JJDJ!"'"9"9c"B"'"8"8cjj]1_"M#(#9#9d#CE %nnQ{6PRSnnQ{Ds}}5A

CJJTE.(++5F>>!QKUWXD7cjj1	 )rz   c                 ,   t         j                  j                  d      }|j                  d      }|j                  d      }t	        j
                  |||d      }t         j                  j                  d      }t	        j                  |      }|j                  |      }|j                         }t        ||d	
       t         j                  j                  d      }t	        j                  |      }|j                  |      }	t        |	|       y )Nl   _Y F r  r  r_   r  l   |#(AkPrandom_stater  gQ?r$  r  )	r   r  r  r  rf   r   BootstrapMethodrT  r   )
rn   ri  r  rq   rr   r   r  res_ciref_cires_ci2s
             rx   test_bootstrap_cizTestPearsonr.test_bootstrap_ci  s     ii##$45JJHJ%JJHJ%nnQ{D ii##$67&&C8(((7((*V4 ii##$67&&3/)))8(rz   rT   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# r:   rY   r3   r  rS   r   )r   r  r  r  rf   r   rT  r   rangeshaper   r  r  rW  rX  )rn   rT   r  r  rq   rr   r   rr  ires_ici_is              rx   test_axis01zTestPearsonr.test_axis01  s   ii##K0zzte|z,1nnQ-$$&1933qAqwwqz" 	3ANN1Q41.E,,.DCMM!,eoo>CJJqM5<<8BFF1Itxx0BGGAJ		2	3rz   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  r  rS   )r   r  r  r  rf   r   rT  ravelr   r  r  )	rn   r  r  rq   rr   r   rr  r  ci_refs	            rx   test_axis_NonezTestPearsonr.test_axis_None  s    ii##K0zzte|z,1nnQ-$$&nnQWWY	2((*s}}5

CJJ/F#rz   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)Nr   z`axis` must be an integer.r   r=   rS   z2`x` and `y` must have the same length along `axis`r3   r   r   r  r~  r4   r6   z:`method` must be `None` if arguments are not NumPy arrays.rY   r  )	onesr   r   r   rf   r   r+   r   r  )rn   ro   rq   rr   r  s        rx   test_nd_input_validationz%TestPearsonr.test_nd_input_validation  s   A.]]:W5 	+NN1ac*	+ G]]:W5 	7NN1bggfoA6	7 =]]:W5 	ENN2776?BGGFO!D	E 7]]:W5 	7NN1bggfoA6	7 O|		"Az9 Gq!E,C,C,EFG G !	+ 	+	7 	7	E 	E	7 	7G Gs;   F6/(G<7G(G+G(6G GGG%(G1c                    t         j                  j                  d      }|j                  d      |j                  d      }}d}t        j                  t
        j                  |      5  d\  |d<   |d<   |j                  |      |j                  |      }}t        j                  ||d	      }|j                         }	|j                  |j                  |j                  g|j                  
      }
t        |j                  dd |
       t        |j                  dd |
       t        |	j                  dd |
       t        |	j                   dd |
       |j#                  |j%                  |j                  dd              sJ |j#                  |j%                  |j                  dd              sJ |j#                  |j%                  |	j                  dd              sJ |j#                  |j%                  |	j                   dd              sJ 	 d d d        d}t        j                  t
        j&                  |      5  d\  |d<   |d<   |j                  |      |j                  |      }}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   ]xY w# 1 sw Y   xY w)Nl   U!Jr5   r6   r7  r   r   r3   )r   .)r   .r   rS   rH   r   r3   z!An input array is nearly constant)g     ?g      @r   r   r   r   r   r5   r_   )r   r_   r_   r   )r   r  r  r   r>  rf   r?  rd   r   rT  rm   r   r2   r  r  rW  rX  allisfiniterF  r  r1   )rn   ro   r  x0y0r  rq   rr   r   rr  nansr  s               rx   test_nd_special_casesz"TestPearsonr.test_nd_special_cases  s   ii##N3F#SZZ%7B.\\%44GD 	4%)"BvJ6
::b>2::b>qA..AA.C((*B::rvvrvv.bjj:ADCMM!A.5CJJqOT2BFF1QK.BGGAaL$/66"++cmmAB&7899966"++cjjn566666"++bffQRj122266"++bggabk2333	4 6\\%88H 	)!5BtHbh::b>2::b>qANN1aa(	) JJAAAB89JJAAAB89wwqznnQ+$$&rzz/'BC

D)&&=	4 	4 	) 	)s   )F)M.AM;.M8;Nc                 &   t         j                  j                  d      }|j                  d      }|j                  d      }t        j                  ||d      }t        j                  ||d      }t        |j                  |j                         y )Nl   [LY)r4   rY   rY   r   rS   r_   )r   r  r  rf   r   r   r  rn   ro   r  rq   rr   r   r  s          rx   test_different_dimensionalityz*TestPearsonr.test_different_dimensionality  sj     ii##$56JJwJJrNnnQ*nnQ+S]]CMM2rz   )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)r3   rY   rZ   r  rT   ri  )r  r  rf   r   rd   r1   r  r  rT  rW  rX  )
rn   ro   rT   ri  rq   rr   r   r  r  r  s
             rx   test_array_apizTestPearsonr.test_array_api  s     zz{z+1nnRZZ]BJJqM"&KAnnQ+Frzz#--'@A

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

BJJvzz$:;RZZ%<=rz   N)#r   r   r   r!  r,  r/  r5  rB  r   r   parametrizerH  rL  rN  rQ  rY  r[  r   r^  r   rs  rw  r{  r  	fail_slowxfail_on_32bitr  slowr  r  r  r  r  r  r  r   rz   rx   r  r    s!   5PP/	3 [[Wy)&<=
! >
!MOL## [[ LM
3 N
3& d#[[CHI6I $6F# 4D [[2[[ OP[[],LM[[]KM2M N Q 
2( [[[[],LM) N )& [[VaV,3 -3 
$G0 [[ LM#' N#'J3$ [[V\2[[],LM> N 3>rz   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d Zej                  j'                  d      ej                  j                         d               Zej                  j'                  d      ej                  j                         d               Zej                  j-                         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?r5   significantr  r3   r  r6   g,Ԛ?r8   r9   g2c?r7   rY   gY
A?      g_?r      gO^M?r   gօa?r4   r   ggE?g$I$I?)rf   fisher_exactr
   )rn   r  r   s      rx   r5  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-rz   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 )Nr  r3   r  r6   )gAn&	?g}K
T?r8   r9   )g	7?g?r   rY   )g!@j)A?r  r  )gU!a?gKY?r   r  )g7X?g~ltP?)gFu|?r  r   )r   gQN^?r5   gaa?r   r   gaa?r4   rZ   T)decimalverbose)r   infrf   r  rd   testingr   )rn   tablisttableres_rr   s        rx   test_precisezTestFisherExact.test_preciseA  se    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 $ 	9LE5$$RZZ%67CJJ**3q658R37 + 9	9rz   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 )Nr7   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rf   r  r   rn   rq   r   s      rx   test_gh4130zTestFisherExact.test_gh4130Y  s     WsCj!  #A 12 !Wq#h  #A 56 "Xe}%  #A 56rz   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      rx   test_gh9231zTestFisherExact.test_gh9231o  s8     w'7!34  #A/rz   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   r5   r  iPF  i8 r  i_ g^K=?)ziprf   r  r
   )rn   pvalsrm  numr   s        rx   test_large_numbersz"TestFisherExact.test_large_numbersv  s     1UL1 	:ID#$$uclT3K%@A!DCTq9	:   5%.5%.!AB1ECQ7rz   c                     d}t        j                  t        |      5  t        j                  t        j                  d             d d d        y # 1 sw Y   y xY w)Nz+The input `table` must have two dimensions.r   r7   )r   r   r   rf   r  r   r   rn   r  s     rx   test_raiseszTestFisherExact.test_raises  s@    ?]]:W5 	-ryy|,	- 	- 	-s   )AA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   r6   rY   r   )rf   r  r   r   rm   )rn   tablesr  	oddsratiorm  s        rx   test_row_or_col_zeroz$TestFisherExact.test_row_or_col_zero  s    q6Ar7#r7QF#q6Ar7#q6B7#%  	,E#007OIts#BFF+	,rz   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 )#Nr3   r8   r9   r  i,     rV   r7   i     i   i  r   r4   r   r5   gI[?gq}!?r   g2\&gQp6g:O_?g a?皙?ffffff??333333?UUUUUU?r3  rb  rh  rd  rz  )r%  rk  )r  appendrf   r  r   )rn   r  r  r  rm  r   s         rx   test_less_greaterz!TestFisherExact.test_less_greater  sW    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		:rz   c                 @    t        j                  ddgddgg      \  }}y )Nr   r3   r:   i")rf   r  )rn   oddsr  s      rx   test_gh3014zTestFisherExact.test_gh3014  s%     ))Aq6Ax=*ABfrz   ri  r`  rb  rd  c                     t        j                  ddgddgg      }t        j                  ||      }t	        |j
                  |j                  f|       y )Nr  r  r  r  rh  )r   r   rf   r  r   r  r  )rn   ri  r  r   s       rx   test_resultzTestFisherExact.test_result  sF    5%.5%.9:  K@cmmSZZ0#6rz   c                    t         j                  j                  d      }t        j                  ddgddgg      }d}t	        j
                  t        |      5  t        j                  |      }t        j                  ||d	       d d d        d
}t	        j
                  t        |      5  t        j                  |      }t        j                  ||       d d d        d}t	        j
                  t        |      5  t        j                  t        j                  j                        }t        j                  ||       d d d        d}t	        j
                  t        |      5  t        j                  t        j                  d             d d d        t         j                  j!                  t        j                  g dg      d       t         j                  j!                  t        j                  dgdgdgg      d       t         j                  j!                  t        j                  t        j                  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)N   9o8o r3   r8   r9   z4`alternative` must be the default \(None\) unless...r   r  rb  r  ri  z6...not recognized; if provided, `method` must be an...r  z3If the `method` argument of `fisher_exact` is an...r  z2`table` must have at least one row and one column.r   r   r}  r  r   r4   r3   r4   )r   r  r  rd   r   r   r   rf   r  r  r  r  normr  zerosr  r   )rn   r  r  r  r  s        rx   $test_input_validation_edge_cases_rxcz4TestFisherExact.test_input_validation_edge_cases_rxc  s   ii##$78

QFQF+,I]]:W5 	I,,5FuVH	I K]]:W5 	5**s3FuV4	5 H]]:W5 	5++

?FuV4	5 G]]:W5 	1rxx/0	1
 	

 2 2I; ?H


 2 2QC!qc? CVL


 2 2288F3C DfM-	I 	I
	5 	5
	5 	5
	1 	1s1   /I,.I?AI+*)I8II(+I58JrY   c                    t         j                  j                  d      }t        j                  ddgddgg      }t	        j
                  |      }|j                  }t	        j                  |j                  d      |j                  d            j                  |      }t	        j                  |      }t	        j
                  ||	      }t        |j                  |d
       t        |j                  |       t	        j                  |      }t	        j
                  ||	      }t        |j                  |j                  d
       t        |j                  |       y )Nr  r3   r8   r9   r   rS   r   r  r  g{Gzd?r$  )r   r  r  rd   rf   r  r  random_tablesumpmfr  r   r   r  r  )rn   r  r  r  
ref_pvalueref_statr  r   s           rx   test_resampling_2x2z#TestFisherExact.test_resampling_2x2  s    ii##$78

QFQF+,  'ZZ
%%eiiQi&79JKOOPUV''C0  v6

JV<S]]H-((S1  v6

CJJV<S]]H-rz   c                    g dg dg dg dg dg}t        j                  |      }d}t         j                  j                  d      }t	        j
                  |      }t	        j                  ||	      }t        |j                  |d
       t	        j                  |d      }t	        j                  ||	      }t        |j                  |d
       y )N)r   r3   r3   r   r   r   r   )r3   r   r   r3   r4   r   r   )r   r   r   r   r3   r8   r4   )r   r   r3   r   r   r   r   )r   r   r   r   r   r   r   gk$?l   |Kr  r  gMb@?r$  i )r  n_resamples)
r   rd   r  r  rf   r  r  r   r  r  )rn   r  r$  r  r  r   s         rx   test_resampling_rxcz#TestFisherExact.test_resampling_rxc  s     '&&&&	(
 

5!%
ii##M2((S1  v6

JT:''CUC  v6

JT:rz   c           	         t         j                  j                  d      }t        j                  |      }t        dd      D ]  }t        dd      D ]  }t        dd      D ]|  }t        dd      D ]k  }t        j                  ||g||gg      }t        j                  |      }t        j                  ||      }	t        |	j                  |j                  d       m ~   y )	Nr  r  r   r4   r5   r  +=r$  )
r   r  r  rf   r  r  rd   r  r   r  )
rn   r  r  r*  r4  cdr  r  r   s
             rx   test_resampling_exact_2x2z)TestFisherExact.test_resampling_exact_2x2  s     ii##$78((S1q! 	LA1a[ Lq! LA"1a[ L "

QFQF+; <#007#00vF'

CJJUK	LLL	Lrz   N)r   r   r   r  r5  r  r  r  r   r   r  r   r  r  r  r  r  r  r  r  r&  r)  xslowr.  r   rz   rx   r  r    s   .6907,0 [[8 8-, :DC
 [[],LM7 N7
N> [[2[[.  ." [[2[[;  ;: [[L Lrz   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 )Nr   r   )rf   	spearmanrr   r   isnanr  )rn   rr   s     rx   test_scalarzTestCorrSpearmanr.test_scalar(  s)    OOB#!"rz   c                     t        t        t        j                  g dddg       t        t        t        j                  g dd       y )Nr   r3   r   r9   r:   )r   r   rf   r3  rn   s    rx   test_uneven_lengthsz%TestCorrSpearmanr.test_uneven_lengths,  s*    j%//9q!fEj%//9a@rz   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鄋 r5   r4   r3   r6   r6   r   rS   )r   r  seedrandnrf   r3  r  r  r   r  r   r   rn   rq   rr   s      rx   test_uneven_2d_shapesz'TestCorrSpearmanr.test_uneven_2d_shapes0  s    
		vIIOOAq!IIOOAq!q!$..44>>>qssACCa077==GGGj%//1aa@j%//133<rz   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;  r5   r4   r3   rS   r   )
r   r  r=  r>  r   r   rf   r3  r   flattenrn   rq   s     rx   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rz   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   r:   r   r   )r   r   r   r   )r   r   rm   r	   rf   r3  r   r   rC  s     rx   test_nan_policyz!TestCorrSpearmanr.test_nan_policyE  s    IIcNvv!5??1a02662662BC5??1aFC%	'j%//1aGLj%//1aHMrz   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 )Nr6   rY   r7   r   rS   r   r   r   r+  r$  )	r   r  r=  randrm   deleterf   r3  r   )rn   rq   krr   corxpxcorypys           rx   test_nan_policy_bug_12458z+TestCorrSpearmanr.test_nan_policy_bug_12458N  s    
		qIINN1b!&&!Q$IIa#??18b??1%byy43QQ?YYryyQQ/;d/BU+rz   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 )Nr6   rY   r   r   )r4   r_   r   	propagaterT   r   )
r   r  r=  r>  rm   rf   r3  r  r  r   )	rn   mnrq   corrr  jr  r   s	            rx   test_nan_policy_bug_12411z+TestCorrSpearmanr.test_nan_policy_bug_12411[  s    
		qIIOOAq!&&$66%qq[Ifa" FK1XN!Q$1a41;;N " "c" O "s   C4%5C/C4/C4c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r3  re   r
   r   s      rx   test_sXXzTestCorrSpearmanr.test_sXXg  s%    OOAa aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  re   r   r
   r   s      rx   
test_sXBIGzTestCorrSpearmanr.test_sXBIGl  s%    OOAc"aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  re   r   r
   r   s      rx   test_sXLITTLEzTestCorrSpearmanr.test_sXLITTLEq  s%    OOAf%aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  re   r   r
   r   s      rx   test_sXHUGEzTestCorrSpearmanr.test_sXHUGEv  %    OOAd#aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  re   r   r
   r   s      rx   test_sXTINYzTestCorrSpearmanr.test_sXTINY{  ra  rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  re   r   r
   r   s      rx   test_sXROUNDzTestCorrSpearmanr.test_sXROUND  s%    OOAe$aDAc"rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r3  r   r
   r   s      rx   test_sBIGBIGzTestCorrSpearmanr.test_sBIGBIG  s%    OOC$aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sBIGLITTLEz!TestCorrSpearmanr.test_sBIGLITTLE  s%    OOC'aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sBIGHUGEzTestCorrSpearmanr.test_sBIGHUGE  %    OOC%aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sBIGTINYzTestCorrSpearmanr.test_sBIGTINY  rl  rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sBIGROUNDz TestCorrSpearmanr.test_sBIGROUND  s%    OOC&aDAc"rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r3  r   r
   r   s      rx   test_sLITTLELITTLEz$TestCorrSpearmanr.test_sLITTLELITTLE  s%    OOF6*aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sLITTLEHUGEz"TestCorrSpearmanr.test_sLITTLEHUGE  %    OOF4(aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sLITTLETINYz"TestCorrSpearmanr.test_sLITTLETINY  ru  rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sLITTLEROUNDz#TestCorrSpearmanr.test_sLITTLEROUND  s%    OOF5)aDAc"rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r3  r   r
   r   s      rx   test_sHUGEHUGEz TestCorrSpearmanr.test_sHUGEHUGE  %    OOD&aDAc"rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sHUGETINYz TestCorrSpearmanr.test_sHUGETINY  r|  rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sHUGEROUNDz!TestCorrSpearmanr.test_sHUGEROUND  %    OOD'aDAc"rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r3  r   r
   r   s      rx   test_sTINYTINYz TestCorrSpearmanr.test_sTINYTINY  r|  rz   c                 b    t        j                  t        t              }|d   }t	        |d       y r   )rf   r3  r   r   r
   r   s      rx   test_sTINYROUNDz!TestCorrSpearmanr.test_sTINYROUND  r  rz   c                 b    t        j                  t        t              }|d   }t        |d       y r   )rf   r3  r   r
   r   s      rx   test_sROUNDROUNDz"TestCorrSpearmanr.test_sROUNDROUND  s%    OOE%(aDAc"rz   c                     t        j                  t        t              }d}t        ||       t	        |j
                  |j                         y r  )rf   r3  re   r   r   r  r  r  s      rx    test_spearmanr_result_attributesz2TestCorrSpearmanr.test_spearmanr_result_attributes  s3    ooa#.
C,S__cmm4rz   c                     g d}g d}t        j                  ||      }t        j                  t        j                  ||g      j                        }t        ||       y )Nr   r3   r4   r5   r6   r7   )r   r3   r4   r5   r7   r6   )rf   r3  r   rd   r   r   rn   x1x2res1r  s        rx   test_1d_vs_2dzTestCorrSpearmanr.test_1d_vs_2d  sG    r2&rzz2r(3556d#rz   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)rR  r   r   r4   r5   r6   r7   r3   r   )r   rm   rf   r3  rd   r   r   )rn   r   r  r  r  r  s         rx   test_1d_vs_2d_nansz$TestCorrSpearmanr.test_1d_vs_2d_nans  s|    / 	(JRVVQ1a(BQ1a(B??2rjAD??2::r2h#7#9#9jQDD$'	(rz   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 )Nr7   )r   r   r3   r4   r6   r5   )r   r_   3+?)r_   r   3+)r  r  r   )r4   r4   rH   g+Hs]s?r3   r   )r   r   r   rd   r   rf   r3  r  floatr   r  r  )rn   r  r  x3rq   actualexpected_correxpected_pvalues           rx   
test_3colszTestCorrSpearmanr.test_3cols  s    YYq\SXX()JJB|$&&#"5"6">"@ A ((67"/1Q3"/!Q((-87rz   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   rL   ffffff@r   ffffff"@ffffff@g333333@皙@)r<   r   ffffff@ffffff@r   r  ffffff@r   rR  r   r   r   r   r3   )gacJC?g%ln?g_0nYt!޿rl  rj  )r   r   rm   r   r   rf   r3  r  )rn   rq   rV  r   s       rx   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rz   c                    d}t         j                  j                  d      }|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 )Nr  iH r  r<   r   r   )gonj?)Wn%?r  )r   r  RandomStaterH  r   rf   r3  r  rm   astypeint32r   )rn   rU  r  rq   rT  r*  r4  r  r  res3expecteds              rx   test_gh_8111zTestCorrSpearmanr.test_gh_8111  s    ii##F+HHQKHHQK# VHHQKq!7AA vv!q!7AA HHRXXq!7AA:tT*H5rz   N)&r   r   r   r  r5  r9  r@  rD  rF  rO  rX  rZ  r\  r^  r`  rc  re  rg  ri  rk  rn  rp  rr  rt  rw  ry  r{  r~  r  r  r  r  r  r  r  r  r  r  r   rz   rx   r1  r1    s    #A	=KN,
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
5$(8 G6rz   r1  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   r3   r4   r5   r6   r6   r7   r8   r9   r8   gh
C?gR?r   r   )rf   r3  r
   rn   r  r  r  r   s        rx   test_spearmanr_vs_rz&TestCorrSpearmanr2.test_spearmanr_vs_r   sG     >oob"%CFHQK0CFHQK0rz   c                     t        t        j                  g g       t        j                  t        j                  f       y N)r   rf   r3  r   rm   r8  s    rx   test_empty_arraysz$TestCorrSpearmanr2.test_empty_arrays*  s$    U__R,rvvrvv.>?rz   c                    t         j                  j                  d      }t        j                  |j	                  ddd      |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   )r   r  r  r   r  dotlinalgcholeskyrf   r3  r
   )rn   r  rq   rV  r  r   s         rx   test_normal_drawsz$TestCorrSpearmanr2.test_normal_draws-  s    ii##D)HHcjjQacj:jjQacj:< =c
c
FF299%%d+Q/?ooadAaD)CFHQK0CFHQK0rz   c                 R    t        t        j                  g dg d      d   d       y )Nr   r   r3   r   r   )r
   rf   r3  r8  s    rx   test_corr_1zTestCorrSpearmanr2.test_corr_19  s    EOOIyA!DcJrz   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   r:   r   r   )r   r   r   r   )	r   r   rm   r	   rf   r3  r   r   r   rC  s     rx   test_nan_policiesz$TestCorrSpearmanr2.test_nan_policies<  s    IIcNvv!5??1a02662662BC1@ 	"j%//1aGLj%//1aHMrz   c                     t        j                  d      }t        j                  d      }t        t        t        j
                  ||       y )Nr         4@)r   r   r   r   rf   r3  r?  s      rx   test_unequal_lengthsz'TestCorrSpearmanr2.test_unequal_lengthsE  s.    IIcNIIcNj%//1a8rz   c                     g d}dddt         j                  g}t        j                  ||d      }t        j                  |d d |d d d      }t	        ||       y )Nrg  r9   r8   r7   r   r   r4   )r   rm   rf   r3  r   r  s        rx   test_omit_paired_valuez)TestCorrSpearmanr2.test_omit_paired_valueJ  sS    Arvvr2&9r"1vr"1v&AT4 rz   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  r:   r   i  rY   i  i  r   r   r   gV-?)listr  r  r   rm   r   rf   r3  r?  s      rx   #test_gh_issue_6061_windows_overflowz6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflowQ  s    ttqT1Q4
!ad#""qvD'1S6#$ 	
	EOOAqVDQGOrz   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)Nr7  r   r3   r3   r3   r3   r   r3   )r   r>  rf   r?  r3  r   r   rm   )rn   warn_msgr   rA  s       rx   	test_tie0zTestCorrSpearmanr2.test_tie0^  s    /\\%44HE 		$??9i8DAqBFF#BFF#??9i8DAqBFF#BFF#??9i8DAqBFF#BFF#		$ 		$ 		$s   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   )rf   r3  r   r   )rn   rq   rr   xryrsrprs          rx   	test_tie1zTestCorrSpearmanr2.test_tie1l  sB      !! __Q"^^B#B#rz   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   r3   r>   r3   )r   r4   r>   r5   r   r3   r>   r4   r5   r   r   )r   rm   rf   r3  r   )rn   r  rs   r  rt   sr1sr2s          rx   	test_tie2zTestCorrSpearmanr2.test_tie2y  sd     CBFF#CBFF# oob"%oob"8C%rz   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   rg  r7  r   r   rS   	r   r   r   r>  rf   r?  r3  r   rm   )rn   z1z2z3r  r   rA  s          rx   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#		$ 		$ 		$s   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?r7  r   r  )rn   rq   rr   r  r   rA  s         rx   test_gh_11111z TestCorrSpearmanr2.test_gh_11111  s    HHGHHH - . 0\\%44HE 	$??1a(DAqBFF#BFF#	$ 	$ 	$s   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  r3   rS   )r   r   r   r   rf   r3  r?  s      rx   test_index_errorz#TestCorrSpearmanr2.test_index_error  s:    HHGHHH - . 	j%//1aa@rz   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)Nr  r  r  rb  rh  r   r   r3   rd  `alternative` must be 'less'...r   	ekki-ekki)rf   r3  r
   r   r   r   r  s        rx   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<	= 	= 	=s   'C		Cri  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)Nr  r  r   r   ri  rh  r   r   r   r   r  )	r   rm   r	   rf   r3  r   r   r   r   )	rn   ri  r  r  x1nanx2nan
res_actualres_expectedr  s	            rx   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 	5OOE5W(35	5
 1]]:W5 	5OOE5[(35	5 	5	5 	5	5 	5s   	D+D7+D47E 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   rz   rx   r  r    s|    71@
1KN9
!P$$&$ 	$A=. [[],LM5 N5rz   r  c                  p   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        j                  t        d+,      5  t        t        j                  g g       t        j                  t        j                  f       d d d        t        j                   j#                  d-      }
t        j
                  |
j%                  ddd./      |
j%                  ddd./      g      }d0d1gd1d0gg}t        j&                  t        j(                  j+                  |      |      }d2}t        j                  |d   |d         }t        |d   |d          t        |d   |d          t        t        j                  g d3g d3d      d   d0       t        t        j                  g d3g d3d       d   d4       t        j                  d5      }t        j                  |d6<   t-        t        j                  ||      t        j                  t        j                  f       t/        t        j                  ||d78      d9d:;       t/        t        j                  ||d7d<=      d>d:;       t        t        t         j                  ||d?8       t        t        t         j                  ||d@8       t        j                  d5      }t        j                  dA      }t        t        t         j                  ||       t        j                  t        d+,      5  t        j                  dgdg      \  }}d d d        t        t        j                         t        t        j                         t        j                  dBt0        C      }t        j2                  j5                  |dD      }t        j                  dBt0        C      }t        j6                  |dEd  |d dE f      }t9        t        j:                  t         j<                  j                  ||      d                y # 1 sw Y   xY w# 1 sw Y   xY w)FN)r4  r,  )r6   r3   r   r4   r7   r5   r8   r9   )r6   r3   r7   r4   r   r9   r8   r5   r  )variantr   r   )	r   r6   r3   r   r4   r7   r5   r8   r9   )	r6   r3   r   r7   r4   r   r9   r8   r5   )r6   r3   r   r4   r7   r5   r8   )r6   r3   r7   r4   r   r8   r5   )gJ$I¿gmK?)r3   r   r4   r7   r5   r8   r9   )r3   r7   r4   r   r9   r8   r5   )gJkaa?r   rY   )r   紞xO~>r3   )g?>?aV>r6   r7   )g}'}'?o&5>r_   )r.  r  )g?>r  )g}'}'r  )
r   r3   r3   r5   r5   r7   r7   r9   r:   r:   )
r   r3   r5   r5   r5   r5   r9   r9   r9   rY   gok|?r4  gffffff?r,  r  r  bananarmsr[   r3   r   r[   r3   r   r5   r8   r   r   )g}+޿g`=i?r  r  r  One or more sample...r   r  r  r  r   r  )g\zf?g^n)=r  g#q?r   r:   r   r   )r   g/>rl  rj  r  )r   r  )r   g&?r   r   r  r  rH   i  r  )rf   
kendalltaur
   r   r   r   r   r   r   r   r  r  rm   r   r>  r   r  r  r  r  r  r  r	   r   r  mamasked_greaterconcatenater   r  mstats)variantsrq   rr   r  tauxr   r4  r  r  r   r  rV  taup_values                 rx   test_kendalltaur    s    H 	!A A H 1q!T2CFHQK0CFHQK01 	$A#A H 1q!T2CFHQK0CFHQK01 	AA /H 1q!T2CFHQK0CFHQK01 	AA %H 1q!T2CFHQK0CFHQK01 			"A
		"A )H 1q!T2CFHQK0CFHQK01 	
!AQ4AaDAaD 8H 1q!T2CFHQK0CFHQK01 	
!AQ4AaDAaD 8H 1q!T2CFHQK0CFHQK01 			"A
		"ddA *H 1q!T2CFHQK0CFHQK01 	
!AQ4AaDAaD 9H 1q!T2CFHQK0CFHQK01 	
!AQ4AaDAaD 9H 1q!T2CFHQK0CFHQK01 	,-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 5r2t4C,S__cmm45  'U%%iDIffbff%	'U%%iDIffbff%	'U%%iDIffbff%	'' 
(0G	H AU%%b"-/?@A ))


%C
#**!#*6**!#*68 	9A#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 
(0G	H 2''aS1W2! 			$e$A
Q%A
		$e$A
$%!ET(+,ABKK//!4Q789aA AL2 2s   ?ff,f),f5c                     t         j                  j                  d      } t        dd      D ]  }g }t        |      D ]  }||g|z  z  } t	        |      }| j                  |       | j                  |       t        j                  ||      }t        j                  ||      }t        |d   |d          t        |d   |d           y )N*   r4   rY   r   r   )
r   r  r  r  r  shufflemstats_basicr  rf   r
   )r  sr*  r  r4  r  r  s          rx   test_kendalltau_vs_mstats_basicr    s    
))


#C1b\ 4q 	A!QJA	GAA**1a0!!!Q'F1Ix{3F1Ix{34rz   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$  )r   rm   rf   r  r   r  )rq   rr   r1r2s       rx   test_kendalltau_nan_2nd_argr    s_    A	c3A			!Q6	2B			!AB%12	'BBLL",,U;rz   c                     dd l } | j                  d       g d}d}| j                  ||      }| j                  ||      }t        j                  ||      }t        |j                  d       t        |j                  dd	       y )
Nr   i_ r   r3   r4   r5   r6   r7   r8   i@ rJ  g*8_2\S?gd`TR?gMb`?r$  )r  r=  choicesrf   r  r   r  r  )r  classes	n_samplesrq   rr   r   s         rx    test_kendalltau_gh18139_overflowr    st    
 
KK#GIw),Aw),A


1a
 CCMM#89 CJJT2rz   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)Nr  r  r`  rh  r   rb  r   r3   rd  r  r   r  )rf   r  r   r   reverser   r   r   r  s        rx   &test_kendalltau_alternative_asymptoticz@TestKendallTauAlternative.test_kendalltau_alternative_asymptotic  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=	> 	> 	>s   :FF%)rb  r`  rd  )r   r   r<   )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_   r  r  )r   rd   rf   r  r   )	rn   rq   rr   ri  revstat_expected
p_expectedr   r  s	            rx   
exact_testz$TestKendallTauAlternative.exact_test.  sH    AARMq!GM$j0\*rz   Fr4   Tzalternative, p_expected, revc           	          dgdg}}t         j                  }t        j                  t        d      5  | j                  ||||||       d d d        y # 1 sw Y   y xY w)Nr   r3   r  r   )r   rm   r   r>  r   r,  rn   ri  r+  r)  rq   rr   r*  s          rx   test_against_R_n1z+TestKendallTauAlternative.test_against_R_n19  sW    sQC1\\,4KL 	OOOAq+sM:N	O 	O 	Os   AAc                 D    ddgddg}}d}| j                  ||||||       y )Nr   r3   r4   r5   g?r,  r.  s          rx   test_against_R_n2z+TestKendallTauAlternative.test_against_R_n2C  s.    1v1v1*1k3zJrz   c                 D    g dg d}}d}| j                  ||||||       y )Nr}  r   r1  r.  s          rx   test_against_R_c0z+TestKendallTauAlternative.test_against_R_c0L  s&    )11k3zJrz   c                 D    g dg d}}d}| j                  ||||||       y )Nrg  )r   r3   r5   r4   gVUUUUU?r1  r.  s          rx   test_against_R_c1z+TestKendallTauAlternative.test_against_R_c1U  s&    \1*1k3zJrz   c                 D    g dg d}}d}| j                  ||||||       y )Nr  )r   r6   r5   r3   r4   r   r1  r.  s          rx   test_against_R_no_correlationz7TestKendallTauAlternative.test_against_R_no_correlation_  s&    11k3zJrz   c                 D    g dg d}}d}| j                  ||||||       y )Nr   r3   r4   r5   r6   r7   r8   r9   )r9   r7   r   r4   r3   r6   r5   r8   r   r1  r.  s          rx   test_against_R_no_correlationbz8TestKendallTauAlternative.test_against_R_no_correlationbi  s'    ')A11k3zJrz   c                 D    g d}g d}d}| j                  ||||||       y )N)	g333333F@g33333F@g33333D@gfffffJ@gYF@gF@gYI@gF@gN@)	g@@r>   rL   @r   g@ffffff@r  gqq?r1  r.  s          rx   test_against_R_lt_171z/TestKendallTauAlternative.test_against_R_lt_171r  s*     C9*1k3zJrz   c                     t         j                  j                  d      }|j                  d      }|j                  d      }d}| j	                  ||||||       y )Nr   r  gUm*,r   r  r  rH  r,  rn   ri  r+  r)  r  rq   rr   r*  s           rx   test_against_R_lt_171bz0TestKendallTauAlternative.test_against_R_lt_171b  sK    ii##A&HHSMHHSM,1k3zJrz   c                     t         j                  j                  d      }|j                  d      }|j                  d      }d}| j	                  ||||||       y )Nr      gH4?rB  rC  s           rx   test_against_R_lt_171cz0TestKendallTauAlternative.test_against_R_lt_171c  sK    ii##A&HHSMHHSM*1k3zJrz   zalternative, revc                 6   t         j                  j                  d      }|j                  d      }|j                  d      }t	        j
                  ||d|      }t	        j
                  ||d|      }t        |d   |d          t        |d   |d   d       y )	Nr   i  r  r  r  r   r  rj  )r   r  r  rH  rf   r  r   r   )rn   ri  r)  r  rq   rr   res0r  s           rx   test_gt_171z%TestKendallTauAlternative.test_gt_171  s    ii##A&HHSMHHSM1W,791\,79T!Wd1g&Qat4rz   r  )r  r  ri  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)Nr  r6   r7   r8   r9   r:   r  r   )r   r  ri  r   r   r   r   r  )r   rm   rf   r  r   r   r   r   )
rn   r  ri  r  r  r  r  r  r  r  s
             rx   rF  z)TestKendallTauAlternative.test_nan_policy  s<    bffXbffX %%eU-3N
'
L1 %%eUv-3N
''Bv4?A
L1 2]]:W5 	EUEg$*E	E
 1]]:W5 	EUEk$*E	E 	E	E 	E	E 	Es   D6E6D?EN),r   r   r   r#  alternativesr   rm   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_n2r2  	case_R_c0r4  	case_R_c1r6  case_R_no_corrr8  case_no_cor_br;  case_R_lt_171r@  case_R_lt_171brD  case_R_lt_171crG  case_gt_171rJ  rF  r   rz   rx   r   r     s   '>h 4LFFBFFBFF#DD0D>D<=DJCKGK+ c,ugai89L(4.4&(CDEI [[;YGO HO 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rz   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                  t        d      5  t        j                  g g       \  }}d d d        t        t        j
                  |       t        t        j
                  |       t        j                  t        d      5  t        j                  dgdg      \  }}d d d        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g 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 } 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 # 1 sw Y   xY w# 1 sw Y   RxY w))Nr  r  gs$F)additivegROoc                      yNr   r   rq   s    rx   <lambda>z"test_weightedtau.<locals>.<lambda>      rz   )weigherr   r  )rankgڿgn)rj  rc  g @ڿg[đ(gIکnTc                      yre  r   rf  s    rx   rg  z"test_weightedtau.<locals>.<lambda>  rh  rz   )rj  ri  c                      yre  r   rf  s    rx   rg  z"test_weightedtau.<locals>.<lambda>  rh  rz   rH   r  r   r   r   r   r   r3   r5   r8   r[   r3   )      (@r   r   rn  r   r   r   r   rn  r   )rn  r   r   rn  r   )r   r   r   r   r   gt34+)rf   weightedtaur
   r   r   rm   r   r  r  rd   r   r   r   r>  r   r   r   )rq   rr   r	  r
  r   r   s         rx   test_weightedtaurp    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	(0G	H 1((R0W1!	(0G	H 3((!qc2W3!*e//!QC*e//!Q!QK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1K1 13 3s   2[#[[[c                     d} t        j                  t        |       5  t        j                  dgdg       t        j                  dgdg       t        j                  t
        j                  gdg       d d d        y # 1 sw Y   y xY w)Nz)One or more sample arguments is too smallr   r   r   4   )r   r>  r   rf   ro  r   rm   )r  s    rx   test_segfault_issue_9710rs  !  sm     :G	(	8 *1#u%1#u%266(RD)	* * *s   AA>>B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_   r  r   )r  r   r   )r   r   r  r  rm   rf   r  r   )rU  rq   rr   _rm  s        rx   test_kendall_tau_largerw  -  sr    A
		!a%&A
		!a%&AFFAbEq!GGGAtsrz   c            
      "   d } d }t         j                  j                  d      }t        dd      D ]  }g }t        |      D ]  }||g|z  z  } t	        |      }|j                  |       |j                  |       t        j                  t        |      t         j                        }t        d      D ]U  }dD ]=  }	 | |||||	      }
t        j                  |||||	      j                  }t        |
|       ? |j                  |       W  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  lenr   r'  )rq   rr   rj  ri  addtotconcdiscuvr  rW  ws                rx   wkqz*test_weightedtau_vs_quadratic.<locals>.wkq9  sm   $%%%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Brz   c                     d| dz   z  S )Nr   r   r   rf  s    rx   ri  z.test_weightedtau_vs_quadratic.<locals>.weigherI  s    QU|rz   r  r4   rY   rH   r3   r]   )r   r  r  r  r  r  r   rz  intprf   ro  r  r
   )r  ri  r  r  r*  r  r4  rj  rv  r{  r  r  s               rx   test_weightedtau_vs_quadraticr  7  s    C  ))


#C1R[ q 	A!QJA	GAAyyQrww/q 	A$ 6q!T7C8**1awDNN#Hf56
 KK	rz   c                       e Zd Zd Zd Zy)TestFindRepeatsc                     g d}d}t        j                  |      5  t        j                  |      \  }}d d d        t	        g d       t	        g d       y # 1 sw Y   &xY w)N)r   r3   r4   r5   r   r3   r4   r5   r   r3   r6   +`scipy.stats.find_repeats` is deprecated...r   rg  )r4   r4   r3   r3   r   deprecated_callrf   find_repeatsr	   )rn   r*  r  r   numss        rx   r5  zTestFindRepeats.test_basicb  sW    -?##'2 	.**1-IC	.3-4.	. 	.s   AA$c                     g dg fD ]S  }d}t        j                  |      5  t        j                  |      \  }}d d d        t	        g        t	        g        U y # 1 sw Y   $xY w)N)rY   r  2      (   r  r   r  )rn   r*  r  repeatedcountss        rx   test_empty_resultz!TestFindRepeats.test_empty_resultj  sg    &+ 	+ACG''g6 9#(#5#5a#8 &9x,vr*	+9 9s   AA'	N)r   r   r   r5  r  r   rz   rx   r  r  `  s    /+rz   r  c                   l    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y)TestRegressionc                     t        j                  t        t              }t	        |j
                  d       t	        |j                  d       t	        |j                  d       t	        |j                  d       y )Nir   r   )	rf   
linregressre   r   r   	interceptrvaluestderrintercept_stderrrn   rq  s     rx   test_linregressBIGXz"TestRegression.test_linregressBIGXu  sR    !!!S)F,,h7FMM3/ 	FMM3/F33S9rz   c                     t        j                  t        t              }t        |j                  d       t        |j
                  d       t        |j                  d       t        |j                  d       y )Nr   r   )rf   r  re   r   r  r  r  r  r  s     rx   test_regressXXzTestRegression.test_regressXX  sR    
 !!!Q'F,,c2FMM3/FMM3/F33S9rz   c                 \   t        j                  t        t              }t	        |j
                  d       t        j                  t         j                  d      5  t        j                  t        t              j                  }d d d        t	        |j                         y # 1 sw Y    xY w)Nr   zAn input array...r   )rf   r  re   ZEROr   r  r   r>  r?  r   r  r  )rn   rq  
ref_rvalues      rx   test_regressZEROXz TestRegression.test_regressZEROX  st    
 !!!T*F,,c2\\%44<OP 	;40::J	;FMM:6	; 	;s   )B""B+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   r  皙?rY   r  g4_Qc?)
r   linspacesinrf   r  r"   r   
isinstancer   r  )rn   rq   rr   rq  lrs        rx   test_regress_simplez"TestRegression.test_regress_simple  s    KK3$"++ac**R/	RVVBKK2s+,,!!!Q'
62&'FMM+@Arz   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   r  r  rY   r  r  r   r  rh  r`  rb  r   r3   rd  )r   r  r  r   r   r   rf   r  r   r  r  )rn   rq   rr   r  r  r  s         rx   test_regress_alternativez'TestRegression.test_regress_alternative  s   KK3$"++ac**R/	RVVBKK2s+,,]]:-NO 	<Q{;	< 1+> 1&9Q$++/%:; 1)<T[[1_5{{dkk8T[[88888	< 	<s   =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)
                              )
?   Q   8   [   /   9   r  H   >   r  r`  rh  gؗh?gJK@:Cgag?g->g5ՒO?g]؊E @)rf   r  r   sloper  r  r   r'  r  r  r  )rn   rq   rr   r   s       rx   test_regress_against_Rz%TestRegression.test_regress_against_R  s     ?4q!=		?3'89

BGGM$:;

$56

O4,,o>rz   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 )NrZ   r6   r   r   r   r_   c                     t        | |d      S )NrW   r  )r   rq   rr   s     rx   	assert_aez1TestRegression.test_linregress.<locals>.assert_ae  s    &q!R88rz   r   rL   gePUn?g.bt>gڽE?gʺL7?)
r   r   rf   r  r  r  r  r  r  r  )rn   rq   rr   rq  r  s        rx   test_linregresszTestRegression.test_linregress  s    IIbMIIa	A+!	A+!!!!Q'	9&,,$&""C(&--!12&--1&--!56&))+>?rz   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順 r3   r_   )
r   r  rf   r  r   r  r   r4  r  r  )rn   r*  rU  rq   rr   rq  s         rx    test_regress_simple_negative_corz/TestRegression.test_regress_simple_negative_cor  s     1KK1q5!$KKAq!$!!!Q' 	#$FMM2. 	BHHV]]++,BHHV44556rz   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   r  r  rY   r  )r  r  r  r  r  r  )
r   r  r  rf   r  r"   r   r  r   dir)rn   rq   rr   rq  r  r   s         rx   !test_linregress_result_attributesz0TestRegression.test_linregress_result_attributes  s    KK3$"++ac**R/	RVVBKK2s+,,!!!Q' 
62&' J
FJ/!S[000rz   c                 
   t        j                  d      }t        j                  dd      }t        j                  ||      }t	        |j
                  d       t	        |j                  d       t	        |j                  d       y )Nr3   r4   r6   r   )r   r   rf   r  r   r  r  r  rn   rq   rr   rq  s       rx   test_regress_two_inputsz&TestRegression.test_regress_two_inputs
	  s`    IIaLIIaO!!!Q' 	FMM3/ 	FMM3/F33S9rz   c                    t        j                  d      }t        j                  d      }t        j                  ||      }t        |j                  d       t        |j                  d       t        |j                  d       y )Nr3   r   r   )	r   r   r  rf   r  r   r  r  r  r  s       rx   'test_regress_two_inputs_horizontal_linez6TestRegression.test_regress_two_inputs_horizontal_line	  s^    IIaLGGAJ!!!Q' 	FMM3/ 	FMM3/F33S9rz   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@333333&@g33333]@gfffffl@g@fffff|@r<   )$r  g,u@gfffff]@     @r  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!пr3   gpX?r   gh-h*<?gg?)	rf   r  r   r  r  r  r  r  r  r  s       rx   test_nist_norriszTestRegression.test_nist_norris$	  s    77 !!!Q'FLL*:;F,,.@AFMM1,.?@FMM3/FMM+;<F335EFrz   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   r  r  rY   r  r   )	r   r  r  rf   r  polyfitr   r  r  )rn   rq   rr   rq  polys        rx   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6rz   c                     t        j                  t        d      5  t        j                  g g       }t        j                  t        j                  |            sJ 	 d d d        y # 1 sw Y   y xY w)Nr  r   )r   r>  r   rf   r  r   r  r4  rn   r   s     rx   test_empty_inputzTestRegression.test_empty_inputK	  sS    \\,4KL 	)""2r*C66"((3-(((	) 	) 	)s   AA''A0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   r:   ignoreinvalidr6   )r   r   rm   errstaterf   r  r"   r   r  r	   r   r  )rn   rq   rq  r  s       rx   test_nan_inputzTestRegression.test_nan_inputP	  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)NrY   z$Cannot calculate a linear regressionr   )r   r  r  r   r   rf   r  rn   rq   rr   r   s       rx   test_identical_xzTestRegression.test_identical_x]	  sW    HHRLIIR 4:S1 	#Q"	# 	# 	#s   A((A1N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rz   rx   r  r  t  sU    :
:*	7	B9*?&@,7$1 ::G6
7)
6#rz   r  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   r<   zHmethod must be either 'joint' or 'separate'.'joint_separate' is invalid.r   joint_separater  jointr   )r   r3   r4   r5   rY   r[      )r:   r     r  -   7   N   gQ?separater5   r   gQ@r3   r  gGz@r   )rf   theilslopesr   r   r   r   )r  r  lowerupperr   rq   rr   s          rx   test_theilslopesr  e	  sI   %*%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   r5   r3   r   r4   r   r5   numbins)r   r   rL   r   )r=   r6   )r  defaultreallimitsr4   )cumcountr   binsizeextrapoints)rf   cumfreqr   r   r   r   r   )rq   cumfreqslowlimr  r  r   r   s          rx   test_cumfreqr
  	  s    A-2]]1a-H*Hfg{h1A(BC-2]]	1.2*Hfg{K1 FJ
--1
ACZ(rz   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   r5   r  )r<   K}\UU?r  r  )	frequencyr   r  r  )r   r   rf   relfreqr   r   )r*  relfreqsr	  r  r  r   r   	relfreqs2s           rx   test_relfreqr  	  s    
#$A-2]]1a-H*Hfg{h#$MNP GJ
--1
%CZ( /4mm<NDE/G+Ivwh	2rz   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)r4   r5   r6   rY   r`   r7   )r4   r  r9   r8   r5   r3   r   )r   r5   r6   rY   r`   r  r  r   )a1a2a3r8  s    rx   setup_methodz"TestScoreatpercentile.setup_method	  s    *,1rz   c                     t        d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       y )	Nr9   r<   r   r   r  r?   r        ?)r   r   rf   scoreatpercentilerC  s     rx   r5  z TestScoreatpercentile.test_basic	  sT    1IOU,,Q2B7U,,Q4c:U,,Q3T:rz   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 )NrY   r  r@   r3   r8   r  r   r9   )limitr   rY   r  rY   r  r  r   rY   rA   fractioninterpolation_methodr!  r'  rf   r  r   r  r  r   r   rn   scoreatpercs     rx   test_fractionz#TestScoreatpercentile.test_fraction	  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	rz   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 )NrY   r  r  r&  r5   higherr6   r  r(  r  r   r"  r#  r$  r   r)  r*  s     rx   test_lower_higherz'TestScoreatpercentile.test_lower_higher	  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rz   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 )Nr9   r<   )r   r?   r  )r   r  r  r[   r4   r5   )r   r   r  r  r   rS   )r   r5   r9   )Q?gQ@g(\ @r4   r8   rZ   )
r   r   r   rf   r  r   r   r  ndarrayrh   )rn   rq   r  r   r  	expected2s         rx   test_sequence_perz'TestScoreatpercentile.test_sequence_per	  s    1IO88N+%%a6X&
3

+,//288L3IJ 	" &&ryy}'<'<U'C')xx0@'AK9-%%' (	 	i(rz   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 )Nr[   r4   r5   )r  r  r  )g      @rA         &@)r3   r4   r5   r6   r5   r6   r7   r8   )r9   r:   rY   rZ   r   rS   )      ?g      @g     !@)r=   rA         #@r3  r   r   r   r   )r5   r5   r4   r  r   r   r4   )rf   r  r   rh   r   r   r  )rn   r+  rq   r0r  scores         rx   	test_axiszTestScoreatpercentile.test_axis	  s    --2Jq!$[M24EFL.9[M:B? /:>[M:B?9	 
 ''2.U[["%UC ''2A6U[[$'UI&rz   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   r3   r  r   r&  e   r_   )r   r   rf   r  r8  s    rx   test_exceptionz$TestScoreatpercentile.test_exception
  sK    j%"9"9Aq62+3	5j%"9"9A3Dj%"9"9A3Crz   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 )Nr  c   )r   rf   r  r   rm   r   r8  s    rx   
test_emptyz TestScoreatpercentile.test_empty
  sm    U,,R4bff=U,,RXXr2h-?DbffMU,,R"b:RVVRVV<LMrz   N)r   r   r   r  r5  r,  r/  r6  r@  rC  rF  r   rz   rx   r  r  	  s-    2
;4E2)$'0DNrz   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   rf   moder   r   r   rn   valsr  s      rx   rF  zTestMode.test_empty
  s\    \\,4IJ 	* ::b>LD&	*T288B<(VRXXb\*	* 	*s   B  B	c                     t        j                  d      \  }}t        |t        j                  dg             t        |t        j                  dg             y )Nr   r   )rf   rK  r   r   r   rL  s      rx   r5  zTestMode.test_scalar#
  s;    zz"~fT288RD>*VRXXqc]+rz   c                 r    g d}t        j                  |      }t        |d   d       t        |d   d       y )Nr4   r6   r   rY      r4   r3   r7   r9   r7   rY   r7   r   r7   r   r4   rf   rK  r   )rn   data1rM  s      rx   r5  zTestMode.test_basic(
  s1    7zz% T!Wa T!Wa rz   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)rY   rY   r  r  )rY   rY   rY   rY   )r  rY   r  r  )r  r  r  r  )r  r  r  r  TrT   keepdimsr   r  r   r9   )rY   rY   r  r  )r3   r4   r4   r3   rY   r  r3   r5   r4   )r   r   rf   rK  r   )rn   rS  data2data3data4data5arrrM  s           rx   	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Brz   rT   r   c                 <   t         j                  j                  d       t         j                  j                  dddd      }t	        j
                  ||j                  |z         }t	        j
                  ||      }t         j                  j                  ||       y )N:rY   rZ   r[   r\   rS   )	r   r  r=  rH  rf   rK  ndimr  r	   )rn   rT   r*  rI  r  s        rx   test_negative_axes_gh_15375z$TestMode.test_negative_axes_gh_15375B
  sf    
		y!IINN2r2r*zz!!&&+.zz!$'


%%dD1rz   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)NrP  )rK  countr   )rf   rK  r   r   r>  r   r   )rn   rS  rW  r  r   actual2s         rx   test_mode_result_attributesz$TestMode.test_mode_result_attributesJ
  sf    7E"&
FJ/\\,4IJ 	(jj'G	(GZ0	( 	(s   	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 )Nr4   r6   r   rY   rQ  r3   r7   r9   )r7   r4   r   r   r   r   )r   rm   rf   rK  r   r   r   )rn   rS  r  s      rx   test_mode_nanzTestMode.test_mode_nanT
  s|    BFFAq"b!Q1aQ?E"VV$Ef5VV$j%**eHj%**eIrz   data)r4   r6   r   r   r4   r4   r6   r   )r4   r6   r   rV  FTc                 |    t        j                  |d|      }|rt        |d   d   d       y t        |d   d       y )Nr   )r   rV  r   r   rR  )rn   rh  rV  rq  s       rx   test_smallest_equalzTestMode.test_smallest_equal^
  s9     DVhG1q)A&rz   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_  r4   r5   r6   r  FrU  )r   r  r  uniformr  rf   rK  r  r  popr  r	   rc  )rn   rT   rI   r  r*  r   reference_shapes          rx   test_mode_shape_gh_9955z TestMode.test_mode_shape_gh_9955l
  s    ii##I.KKYK'..u5jj6qww-D!


%%chhnnoF


%%ciiooGrz   c                     dt         j                  dt         j                  g}t        j                  |      }t        j                  |j                        r|j
                  dk(  sJ y Nr3   r   )r   rm   rf   rK  r4  rc  )rn   r*  r   s      rx   !test_nan_policy_propagate_gh_9815z*TestMode.test_nan_policy_propagate_gh_9815v
  sI     266"jjmxx!cii1n44nrz   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   r3   r4   r   r   FrU  )r   r4   r   T)r   r   r4   r   r4   r3   rV  r   r  r6   r   )rT   rV  r   )r   r3   r6   )r3   r   r3   )rV  r   )r   r  rf   rK  r  rc  rm   r	   r   r  r   )rn   r*  r   r  s       rx   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&(((rz   r   rR  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)r5   r4   r  r   F)r*  rT   rV  r   r  r3   r4   r4   r4   asdfqwerr=  rY   rH   z=Argument `a` is not....|An argument has dtype...|The DType...r   r   )r   r  rm   rf   rK  r	   rc  rI   uint8r   r  r   r   	TypeError)rn   r   r  rh  r   my_dtypetestr  s           rx   test_gh16955zTestMode.test_gh16955
  s     wwu~VVT
jj4a%JO388\2399l3 88fbhh/&"**d1KLMxx(+Q]]9G4 	4JJt
3	4 	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   rS  r  r3   rR  r4   rS   )r   r>  r   r   rf   rK  r   rm   r   r   r   r   r   )rn   r   r  r*  zs        rx   test_gh9955zTestMode.test_gh9955
  s    \\,4IJ 	!**R.C	!vvqkS#\\,4EF 	:**bffX&9C	:S#rvvrvvrvv67\\,4EF 	;**QQ6:C	;BFF|aV$S#jj{;BFF|aV$S#HHb"X\\,4IJ 	(**QQ'C	(!Q(S#/	! 	!
	: 	:
	; 	;	( 	(s/   H;'HH&;H3HH#&H03H<zignore::RuntimeWarningr  rm  r  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   TrU  r   r<  )
r  r   r>  r   r   rf   rK  r   ri   r  )rn   r  r   r  s       rx   test_gh17214zTestMode.test_gh17214
  s     66Q;08MN >jj=> > **QTD9CggadT21v||s1v||EsyyEIEEEEE> >s   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 r  )_xrC  s     rx   __init__zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__
  s	    rz   Nc                 @    | j                   j                  t              S r  )r  r  object)rn   rI   ra   s      rx   	__array__zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__
  s    ww~~f--rz   )NN)r   r   r   r  r  r   rz   rx   ArrLiker  
  s    .rz   r  r   r4   rH   )	r/   r   r   r|  rf   rK  r   r   r  )rn   r  r  s      rx   test_raise_non_numeric_gh18254z'TestMode.test_raise_non_numeric_gh18254
  s    @O<D 		. 	. ]]9G4 	.JJwryy|,-	.]]9G4 	3JJryy&12	3 	3	. 	.	3 	3s   /B:/C:CCN)r   r   r   rF  r5  r5  r\  r   r   r  r   r   ra  re  rg  rm   rj  r   rp  rs  rv  r  r  r   emptyr  r  r   rz   rx   rH  rH  
  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3rz   rH  c                       e Zd Zg dZdZej                  j                  d      d        Zd Z	 e
dd      d	        Zy
)TestSEMr  r   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   )rd   scalar_testcaser+   r   r>  r   r   rf   semr   r  r   r   UserWarningr   r4  )rn   ro   r  rr   r   s        rx   test_sem_scalarzTestSEM.test_sem_scalar
  s     **T%9%9:2>B<08MN /IIo./ / --/ /3

;'

>*IIo./ xx{{/ // /s   	C"A C."C+.C7c                    |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                  |      }t        t        j                  |      |j                  |j                               y )Ng㝎?r   ddofr3   r<   r   r:   )
rd   testcaserf   r  r1   rz  r   whererm   r2   )rn   ro   r  rr   rU  rq   s         rx   test_semzTestSEM.test_sem  s    ::dmm,IIh2::l34		(3q!A#wnD		(3	5 IIcNHHQ!VRVVQ'		!bjj&89rz   Tz(`nan_policy` only supports NumPy backendr   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  |d      d       t        t        t        j
                  |d       t        t        t        j
                  |d       y )Nr   r:   r   r   gH=6?r   r   )r   r   rm   r   rf   r  r   r   r   s      rx   test_sem_nan_policyzTestSEM.test_sem_nan_policy)  sX     IIcNvv!UYYqV46HIj%))Q7Cj%))Q8Drz   N)r   r   r   r  r  r   r   r   r  r  r   r  r   rz   rx   r  r    sX      HO[[ LM N$
: dGIEIErz   r  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
 edd      d        Zej                  j                  d      ej                  j                  d      d               Zej                  j                  d      d        Zy)TestZmapzx, yr  ry  )r   r   r   r   r   c                     |j                  |      |j                  |      }}||j                  |      z
  |j                  |d      z  }t        j                  ||      }t        ||       y )Nr   r|   )rd   ri   r   rf   zmapr1   )rn   rq   rr   ro   r  r  s         rx   	test_zmapzTestZmap.test_zmap6  sZ     zz!}bjjm1
NbffQ1f&==JJq!8$rz   c                 ~   |j                  g dg dg dg      }d}d}d}t        j                  ||d      }t        j                  ||d	      }| | d
z  | d
z  dgd|| d
z  |g|| d
z  || gg}g d| | | dgg dg}	|j                  |      }|j                  |	      }	t        ||       t        ||	       y Nr   r   r   r   )r   r   r   r   )r   r   r   r   .!	?3Ey?;f?r   rS   r   r3   r   r.  r.  r   r   gLXz?)r   r.  r   r.  rd   rf   r  r1   
rn   ro   rq   t1t2t3z0r  z0_expectedz1_expecteds
             rx   test_zmap_axiszTestZmap.test_zmap_axisC  s    JJ,,,. / ZZ11%ZZ11%bSURCE3/R"Q+RCE2s+- .bS2#w/-/ jj-jj-K(K(rz   c                    |j                  g dg dg      }t        j                  ||dd      }|j                  g d      dz  }|j                  g d      dz  }t        |d	d d f   |       t        |dd d f   |       y 
Nr  )r   r   r   r   r   )rT   r  )      r  r<   r<   g3Ey?)      r  r<   r=   g4?r   r  rn   ro   rq   r  r  r  s         rx   test_zmap_ddofzTestZmap.test_zmap_ddof\  s}    JJ,,. / JJq!!!,jj!78*Ejj!78D!Q$-!Q$-rz   r  r   r3   c                    |j                  dddt        j                  g      }|j                  dddddt        j                  g      }t        j                  |||d      }t        j                  ||d d	 |
      }t        ||       y )Nr`   r_   r3   r8   r[   r   r  r   r6   r  )rd   r   rm   rf   r  r1   )rn   r  ro   scorescomparer  r  s          rx   test_zmap_nan_policy_omitz"TestZmap.test_zmap_nan_policy_omith  sv     RQ/0**b"aB78JJvwTfE jj!483rz   c           	         |j                  |j                  dd      d      }t        j                   t        j                  ddd      d      }t        j                  |d<   t        j                  |d<   t        j                  |d	<   |j                  |d
d d f   t        j                  |d
d d f                   }|j                  |dd d f   t        j                  |dd d f                   }|j                  |      }t        j                  ||dd|      }t        j                  |d
d d f   ||      }t        j                  |dd d f   ||      }	|j                  ||	f      }
t        ||
       y )N      r   r3   r_   r  r7      )r   r5   r   r  r   r   r   )r   rT   r  r  )rh   r   r   r  rm   rd   r4  rf   r  stackr1   )rn   r  ro   r  r  compare_0_notnacompare_1_notnar  rI  r  r  s              rx   #test_zmap_nan_policy_omit_with_axisz,TestZmap.test_zmap_nan_policy_omit_with_axist  s;   BIIdC0':**R[[Q3W= **WQT]BHHWQT]4K3K%LM**WQT]BHHWQT]4K3K%LM**W%JJvw6Mzz&A,#%zz&A,#%88T4L)8$rz   Tlazy arrays don't do 'raise'.r   c                     |j                  g d      }|j                  ddddd|j                  g      }t        j                  t        d      5  t        j                  ||d	
       d d d        y # 1 sw Y   y xY w)Nr}  r  r`   r3   r8   r[   zinput contains nanr   r   r   )rd   rm   r   r   r   rf   r  )rn   ro   r  r  s       rx   test_zmap_nan_policy_raisez#TestZmap.test_zmap_nan_policy_raise  sc    I&**b"aB78]]:-AB 	<JJvw7;	< 	< 	<s   A22A;5ignore:divide by zero encountered:RuntimeWarning:dask4ignore:invalid value encountered:RuntimeWarning:daskc                 @   |j                  d      }|j                  d      }|j                  |j                   |j                  |j                  g      }t        |t        d      5  t        j                  ||      }d d d        t        |       y # 1 sw Y   xY w)Nr4   Precision loss occurred...r   )
r   r  rd   r  rm   r)   r   rf   r  r2   )rn   ro   r  r  r  r   s         rx   test_degenerate_inputzTestZmap.test_degenerate_input  s}     1''!*jj266'266266237ST 	.**VW-C	.S!	. 	.s   (BBc                     t        j                  |j                  g d      |j                  g d            }|j                  g d      }t        ||       y )Nrg  )r                 ?r_   r  )y      ?        y       @        y      @        y      @        )rf   r  rd   r1   )rn   ro   r   r  s       rx   test_complex_gh22404zTestZmap.test_complex_gh22404  s>    jjL12::>N3OPjj9:S!rz   N)r   r   r   r   r   r  r  r  r  r  r  r   r  r   r  r  r   rz   rx   r  r  3  s    [[
,	-
,	-	/
%
%)2
. [[VaV,	  -	  [[VaV,% -%( .MN< O< [[ WX[[ VW" X Y" [[ WX" Y"rz   r  c                      e Zd Zd Zd Zd Zd Zd Zd Z e	dd	      d
        Z
d Zej                  j                  d      d        Zej                  j                  d      d        Zej                  j                  d      d        Zej                  j                  d      d        Zej                  j'                  d ej*                  g        ej,                  d      g      d        Zed        Zy)
TestZscorec                     t        j                  |j                  g d            }g d}t        ||j                  |             y )Nrg  )gOT\wg%ܿg%?gOT\w?)rf   zscorerd   r1   )rn   ro   rr   desireds       rx   test_zscorezTestZscore.test_zscore  s5     LLL1262::g./rz   c                 r   |j                  g dg dg dg      }d}d}d}t        j                  |d      }t        j                  |d	      }| | d
z  | d
z  dgd|| d
z  |g|| d
z  || gg}g d| | | dgg dg}	t        ||j                  |             t        ||j                  |	             y r  rd   rf   r  r1   r  s
             rx   test_zscore_axiszTestZscore.test_zscore_axis  s    JJ,,,. / \\!!$\\!!$bSURCE3/R"Q+RCE2s+- .bS2#v.-/ 	BJJ{34BJJ{34rz   c                    |j                  g dg dg      }t        j                  |dd      }|j                  g d      dz  }|j                  g d      dz  }t        |d	d d f   |       t        |dd d f   |       y r  r  r  s         rx   test_zscore_ddofzTestZscore.test_zscore_ddof  s{    JJ,,. / LL+jj!78*Ejj!78+F!Q$-!Q$-rz   c                     |j                  ddt        j                  ddg      }t        j                  |d      }t        ||j                  |j                  |j                               y )Nr   r3   r5   r6   rR  r   )rd   r   rm   rf   r  r2   r   r  rn   ro   rq   r  s       rx   test_zscore_nan_propagatez$TestZscore.test_zscore_nan_propagate  sL    JJ1bffa+,LL{3277177BFF34rz   c                     |j                  dd|j                  ddg      }t        j                  |d      }|j                  dd|j                  d	d
g      }t	        ||       y )Nr   r3   r5   r6   r   r   gIHb=gIHb=gIHb=?gIHb=?)rd   rm   rf   r  r1   rn   ro   rq   r  r  s        rx   test_zscore_nan_omitzTestZscore.test_zscore_nan_omit  sa    JJ1bffa+,LLv.::22!vv11	! " 	8$rz   c                    |j                  |j                  dddddg      }t        j                  |dd      }|j	                  |j                  |j                  g      t        j                  |dd  d	      g      }t        ||       y )
Nr   r   rL   r   r   r   r   r  r  )rd   rm   rf   r  concatr1   r  s        rx   test_zscore_nan_omit_with_ddofz)TestZscore.test_zscore_nan_omit_with_ddof  sp    JJS#sC89LLv699bjj"&&2ELL12Q4OPQ8$rz   Tr  r   c                     |j                  dd|j                  ddg      }t        j                  t        d      5  t        j                  |d       d d d        y # 1 sw Y   y xY w)	Nr   r3   r5   r6   zThe input contains nan...r   r   r   )rd   rm   r   r   r   rf   r  r   s      rx   test_zscore_nan_raisez TestZscore.test_zscore_nan_raise  sQ    JJ1bffa+,]]:-HI 	0LLw/	0 	0 	0s   AA&c                    |j                  dgdz        }t        |t        d      5  t        j                  |      }d d d        t        |j                  |j                  |j                               y # 1 sw Y   :xY w)NgʡEr4   r  r   )	rd   r)   r   rf   r  r2   r   r  rm   r  s       rx   test_zscore_constant_input_1dz(TestZscore.test_zscore_constant_input_1d  sb    JJx!|$N2NO 	 QA	 277177BFF34	  	 s   A77B r  c                 B   |j                  g dg dg      }t        |t        d      5  t        j                  |d      }d d d        t        |j                  |j                  dddg|j                  dddgg             t        |t        d      5  t        j                  |d	      }d d d        t        |j                  |j                  |j                  |j                  |j                  |j                  g      t        j                  |d	d d f         g             t        j                  |d       }t        ||j                  t        j                  |j                  |d
            |j                               |j                  d      }t        |t        d      5  t        j                  |d       }d d d        t        ||j                  |j                  |j                               y # 1 sw Y   xY w# 1 sw Y   ]xY w# 1 sw Y   TxY w)Nr   r   r   r   r   r8  rn        *@r  r   r   rS   r.  r   r   r_   )r4   r7   )rd   r)   r   rf   r  r1   rm   r2   r  rh   r  r  r   )rn   ro   rq   r  r  r  rr   s          rx   test_zscore_constant_input_2dz(TestZscore.test_zscore_constant_input_2d  s   JJ002 3N2NO 	)aa(B	)BJJtT(B)+c3(?(A B 	C N2NO 	)aa(B	)BHHbjj"&&"&&"&&"&&1Q&R&+ll1QT7&;&= > 	? LL&2::ell2::a3G&H!''RSGGFON2NO 	+QT*A	+277177BFF34!	) 	)
	) 	)	+ 	+s#   G;H*H;HHHc                 .   |j                  g dddd|j                  gdd|j                  dgg      }d}d}t        |t        d      5  t	        j
                  |d	d
      }d d d        t        |j                  |j                  | d|j                  g|j                  d
d|j                  g|j                  ||j                  |j                  gg             t        |t        d      5  t	        j
                  |d	d      }d d d        t        |j                  |j                  |j                  |j                  |j                  g| d
||j                  g| dz  ||j                  | dz  gg             y # 1 sw Y   xY w# 1 sw Y   xY w)Nr  r   r8  rn  r  r  r  r   r   r   r   rT   r.  r   r   r3   )rd   rm   r)   r   rf   r  r1   )rn   ro   rq   r  s2r  r  s          rx   -test_zscore_constant_input_2d_nan_policy_omitz8TestZscore.test_zscore_constant_input_2d_nan_policy_omit  sr   JJ0tT2662tRVVT24 5 N2NO 	<aF;B	<BJJ!T266(B)+C(@)+BFFBFF(C(E F 	G N2NO 	<aF;B	<BJJ(H*+Q266(:*,QBFFRCE(B(D E 	F	< 	<	< 	<s   	E>-F>FFc           	         |j                  t        j                  t        j                  t        j                  t        j                  gg dg      }t        j                  |dd      }t        ||j                  t        j                  t        j                  t        j                  t        j                  gg dg             y )N)r   r   rn  rn  r   r   r  r  )rd   r   rm   rf   r  r1   r  s       rx   test_zscore_2d_all_nan_rowz%TestZscore.test_zscore_2d_all_nan_row  s     JJ802 3LLvA62::'G'='? @ 	Arz   c                     |j                  d|j                        }t        j                  |dd       }t	        ||       y )Nr  r   r  )r   rm   rf   r  r2   )rn   ro   rr   r  s       rx   test_zscore_2d_all_nanz!TestZscore.test_zscore_2d_all_nan%  s4     GGFBFF#LLvD91rz   rq   )r4   r   r6   c                 h    |j                  |      }t        j                  |      }t        ||       y r  )rd   rf   r  r2   )rn   rq   ro   r  s       rx   test_zscore_empty_inputz"TestZscore.test_zscore_empty_input,  s&    JJqMLLO1rz   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      5  t        j                  |      }d d d        t!        |dd  t         j"                         t        j                  t        d      5  t        j                  |d       }d d d        t!        |dd  t         j"                         y # 1 sw Y   xY w# 1 sw Y   3xY w)	Ni_ rY   Tr   r   rS   r  r   )r   r  r  standard_normal
zeros_liker  masked_arraymaskrf   r  anyr4  r   r   r>  r   r   rm   )rn   ro   r  rq   r   rr   r  r   s           rx   $test_zscore_masked_element_0_gh19039z/TestZscore.test_zscore_masked_element_0_gh190392  s`    ii##G,#}}QEEq$'q	ll1QR5!66"((3-(((ll1oAB%ll14(AB%!!"\\.0LM 	",,q/C	"SWbff%\\.0LM 	-,,qt,C	-SWbff%	" 	"	- 	-s   $F8:G8GG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   rz   rx   r  r    s.   05.
.5
%% .MN0 O0
5 [[ VW5 X5* [[ VWF XF& [[ VWA XA [[ VW X [[S8288B<)1D"EF G
 & &rz   r  c                   "    e Zd Zd Zed        Zy)TestGZscorec           	         t        j                  g d      }t        j                  |j                  |            }t        j                  |t        j
                  |      z        t        j                  t        j                  |d            z  }t        ||j                  ||j                  d      j                               y )Nrg  r   r  r   rH   )	r   rd   rf   gzscoreloggmeangstdr1   rI   )rn   ro   rq   r  r  s        rx   test_gzscore_normal_arrayz%TestGZscore.test_gzscore_normal_arrayM  s    JJ|$MM"**Q-(&&U[[^+,rvvejj6K/LL2::gRZZ^5I5I:JKrz   c                    t        j                  g d      }g d}t         j                  j                  ||      }t	        j
                  |      }ddt         j                  ddg}t         j                  j                  ||      }t        |j                         |j                                t        |j                  |j                         t        |t         j                  j                        sJ y )N)r   r3   r_   r4   r5   )r   r   r   r   r   r   g0jg`ȿg/A?g(/?)r   r   r  r  rf   r  r  r   
compressedr   r  MaskedArray)rn   rq   r   mxr  r  s         rx   test_gzscore_masked_arrayz%TestGZscore.test_gzscore_masked_arrayS  s    HH%&UU-MM"#_bffn"$%%$$W4$8(:(:(<=-!RUU..///rz   N)r   r   r   r
  r'   r  r   rz   rx   r  r  K  s    L 
0 
0rz   r  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<@)r   r   rm   dat_nandatr8  s    rx   setup_classz"TestMedianAbsDeviation.setup_classb  sg    xxtS#sCc!%tT4c3!$c3S$bff!N O 88 ? @rz   c                    t        t        j                  | j                  d       d       | j                  j	                  dd      }t        j                  |d      }t        j                  g d      }t        ||       y )NrS   gQ?r7   r5   r   )gףp=
?r<   ?r  )r   rf   median_abs_deviationr  rh   r   rd   r   )rn   r  madmad_expecteds       rx   test_median_abs_deviationz0TestMedianAbsDeviation.test_median_abs_deviationj  sa    E66txxdK!	#hhq!$((15zz"9:!#|4rz   c                 ^    t        j                  | j                  d      }t        |d       y )Nr   r   g(\?)rf   r!  r  r   )rn   r"  s     rx   test_mad_nan_omitz(TestMedianAbsDeviation.test_mad_nan_omitr  s"    ((&IC&rz   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   rL   r   r   r   rS   r   r   rm   rf   r!  r   )rn   rq   r"  s      rx   test_axis_and_nanz(TestMedianAbsDeviation.test_axis_and_nanv  sV    HHsCc2662/1 2((3S"((BFFC=12rz   c           	          t        j                  dddddt         j                  t         j                  g      }t	        j
                  |d      }t        |d       y )	Nr   r4   r5   r7   rE  r   r   r   )r   r   rm   r  rf   r!  r   )rn   r  r"  s      rx   test_nan_policy_omit_with_infz4TestMedianAbsDeviation.test_nan_policy_omit_with_inf|  sC    HHaAq"bffbff56((v>S#rz   rT   )r   r   r3   Nc                     t        j                  d      }t        j                  ||      }t	        |t        j
                  |j                  |      t         j                               y )N)r4   r   r5   rS   
fill_value)r   r  rf   r!  r   	full_liker"  rm   )rn   rT   rq   r"  s       rx   test_size_zero_with_axisz/TestMedianAbsDeviation.test_size_zero_with_axis  sF    HHY((6S",,quu$u'7BFFKLrz   znan_policy, expectedr   r=   rR  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   r6   r4   r7   )r6   r7   r8   r:   r:   rY   r  r(  )rn   r   r  rq   r"  s        rx   test_nan_policy_with_axisz0TestMedianAbsDeviation.test_nan_policy_with_axis  sy     HHrvvrvvrvvrvvrvvrvvF!Q2662662)+ , ((zJS(#rz   zaxis, expectedr   )r>   r   rn  )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   r3   r5   r:   )r   r   r   r   r[   )r4  r4  r  r  r   )centerr   rT   r#  r  )r   r   rm   rf   r!  ri   r   )rn   rT   r  rq   r"  s        rx   test_center_mean_with_nanz0TestMedianAbsDeviation.test_center_mean_with_nan  s[     HHq!Q266*&-/ 0 ((277v.24XE>rz   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   r3   r4   r6   rE  r5  )r   r   r|  rf   r!  r8  s    rx   test_center_not_callablez/TestMedianAbsDeviation.test_center_not_callable  s9    ]]9J7 	@&&|B?	@ 	@ 	@s	   ?AN)r   r   r   r  r$  r&  r)  r+  r   r   r  r0  r   r   rm   r2  r6  r:  r   rz   rx   r  r  a  s    @5'3
 [[V_5M 6M
 [[3%xrxxc0B'CD*HBHHbffbffc5J,KLNO$O$ [[- "23[AC?C?@rz   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   rz  r   category)	warn_listexpected_typeexpected_lenwarn_s       rx   _check_warningsrA    s5     Y/CD 1-/01rz   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 )Nr9   r<   r  )r   r   r  r  r   rf   iqrrC  s     rx   r5  zTestIQR.test_basic  s8    IIaL3
		!UYYq\4(rz   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  )rY   Z   )r  r  r   )r  r  r=   rR  )r  r  r  r   lineargٿr   r  T)r   r  rf   rE  )rn   r-  s     rx   test_apizTestIQR.test_api  s    GGFO		!		!T		!Q		!V		!T8$		!T8S)		!T8S+6		!T8XwA		!T8T67DArz   rq   r   c                     t        j                  t        t              5  t	        t        j                  |      t        j                         d d d        y # 1 sw Y   y xY wrJ  )	r   r>  r   r   r   rf   rE  r   rm   rC  s     rx   rF  zTestIQR.test_empty  s=    \\,4IJ 	/1rvv.	/ 	/ 	/s   .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)r8   r5   r   r   rS   r5   r   r8   rH  interpolationmidpointnearestr  r.  r5   r6   r7   r7   )r6   r7   )r5   r7   r3   r  r>   r  r   r3   r6   r   r  )	r   r  r   rf   rE  r	   r  r   r   r?  s      rx   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Erz   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   Tru  )r   r   r   rf   rE  r	   rC  s     rx   test_scalarlikezTestIQR.test_scalarlike  sS    IIaL3UYYqt_c*UYYq\3'599Q6>rz   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   rS   r6   rL   r   r4   r   r  rQ  )r   r   rh   r   rf   rE  r	   r   rC  s     rx   test_2DzTestIQR.test_2D  s    IIbM!!&)UYYq\3'599QQ/B@599QQ/B@599QV4c:599QV4c:rz   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   rQ  r  rY   r  rS   r_   r   r  r   rQ  rm  r   i  r4   r6   r8   rZ   r   r   r4   )r4   r   r]  r3   )r4   r   r3   r4   r3   )r   r  )r   r4   r3   r3   r5   r  )r   r  r  dstackrf   rE  r   moveaxisswapaxesr   r  rh   r  r   r&   r   )rn   orq   qr-  s        rx   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<rz   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 )Nr6   r3   )r  g     U@r  r>   )g      )@r  )rY   r  g?)r   rB  r  )r   r  <   )
r   r   r   rf   rE  r   r   r   rm   r|  rC  s     rx   test_rngzTestIQR.test_rng  s    IIaLUYYq\1%UYYqj137UYYqj137EIIaX6<j%))QH=j%))QRVVRLAiA;?rz   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 )Nr6   r5   r3   r=   rH  rL  r.  )r  P   )r  rM  r4   r  rO  r   rN  r>   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedr   )r   r   r   rf   rE  r   r   )rn   rq   rr   r  s       rx   test_interpolationzTestIQR.test_interpolation  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Grz   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 )NrZ  FrU  r   r3   )r4   r6   rZ   r  )r8   rZ   )r   r4   )r6   r8   )r   r3  r   r   r3   r4   ru  r[  r~   Tr  )r4   r6   r   rZ   )r   r   r8   rZ   )r   r6   r8   r   )r4   r   r8   rZ   )r   r   r8   r   )r   r  r   rf   rE  r  rC  s     rx   rv  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Urz   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  rR  r   r8   r   r   r  Tr   alwaysr   rS  r6   r   r3   rC   )r3   r>   r3   barfood)r   r   rh   r   rf   rE  rm   warningscatch_warningssimplefilterr   r   r   rC  s     rx   test_nanpolicyzTestIQR.test_nanpolicyP  s   IIdO##F+ 	UYYq[91=UYYqV4a8UYYqW5q9 &&$$$D1 	)!!(+1=!11EQ1-/11ERVVQ)	) $$D1 	O!!(+18#>11@"''!Q-P11@+N		O 	j%))Q7Cj%))QQ7Kj%))QQ7K 	j%))Q9E)	) 	)	O 	Os   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)Nrt  r  r   r  r8   r  g=V^w@r   r?   r  Tru  rv  rR  )r  r   r   )rT   r  r   r3   gF7k?r   rC   g	I1=@g      @r   )r   r   rh   r   rf   rE  r   rm   rx  ry  rz  r   r   r   rC  s     rx   
test_scalezTestIQR.test_scalep  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)	)" 	UYYq?EEIIaxFK+	-UYYq?F 	j%))Qh?/	) 	)s   1EJJ"N)r   r   r   r5  rI  r   r   r  r   r   rF  rR  rT  rV  r@  re  rp  rv  r{  r~  r   rz   rx   rC  rC    sw    )

B [[S2yryy|"45/ 6/F,?;'=R	@ HDV&F@!@rz   rC  c                      e Zd ZdZg dZdZej                  j                  d       ej                  j                  d      Z
ej                  j                  dddg      ej                  j                  d	 ed
d            ej                  j                  d      d                      Zej                  j                  dddg      ej                  j                  dd      ej                  j                  d      d                      Zd Zd Zej                  j                  dg d      ej                  j                  dddg      d               Zd Zd Zd Zd Zej                  j                  dg d
      ej                  j                  dg d      ej                  j                  dd d!g      ej                  j                  d      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  r  rY   )rY   r3   zm, crr  )Nr   r   z?ignore:divide by zero encountered in divide:RuntimeWarning:daskc                 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 r  r9  r   rS   缉ؗҜ<r$  )
r   r  r  rd   rf   momentri   r"  r  r1   )	rn   r  rT  r,  ro   r  rq   r   r  s	            rx    test_moment_center_scalar_momentz,TestMoments.test_moment_center_scalar_moment  s     ii##$78JJszztz,-ll1a*"#)BGGAAGffa!eaZaf(3Su-rz   r,  c           
      f   t         j                  j                  d      }|j                  |j                  |            }g d}t	        j
                  |||      }|j                  |D cg c])  }t	        j
                  |||      |j                  df   + c}      }	t        ||	       y c c}w )Nl   %~.}~= r  rr  r9  .)	r   r  r  rd   rf   r  r  newaxisr2   )
rn   r  r,  ro   r  rq   rT  r   r  r  s
             rx   test_moment_center_array_momentz+TestMoments.test_moment_center_array_moment  s     ii##$78JJszztz,-ll1a*iiPQR1a15bjj#oFRSS! Ss   ,.B.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   r3         ?r4   r5        @rg  )r   r  r   r  z)All elements of `order` must be integral.r   333333?)r   r3   r4   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 )	NrH   rQ  r   rS   rY  r   orderrT   )r3   r   )rf   r  rd   r2   rm   r   r  r  )rr   ro   s    rx   
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/0rz   zSee documentation for...zMean of empty slice.zinvalid value)rd   r  rf   r  r  r1   r   r   r   r+   r>  r   r   r  r   r   r   )rn   ro   r  rr   r  r  r   s    `     rx   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'	(LL#342::&:;<
	1 B<08RS   --/ 3

>+AB

>?; -	( 	(&  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   r:   r3   r   r   r   r   r   )	r   r   rm   r   rf   r  r   r   r   rC  s     rx   rF  zTestMoments.test_nan_policy  sn    IIcNvv!U\\!Q'0ELLv>Dj%,,gFj%,,hGrz   rI   )r   r   
complex128zexpect, orderr  rQ  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 )Nr  r6   rH   r  )r7   r6   r   )rT   r  )r6   r  r3   )r   r3   r5   r6   r   )r,   r   skiprE  rd   r   r  rH  rf   r  r2   broadcast_tor   )rn   rI   expectr  ro   rq   rr   s          rx   test_constant_momentsz!TestMoments.test_constant_moments  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;<rz   c                 H   |j                  |j                  d      d      }t        j                  |      d   j	                  |j
                        }t        j                  |j                  |      dd      }t        ||j                  d|j
                  g      d	       y )
Nr   r  rQ  r3   r   rS   r  r#  r$  )
rh   r   rj   rk   rl   rm   rf   r  rd   r1   )rn   ro   r*  mms       rx   test_moment_propagate_nanz%TestMoments.test_moment_propagate_nan  ss     JJryy}g.FF1IdO'\\"**Q-3BJJbff~6UCrz   c                     t        j                  t        d      5  t        j                  |j                  g d      g        d d d        y # 1 sw Y   y xY w)Nz1`order` must be a scalar or a non-empty 1D array.r   rg  r  )r   r   r   rf   r  rd   rn   ro   s     rx   test_moment_empty_orderz#TestMoments.test_moment_empty_order  sC    ]]: .E F 	=LLL1<	= 	= 	=s   )AAc                     |j                  d      }t        j                  |d      }t        j                  |d      }t        ||       y )NrY   r4   )r  r  )r   rf   r  r2   )rn   ro   rq   r   r  s        rx   test_rename_moment_orderz$TestMoments.test_rename_moment_order  s;     IIbMll1Q'll1A&S!rz   c                     | j                   t        j                  | j                         z
  }t        t        j                  |d      j                         t        j                  | j                   d             y )Nr  )testcase_moment_accuracyr   ri   r   r   rf   r  )rn   
tc_no_means     rx   test_moment_accuracyz TestMoments.test_moment_accuracy'  sY     33 = =>?
R0557T%B%BBG	Irz   r  rT   r1  r5  Nr   c                 
   t         j                  j                  d      }|j                  d      }t        j                  |j                  |      |||      }|j                  t        ||||            }t        ||       y )Nl   hU~)r6   r7   r8   r  )rT   r5  )ri   )r   r  r  rf   r  rd   r!   r1   )	rn   ro   r  rT   r5  r  rq   r   r  s	            rx   test_moment_array_apiz!TestMoments.test_moment_array_api/  sg     ii##N3JJIJ&ll2::a=%d6JjjE4f=>S!rz   )r   r   r   r  r  r  r   r  r=  rH  r  r   r   r  r   r   r  r  r  rF  r  r  r  r  r  r  r   rz   rx   r  r    s     HOIINN4!yy~~b1[[Vb']3[[VW\<%HI[[I. J 4
. [[Vb']3[[S,/[[I" 0 4
"3jH [[W&JK[[_vv.>?= @ L=&D="I [[Wl3[[VZ0[[Xay1[[I" 2 1 4"rz   r  c                   &    e Zd ZdZg dZg dZd Zy)SkewKurtosisTestr   r  )gp=
ף?g?߾?gD9?gQI?g}?5^Ic                    |j                  g       }t        |      r:t        j                  t        t
              5  | j                  |      }d d d        ndt        j                  j                         5 }|j                  t        d       |j                  t        d       | j                  |      }d d d        t        |j                  |j                               y # 1 sw Y   /xY w# 1 sw Y   ;xY w)Nr   Mean of empty slicezinvalid value encountered)rd   r+   r   r>  r   r   stat_funr   r  r   r   r   r2   rm   )rn   ro   rq   r   r   s        rx   test_empty_1dzSkewKurtosisTest.test_empty_1dB  s    JJrNB<08MN 'mmA&' ' --/ '3

>+@A

>+FGmmA&	'
 	RZZ/0' '' 's   C!5>C-!C*-C6N)r   r   r   r  r  testmathworksr  r   rz   rx   r  r  =  s    OH<M1rz   r  c                      e Zd Zd Zej
                  j                  d      d        Zd Zd Z	d Z
d Z ed	      d
        Zej
                  j                  dg d      ej
                  j                  dddg      d               Zy)TestSkewc                 ,    t        j                  |      S r  )rf   skewrC  s     rx   r  zTestSkew.stat_funR  s    zz!}rz   zEignore:invalid value encountered in scalar divide:RuntimeWarning:daskc                 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   )rf   r  rd   r  r1   rm   r  r  )rn   ro   rr   s      rx   test_skewnesszTestSkew.test_skewnessU  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?7rz   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   r:   r  r  r   r   r   r   r   )	r   r   rm   r  r   rf   r  r   r   rC  s     rx   rF  zTestSkew.test_nan_policye  s    IIcNvv![[* 	0A/	0UZZf5r:j%**aGDj%**aHE		0 	0s   .CC"c                 T    t        t        j                  t        d            d       y )NrY   r   )r   rf   r  r   r8  s    rx   test_skewness_scalarzTestSkew.test_skewness_scalaro  s    UZZr
+S1rz   c                    |j                  d      }|j                  |d      }t        j                  |      d   j	                  |j
                        }t        j                  d      5  t        j                  |j                  |      d      }d d d        t        |j                  d|j
                  g             y # 1 sw Y   1xY w)	Nr   r  rQ  r  r  r   rS   r   )r   rh   rj   rk   rl   rm   r   r  rf   r  rd   r2   )rn   ro   r*  r  s       rx   test_skew_propagate_nanz TestSkew.test_skew_propagate_nans  s     IIbMJJq'"FF1IdO'[[* 	2

2::a=q1A	22::q"&&k23	2 	2s   +'CCc                    |j                  |j                  dg      d      }t        |t        d      5  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9ѿrY   Precision loss occurredr   g      CFr  g,@r8   r         r5   r  )	repeatrd   r)   r   r2   rf   r  rm   r   rn   ro   r*  s      rx   test_skew_constant_valuez!TestSkew.test_skew_constant_value}  s6   IIbjj+/4N2KL 
	?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+=>
	? 
	? 
	?s   FGGTr   c                     t        j                  t        d      5  t        j                  j                  d      }|j	                  d      }d|d d df<   t        j                  |j                  |             d d d        y # 1 sw Y   y xY w)Nr  r   l   :"z` )r  rY   r  )\(?r   )	r   r>  r   r   r  r  rf   r  rd   )rn   ro   r  r*  s       rx   test_precision_loss_gh15554z$TestSkew.test_precision_loss_gh15554  sm    
 \\.0IJ 	&))''4C

	
*AAadGJJrzz!}%		& 	& 	&s   ABBrT   r_   r   r3   Nr  Fc                     t         j                  j                  d      }j                  |j                  d            }fd}t	        j
                  |||      } ||||      }t        ||       y )N   f#"rl  c                    |j                  | d      } d}j                  | |d      }j                  | |z
  dz  |      }j                  | |      }||dz  z  }|s#| j                  |   }||dz
  |z  dz  |d	z
  z  z  }|S )
Nr  r   TrU  r4   rS   r   r<   r   )rh   ri   r   r  )	r*  rT   r  ri   mu3r   r   rU  ro   s	           rx   skewnessz-TestSkew.test_vectorization.<locals>.skewness  s    |JJq%(7714$77D''1t8a-d'3C&&&&Cq.CGGDMSA#-S99Jrz   )rT   r  )r   r  r  rd   rf   r  r1   )	rn   ro   rT   r  r  rq   r  r   r  s	    `       rx   test_vectorizationzTestSkew.test_vectorization  sa    
 ii##M2JJszz),-	 jjD1qt$/S!rz   N)r   r   r   r  r   r   r   r  rF  r  r  r  r   r  r  r  r   rz   rx   r  r  P  s     [[O88F24?  && '& [[V%56[[VeT]3" 4 7"rz   r  c                   8   e Zd Zd Zej
                  j                  d      d        Zd Zd Z	d Z
d Zej
                  j                  dg d	      ej
                  j                  d
ddg      ej
                  j                  dddg      d                      Zy)TestKurtosisc                 ,    t        j                  |      S r  )rf   kurtosisrC  s     rx   r  zTestKurtosis.stat_fun  s    ~~a  rz   z1ignore:invalid value encountered in scalar dividec                     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                  |      }t        t        j                  |      |j                  |j                               y )	Nr   r   fisherr  gO߻S@gx|N@g=
ףp=?r   r9   )rf   r  rd   r  r4  r  r1   r  r   r  rm   r2   )rn   ro   rr   rq   s       rx   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!VRVVQ'q)2::bff+=>rz   c                    t        j                  d      }t         j                  |d<   t        t	        j
                  |d      d       t        t        t        j
                  |d       t        t        t        j
                  |d       y )Nr   r:   r   r   Gzr   r   )r   r   rm   r   rf   r  r   r   rC  s     rx   test_kurtosis_nan_policyz%TestKurtosis.test_kurtosis_nan_policy  sU    IIcNvv!ENN1@)Lj%..!Hj%..!Irz   c                 t    t        t        t        j                  g d            t        j
                         y )Nr}  )r   typerf   r  r   r   r8  s    rx   test_kurtosis_array_scalarz'TestKurtosis.test_kurtosis_array_scalar  s    T%..34bjjArz   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 )Nr9   r3   r_   rQ  r   rR  rS  g(\r#  r$  )
r   r   rh   r  r  rm   rf   r  r  r   )rn   r*  rJ  s      rx   test_kurtosis_propagate_nanz(TestKurtosis.test_kurtosis_propagate_nan  si     IIaL  B'..u5&&$NN11=


""1ubffoE"Brz   c           	         |j                  dgdz        }t        |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)	Nr  rY   r  r   F)r  l           r  )rd   r)   r   r4  rf   r  r  r  s      rx   test_kurtosis_constant_valuez)TestKurtosis.test_kurtosis_constant_value  s    JJ}R'(N2KL 	I88ENN1U;<<<88ENN1uU|+;EJKKK88ENN1uU|+;EJKKK88ENN1UGHHH		I 	I 	Is   B:C,,C5rT   r  r  FTr  c                     t         j                  j                  d      }j                  |j                  d            }fd}t	        j
                  ||||      } |||||      }	t        ||	       y )Nr  rP  c                 P   |	j                  | d      } d}	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   TrU  r5   rS   rT   r}   r3   r4   r   )rh   ri   r   r  )
r*  rT   r  r  ri   mu4mu2r   rU  ro   s
            rx   r  z1TestKurtosis.test_vectorization.<locals>.kurtosis  s    |JJq%(7714$77D''1t8a-d'3C&&!&4CCFlQ&GGDMs!!}-!a%3sAv1E1Q31OP !3-cAg-rz   )rT   r  r  )r   r  r  rd   rf   r  r1   )
rn   ro   rT   r  r  r  rq   r  r   r  s
    `        rx   r  zTestKurtosis.test_vectorization  se     ii##M2JJszz),-	.& nnQTVDqt$v>S!rz   N)r   r   r   r  r   r   r   r  r  r  r  r  r  r  r   rz   rx   r  r    s    ! [[ ST? U?>JBCI [[V%56[[VeT]3[[Xt}5" 6 4 7"rz   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   r3   )min_dimsmin_side)rI   elementsr  errorr  r   )dictnpstarray_shapesarraysr   r   rx  ry  rz  r  rz  r  
contextlibsuppress	Exceptionrf   r  r  r  r  
hypothesisassume
strategiessampled_from)drawr  r  rh  ok_axesrT   r   s          rx   ttest_data_axis_strategyr    s3    eE:Hq15E "**xuMND G 
	 	 	" )g&#djj/* 	)D$$Y/ )ll4qt<66#'?rvvbkk#.>'?NN4() )	)) g 
%%227;<D:) )) )s&   'AE>7A*E2!
E>2E;7E>>F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ej                   j#                  d      ej                   j#                  d      d               Zd Zej                   j#                  d      d        Z edd      ej                   j-                  dg d      d               Zd Z edd      ej                   j2                   ej6                  ej8                  j;                  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?r3   r   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  ro   r   r   )r   r   r  r   r   r+   rd   rf   ttest_1sampr2   rm   X1r1   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2)rn   ro   r   r*  trA  r   r   s           rx   test_onesamplezTestStudentTest.test_onesampleI  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1;	, 	, 	, 	,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   r6   rY   3   it r  r  r  r  r  r  r  rL   )g̈́^Bg/kCm?r   r   )r+   rd   rm   r   r   NotImplementedErrorrf   r  r  r  r   r  r	   r   r   r   )rn   ro   rq   r  s       rx   test_onesample_nan_policyz)TestStudentTest.test_onesample_nan_policyk  s   |

BB/0A=G2'B <!!!RF;<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%-/	/ 	/<	/ 	/s   E$6B%E0$E-0E9z+ignore:divide by zero encountered in dividec                    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)	N8`alternative` must be 'less', 'greater', or 'two-sided'.r   r   r  rh  r   rb  rd  )r   r   r   rf   r  rd   r  r1   P1_1_lr  P1_1_g)rn   ro   r  r  rA  s        rx   test_1samp_alternativez&TestStudentTest.test_1samp_alternative  s    L]]:W5 	Lbjj127K	L   DGG!4bfM12::dkk232::dii01  DGG!4biP12::dkk232::dii01	L 	Ls   2EE	jax.numpyGeneric stdtrit mutates array.r   ri  r  c                    t         j                  j                  d      }d}|j                  |dd      }|j                         }|j	                  d      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 rY   r=   r3   r  r  r  r   rH   gÍ]?g$(}w@gS1?g]@r`  rd  rb  )popmeanri  333333?confidence_levelr   r   )r   r  r  r  rd   rI   r  rf   r  rT  r1   rW  rX  r2   df)rn   ro   ri  r  rU  rq   r"  rI   r  r   rr  s              rx   test_1samp_ci_1dz TestStudentTest.test_1samp_ci_1d  s&    ii##$78JJA3aJ0**, 

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

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

1Q30rz   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   rY   r$  )rf   r  r   r   r   r   rT  )rn   ro   r   r  s       rx   test_1samp_ci_ivz TestStudentTest.test_1samp_ci_iv  sU    		#3H]]:W5 	9##R#8	9 	9 	9s   AA(Tz	Too slow.r   r#  g?)alpha	data_axisrb  rd  c                    |\  }}|j                  |      }t        j                  |d||      }|j                  |      \  }}	|dk(  r|n|	}
|j	                  |
|      }
t        j                  ||
||      }t        |j                        }|j                  |       |j                  |j                  d|z
  |j                        |      }t        |j                  |       y )Nr   r  r$  rd  rS   r   rH   )rd   rf   r  rT  expand_dimsr  r  rn  r  r   r1   r  )rn   r+  r,  ri  ro   rh  rT   r   lr  r"  r  r  s                rx   test_pvalue_cizTestStudentTest.test_pvalue_ci  s     
dzz$b,7dD&&&>1"i/!Q..t.4g;TRTZZ 		$oobjj5

jCUK

C(rz   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  givenr  floatsr  r0  r   rz   rx   r  r  6  sl    
B	BDDDDDDDDAXF$(^F[[ WX[[ VW2 X Y2@/( [[ MN2 O2 k*JK[[],LM1 N L109 d;7[[ZJ1188H 8 :<[[]VY,?@) A<  8
)rz   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 r  )rf   percentileofscore)rn   argskwargss      rx   fzTestPercentileOfScore.f  s    &&777rz   zkind, result))rj  r  )ri   #   strictr  )weakr  c                 H    g d}t        | j                  |d|      |       y )N
r   r3   r4   r5   r6   r7   r8   r9   r:   rY   r5   kindr   r9  rn   rA  rq  r*  s       rx   test_uniquez!TestPercentileOfScore.test_unique  s"    
 ,TVVAqtV,f5rz   ))rj  r  )ri   r  r;  )r=  r  c                 H    g d}t        | j                  |d|      |       y )N)
r   r3   r4   r5   r5   r6   r7   r8   r9   r:   r5   r@  rB  rC  s       rx   test_multiple2z$TestPercentileOfScore.test_multiple2  "    
 +TVVAqtV,f5rz   ))rj  r  )ri   r  r;  )r=  rd  c                 H    g d}t        | j                  |d|      |       y )N)
r   r3   r4   r5   r5   r5   r6   r7   r8   r9   r5   r@  rB  rC  s       rx   test_multiple3z$TestPercentileOfScore.test_multiple3  rG  rz   ))rj  r  )ri   r  r;  )r=  r  c                 H    g d}t        | j                  |d|      |       y )N)
r   r3   r4   r6   r7   r8   r9   r:   rY   rZ   r5   r@  rB  rC  s       rx   test_missingz"TestPercentileOfScore.test_missing  s"    
 -TVVAqtV,f5rz   c                 H    g d}t        | j                  |d|      |       y )N
rY   r  r  r  r  rd  F   rg  rG  r  r  r@  rB  rC  s       rx   r   z(TestPercentileOfScore.test_large_numbers  s"    
 6TVVArV-v6rz   c                 H    g d}t        | j                  |d|      |       y )N)
rY   r  r  r  r  r  r  rd  rN  rg  r  r@  rB  rC  s       rx   test_large_numbers_multiple3z2TestPercentileOfScore.test_large_numbers_multiple3  s"    
 5TVVArV-v6rz   c                 H    g d}t        | j                  |d|      |       y )N
rY   r  r  r  rd  rN  rg  rG  r  n   r  r@  rB  rC  s       rx   test_large_numbers_missingz0TestPercentileOfScore.test_large_numbers_missing  s"    
 7TVVArV-v6rz   rj  )r   rY   r  r  ri   )r   r6   _   r  r<  )r   r   rG  r  r=  c                 L    g d}t        | j                  |g d|      |       y )NrR  )r   rY   rS  r  r@  rB  rC  s       rx   test_boundariesz%TestPercentileOfScore.test_boundaries  s#    
 7TVVA0tV<fErz   )r   rY   r  )r   r6   rU  )r   r   rG  c           
          ddddddddd	t         j                  g
}t        | j                  |t         j                   dt         j                  g|
      |       y )Nr   r3   r4   r5   r6   r7   r8   r9   r:   r@  )r   r  r   r9  rC  s       rx   test_infzTestPercentileOfScore.test_inf	  sP    
 1aAq!Q0TVVARVVG44V@&Irz   rR  r   rm  r3   r  r  r   )r   r  r  r   zpolicy, a, score, resultc                 @    t        | j                  |||      |       y )Nr   rB  )rn   policyr*  r?  rq  s        rx   test_nans_okz"TestPercentileOfScore.test_nans_ok  s    TVVAuV8&Arz   r   r4   r}  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   r9  )rn   r[  r*  r?  r  s        rx   test_nans_failz$TestPercentileOfScore.test_nans_fail$  s3    :W5 	0FF1eF/	0 	0 	0s   09r  ))r7   r  r3   r   r4   )r3   r   r   r4   c                     t        j                  g d      }|j                  |      }|dz  }g d}t        | j	                  ||d      |       y )N)r   r   r3   r4   r5   r6   rY   r?  rj  r@  )r   r   rh   r   r9  )rn   r  r*  r  resultss        rx   test_ndzTestPercentileOfScore.test_nd)  sH     HH'(5!)+TVVAvFV3W=rz   N)r   r   r   r9  r   r   r  rD  rF  rI  rK  r   rP  rT  rW  rY  r   rm   casesr\  r^  rb  r   rz   rx   r4  r4    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 ' >>rz   r4  Case)f_obsf_expr  rT   chi2r  mod_logcr)r5   r9   r[   r9   r5   r3   r<   r[   r=   r9   r   r  gfx(@)r3   r   r[   r3   r  r   r         ?g{T4@)r4   r6   r8   r:   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        |      }	n)||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   rH   r   r  rf  r  rT   lambda_r   pearson)rf  r  rT   )rd   rI   r.   broadcast_arraysr  r   r   r   rf   power_divergencer1   	chisquarer   distributionsrg  sf)rn   re  rf  r  rT   rp  expected_statro   rI   num_obsr  r   statrA  
expected_ps                  rx   check_power_divergencez*TestPowerDivergence.check_power_divergencey  sz   

2$$

5
.272C

5
.<enG;@;Lb))%7!8 Qiood+G  	NCJJ~'<=,, %U%)7<GD! D"**]%*"HI!|w)3//%u4/35abjjej&LM	N zz$((--00181t1CE
2::j:>?!	N 	Ns   BFFcaselambda_stat))Nrg  rq  rg  )r   rg  log-likelihoodr  mod-log-likelihoodrh  cressie-readri  r  ri  c           	          |\  }}t        ||      }| j                  |j                  |j                  |j                  |j
                  |||       y r  )rE  r{  re  rf  r  rT   rn   r|  r}  ro   rp  attrrw  s          rx   r5  zTestPowerDivergence.test_basic  sG     $d+##DJJ

DIItyy$+]B	@rz   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   rq  r  r  r  r  r]  )power_div_1d_casesr   vstackre  	ones_likeri   rf  rd   r{  rg  r  rh  ri  rh   )rn   ro   case0case1re  rf  f_obs_reshapes          rx   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%** 	$ 	-rz   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         \  }}|j                  ||j                  d d f   ||j                  d d f   fd      }t        |
|       y )	Nr   r   r   rH   r  r  rQ  rS   )r  r   r  re  r   r  ri   rf  rg  rd   rI   rf   rs  r1   r  r  )rn   ro   r  r  re  rf  expected_chi2rI   r  ry  rA  rv  p0p1rz  s                  rx   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, &&ue$t*E2&&ue$t*E2YY2::q= 12bjj!m3DEAYN
:&rz   )r~  r  r  r  r  c           
          |\  }}t        ||      }t        j                         5  | j                  |j                  |j
                  |j                  |j                  |||       d d d        y # 1 sw Y   y xY wr  )rE  rx  ry  r{  re  rf  r  rT   r  s          rx   test_empty_casesz$TestPowerDivergence.test_empty_cases  sh     $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   rH   rq  ro  r  r  )
r  re  rf  r  rT   rd   rI   rf   rs  r   )	rn   ro   re  rf  r  rT   rI   r   r   s	            rx   'test_power_divergence_result_attributesz;TestPowerDivergence.test_power_divergence_result_attributes  s    "1%++"1%++!!$))!!$))

2$$

5
. $$U%d*.	C,
C3rz   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        >@rL   rt  g     A@g      9@For each axis slice...r         N@rf  r   )rf  rT   g̑m@gUUU@gj^4;?g4;?)rd   r   r   r   rf   rs  r1   )rn   ro   re  rf  r  ry  rm  s          rx   test_power_divergence_gh_12282z2TestPowerDivergence.test_power_divergence_gh_12282  s    

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

RISz23*]]:W5 	H""5

C:0FG	H]]:W5 	?""5A>	?++E?
dbjj*j)ABCbjj*j)ABC	H 	H	? 	?s   )DDDD#c           	         |j                  g d      }d}|j                  d|j                  d   dz         }|j                  |j	                  |      |j	                  |j                  ||z              z        }|j                  |||z  z         }|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)rt  r8        ,@g      1@rL   r8  r   r   r   r   r   r   r8  r   r   r   r   r   g*kqr   r   ) g      $g    @r  g     r@r  gffffffP@g       gLD@r  g      A@r.  g     =@r  g     :@r   g8@r<   gffffff7@gq=
ףp?g7@r   g333336@r=   g6@r   gfffff6@r   g8@rL   g     A@r   g     j@)r_   r3   r   )rp  g{Gzt?rj  )rd   r   r  r  r"  expr  r  r   rh   r  rf   rs  r1   )rn   ro   obsbetar  r+  expected_countstable4table5rp  rw  ry  rA  s                rx   /test_power_divergence_against_cressie_read_datazCTestPowerDivergence.test_power_divergence_against_cressie_read_data  sP    jj @ AIIb#))A,+,rvvc{RVVBFF46N%;;<&&a0 C

A.+BJJM:< ==>Q 	   & FG,v||A' 	<A%+AqD\6!Q$<]G,,VAaC[&1+5<>GD!D-d;		<rz   N)r   r   r   r{  r   r   r  r  r5  r@  r  power_div_empty_casesr  r  r  r  r   rz   rx   rm  rm  v  s    @@ [[V%78[[]	./@	/ 9
@-: 'D [[V%:;[[]	./,	/ <
,4D-<rz   rm  c                   `    e Zd 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)Nr  r   r   r  r  r  r  )r   r   rd   rf   rt  )rn   ro   re  rf  s       rx   test_chisquare_12282az#TestChisquare.test_chisquare_12282a=  sV     :-EF 	0JJSz*EJJSz*EOOE/	0 	0 	0s   >AA"c                 6   t         j                  j                  d      }d}|j                  dd|      }|j	                  |      }|j                  |      }|j                  ||j                        }t        j                  ||dd	      }||z
  |j                  |      z  }|j                  |d
z        }t        |j                  |       t        |j                  ||j                              }	t        |j                  |	j                  |             y )Nl   *m{m rY   r  r  r  rH   r_   F)rf  r  	sum_checkr3   )r   r  r  rm  poissonrd   rI   rf   rt  r'  r"  r1   r  r%   r  rv  )
rn   ro   r  rU  lamrq   r   r  r  r  s
             rx   test_chisquare_12282bz#TestChisquare.test_chisquare_12282bF  s     ii##$45kk$1k-KKjjoJJq		J*ooasuEW$FF1a4L	y1AY__=>

BEE)$45rz   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   rH   r3   r   vIh%<=rj  )	rE  rd   rf   rt  r1   rI   r2   r  r  )	rn   rU  rI   ro   r  r  r   ry  rA  s	            rx   #test_chiquare_data_types_attributesz1TestChisquare.test_chiquare_data_types_attributesY  s     E"jj!Quj-jj!q&!q&)j7ooc3'abjj"**R.2F2FjGeTt,

A&rz   N)	r   r   r   r  r  r   r   r  r  r   rz   rx   r  r  ;  s8    06& [[Z.:L)MN
' O
'rz   r  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   Gz?g+?gv?g9v?)g~jt?gx?gOn?r  g"~j?n?gK7A`?r  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?r  gQ?      ?g      ?r   r  g rh?g333333?
ףp=
?)r5   r4   r6   r4   r6   r4   r3   r6   r5   r5   r5   r4   )r3   r3   r   r3   r4   r   r3   r4   r3   r   r   r4   )r3   r5   r4   r4   r5   r4   r4   r5   r5   r   r3   r   )r4   r6   r5   r4   r5   r5   r4   r4   r4   r5   r5   r5   )r   g#@rD   r  g$@)g333333@g@g@r?   g@)r  r  rA   r?   @)g!@g!@333333 @ffffff
@g333333"@r   r   r3   r4   )gNt$@gBv?)g
__2@g5"]i2?)g\(\%@g+ԋ?r  )r   r   rf   friedmanchisquarer   r   r   r  )r  r  r  r   r   s        rx   test_friedmanchisquarer  g  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Crz   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  ri  rK  r  )rf   kstestr   r   r   	rn   rq   ri  expected_statisticexpected_probrK  r  rq  r  s	            rx   _testOnezTestKSTest._testOne  s?    a[tL88/?@!"((6"2HgNrz   c                     t        j                  |d||      }t        j                  |t         j                  j                  ||      }t        t        j                  |      ||       y r  )rf   r  ks_1sampr  cdfr   r   r   )rn   rq   ri  rK  r  rq  result_1samps          rx   _test_kstest_and_ks1sampz#TestKSTest._test_kstest_and_ks1samp  sK    a[tL~~a2=DJ!"((6"2L'Rrz   c                 z    t        j                  ddd      }d}t        j                  |d      }t	        ||       y )Nr_   r   r:   r  r  )r   r  rf   r  r   rn   rq   r   r   s       rx   test_namedtuple_attributesz%TestKSTest.test_namedtuple_attributes  s3    KKAq!,
ll1f%C,rz   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   r:   r`  r  
r  Q?g333333g(\?Q?g(\ſg{GzgHzG?g\(\gGzrd  r  rK  rb  )r   r  r  rC  s     rx   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%>rz   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)r   r  rf   r  cauchyr  r  r  r   r4  r  r  )rn   rM  r   r  s       rx   test_pm_inf_gh20386zTestKSTest.test_pm_inf_gh20386  s     Arvv&ll4!1!12ll4!1!1DAvvbkk#&'''S#88CMM***88CJJ''''rz   NautorW   )	r   r   r   r  r  r  r  r  r  r   rz   rx   r  r    s%    V ')OS-
?	(rz   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  r  )rf   r  r  r  r   r   r   r  s	            rx   r  zTestKSOneSample._testOne  sH    5::>>{QUV88/?@!"((6"2HgNrz   c                     t        j                  ddd      }d}t        j                  |t        j                  j
                        }t        ||       y )Nr_   r   r:   r  )r   r  rf   r  r  r  r   r  s       rx   r  z*TestKSOneSample.test_namedtuple_attributes  s;    KKAq!,
nnQ

/C,rz   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   r:   r`  g|N?g7.s?r  r  g{CTp?g M<b*?r  gZL?g86J4?rd  g+?r  r  rb  gHD?gr?r   r  r  rC  s     rx   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Trz   c                     t         j                  j                  ddd      }| j                  |dddd	       | j                  |d
dd       | j                  |ddd       y )Nr  r  h:)r  r  r  r`  ghх?g7?asympr  rb  g^h?rd  gv!ԉ}?g*z)?)rf   r  r  r  rC  s     rx   test_known_examplesz#TestKSOneSample.test_known_examples  s`    JJNNs9NEa&9;O" 	 	$a!46JKa$9;NOrz   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   r=   r_   ))rB  r   Tr   )rB  皙?Tr   )rB  r   Tr   )rB  gTr   )          ?Tr   )r  r  Fr   )r  r<   Tgb?)r  r<   FgiNq>)r        ?Tgv(?)r  rj  TgT	?)@  g\(\?Fr   )r        ?Fg(>)r  gQ?Fg@c?)r        ?FgX+ʳP?rm  r4   )dtypes)r   r   r4  r   rm   r   r   rd   r   checkintr  bool)rn   datasets     rx   test_ks1samp_allpathsz%TestKSOneSample.test_ks1samp_allpaths  s    D123:-EF 	"CD!	"Q-./** 
 4 	'9a066sE4>P6Q=	" 	"s   	CCksfunc*alternative, x6val, ref_location, ref_sign))rd  r7   r7   r   )rb  r8   r8   r_   )r`  r7   r7   r   )r`  r8   r8   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 )	NrY   r<   r7   r}  rh  r  r#  rj  )	r   r   rf   rm  r  r   r  statistic_locationstatistic_sign)	rn   r  ri  x6valref_locationref_signrq   r  r   s	            rx   test_location_signz"TestKSOneSample.test_location_sign  sy     IIbMC!mm"%))Q5s7%%555!!X---rz   Nr  )r   r   r   r  r  r  r  r  r  r   r   r  rf   r  r  r  r   rz   rx   r  r    s|    
 ')O-UP!RF [[Xenn'EF[[I78

.8 G
.rz   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  )rf   ks_2sampr   r   r   )	rn   r  r  ri  r  r  rK  rq  r  s	            rx   r  zTestKSTwoSamples._testOne0  s=    B$?88/?@!"((6"2H=rz   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   r`  r   rd  r<   rb  r   )r  r8  s    rx   	testSmallzTestKSTwoSamples.testSmall6  s    qcA3UC8qcA3	5#6qcA3s3qcA3UC8qcA3	5#6qcA3s3rz   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   r  ry  r`  r3  rd  r  rb  r  r  r  r   r   r   r  rn   rS  data1pdata1mrW  s        rx   testTwoVsThreezTestKSTwoSamples.testTwoVsThree>  s    #s$)fe['3?feY=feVWc:fe['3?feY=feVQ4rz   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   r  r  r`  r<   g?rd  g?rb  rj  皙?r:  r  r  r   r
  r  s        rx   testTwoVsFourzTestKSTwoSamples.testTwoVsFourJ  s    #s$-.fe['7CfeY@feVWg>fe['6BfeY@feVQ4rz   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   r  r3   r  r`  r2  g~z?rd  gz;.B?rb  r   r   {Gz?gn2IU?r  )rn   x100	x100_2_p1	x100_2_m1s       rx   test100_100zTestKSTwoSamples.test100_100W  s    {{1c3'1HsN	1HsN	dI{I?QRdIy)=OPdIvq#6dI{IsCdIy)=NOdIvq#6rz   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   r  rS  r  r  r`  g?g@߿?rd  g}n?rb  r   g:[?g]O);?gѫ);?r   r   r  )rn   r  x110
x110_20_p1
x110_20_m1s        rx   test100_110zTestKSTwoSamples.test100_110b  s    {{1c3'{{1c3'BY_
BY_
dJ\CWXdJ	<AUVdJ15dJ\CWXdJ	<AUVdJS9rz   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 )Nr3   r4   r5   r6   r7   rH   r   rY   r8   r`  g      ?g^dH?rd  gQl6y?rb  r   r   gVdEVdE?g(f^?g!?gii?g+ ϖ?)r   r   r  r  )rn   x2233x3344x2356x3467s        rx   testRepeatedValuesz#TestKSTwoSamples.testRepeatedValueso  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Krz   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 )Nry  r   r`  r3  r   rd  r:  rb  r   r<   r
  )rn   rW  s     rx   testEqualSizeszTestKSTwoSamples.testEqualSizes{  s    )eU1Wk5#>eU1Wi=eU1WfeR8eU3YUC@eU3Y	5$?eU3Yr:eU3YUC@eU3Y	5#>eU3Yt<rz   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)r  iX  r   r3   r   r  r`  g     @@r  r  r  rd  g2JE?rb  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.r  Tru  rv  
r   r  r  r   r   r   rx  ry  rz  rA  	rn   n1n2deltarq   rr   r   r  r  s	            rx   testMiddlingBothz!TestKSTwoSamples.testMiddlingBoth  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1 	2Q!!(+MM!Q
R9K&  (A~q1		2 	2	( 	(	2 	2   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)r  L  r   r3   r   r  r`  g     ȹ@r  r  r  rd  gZ?rb  g     @@g@J?r&  r  Tru  rv  r'  r(  s	            rx   testMediumBothzTestKSTwoSamples.testMediumBoth  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1 	2Q!!(+MM!Qb(8:L&  (A~q1		2 	2	( 	(	2 	2r-  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)'  rS  r8  r   r3   r   r  r  r`  g    `@g      <rd  g     @g򼉷?rb  gimb:r  )rn   r)  r*  lcmr+  rq   rr   s          rx   	testLargezTestKSTwoSamples.testLarge  s    BgBr	!AKK3#e+KK3#aK38NOaIus{4GHaFGcM3IJrz   c                     t         j                  j                  d      }|j                  d      }|j                  d      dz  }| j	                  ||dddd	
       | j	                  ||dddd
       y )N@ i  r  i  r=   r`  gC?      <r  r  r  r   r  r  r  r  rn   r  rq   rr   s       rx   test_gh11184zTestKSTwoSamples.test_gh11184  s{    ii##F+JJDJ!JJDJ!C'aK)<>T" 	 	$aK)<>T" 	 	$rz   c                 H   t         j                  j                  d      }|j                  d      }|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 )Nr6  r2  r  i'  r=   r`  g 	_r!?gAD5r  r  r7  r  rd  gלN#y7rb  gvqw?r8  r9  s       rx   test_gh11184_biggerz$TestKSTwoSamples.test_gh11184_bigger  s     ii##F+JJEJ"JJEJ"S(aK)<>T" 	 	$aK)<>T" 	 	$aI':<R" 	 	$aF$79O" 	 	$rz   c                 z   t         j                  j                  d      }t        ddd      D ]  }|j	                  |      }|j	                  |dz   d      }t        j                  ||d	      j                  }t        j                  ||d
	      j                  }t        |d|z         t        |d|z          y )Nr6  r  i.  r  rY   r<   r  r  r  r  r  r4   )	r   r  r  r  r  rf   r  r  r   )rn   r  rq   vals1vals2r  r  s          rx   test_gh12999zTestKSTwoSamples.test_gh12999  s    ii##F+tUD) 	0AJJQJ(EJJQV#J6ENN5%g>EEENN5%g>EEEeQY/eQY/	0rz   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)r2  i*  r8  r   r3   r   r  r`  g     @gkHY?r  r  gLɔ.?r  r  rd  g.LbG2?rb  r   gr?֎?r&  )r   r  r  r   r   r   )	rn   r)  r*  r3  r+  rq   rr   r   r  s	            rx   testLargeBothzTestKSTwoSamples.testLargeBoth  se    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   r3   r4   )rf   r  r   rn   r   r   s      rx   testNamedAttributesz$TestKSTwoSamples.testNamedAttributes  s'    ,
nnaVaS)C,rz   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   r  i  r   r  r/  iK  r  )scipy.stats._stats_pyrH  rI  r   r  r   FloatingPointError)rn   rH  rI  s      rx   test_some_code_pathsz%TestKSTwoSamples.test_some_code_paths  st    	

 	*!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rJ  )r   r>  r   r   rf   r  r   r  r   rm   r  rn   r|  r   s      rx   test_argument_checkingz'TestKSTwoSamples.test_argument_checking  s[     \\,4IJ 	-..$'C/RVV,	- 	- 	-   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   rd  r  r  rb  r`  N)r   r  r=  rf   rm  r  r  )rn   r)  rvs1rvs2s       rx   test_gh12218zTestKSTwoSamples.test_gh12218'  ss    
 			x }}  bb :axtTywGtTvGDtT{Irz   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  r  r<   iq  z(ks_2samp: Exact calculation unsuccessfulr   rb  rh  r   r+  r$  )
r   r  r  r   r>  r   rf   r  r   r  )rn   r  rS  rW  r  r   s         rx   test_warnings_gh_14019z'TestKSTwoSamples.test_warnings_gh_140194  s     ii###2


$s*


$<\\.8 	7..6BCCJJ6	7 	7 	7s   %1BB(r  r  ))rd  皙@rY  r   )rb  ffffff@r   r_   )r`  rY  rY  r   )r`  rZ  r   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 )NrY   rH   r7   rh  r  )	r   r   r   ra   rf   r  r  r  r  )	rn   r  ri  r  r   r  rq   rr   r   s	            rx   r  z#TestKSTwoSamples.test_location_sign@  sx     IIb

+FFH!nnQ{;}}###%%555!!X---rz   N)r  )!r   r   r   r  r  r  r  r  r  r  r"  r$  r   r   r  r,  r0  r4  r:  r/  r<  rA  rC  rF  rL  r  rO  rU  rX  rf   r  r  r  r   rz   rx   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
.rz   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   r  r  gKX@r   rS   r  r  r  r   r   r  r  r3   r\  r  rh  rb  r  rd  rR  r6   rY     r  r  r  )r  r  r  r  r   r   )ghm#1?gry̧?r   r   r  r   rk  r<  r_   r]  r  )r9   r4   r3   r4   r5   c                 D    | dk  r|dk(  s
| dkD  r
|dk(  r|dz  S d|dz  z
  S Nr   rb  rd  r3   r   r   r  rA  alts      rx   convertztest_ttest_rel.<locals>.convert  3    EcVmQ3)3Cq5LAE{rz   r  r  r  r  r  r+  rj  )%r   r  r   rf   	ttest_relr   r   r   r  r   r   r   r4  r   r^  absr   r  r_  r   r   r   r  r  r  r  rm   r	   r   r>  r  r  r   rh   	vectorizer   r   )trr  tprrS  rT  rvs1_2Drvs2_2Dr  rA  r   r   r   rvs1_3Drvs2_3Dr  rq   rr   ananrc  	converters                       rx   test_ttest_relrp  S  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	& D5??1a02662662BCD eooavFGI*eooq!H*eooq!I 
n,E	F 5y)415"&&)Q"&&!-	X	& 1U__Y	:RVVRVV<LM xx!RVVr1g./U__T288F+;<"&&kArvv;/	11 			"A*eooqyy/@))I&( W%IGAr"uHGAr"uH	(0A	B I'1HBI 
(0A	B Fw*0fF1F Ar&	X	& B9RV45AB 
(0A	B Iw*0iI1I Ar&	X	& E9RY7eDE E' ' ' '\D D5 51 1.I IF FB BI IE E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?)r   rm   rf   re  r   r  r  )rq   rr   r  r  r3s        rx   test_ttest_rel_nan_2nd_argru    s    	c3AA	A&	1B	A&	1BBLL2<<-e<BIIryyu5 
12!"	&BB' B40rz   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rJ  )r   r>  r   r   rf   re  r  	_stats_pyTtestResultr   r   rm   )rq  s    rx   #test_ttest_rel_empty_1d_returns_nanry    sj     
(0E	F )R()feoo99:::"&&"&&)*) )s   BBb, expected_shaper   r6   r   r  r   r   r   r4   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r4   r   r   r_   rS   r-  )r   r  r  r   r   r   r   rf   re  r  rw  rx  r   rm   r   r  r  )r4  expected_shaper*  r   rq  expected_values         rx   test_ttest_rel_axis_size_zeror    s     	A		%	%	' 03

%'<=AB/0 feoo99:::WW^?N!!>2/0 0s   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   r9   r   r6   r9   r   r   rS   r6   r   )r   r  rf   re  r  rw  rx  r   r  r  r  )r*  r4  rq  s      rx    test_ttest_rel_nonaxis_size_zeror    sv    
 	A
A__Q*Ffeoo99:::!!''0$$f-rz   ri  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:  rY   r=   r3   r   gZ?Ygi{a?g8 gC?r!  rh  r#  r$  r   )r   r  r  r  r  rf   re  rT  r   r   r&  )ri  r  rU  rq   rr   r  r   rr  s           rx   test_ttest_rel_ci_1dr    s     ))

 3
4C
A

s!
,A

q
*A ,->?)2662VVG013C //!QK
8C		 	 $	 	7BBK()1rz   ztest_fun, argsrY   c                      | | }d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr)  r   rY   r$  )r   r   r   rT  )test_funr7  r   r  s       rx   test_ttest_ci_ivr    sF    
 D/CDG	z	1 545 5 5s	   ?Ar  c                V    t        | |      ndfd	} || |       |||      z   S )Nc                     j                  |       } j                  | |      }j                  | |d      }| j                  |   }|||fS )NrS   r   r  )rd   ri   r   r  )rq   rT   mur   nobsro   s        rx   _statsz_desc_stats.<locals>._stats+  sO    JJqMWWQTW"ffQTaf0wwt}3}rz   rY  )r(   )r  r  rT   ro   r  s      ` rx   _desc_statsr  (  s5    $&JR	 BB "dfR...rz   c                    | j                  d      }| j                  d      }| j                  || g      }| j                  ||g      }| j                  ddd      }| j                  ddd      }| j                  ||g      }| j                  ||g      }t        j                  ||d      }	|	\  }
}t        |
|       t        ||       t        j                  t        ||       }	|	\  }
}t        |
|       t        ||       t        j                  |j                  |j                  d      }	t        |	j                  |       t        |	j                  |       t        j                  t        |j                  |j                         }	t        |	j                  |       t        |	j                  |       t        j                  ||d      }	t        |	j                  |       t        |	j                  |       t        j                  t        ||d       }	t        |	j                  |       t        |	j                  |       d	}t        j                  t        |
      5  t        j                  ||d       d d d        t        |j                  |j                        }t        j                  t        |
      5  t        j                  |ddi d d d        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        j                  |ddi}t        |j                  |j                         t        |j                  |j                         t        j                  |j                  |j                  dd      }t        |j                  |j                        }t        j                  |ddi}t        |j                  |j                         t        |j                  |j                         | j                  | j                        }| j                  | j!                  |j"                  d         dk(  ||      }t        j                  ||d      }	t%        |	j                  |       t%        |	j                  |       t        j                  t        ||       }	t%        |	j                  |       t%        |	j                  |       y # 1 sw Y   xY w# 1 sw Y   xY w)N	ru?g8Mѱ?r6   i   r  r   r   rS   r  r   r  rh  ri  rb  r3   rd  r  )rd   r  r  rf   	ttest_indr1   ttest_ind_from_statsr  r   r  r  r   r   r   rm   r  r   r  r2   )ro   rh  r  tr_2Dpr_2DrS  rT  rj  rk  r   r  rA  r  r7  r  r  NaNs                    rx   test_ttest_indr  5  s&    
&	'B	'	(BHHb2#YEHHb"XE;;q#s#D;;q#s#Dhhd|$Ghhd|$G
//$1
-CDAqArAr

$
$k$&=
>CDAqArAr
//'))WYYQ
7CCMM5)CJJ&

$
$k'))WYY&G
HCCMM5)CJJ&
//'7
3CCMM5)CJJ&

$
$k'7&K
LCCMM5)CJJ& IG	z	1 ;d':; wyy')),D	z	1 A""D@@A ??46:DAqAqBqDz"Ar??49=DAqAr!tAr ??799giiaVLDwyy')),D%%t@@DDNNDNN3DKK-??799giiaVLDwyy')),D%%t@@DDNNDNN3DKK- **RVV
C88BIIdjjm,13=D
//$1
-CCMM3'CJJ$

$
$k$&=
>CCMM3'CJJ$M; ;A As   #U*?U7*U47Vc            	      ^   t        j                  ddd      } t        j                  ddd      }t        j                  | |g      }t        j                  || g      }t        j                  |||g      }t        j                  |||g      }t         j                  j                  d      }t        j                  j                  ddd|      }t         j                  |d	<   t        j                  j                  ddd	|      }t        j                  d
      5  t        t        j                  ||      t         j                  t         j                  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         j                  t         j                  f       t        j                  dt         j                  gddgg      }t'        t        j                  |t        j,                  d            dt         j                  gdt         j                  gf       d d d        t         j                  |d d d d ddf<   t         j                  |d d d d ddf<   d }t        j.                  |      }t        j                  ||dd      \  }}t        j                  ||ddd      \  }	}
t1        |	|d        t1        |
 |||d      d        t        j                  ||ddd!      \  }	}
t1        |	|d        t1        |
 |||d!      d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)"Nr6   r  r  r   rR  rY   r]  r  r  r  r  r   r   )guͷ?g*,?r   r   r  r   rk  r<  r   r_   r]  r  r7   r[   c                 D    | dk  r|dk(  s
| dkD  r
|dk(  r|dz  S d|dz  z
  S r`  r   ra  s      rx   rc  z*test_ttest_ind_nan_policy.<locals>.convert  rd  rz   rS  rb  )rT   r   ri  r+  rj  rd  )r   r  r   r^  r  r  rf   r  r  rm   r  r	   r  r   r   r   r   r>  r   r   rf  r  r  rg  r   )rS  rT  rj  rk  rl  rm  r  rq   rr   r  rA  rn  rc  ro  rh  r  s                   rx   test_ttest_ind_nan_policyr    s%   ;;q#s#D;;q#s#Dhhd|$Ghhd|$Gii'734Gii'734G ))


)C

1BSsCAVVAcF

1BSsCA	X	& D5??1a02662662BCD eooavFHJ*eooq!H*eooq!I 
n,E	F 5y)415"&&)Q"&&!-	X	& 1U__Y	:RVVRVV<LM xx!RVVr1g./U__T288F+;<"&&kArvv;/	11 66GAq"R%K&&GAq!B$J W%I__WgA&IFB??7G!'-/DAqAr&AyR0u=??7G!'02DAqAr&AyR3%@SD D5 51 1s%   ?P#PCP"PP"P,c                  R   t               5 } t        j                  d      5  | j                  t        d       t        j                  dd      \  }}d d d        d d d        t        j                        sJ t        j                        sJ y # 1 sw Y   @xY w# 1 sw Y   DxY w)Nr  r  r  r   r   )r   r   r  r   r   rf   r  r4  )r   r  rA  s      rx   test_ttest_ind_scalarr    s    		 'R[[%B '

>#FGr2&1' ' 88A;;88A;;	' ' ' 's"   B0BBB	BB&z&ignore:Arguments...:DeprecationWarningc                   r   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>                  ej<                  jA                  de      d               Z!d Z"d Z#d Z$d Z%ej<                  jM                         d        Z'd  Z(d! Z)d" Z*ej<                  jA                  d#g d$      ej<                  jA                  d%d&d'g      d(               Z+ej<                  jA                  d#g d$      ej<                  jA                  d%d&d'g      d)               Z,d* Z- e.dd+,      d-        Z/y).Test_ttest_ind_permutationsr  r   r4   r5   r  rY   r   r3   r6   r  r  r9   g'^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rT   N)r  rT   	equal_varTr_   )rT   r  r3  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rT   r  r  r   )rT   r  permutationsr  r6   )updaterf   r  r   )rn   r*  r4  r  p_d	options_a	options_pstat_arv  stat_pr  s              rx   test_ttest_ind_permutationsz7Test_ttest_ind_permutations.test_ttest_ind_permutations  s     "6	!%)1>	  OOAq6I6	A;;!&&!4!&#.rz   c                    t         j                  j                  d      }d}|j                  d|d      }|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   r4   r3   r   r  )rT   r  rd  rh  rb  r`  r<   
r   r  r  rH  r  rf   r  r   r  r  )rn   r  Nr*  r4  r  res_g_abres_g_bares_l_abres_l_bares_2_abres_2_bar   s                rx    test_ttest_ind_exact_alternativez<Test_ttest_ind_permutations.test_ttest_ind_exact_alternative  s   ii##A&HHQ1HHQ1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+	-rz   c                    t         j                  j                  d      }d}|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   r4   r  r  )r   r  r  rH  rf   r  r  r  )	rn   r  r  r*  r4  rI  r  r  r  s	            rx   test_ttest_ind_exact_selectionz:Test_ttest_ind_permutations.test_ttest_ind_exact_selection/  s    ii##A&HHQKHHQKq!$q!$7q!!4q!"&&9{{dkk))){{dkk))){{dkk)))rz   c                 x   t         j                  j                  d      }|j                  d      }|j                  d      }t        j                  ||f      }t        |      t        |      }}d}t        |||d      \  }}	}	t        t        |            }
|
t        ||z   |      k(  sJ t        |      |
k(  sJ y )Nr   r4   r5   r  T)	r   r  r  rH  r  rz  r   rl   r   )rn   r  r*  r4  rh  nanbr  t_statrv  n_uniques              rx   !test_ttest_ind_exact_distributionz=Test_ttest_ind_permutations.test_ttest_ind_exact_distribution=  s     ii##A&HHQKHHQK~~q!f%QQB24r3791 s6{#5b"----6{h&&&rz   c                    t         j                  j                  d      }d}|j                  dd|      }|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   r  r3   r4   r_   r  )rT   r  r  rd  rh  rb  r   r  r  )
rn   r  r  r*  r4  r  r  r  r  r  s
             rx   #test_ttest_ind_randperm_alternativez?Test_ttest_ind_permutations.test_ttest_ind_randperm_alternativeP  sh   ii##A&HHQ1HHQN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::	<rz   c                 v   t         j                  j                  d      }d}|j                  |d      }|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   r  r5   r  r  r  rd  rh  rb  r`  r   r  r<   r3   r  r$  )
r   r  r  rH  r  rf   r  r   r  r   )
rn   r  r  r*  r4  r  r  r  r  r   s
             rx   $test_ttest_ind_randperm_alternative2z@Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative2m  s   ii##A&HHQNHHQN%*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	:rz   c                    t         j                  j                  d      }d}|j                  |d      }|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   r  r6   r6   r   )r9   r3   )r:   r4   r  r  r   r   r   r   r   rR  rS   )r   r  r  rH  rm   r  r   r   rf   r  r   r   r   r4  r  r   r  r  r   r  )
rn   r  r  r*  r4  r  r   r   r   r  s
             rx   $test_ttest_ind_permutation_nanpolicyz@Test_ttest_ind_permutations.test_ttest_ind_permutation_nanpolicy  s    ii##A&HHQNHHQN&&$&&$&&$&&$%)1=	 	G,:-LM 	5//!Q4)4C	5   	+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***#	+ 	+		5 	5	+ 	+s   :J+$F=J8+J58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`   r  r=   z'hello' cannot be usedr   hello)r  r  rT   )r   r   rf   r  r  b2r*  r4  r8  s    rx   'test_ttest_ind_permutation_check_inputszCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputs  s    :-CD 	?OODGGTWW2>	?:-CD 	@OODGGTWW3?	@:-EF 	:OODFFDFF)0q:	: 	:		? 	?	@ 	@	: 	:s#   -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 )NrY   r  r   r  r   )r   r  rH  rf   r  r  print)rn   r  r*  r4  p_valuess        rx   )test_ttest_ind_permutation_check_p_valueszETest_ttest_ind_permutations.test_ttest_ind_permutation_check_p_values  sb    IINN1b!IINN1b!??1aa8??c!"("""rz   ri  r  r  )r[   )r3   r[   c                    t         j                  j                  d      }|j                  |      }|j                  d      }t        d      }t         j                  j                  d      }t	        j
                  dd|i|}t	        j                  ||d||	      }d
 }	t         j                  j                  d      }t	        j                  ||f|	fd||d|}
t        |j                  |
j                         t        |j                  |
j                         t	        j                  ||d|      }
t        |j                  |
j                         t        |j                  |
j                  d       y )N   Nvf_aB r  r\     r(     N\Sju	 r  r_   rT   ri  r  c                 F    t        j                  | ||      j                  S NrS   rf   r  r  rq   rr   rT   s      rx   r  zFTest_ttest_ind_permutations.test_permutation_method.<locals>.statistic      %//!QT*J*T*T#Trz   )rT   r  ri  r  r2  rj  r   )r   r  r  r  rf   r  r  permutation_testr   r  r  r   )rn   ri  r  r  rq   rr   r8  r  r   r  r  s              rx   test_permutation_methodz3Test_ttest_ind_permutations.test_permutation_method  s2    ii##$45JJEJ"JJBJ#& ii##O4((;S;F;ooaVT 	Uyy$$_5$$aVY HRS1<H@FH 	S]]CMM2SZZ, ooaES]]CMM2

CJJT:rz   c                 8   t         j                  j                  d      }|j                  |      }|j                  d      }t        d      }d }t         j                  j                  d      }|j                  |j                  g}t        j                  ||ff||d|d	|}	t         j                  j                  d      }|j                  |j                  g}t        j                  dd
|i|}
t        j                  ||d||
      }t        |j                  |	j                         t        |j                  |	j                         t        j                  dddi|}
t        j                  ||d||
      }t        |j                  |	j                         t        |j                  |	j                         t        j                  ||d|      }	t        |j                  |	j                         t        |j                  |	j                  d       y )Nr  r  r\   r  r  c                 F    t        j                  | ||      j                  S r  r  r  s      rx   r  zFTest_ttest_ind_permutations.test_monte_carlo_method.<locals>.statistic  r  rz   r  r_   )r  r  rT   ri  r  r  r  r  r  rj  r   )r   r  r  r  r  rf   monte_carlo_testr  r  r   r  r  r   )rn   ri  r  r  rq   rr   r8  r  r  r  r  r   s               rx   test_monte_carlo_methodz3Test_ttest_ind_permutations.test_monte_carlo_method  s    ii##$45JJEJ"JJBJ#& 	Uii##O4""C$7$78$$aV H	PR1<H@FH ii##O4""C$7$78'':C:6:ooaVTS]]CMM2SZZ, ''FOFvFooaVTS]]CMM2SZZ, ooaES]]CMM2

CJJT:rz   c                     d}t        j                  t        |      5  t        j                  g dg dd       d d d        y # 1 sw Y   y xY w)NzC`method` must be an instance of `PermutationMethod`, an instance...r   r}  rP  	migratoryr  )r   r   r   rf   r  r  s     rx    test_resampling_input_validationz<Test_ttest_ind_permutations.test_resampling_input_validation  s>    W]]:W5 	FOOIyE	F 	F 	Fs   AAUses NumPy for pvalue, CIcpu_onlyr   c                    |j                  | j                        |j                  | j                        }}d}t        |      rt	        j
                  ||d       n<t        j                  t        |      5  t	        j
                  ||d       d d d        d}t        j                  j                  d      }t	        j                  |      }t        |      rt	        j
                  |||       y 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)	Nz;Use of `permutations` is compatible only with NumPy arrays.rY   r  r   z?Use of resampling methods is compatible only with NumPy arrays.l   /gGy r  r  )rd   r  r  r+   rf   r  r   r   r  r   r  r  r  )rn   ro   r  r  r  r  r  s          rx   %test_permutation_not_implement_for_xpzATest_ttest_ind_permutations.test_permutation_not_implement_for_xp	  s    DGG$bjj&9BOB<OOB42'B 9BR89 Tii##$45((S1B<OOB622'B 7Bv67 79 97 7s   8D1D=1D:=E)0r   r   r   r  r   r  r=  r  r   r*  r4  r  r  r  b3rf   r  r  rh   r   rS  rT  r  p_d_genp_d_bigr   r  r  paramsr   r   thread_unsafer  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r   rz   rx   r  r    st   
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:# [[],LM[[Wug&67; 8 N;4 [[],LM[[Wug&67; 8 N;BF
 t,GH7 I7rz   r  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   r6   r5   r8   r   r7   r9   r3   rT   r`   )r3   r4   r   r  r   r   r   r   r3   r   r_   r6   r   r5   r   r   r   c              3   2   K   | ]  }t        |        y wr  r  .0r  s     rx   	<genexpr>z=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>A  s      9aq 9   )r   r  r=  rH  rf   r  r   r  r  r_  tiler  r  r   r   )rn   r  r  r*  r4  r   r  rW  rJ  r  r  r  rq   rr   r  
statisticspvaluesindicesxiyir  s                        rx   test_ttest_many_dimsz*Test_ttest_ind_common.test_ttest_many_dims"  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,rz   )r  r  r  rT   r_   c                 R   t         j                  j                  d      }|j                  dd      j	                  d      }|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)Nl   AoI;rY   )r6   r4   rY   r  r  r   r3   r4   r7   rS   r  r  z'invalid value encountered in less_equalr  rT   )r   r  r  integersr  rm   r4  r"  r   r  r   r   rf   r  r  r	   r  )rn   r  rT   r  r*  r4  r  r   r   p_nansstatistic_nanss              rx   test_nans_on_axisz'Test_ttest_ind_common.test_nans_on_axisK  sP    ii##$9:LL*L-44W=LL*L-44W=VV!Q
VV!Q
 88BFF1q5t45   	;CX)F 	;JJ~@BJJ~'@A//!Q:T:T:C		; 	;
 #**%68,#--0>84	; 	; 	; 	;s%   F$AF*FF	FF&N)	r   r   r   r   r   r/  r  r  r
  r   rz   rx   r  r    s     [[[[VsA&N'-rlB&8!B  D [[[4-"-}!=  ?!-?D !-F [[VsA&N'-rlB&8!B  D [[Vb!W-5 .D5rz   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dd      d        Zej
                  j                  d g d!      d"        Zy#)$Test_ttest_trimr}  r  r  g@g9(?ger  )r  g33333`@r[   g33333^@g(\P@r  gfffffڇ@gBM)u?g]@gyd?g	s5v@g{Gz?r  r  r  r   ffffff?r   r  r  r  r  r  rB   g@r  r?   r<   r  g333333@r  r;  g@r  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rf   r  r   )rn   r*  r4  r  rh  r  r  r  s           rx   test_ttest_compare_rz$Test_ttest_trim.test_ttest_compare_r}  s6    @ "OOAqtuM	6	2E2/rz   c                     g d}g d}t        j                  ||dd      \  }}t        |dd       t        |d	d       y )
N)r[   rW   r  r  r  ,   r[   rW   r  r  r  r  )rb   r  rW   r[   r     r  rb   r  rW   r[   r  r  r  g
ףp=
?Fr  gRbv?rl  r$  gOi?r  rn   r*  r4  r  r  s        rx   test_compare_SASz Test_ttest_trim.test_compare_SAS  sA     =D "OOAqseL	6t4	8$7rz   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?r  r$  g^Nr  r  s        rx   test_equal_varzTest_ttest_trim.test_equal_var  s@    & DC!OOAqr:	6 3%@	#5EBrz   z	alt,pr,tr))rd  gjΜ>5?r  )rb  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  ri  r  r$  Nr  )rn   rb  r  rh  r*  r4  r  r  s           rx   test_alternativesz!Test_ttest_trim.test_alternatives  sE     DC!OOAqrU8;=	6/	2E2rz   c           	         d}t        t        |      5  d}t        j                  t        |      5  t        j                  ddgddgdd       d d d        d d d        t        t        |      5  d	}t        j                  t        |      5  t        j                  ddgddgddd
       d d d        d d d        y # 1 sw Y   pxY w# 1 sw Y   txY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nz>Use of `permutations` is incompatible with with use of `trim`.r   z5Arguments {'permutations'} are deprecated, whether...r   r3   r4   r  )r  r  z9Arguments {.*'random_state'.*} are deprecated, whether...)r  r  r  )r   r  r   r>  DeprecationWarningrf   r  )rn   r   r  s      rx   test_errors_unsupportedz'Test_ttest_trim.test_errors_unsupported  s    P.e< 	IMG0@ IAARaHI	I
 .e< 	0QG0@ 0AARa-.00	0 	0I I	I 	I0 0	0 	0sF   CB?C1C#C.C#?C	CCC 	C##C,Tr  r  c                 *   d}|j                  d      |j                  d      dz   }}t        |      rt        j                  ||d       y t	        j
                  t        |      5  t        j                  ||d       d d d        y # 1 sw Y   y xY w)Nz3Use of `trim` is compatible only with NumPy arrays.rY   r   r  r  r   )r   r+   rf   r  r   r   r  )rn   ro   r  r*  r4  s        rx   r  z5Test_ttest_trim.test_permutation_not_implement_for_xp  so    Gyy}biimAo1B<OOAqs+2'B 013/0 0 0s   'B		Br  )gɿr<   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   r3   r  )r   r   rf   r  )rn   r  r   s      rx   test_trim_bounds_errorz&Test_ttest_trim.test_trim_bounds_error  s>    A:U3 	7OOQFQF6	7 	7 	7s	   :AN)r   r   r   r  r   r   r  r  r  r  r  r"  r   r  r%  r   rz   rx   r  r  i  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 0 t,GH0 I0 [[V\27 37rz   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<   dddej                  ej                  ged<   dddej                  ej                  ged<   dddej                  ej                  ged<   dd d!ej                  ej                  ged"<   dd d#ej                  ej                  ged$<   dd d%ej                  ej                  ged&<   ej                  j                  d'g d(      ej                  j                  d)d*d+g      ej                  j                  d,d-d.g       ed/d01      d2                             Zy3)4Test_ttest_CI)r4   r3   r3   r6   )r  )gͿe13@gv7?gę"Ͽg8 {M(?rk  r(  r)  gv7?gx_?r|  g
/?gD .ɿ)r3   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   r*  r+  g?JJ?gF?)r   r   r   g{?gads2ѿ)r3   r   r   gs"%οr  gW"?)r   r   r   gW"?r   r   r   g:T'?)r3   r   r   g:пrW   g0:5?r  g0:5?r<  g be?)r3   r   r   ri  r  r  FTr  r   r  r  r  r  c                    |r|rt        j                  d       |r t        |      st        j                  d       t        j
                  j                  d      }|j                  |j                  d            }|j                  |j                  d            }t        j                  |||||      }ddd	d
}	| j                  |	|   t        |      t        t	        j                  |            f   }
|
\  }}}}}d}t        |j                  |j                  |      |       t        |j                  |j                  |      |       t        |j                   |j                  |      |       |s`|j#                  d      }t        |j$                  |j                  |      |       t        |j&                  |j                  |      |       y y )Nz3Discrepancy in `main`; needs further investigation.z*`trim` is only compatible with NumPy inputl   'Nk' rZ   r\   )ri  r  r  r   r   r3   r  rz  rj  r  )r   xfailr+   r  r   r  r  rd   rf   r  r   r  ceilr1   r  r&  r  rT  rW  rX  )rn   ri  r  r  ro   r  rq   rr   r   rM  r  r  r&  r  rW  rX  rk  rr  s                     rx   test_confidence_intervalz&Test_ttest_CI.test_confidence_interval)  sg   
 LLNOKKDEii##$78JJszz"~&JJszz"~&ooa(1> &'a@ff\+.IBGGDM@RRS+.(	2vsDrzz)'<4H

2T:

BJJv$6TB((-BBFFBJJsO$?BGGRZZ%5DA rz   N)r   r   r   r   r  r   r  rm   r   r   r  r   r0  r   rz   rx   r'  r'    s   < 	|$ANAgJibffWlKAgJiM266JAgJLAgJibffWlKAgJiL"&&IAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ[[],LM[[[5$-8[[VaX.k*JKB L / 9 NBrz   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   r6   r5   r4   r   r7   r9   r3   r`   rS   r  )N.r  c              3   2   K   | ]  }t        |        y wr  r  r  s     rx   r  z.test__broadcast_concatenate.<locals>.<genexpr>T  s     5585r  )r   r  r=  rH  r   r  r   r  )
r*  r4  r,  indexr  rW  rJ  r/  rT  rU  s
             rx   test__broadcast_concatenater4  J  s1    IINN1
		q!Q1a(A
		q!Q1%A1vB/A
%&A
)01A5QWW56 L 1aAqqwwr{?Q1aA%&!Aq!Q1,<*====Q1a!''"+oq!34!Q1a:J8KKKKLrz   c                   b   e Zd Z eej
                        d        Zej                  j                  d      ej                  j                  d      d               Z
d Zd Zej                  j                  d ej                  d      d	f ej                  d
      dfg      d        Zd Zd Zy)TestTTestIndc                    |j                  g d      }|j                  g d      }|j                  d      }|j                  d      }t        j                  ||d      \  }}t        ||       t        ||       t        j                  t        ||      ddi\  }}t        ||       t        ||       |j                  g d      }|j                  d	      }|j                  d
      }t        j                  ||d      \  }}t        ||       t        ||       t        j                  t        ||      ddi\  }}t        ||       t        ||       |j                  d      }|j                  d      }|j                  d      }|j                  d      }	|j                  || g      }
|j                  ||g      }|j                  ddd      }|j                  ddd      }|j                  ddd      }|j                  ||g      }|j                  ||g      }t        j                  ||dd      \  }}t        ||       t        ||       t        j                  t        ||      ddi\  }}t        ||       t        ||       t        j                  ||dd      \  }}t        ||       t        ||	       t        j                  t        ||      ddi\  }}t        ||       t        ||	       t        j                  |j                  |j                  dd      }t        |j                  |
       t        |j                  |       t        |j                  |j                        }t        j                  |ddi}t        |j                  |
       t        |j                  |       t        j                  ||dd      }t        |j                  |
       t        |j                  |       t        ||d      }t        j                  |ddi}t        |j                  |
       t        |j                  |       y )Nry  r  g9(?geFr  r  r  gJ?g9ʿr  g@[?gωұ?ghG?r   r  r  r6   r  r   r  rS   )rd   rf   r  r1   r  r  r  r  r   r  r  )rn   ro   r*  r4  r  rh  r  rA  	tr_uneq_n	pr_uneq_nr  r  rvs3rT  rS  rj  rk  r   r7  s                      rx   test_ttest_ind_with_uneq_varz)TestTTestInd.test_ttest_ind_with_uneq_var^  s    JJ|$JJ'ZZ+,ZZ-.q!u5122));q!+<NN122JJ'(ZZ+,ZZ-.q!u5122));q!+<NN122 ZZ*+JJ23	ZZ+,JJ23	"rc#"b"{{1c2&{{1c3'{{1c3'((D$<(((D$<(tTUC122));tT+BTeT122tTUC19%9%));tT+BTeT19%9%oogiieLu-

E*799gii0(($@%@u-

E*oogwQ%Hu-

E*7G!4(($@%@u-

E*rz   0ignore:divide by zero encountered:RuntimeWarning/ignore:invalid value encountered:RuntimeWarningc                    |j                  d      }|j                  d      }t        |t        d      5  t	        j
                  ||d      \  }}d d d        t        |j                  |j                                t        |j                  d             t        j                  d      5  t	        j
                  ||d      \  }}t        ||j                  |j                               t        ||j                  |j                               |j                  d	|j                  gd
d	gg      }t	        j
                  ||j                  d      d      \  }}t        ||j                  dt        j                  g             t        ||j                  dt        j                  g             d d d        y # 1 sw Y   qxY w# 1 sw Y   y xY w)Nr4   r  r   Fr8  r   r  r  r   r_   r]  r   )r  r  r)   r   rf   r  r2   rd   r  r   r  rm   )rn   ro   rq   rr   r  rA  rn  s          rx   test_ttest_ind_zero_divisionz)TestTTestInd.test_ttest_ind_zero_division  sc    HHQKGGAJN2KL 	:??1a59DAq	: 	2::rvvg./2::b>*[[X& 		9??1a59DAqArzz"&&12Arzz"&&12 ::266{RG45D??4&)9UKDAqArzz2rvv,78Arzz2rvv,78		9 		9	: 	:		9 		9s   G 0DG G
G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   rr  r   r   r#  r$  r   )g8HgW@?)r   rm   rf   r  r   r  r  )rn   rq   rr   r  r  rt  s         rx   test_ttest_ind_nan_2nd_argz'TestTTestInd.test_ttest_ind_nan_2nd_arg  s    VVS#s# __Qf5__Qf5r||m%@		29959 __Q!"&BU+ 	G"	$rz   c                 4   t        |      r]t        j                  t        t              5  t        j                  |j                  g       |j                  g             }d d d        n4t        j                  |j                  g       |j                  g             }t        t
        j                  j                        sJ |j                  |j                        d   }t        |j                  |       t        |j                  |       y # 1 sw Y   zxY w)Nr   r   )r+   r   r>  r   r   rf   r  rd   r  rw  rx  rm   r2   r  r  rn   ro   r   r  s       rx   #test_ttest_ind_empty_1d_returns_nanz0TestTTestInd.test_ttest_ind_empty_1d_returns_nan  s     B<08MN FoobjjnbjjnEF F //"**R."**R.AC#u::;;;jj $s+

C(F Fs   5DDrz  r{  r  r|  r}  c                    |j                  d      }|j                  ||j                        }t        j                  j                         5 }|j                  t        t               t        j                  ||d      }d d d        t        t        j                  j                        sJ |j                  ||j                        }t!        |j"                  |       t!        |j$                  |       y # 1 sw Y   yxY w)Nr  rH   r_   rS   r-  )r  rd   rI   r   r  r   r   r   r   rf   r  r  rw  rx  r   rm   r2   r  r  )rn   r4  r  ro   r*  r   r   r  s           rx   test_ttest_ind_axis_size_zeroz*TestTTestInd.test_ttest_ind_axis_size_zero  s     HHYJJqJ(ZZ))+ 	1sJJ)+@A//!QR0C	1 #u::;;;BFFC~6

N3	1 	1s   3C88Dc                 0   |j                  d      }|j                  d      }t        j                  ||d      }t        |t        j                  j
                        sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ y r  	r  rf   r  r  rw  rx  r  r  r  rn   ro   r*  r4  r   s        rx    test_ttest_ind_nonaxis_size_zeroz-TestTTestInd.test_ttest_ind_nonaxis_size_zero  s|    
 HHYHHYooa+#u::;;;}}""V+++zz6)))rz   c                 0   |j                  d      }|j                  d      }t        j                  ||d      }t        |t        j                  j
                        sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ y )N)r   r8   r   r  r   rS   r  rJ  rK  s        rx   2test_ttest_ind_nonaxis_size_zero_different_lengthsz?TestTTestInd.test_ttest_ind_nonaxis_size_zero_different_lengths  s|     HHYHHYooa+#u::;;;}}""V+++zz6)))rz   N)r   r   r   r0   rf   r  r<  r   r   r   rA  rC  rF  r  r   r  rH  rL  rN  r   rz   rx   r6  r6  \  s    u112N+ 3N+` [[: [[999,$*) [[0&bhhy16:%RXXi0&9;<4<4
**rz   r6  c                       e Zd Zej                  j                  dd      d        Zej                  j                  d      d        Zy)TestTTestIndFromStatsTz"Other backends don't like integersr   c                    |j                  ddg      |j                  ddg      }}|j                  ddg      |j                  ddg      }}|j                  ddg      |j                  dd	g      }}t        j                  ||||||       y )
Nr   r3   r4   r5   r6         r     )rd   rf   r  )rn   ro   mean1mean2std1std2nobs1nobs2s           rx   test_gh5686z!TestTTestIndFromStats.test_gh5686  s     zz1a&)2::q!f+=uZZA'QF);dzz3*-rzz3*/Eu""5$udEJrz   r>  c           	         |j                  d      }|j                  d      }|j                  |j                        }t        j                  ||||||d      }t	        |j
                  |       t	        |j                  |       y )Nr   r   Fr8  )rd   rm   rf   r  r2   r  r  )rn   ro   zerosixr  r   s         rx   %test_ttest_ind_from_stats_inputs_zeroz;TestTTestIndFromStats.test_ttest_ind_from_stats_inputs_zero$  sk     zz"~jjnjj ((tS$c38:s+

C(rz   N)	r   r   r   r   r   r   r[  r   r_  r   rz   rx   rP  rP    sV    [[!!$'K " MKMK [[ QR) S)rz   rP  TzTest uses ks_1sampr  r>  c                    t         j                  j                  d      }| j                  |j	                  d            }| j                  |j	                  d            }|j                  d      }t        j                  ||dd      }t        j                  |j                        }t        j                  |t        j
                         j                        j                  d	kD  sJ t        t        j                  ||      |d
       t        j                  ||dd      }t        j                  |j                        }t        j                  |t        j
                         j                        j                  d	kD  sJ t        t        j                  ||      |d
       | j                  g d      | j                  dg      }}t        j                  ||d      }t        |       | j                  k(  rdnd}t        |j                   | j                  d      |       t        |j                  | j                  d      |       y )Nl   bQ )r2  r3   r  )r2  r   r  Tr_   )r  rT   r  r  r$  )r3   r4   r6   r=   r8  rl  r  gzNd?rj  gJ?)r   r  r  rd   r  rm  rf   r  r  r  r  r   quantiler-   r   r1   r  )ro   r  rq   rr   rb  r   r  rk  s           rx   test_ttest_uniform_pvaluesrb  0  s    ))


0C


3::::./A


3::::./AA
//!Q$R
8CZZ

#F>>&%--/"5"56==CCCBKK*AD9
//!Q$R
8CZZ

#F>>&%--/"5"56==CCCBKK*AD9
 ::i "**cU"3qA
//!Q$
/C#B'2::545DCMM2::o#>TJCJJ

> :Frz   c                     |j                  |dk(        }|j                  |dk(        }| dk  |z  | dkD  |z  z  }|j                  ||dz  d|dz  z
        S )Nrb  rd  r   r3   r   )rd   r  )r  rA  rb  ro   rb  rd  r  s          rx   _convert_pvalue_alternativerd  N  sc     ::cVm$Djj	)*G
a%4QUg-.A88AqsA!G$$rz   r  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rY   r  r  r6   rY   r  r   r   rS   r   r+  rj  r  r3   )r   r   r   r   rd  rh  rb  r  r@  r.  )rf   r  r  rd   r  r  r1   r   r  r2   rf  r  rd  r   r  r  rm   r  )ro   r)  r*  n3rvn1r"  r  r  r  p2r  p3r  rA  rh  r  pcr   rn  s                      rx   test_ttest_1samp_newrl  W  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)r6   rY   r  r6   rY   r  r   r3   r   r4   r5   r9   r   r   r   rd  r  rb  )rf   r  r  rd   rm   r  rd  r1   )
ro   r)  r*  rg  rh  rh  r  r  rA  rk  s
             rx   test_ttest_1samp_new_omitrn    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rz   r  r  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 |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   5xY w)Nl   iI}pC )r   r  r  r  z%`popmean.shape\[axis\]` must equal 1.)r6   r3   r  r   r  )r"  rT   )r6   r   r  )r6   r  rS   g?rH   )r   r  r  rd   r   r   r   rf   r  r  r  rT  r.  r  r   r  r1   )	ro   r  rq   r  r"  r   r/  r  r  s	            rx   test_ttest_1samp_popmean_arrayrp    su    ))

 3
4C


$A


1A6Gjj45G	z	1 7!W267 jj45G


AwR
8C==')))""$DAq
qr"A
qr"A


Aqr
2C
//"**T*<cjj>N>N
OCCJJ$


Aqr
2CCJJ$!7 7s   GGc                   x    e Zd Zej                  j                  d      d        Zd Zd Zd Z	d Z
d Zd Zd	 Zy
)TestDescriber  c                    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   r   r  r   r   rf   describerd   r2   rm   )	rn   ro   r   rU  r  rT  r  skkurts	            rx   test_describe_scalarz!TestDescribe.test_describe_scalar  s     	GCkk(8<	GJJ~'JK$)NN2::b>"3E$F!Ar1aT	G 	G Avv1rzz#/1rzz#/2::c?+2::bff-.BJJrvv./bjj01	G 	G 	G 	Gs#   EAE(EE	EEc                    |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 )Nr1  r3   r5   r   r6   r   r   r   r   r   r   r   r   ffffff?r}  r}  r}  )r  r  r  r  H,p ?r5   TUUUUUr   r   rj  rS   )r  r  r   rd   rf   rt  r2   r1   r   rI   epsr   rn   ro   rq   ncmmcmcvcskckurtcrU  r  rT  r  ru  rv  s                  rx   test_describe_numbersz"TestDescribe.test_describe_numbers  s   IIrwwv(;<=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$rz   c                 >   t        j                  d      }t         j                  |d<   d\  }}d}d}d}d}t        j                  |d	      \  }}	}
}}}t        ||       t        |	|       t        |
|       t        ||       t        ||       t        ||d
       y )Nr   r:   )r:   )r   r   r   rC   r   gGzr   r   r\   r  )r   r   rm   rf   rt  r   r   )rn   rq   r  r  r  r  r  r  rU  r  rT  r  ru  rv  s                 rx   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:rz   c                    |j                  d      }|j                  |dk(  |j                  |      }t        |      r<t	        j
                  t        d      5  t        j                  |d       d d d        n;t	        j
                  t        d      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                          nt        |      r<t	        j
                  t        d      5  t        j                  |d       d d d        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   yxY w# 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   mxY w# 1 sw Y   y xY w)Nr   r:   not supported for lazy arraysr   r   r   r   rR  r   rY   r   r   r   z8nan_policy='omit' is incompatible with non-NumPy arrays.r   r   )r   r  rm   r*   r   r   r|  rf   rt  r   rd   r2   r+   r  )rn   ro   rq   rU  r  rT  r  ru  rv  r  r  s              rx   test_describe_nan_policy_otherz+TestDescribe.test_describe_nan_policy_other  s   IIcNHHQT2661%y0OP 6qW56 6 z1PQ 6qW56 !&q[ I2q!Rjj $Bww1s#1s#33C c"B<..01y0OP 5qV45 5 QGz9 5qV45 1]]:W5 	3NN12	3 	376 66 6 5 55 5	3 	3s<   H#H0H=I	I#H-0H:=I	IIc                 p    t        j                  t        j                  d            }d}t	        ||       y )NrL   )r  minmaxri   variancer  r  )rf   rt  r   r   r   )rn   r  r   s      rx   test_describe_result_attributesz,TestDescribe.test_describe_result_attributes+  s)     		".S
FJ/rz   c                 J   |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 )Nr1  ry  r   r6   rz  r{  r|  )Q?r  r  r  r~  r5   r  r   r  r   r  r  r   rd   rf   rt  r2   r1   r  s                  rx   test_describe_ddofzTestDescribe.test_describe_ddof2  s   IIrwwv(;<=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$rz   c                 *   |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 )Nr1  ry  r   r  r   r}  ga+?gE,p ?gUUUUUUrS   r   r   r  r  s                  rx   test_describe_axis_nonez$TestDescribe.test_describe_axis_noneC  s    IIrwwv(;<= zz#

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

./ !&qt <2q!RBww1s1v&1s1v&22C e$rz   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   rf   rt  rd   rn   ro   r  s      rx   test_describe_emptyz TestDescribe.test_describe_emptyY  s>    0]]:W5 	+NN2::b>*	+ 	+ 	+s   %AAN)r   r   r   r   r   r   rw  r  r  r  r  r  r  r  r   rz   rx   rr  rr    sI    [[ VW2 X2%4;"!3F0%"%,+rz   rr  c                   Z    e Zd Zej                  j                  dg d      d        Zd Zy)NormalityTestsri  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   >   rb  rd  >   skewtestkurtosistestrb  r3   r  ri  z,`alternative` not available for `normaltest`)r  r_   r   r   r3   r   r  r_   r   r   r3   r   r  r_   r   r   r3   r   r  r_   r   r   r3   r   r  r  )		test_namerE  rf   rd   case_refr   r  r1   r   )rn   ri  ro   r  r  ref_statisticr$  r8  rq   r   res_statistic
res_pvalues               rx   test_against_RzNormalityTests.test_against_Ra  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@rz   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)Nr  rH   r  r  r  )rE  rf   r  r   rd   rm   rI   r  r   r  r2   r  r  )rn   ro   r  rq   r  r   s         rx   test_nanzNormalityTests.test_nan  s    5$..1IIcNjjqwwj/HHQ"Wc1%[[* 	-1+CCMM3/CJJ,	- 	- 	-s   ?5B==CN)r   r   r   r   r   r  r  r  r   rz   rx   r  r  _  s.    [[],LMA NA<	-rz   r  c                        e Zd ZdZdZd Zd Zy)TestSkewTestr  )gvO?gbH`?c                     t         j                  j                  ddd      }|j                  |      }t        j                  |d      j
                  }t        ||j                  d|j                        d	
       y )Nr   r2  {   )r*  r  r  rd  rh  r   rH   g?̔>r$  )rf   skewnormr  rd   r  r  r1   rI   )rn   ro   r  a1_xprm  s        rx   test_intuitivezTestSkewTest.test_intuitive  s]    ^^!%cB

2~~e;BBbjjEKKj@tLrz   c                    t        j                  |j                  d             |j                  d      }t        |      rt        nd}t        j                  t        |      5  t        j                  |      }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)Nr   r   z1`skewtest` requires at least 8 valid observationsr   )rf   r  r   r+   r   r   r>  r   rd   rm   r2   r  r  )rn   ro   rq   r  r   r  s         rx   "test_skewtest_too_few_observationsz/TestSkewTest.test_skewtest_too_few_observations  s     	ryy~&IIcN,4RL(K 	\\,G< 	-..#C**RVV$CCMM3/CJJ,		- 	- 	-s   $AC

CN)r   r   r   r  r  r  r  r   rz   rx   r  r    s    I9HM-rz   r  c                   &    e Zd ZdZdZd Zd Zd Zy)TestKurtosisTestr  )gglg2J@?c                     t         j                  j                  dd      }|j                  |      }t        j                  |d      j
                  }t        ||j                  d|j                        d	       y )
Nr2  r  )r  r  rd  rh  r   rH   r#  r$  )rf   laplacer  rd   r  r  r1   rI   )rn   ro   r  a2_xprm  s        rx   r  zTestKurtosisTest.test_intuitive  s]    ]]E<

2!!%Y?FFbjjEKKj@uMrz   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)
r  r   :   r8   r   )   r   r   r      rH   r   r  )r   hstack	enumerater   rd   r   rf   r  )rn   ro   r  r  r,  rq   s         rx   test_gh9033_regressionz'TestKurtosisTest.test_gh9033_regression  so     7II61BCArwwq!}CDJJq

J+!!!$Q'$... Ds    B
c                    t        j                  |j                  d             t        |      rt        nd}t        j                  t        |      5  t        j                  |j                  d            }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)NrL   z(`kurtosistest` requires at least 5 validr   r   )rf   r  r   r+   r   r   r>  r   rd   rm   r2   r  r  )rn   ro   r  r   r  s        rx   &test_kurtosistest_too_few_observationsz7TestKurtosisTest.test_kurtosistest_too_few_observations  s     	299S>*,4RL(B 	\\,G< 	-$$RYYr]3C**RVV$CCMM3/CJJ,		- 	- 	-s   A,CCN)r   r   r   r  r  r  r  r  r   rz   rx   r  r    s    I:HN/-rz   r  c                       e Zd ZdZdZd Zy)TestNormalTest
normaltest)gاc@g?c                 ~   t        j                  |j                  d             t        j                  t
              5  t        j                  |j                  d            }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY w)Nr   r   )rf   r  r   r   r>  r   rd   rm   r2   r  r  rE  s       rx   test_too_few_observationsz(TestNormalTest.test_too_few_observations  s    2' \\,- 	-""299R=1C**RVV$CCMM3/CJJ,		- 	- 	-s   A,B33B<N)r   r   r   r  r  r  r   rz   rx   r  r    s    I9H	-rz   r  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   r3   rY   ri  r  c                     t        j                  | j                  | j                  |      j                  }t        j
                  | j                  | j                  d|      j                  }t        ||       y )Nrh  F)use_continuityri  )rf   ranksumsrq   rr   r  mannwhitneyur   )rn   ri  r  r  s       rx   test_ranksums_result_attributesz,TestRankSums.test_ranksums_result_attributes  s\     ~~dffdff*577=v 	!!$&&$&&.9;;A6 	d#rz   c                 p    t        j                  | j                  | j                        }t	        |d       y )Nr  )rf   r  rq   rr   r   r  s     rx   test_ranksums_named_resultsz(TestRankSums.test_ranksums_named_results  s%    nnTVVTVV,C!89rz   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   rh  )r   r   rf   r  rq   rr   r8  s    rx   r  z"TestRankSums.test_input_validation  s>    :-KL 	ANN466466x@	A 	A 	As   -AAN)r   r   r   r   r  r=  rH  rq   rr   r   r   r  r  r  r  r   rz   rx   r  r    sZ    IINN199>>!R DAq[[],LM$ N$:Arz   r  c                   V    e Zd Zd Z ed      d        Z edd      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   )rd   rf   jarque_berar1   r  r  )rn   ro   rq   r  r   s        rx   test_jarque_bera_against_Rz)TestJarqueBera.test_jarque_bera_against_R  s^    
;JJqMjj*O<="s1v.

CF+rz   Tr_  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  r3   P  )r   r  r=  r  rf   r  r  tuplerh   r  r  )rn   ro   rq   jb_test1JB1r  jb_test2JB2ri  jb_test3JB3rj  s               rx   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Vrz   array_api_strictzNoisy; see TestSkewr  c                 F   |j                  g       }t        j                  t        t              5  t        j                  |      }|j                  |j                        }t        |j                  |       t        |j                  |       d d d        y # 1 sw Y   y xY wrJ  )rd   r   r>  r   r   rf   r  rm   r2   r  r  )rn   ro   rq   r   r  s        rx   %test_jarque_bera_too_few_observationsz4TestJarqueBera.test_jarque_bera_too_few_observations  sr    JJrN\\,4IJ 	-##A&C**RVV$CCMM3/CJJ,		- 	- 	-s   ABB 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rW  )r3   r  r  rS   r  r   r   )r   r  r  rd   rf   r  rh   r2   r  r  r1   r  r   )rn   ro   r  rq   r   r  s0r  s1r  resTs              rx   r@  zTestJarqueBera.test_axis  s=   ii###3JJszzwz/0-

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

CJJ/*""1QT7+B""1QT7+BrxxR'9:

BHHb"X$67  1-t~~6

DKK0rz   N)r   r   r   r  r   r  r  r@  r   rz   rx   r  r    sE    , d#
W $
W (1FG- H-1rz   r  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@rW   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 )	Nrb  rh  rd    r  g=_A?r  glPz.?rf   r  re   Yr   r   r
   r  	rn   u1r  u2ri  u3rj  u4p4s	            rx   test_mannwhitneyu_one_sidedz,TestMannWhitneyU.test_mannwhitneyu_one_sided>  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Rrz   c                 8   t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||       t	        |d       t	        |d       t        |d| j                         y )Nr`  rh  r  r  glPz.?r  rf   r  re   r  r   r
   r  rn   r  r  r  ri  s        rx   test_mannwhitneyu_two_sidedz,TestMannWhitneyU.test_mannwhitneyu_two_sidedN  sv    ##DFFDFFLB##DFFDFFLBRRRB 2(,(8(8	:rz   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 )
NFrb  rh  rd  r  r  gii5?r  g22?r  r  s	            rx   &test_mannwhitneyu_no_correct_one_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_one_sidedX  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Srz   c                 <   t        j                  | j                  | j                  dd      \  }}t        j                  | j                  | j                  dd      \  }}t	        ||       t	        |d       t	        |d       t        |d| j                         y )NFr`  rh  r  r  g22?r  r  r  s        rx   &test_mannwhitneyu_no_correct_two_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sidedl  s    ##DFFDFFE0;=B##DFFDFFE0;=B 	RRRB 4(,(8(8	:rz   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   rb  rh  )     @g ?չ>rd  )r  g&)E?r`  )r  g?չ?)r   r   r   rf   r  r?  s      rx   test_mannwhitneyu_onesz'TestMannWhitneyU.test_mannwhitneyu_onesx  s    HH . /& HH & ' 	**1aVD:	< 	**1aYG2	4**1a[I5	7rz   c                 x    d}t        j                  | j                  | j                  d      }t	        ||       y )Nr  rb  rh  )rf   r  re   r  r   rE  s      rx   #test_mannwhitneyu_result_attributesz4TestMannWhitneyU.test_mannwhitneyu_result_attributes  s-    ,
  VDC,rz   N)r   r   r   re   r  r  r  r  r  r  r  r  r   rz   rx   r  r  ,  s9    	-A	NA KS :T(
:)7V-rz   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  r  rZ  g333333@ffffff@g333333@r?   r  皙	@r   r?  r?  r>   r  ffffff@ @333333?r	  r=   ?r	  r  r  r  r  r  r  r<   r  r  r  r   g/"?r6   r  )r   rf   pointbiserialrr   r   r  r  )rq   rr   r   r   s       rx   test_pointbiserialr	    se    	A	&A ,,Q215wB +J


q!
$CZ(#--0rz   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   r3   r5   )r8   r  r8   r   )r   r4   r7   r:   )r  r   r   r  r6   )㪪@I?g&>ڿr		  r	  )5@㪪@gIr	  r
	  r3   r9   r  rZ   )r6   rZ   r:   r4   r3   r3   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r5   )
r   r   rf   obrientransformr   r   r   r   r  r  )r  r  r  r  r  r*  r4  r,  rq  valuesrepsrh  transformed_valuess                rx   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=rz   rz  )rT   rI   rk  weightsc                 ,   |xs | j                   }t        |      dk(  r|\  }}n|\  }}	}| j                  ||      }| j                  ||      }|| j                  ||      n|}t        |      dk(  r|fn|	f} |||||d}
t        |
||       y )Nr3   rH   )rT   rI   r	  rj  )r   rz  rd   r1   )ro   mean_funrT   rI   rk  r	  r7  
array_liker  rA  rq   s              rx   check_equal_xmeanr	    s     RZZE
4yA~"
G!%
AwJe4Jjjj.G292Ebjjj.7GINJ=QD$T@AAwT*rz   c                  8    t        | dt        j                  i|S Nr	  )r	  rf   r  r7  r8  s     rx   check_equal_gmeanr	        dCU[[CFCCrz   c                  8    t        | dt        j                  i|S r	  )r	  rf   hmeanr	  s     rx   check_equal_hmeanr	    r	  rz   c                  8    t        | dt        j                  i|S r	  )r	  rf   pmeanr	  s     rx   check_equal_pmeanr 	    r	  rz   c                      e Zd Zej                  j                  d      d        Zd Zej                  j                  d      ej                  j                  d      d               Zej                  j                  d      d        Z	d Z
d	 Zej                  j                  d      d
        Zd Zej                  j                  d      d        Z edd      d        Zd Zd Zd Zed        Zy)	TestHMeanr  c                 ,    g d}d}t        |||       y N)r   r   r3   r   r  r	  rn   ro   r*  r  s       rx   test_0zTestHMean.test_0  s    !W,rz   c                 T    g d}d}t        |||       g d}d}t        |||       y )NrM  g=b#A@r  rg  gQ?r%	  r&	  s       rx   test_1dzTestHMean.test_1d
  s.    5!W,:!W,rz   r  c                 T    t        j                  ddg      }d}t        |||d       y )Nr   r   r   ro   rk  r   r   r	  r&	  s       rx   test_1d_with_zerozTestHMean.test_1d_with_zero  s)     HHaV!W#6rz   r=  c                     t        j                  g d      }d}t        j                  t        |      5  t        ||j                  |d       d d d        y # 1 sw Y   y xY w)Nr   r   r_   z$The harmonic mean is only defined...r   r   r+	  )r   r   r   r>  r   r	  rm   )rn   ro   r*  r  s       rx   test_1d_with_negative_valuez%TestHMean.test_1d_with_negative_value  sL     HHZ 8\\.8 	:aBS9	: 	: 	:s   AA!c                 `    g dg dg dg}d}t        t        j                  |      ||       y )NrY   r  r  r  r  rd  rN  rg  rG  r  rS  x   gmWUC@r  )r	  r   r   r&	  s       rx   test_2dzTestHMean.test_2d%  s)    /1DE"((1+w26rz   c                 f    g dg dg dg}t        j                  g d      }t        ||d|       y )Nr2	  r3	  r4	  )U|ϊ6@g4.=C@JQ6LsJ@E]P@r   rT   ro   r,	  r&	  s       rx   test_2d_axis0zTestHMean.test_2d_axis0+  s-    /1DE((OP!W14rz   c                 f    g dg dg dg}t        j                  g d      }t        ||d|       y )NrY   r   r  r  r3	  r4	  )r8	  r   r9	  r:	  r   r;	  r,	  r&	  s       rx   test_2d_axis0_with_zeroz!TestHMean.test_2d_axis0_with_zero1  s-    .0CD((GH!W14rz   c                 f    g dg dg dg}t        j                  g d      }t        ||d|       y )Nr2	  r3	  r4	  )g3333333@O@y@Y@r   r;	  r,	  r&	  s       rx   test_2d_axis1zTestHMean.test_2d_axis17  s-    /1DE((<=!W14rz   c                 f    g dg dg dg}t        j                  g d      }t        ||d|       y )Nr>	  r3	  r4	  )r   rA	  rB	  r   r;	  r,	  r&	  s       rx   test_2d_axis1_with_zeroz!TestHMean.test_2d_axis1_with_zero=  s-    .0CD((;<!W14rz   T,array-likes only supported for NumPy backendr   c                     g d}g d}d}t        j                  ||      }t        |t        j                  |      d       y )Nr3   rY   r7   rY   r6   r4   r   r	  h㈵>rj  )rf   r	  r1   r   rd   rn   ro   r*  r	  r  r   s         rx   test_weights_1d_listzTestHMean.test_weights_1d_listC  s:      kk!W-RZZ0t<rz   c                     t        j                  g d      }t        j                  g d      }d}t        |||d|       y )NrH	  rI	  r4   rK	  r	  rk  ro   )r   rd   r	  rn   ro   r*  r	  r  s        rx   test_weights_1dzTestHMean.test_weights_1dS  s5     JJz"**Z(!WgDRHrz   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 )
Nr3   r6   rY   r7   r   r4   r   rK	  rT   r	  rk  ro   r,	  rP	  s        rx   test_weights_2d_axis0zTestHMean.test_weights_2d_axis0[  sj     HHq!fr1g1v./((RGaVaV45((Aq6"!W1gDRPrz   c                     t        j                  g dg dg      }t        j                  g dg dg      }t        j                  ddg      }t        ||d|d|	       y )
NrH	  r8   r8   r8   rI	  r<  r4   r8   r   rK	  rS	  r,	  rP	  s        rx   test_weights_2d_axis1zTestHMean.test_weights_2d_axis1c  sN     HHj),-((J	23((Aq6"!W1gDRPrz   c                     t        j                  g d      }t         j                  j                  g dg d      }d}t         j                  }t        |||dt         j                  |       y )Nr3   rY   r7   r  rY   r6   r4   r  r   r   r   r   r  r4   rK	  r	  rk  rI   ro   )r   r   r  r	  r   rP	  s        rx   test_weights_masked_1d_arrayz&TestHMean.test_weights_masked_1d_arrayk  sO     HH^$%%++n<+@UU!WgD "

r	3rz   N)r   r   r   r   r   r   r'	  r)	  r-	  r0	  r6	  r<	  r?	  rC	  rE	  r   rM	  rQ	  rT	  rW	  r'   r]	  r   rz   rx   r"	  r"	    s,   [[ WX- Y-
- [[ WX[[ VW7 X Y7
 [[:::75 [[ WX5 Y5
5 [[ WX5 Y5
 =
=	
=IQQ 3 3rz   r"	  c                   &   e Zd Zej                  j                  d      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dd      d        Zd Zed        Zy)	TestGMeanz<ignore:divide by zero encountered in log:RuntimeWarning:daskc                 ,    g d}d}t        |||       y r$	  r	  r&	  s       rx   r'	  zTestGMean.test_0y  s     !W,rz   c                     g d}d}t        |||       g d}t        dd      }t        ||d|       t        g dt              }t        dd      }t        |||j                  |	       y )
NrM  gsŤF@r  rg  r  rj  r+  rk  ro   )rI   ro   )r	  r   r   r   r&	  s       rx   r)	  zTestGMean.test_1d  sa    5!W,w/!W5R8,(w/!WBJJ2>rz   c                 :    g dg dg dg}d}t        |||       y )Nr2	  r3	  r4	  g/,$qJ@r  ra	  r&	  s       rx   r6	  zTestGMean.test_2d  s!    /1DE!W,rz   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 )
Nr2	  r3	  r4	  )g4@A@g5H@g`8|wЭN@gm~&+R@r   r;	  rg  r+  rT   rk  ro   r   r   r	  r&	  s       rx   r<	  zTestGMean.test_2d_axis0  sX    /1DE((NO!W14<|<=%!W15R@rz   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 )Nr2	  r3	  r4	  )gD" 6"6@gcP@g
ҧZ@r   r;	  rg  r  rj  r+  rf	  )r   r   r	  r   )rn   ro   r*  r  r  s        rx   rC	  zTestGMean.test_2d_axis1  sj    /1DE((CD!W14<|<=-)Aq	"!W15R@rz   c                 @    t        g d      }d}t        ||d|       y )N)g}Ô%ITrP  gu <7~rP  r  rc	  )r   r	  r&	  s       rx   test_large_valueszTestGMean.test_large_values  s     '(!W5R8rz   c                     g d}d}t        j                  d      5  t        |||       d d d        y # 1 sw Y   y xY w)N)
rY   r  r  r  r  rd  rN  rg  rG  r   r   r  r@  r  )r   r  r	  r&	  s       rx   test_1d_with_0zTestGMean.test_1d_with_0  s;    
 4[[X& 	1aR0	1 	1 	1s   5>z;ignore:invalid value encountered in log:RuntimeWarning:daskc                     g d}t         j                  }t        j                  d      5  t        |||       d d d        y # 1 sw Y   y xY w)N)
rY   r  r  r  r  rd  rN  rg  rG  r_   r  r  r  )r   rm   r  r	  r&	  s       rx   test_1d_negzTestGMean.test_1d_neg  s?    
 5&&[[* 	1aR0	1 	1 	1s   AATrF	  r   c                     g d}g d}d}t        j                  ||      }t        |t        j                  |      d       y )Nr  r3   r6   r7   r5   r4   GZ*oG8@rJ	  rK	  rj  )rf   r  r1   r   rd   rL	  s         rx   rM	  zTestGMean.test_weights_1d_list  s:     !
 kk!W-RZZ0t<rz   c                     t        j                  g d      }t        j                  g d      }d}t        |||d|       y )Nr  rp	  rq	  rK	  rO	  rg	  rP	  s        rx   rQ	  zTestGMean.test_weights_1d  s5     HH_%((?+!WgDRHrz   c                     t        j                  g d      }t         j                  j                  g dg d      }d}t         j                  }t        |||dt         j                  |       y )Nr  )r3   r6   r7   r5   r4   r6   )r   r   r   r   r   r   r  rq	  rK	  r\	  )r   r   r  r	  r   rP	  s        rx   r]	  z&TestGMean.test_weights_masked_1d_array  sR     HH'(%%++07I+JUU!WgD "

r	3rz   N)r   r   r   r   r   r   r'	  r)	  r6	  r<	  rC	  rj	  rl	  rn	  r   rM	  rQ	  r'   r]	  r   rz   rx   r_	  r_	  w  s    [[F--
?-A	A9
 [[F11 [[E11 ==	=I 3 3rz   r_	  c            
          e Zd Zd Zd Zd Zd Zej                  j                  d      ej                  j                  d      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 edd      d        Zed        Zej                  j                  dg d       d!        Zy")#	TestPMeanc                 X    t        j                  | |z        | j                  z  d|z  z  S re  )r   r"  r  r*  rA  s     rx   pmean_referencezTestPMean.pmean_reference  s&    q!tqvv%1--rz   c                 p    t        j                  || |z  z        t        j                  |      z  d|z  z  S re  )r   r"  )r*  rA  r	  s      rx   wpmean_referencezTestPMean.wpmean_reference  s/    wA~&8AaC@@rz   c                    t        j                  t        d      5  t        j                  |j                  g d      |j                  dg             d d d        t        j                  t        d      5  t        j                  |j                  g d      |j                  dg             d d d        y # 1 sw Y   exY w# 1 sw Y   y xY w)NzPower mean only defined forr   r}  r   )r   r   r   rf   r	  rd   r  s     rx   test_bad_exponentzTestPMean.test_bad_exponent  s    ]]:-JK 	@KK

9-rzz1#?	@]]:-JK 	@KK

9-rzz1#?	@ 	@	@ 	@	@ 	@s   8B878C8CCc                 P   g dd}}t         j                  t        j                  |      |      }t	        ||||       g dd}}t         j                  t        j                  |      |      }t	        ||||       g dd}}t        j
                  d      }t	        ||||       y )NrM  r?   r  g      rg  r3   rC   )ru	  rx	  r   r   r 	  r'  rn   ro   r*  rA  r  s        rx   r)	  zTestPMean.test_1d  s    8#1++BHHQK;!QB/8$1++BHHQK;!QB/Q1''9:!QB/rz   r  r  c                 Z    t        j                  ddg      d}}d}t        |||d|       y )Nr   r   r_   r   rc	  )r   r   r 	  r~	  s        rx   r-	  zTestPMean.test_1d_with_zero  s/     xxA1!Qcb9rz   c                     t        j                  g d      d}}d}t        j                  t        |      5  t        |||j                  |       d d d        y # 1 sw Y   y xY w)Nr/	  Gz?z!The power mean is only defined...r   r  )r   r   r   r>  r   r 	  rm   )rn   ro   r*  rA  r  s        rx   r0	  z%TestPMean.test_1d_with_negative_value  sN    xx
#T15\\.8 	3aBFFr2	3 	3 	3s   AA#rw	  rY   r  r  rd  rG  r  r  r<   c                 t    t         j                  t        j                  |      |      }t	        ||||       y )Nr  ru	  rx	  r   r   r 	  )rn   r*  rA  ro   r  s        rx   test_2d_axisnonezTestPMean.test_2d_axisnone  s,     ++BHHQK;!QB/rz   r2	  r3	  r4	  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   r;	  )r  rz  ru	  rx	  r   r   r 	  )rn   r*  rA  ro   rW  r  r  s          rx   r<	  zTestPMean.test_2d_axis0  s     3qt9%	
  %%5Q=9a!A$q'9:A
 
 	!QaB7	 :
s   9B
B#B
B
c                     |D cg c]+  }t         j                  t        j                  |      |      - }}t	        |||d|       y c c}w )Nr   r;	  r	  )rn   r*  rA  ro   a_r  s         rx   rC	  zTestPMean.test_2d_axis1)  sD     IJJ"9,,RXXb\1=JJ!QaB7 Ks   0Ac                     g dd}}g d}t         j                  t        j                  |      ||      }t	        ||||d|       y )NrH	  ރBrI	  rK	  rO	  )ru	  rz	  r   r   r 	  rn   ro   r*  rA  r	  r  s         rx   rQ	  zTestPMean.test_weights_1d2  s>    ;1,,RXXa[!WE!QtKrz   TrF	  r   c                     g dd}}g d}t         j                  t        j                  |      ||      }t	        j
                  |||      }t        |t        j                  |      d       y )NrH	  r	  rI	  rJ	  rK	  rj  )ru	  rz	  r   r   rf   r	  r1   rd   )rn   ro   r*  rA  r	  r  r   s          rx   rM	  zTestPMean.test_weights_1d_list8  sW    
 ;1,,RXXa[!WE kk!Q0RZZ0t<rz   c           	         t        j                  g d      d}}t         j                  j                  g dg d      }t        j                  ||      }t         j                  }t	        ||||dt         j
                  |       y )	NrY	  r   rZ	  r[	  r  rJ	  rK	  r\	  )r   r   r  averager 	  r   r	  s         rx   r]	  z&TestPMean.test_weights_masked_1d_arrayF  s^    xx'1%%++n<+@**Q0UU!Qt "

r	3rz   )rT   fun_namerA  ))Nrz	  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 )Nrz	  c                 2    t         j                  | |      S r  )ru	  rz	  )r*  rT   r	  rA  s      rx   funz&TestPMean.test_weights_2d.<locals>.funW  s     11!Q@@rz   r3   r6   rY   r7   r   r4   )rT   r	  rK	  rS	  )rE  rf   r   r   r 	  )	rn   rT   r	  rA  ro   r	  r*  r	  r  s	      `     rx   test_weights_2dzTestPMean.test_weights_2dO  s     ))A %*CHHq!fr1g1v./((RGaVaV45adG4!QdG$SUVrz   N)r   r   r   rx	  rz	  r|	  r)	  r   r   r   r-	  r0	  r  r   r   r	  r<	  rC	  rQ	  r   rM	  r'   r]	  r	  r   rz   rx   ru	  ru	    s   .A@0 [[ VW[[ WX: Y X:
3 [[8b"XCy
)4	0
"((RHr2hS	2
3S	9	;
0
0 [[-/B
CT	J,.A
BC	H	J
8
8 [[-/B
CT	J,.A
BC	H	J
8
8L ==	= 3 3 [[!		W	Wrz   ru	  c            	          e Zd Z ej                  d      dz   j                         ZdZ ej                  ed      j                         Z	d Z
 edd      d	        Zed
        Zej                   j#                  d      ej                   j#                  d      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y)TestGSTDr  r   gv aZ@r^  c                     t        j                  |j                  | j                              }t	        ||j                  | j
                               y r  )rf   r	  rd   array_1dr1   gstd_array_1drn   ro   gstd_actuals      rx   test_1d_arrayzTestGSTD.test_1d_arrayh  s6    jjDMM!:;RZZ0B0B%CDrz   Tz$Only NumPy supports array-like inputr   c                     t        j                  t        | j                              }t	        || j
                         y r  )rf   r	  r  r	  r   r	  r	  s      rx    test_1d_numeric_array_like_inputz)TestGSTD.test_1d_numeric_array_like_inputl  s)    jjt}}!56T%7%78rz   c                     d}t        j                  t        t        f|      5  t	        j
                  d       d d d        y # 1 sw Y   y xY w)Nz.could not convert string to float|The DType...r   z*You cannot take the logarithm of a string.)r   r   r   r|  rf   r	  r  s      rx   #test_raises_error_non_numeric_inputz,TestGSTD.test_raises_error_non_numeric_inputq  s@    B]]J	2'B 	EJJCD	E 	E 	Es   AAr  r  	bad_valuer   r_   c                    |j                  | j                  |gz         }t        j                  |      rGt	        |      s<d}t        j                  t        |      5  t        j                  |      }d d d        nt        j                  |      }t        |j                  t        j                               y # 1 sw Y   3xY w)Nz3The geometric standard deviation is only defined...r   )rd   r	  r   r  r*   r   r>  r   rf   r	  r2   rm   )rn   r	  ro   rq   r  r   s         rx   test_returns_nan_invalid_valuez'TestGSTD.test_returns_nan_invalid_valuew  s     JJt}}	{23;;y!-*:KGnG< $jjm$ $ **Q-CRZZ/0	$ $s   B;;Cc                     |j                  g d|j                  dddgg      }t        j                  |d      }t	        ||j                  dt
        j                  g             y )N)r   r   r   r   r   r3   r4   rS   r5   )rd   rm   rf   r	  r1   r   )rn   ro   r*  r	  s       rx   test_propagates_nan_valuesz#TestGSTD.test_propagates_nan_values  sM    JJ1a'89:jj+RZZBFF%<=rz   c                     |j                  | j                        }t        j                  ||j                  d         }t        ||j                  |j                               y )Nr   r  )rd   r	  rf   r	  r  r2   rm   r   s       rx   )test_ddof_equal_to_number_of_observationsz2TestGSTD.test_ddof_equal_to_number_of_observations  sC    JJt}}%jj,RZZ/0rz   c                     |j                  | j                        }t        j                  |d       }|j                  | j                        }t        ||       y r  )rd   array_3drf   r	  r	  r1   rn   ro   rq   r	  r  s        rx   test_3d_arrayzTestGSTD.test_3d_array  sB    JJt}}%jj.jj++,S)rz   c                     |j                  | j                        }t        j                  |d      }|j                  ddg      }t	        ||       y )Nr  rS   g~d@g<
?rd   r	  rf   r	  r1   r	  s        rx   test_3d_array_axis_type_tuplez&TestGSTD.test_3d_array_axis_type_tuple  sA    JJt}}%jj0jj*j12S)rz   c                     |j                  | j                        }t        j                  |d      }|j                  g dg dg dg      }t	        ||       y )Nr   rS   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?r	  rn   ro   rq   r	  gstd_desireds        rx   test_3d_array_axis_0zTestGSTD.test_3d_array_axis_0  sL    JJt}}%jj+zzOOO#
 
 	\2rz   c                     |j                  | j                        }t        j                  |d      }|j                  g dg dg      }t	        ||       y )Nr   rS   )gN@g85@g'ĥ?gwth?)gHnaX?gG?gBu?gE?r	  r	  s        rx   test_3d_array_axis_1zTestGSTD.test_3d_array_axis_1  sI    JJt}}%jj+zzLL#
  	\2rz   c                     |j                  | j                        }t        j                  |d      }|j                  g dg dg      }t	        ||       y )Nr3   rS   )gt80?gі?g?)gۘ]~?gmT6(?g	G?r	  r	  s        rx   test_3d_array_axis_2zTestGSTD.test_3d_array_axis_2  sI    JJt}}%jj+zz??#
  	\2rz   N)r   r   r   r   r   r   r	  r	  rh   r	  r	  r   r	  r'   r	  r   r   r   r  r  rm   r	  r	  r	  r	  r	  r	  r	  r	  r   rz   rx   r	  r	  a  s    		)$q(002H"Mrzz(I.557HE d+QR9 S9 E E
 [[ WX[[ VW[[[1b"&&"&&*AB1 C X Y1>
1
**333rz   r	  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  r6   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|>r[   z
fail forp=)r  err_msgr  r  gVݶ3;r  )r   r  r  r  r
   rf   	binomtestr  )pprU  rq   ra  rA  r   s         rx   test_binomtestr	    s    	S#q1T43T435 
6B 	AA(G b'" F3EOOAq!4;;S(*j4D	FF C5<</$&(rz   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   )r<   r   r<   )rj  r   r   rj  )r  r  r   r  r  )r        ?r   r   r	  r  )r        ?      ?r   r	  r	  r  )r  r        ?r   r   r	  r  r  )	      ?      ?     ?     @?r   r	  r	  r	  r	  )
      p?      ?      ?     @?r   r   r	  r	  r	  r	  )      `?      ?      ?      ?      ?r   r	  r	  r	  r	  r	  r   rZ   r<   rY   r  )r  rf   r	  r  r   )r  rJ  r  r  s       rx   test_binomtest2r	    s     
c
 +8G		*	E	D" 1b\ 9;@Q<Ha1c*11HHD$qs)R89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   rZ   r3   r   )Zr<   grq?g     ?glq?gx0f#?g%d)MO?g   	o?g6?g:X@?r  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?r	  ge$?gр?g#>?g5z@?g:?gf?gzP?g  ?     ?gg*),?g}A_?g}aA?gH]@_?g
y7s?gPG?g>)\R?gjc6?K?go; ,?g!O0?g?g}e?g5?g?!A^?gN/#?g*?    @?g?g?g3?g.1?gdT\1-?gt0W59?goQC?gX4J?   ?g
?gf?C"?g\6I?g4b?g|$or?gWNS~?gT?gXnc?   \?gY\?gp ^a?gX-K?g#c?g
3?g75Q?gMJ[?gP8R?)Zr<   gw	%?g     ?gS g?gv^?g*uCi?g  a?g]?gE9Q?r  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 ?r	  gJ9Ͻd?g `Ԗt?gT?gEz?gQ?g7C<*?g<?g~ K?r	  g8?g~ȍEt?g⿒?g<v?gHE:?g8Z$?gbº5?gvC?r	  g`Yw?gA?$??gE=?g4?g3?g{G9?gp?gH ?r	  gz6f?g¯F?g(+?g	$V?gq^ws?g!?gXNJ?gK?r	  g4P?g<q?gdV;?gy?g$w?gU<vO?gMX?g	șz*?r	  giqSp?gMM?g0V$)?g]
yi/Q?gl?gl?g3Ȇ?gѾ_c?r\   r  )r  rf   r	  r  r   r   r  rz  r  r   r   )r  rJ  r  binom_testm1binom_testp1res4_p1res4_m1s          rx   test_binomtest3r	    s    1b\95B<9&' OOAqsBqD)00 90 9D 9rwws4y#./ 88 
 LP 88 
 L@ a<eArl<)* qsAaCA.55 <5 <G < a<eArl<)* qsAaCA.55 <5 <G < 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 )NrZ   r  rY   r  r:   left)tailr3   tE]t?r4   r   r  r  r7   r5   r6   r   )r	  rT   rS   r   )r   r   r   sortrf   trim1rh   r   )rn   r*  r  rT   trimmeds        rx   
test_trim1zTestTrim.test_trim1F  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#%%8rz   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 )NrZ   r	  r4   r9   r  )r3   r4   r5   r6   r7   r8   r9   r  r7   r5   r  r3  )r3   r9   rW   r  )r4   r:   r  rV   r  r  )r   r   r   r	  rf   trimbothr   rh   r   r   r   )rn   r*  s     rx   test_trimbothzTestTrim.test_trimbothb  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2rz   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)r5   r9   r3   r   r:   r6   rY   r   r8   r4   r7   )r4   r6   r   r   r3   r5   r  r7   r5   Fr  r3  )r>   rD   g      -@g     4@r  )r   r   r4   r3   )r   r   r8  rn  r  r  )r8   rZ   r[   rV   r   r7   r  r   r6   r   r  rY   rb   r:   r  r  rQ  r  r3   rW   r5   r\   r9   r4   rX   )r6   r5   r4   r   r3   r   r>   r  r  )r6   r7   r5   r8   r  )r   r   r3   r4   r_   rS   r   r  r   )r   r   r   rh   r   rf   	trim_meanr  r=  randintr_  r  r   r   rm   )
rn   r*  idxr  r  idx4a4rT   r  r  s
             rx   test_trim_meanzTestTrim.test_trim_meant  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6rz   N)r   r   r   r	  r	  r	  r   rz   rx   r	  r	  D  s    983$$7rz   r	  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  r6   r5   r   r  r  rf   	sigmaclipr   minmaxr   ri   r   r  rn   r*  factr,  rW  upps         rx   test_sigmaclip1zTestSigmaClip.test_sigmaclip1  s    NNBKKT26Ar18MNOooa(3##S!&&(T!%%'\12S!&&(T!%%'\12QVVQVV$rz   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  r6   r=   r5   $   r	  r	  s         rx   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 rz   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^   rZ   r4   ?)r   r  r  rf   r	  r   r	  r	  r   ri   r   r	  s         rx   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3rz   c                     t        j                  t        j                  ddd      t        j                  ddd      f      }d}t        j                  |||      }d}t        ||       y )	Nr;  r^   rZ   r	  r	  r4   r 
  )clippedr  r  )r   r  r  rf   r	  r   )rn   r*  r	  r   r   s        rx    test_sigmaclip_result_attributesz.TestSigmaClip.test_sigmaclip_result_attributes  sZ    NNBKKT26KKc157 8ooat,2
C,rz   c                 r    t        j                  d      }t        t        j                  |      d   |       y )NrY   r   )r   r  r   rf   r	  rC  s     rx   test_std_zerozTestSigmaClip.test_std_zero  s'    GGBKU__Q'*A.rz   N)r   r   r   r	  r	  r
  r
  r
  r   rz   rx   r	  r	    s    %	!	4-/rz   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}|D cg c]'  }t        j                  |t         j                        ) }}|D cg c]'  }t        j                  |t         j                        ) }}|D cg c]'  }t        j                  |t         j                        ) }}|D cg c]'  }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 c c}w c c}w c c}w c c}w )N)	r\   r\   r\   r\   r\   r\   r\   r[   r[   )	rW   r\   r[   r[   r[   r[   r[   rZ   rZ   )	rW   rW   r\   r\   r\   r\   r\   r[   r[   )	r  rW   r\   r\   r\   r[   r[   r[   rZ   rH   )
r   rd   r   r  r{  r   rf   alexandergovernr  r  )rn   r7  arg
args_int16
args_int32
args_uint8args_float64	res_int16	res_int32	res_uint8res_float64s              rx   test_compare_dtypesz'TestAlexanderGovern.test_compare_dtypes  s|   44446 BFF#bjjBHH5F
FAEF#bjjBHH5F
FAEF#bjjBHH5F
FEIJc

3bjj9JJ)):6	)):6	)):6	++\:  I$4$4 7  7$/$6$67 	8 7 	8 7##y':': =##='2'<'<= 	> = 	> = GFFJs   ,F,F!7,F&),F+r|  r   r3   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rJ  )r   r>  r   r   rf   r

  r   r  r   rm   r  rN  s      rx   test_too_small_inputsz)TestAlexanderGovern.test_too_small_inputs  s]     \\,4IJ 	-''.C/RVV,	- 	- 	-rP  c                 V   t        j                  d      5  t        j                  ddgt         j                  t         j                  g      }d d d        t        j                  t         j                         t        |j                  t         j                         y # 1 sw Y   RxY w)Nr  r  r   r3   )	r   r  rf   r

  r  r   r  rm   r  r  s     rx   test_bad_inputsz#TestAlexanderGovern.test_bad_inputs  sn    [[* 	B''A0@AC	BS]]BFF+SZZ(	B 	Bs   7BB(c                     g d}g d}g d}t        j                  |      t        j                  |      t        j                  |      }}}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r   rd   rf   r

  r   r  r  )rn   rV  twoeightsolns        rx   test_compare_rz"TestAlexanderGovern.test_compare_r  sr    :"	I7 **S/2::c?BJJu<M%S$$S#u5(=>%;<rz   c                    g d}g d}g d}t        j                  |      t        j                  |      t        j                  |      }}}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@r  r$  g R8߱?rs  g.UikL@g&Zݱ?Nr
  )rn   youngmiddleoldr
  s        rx   test_compare_scholarz(TestAlexanderGovern.test_compare_scholar2  s    08GZZ.

60BBJJsOsv$$UFC8T:W48	: 	1Z0rz   c                 N   g d}g d}t        j                  |      t        j                  |      }}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?rK	  r$  gOZ}?g9$?g6MDd}?Nr
  )rn   r  r  r
  s       rx   test_compare_scholar3z)TestAlexanderGovern.test_compare_scholar3e  s    "! BBB$$R,t<XD9	8 		2Y/rz   c                 0   t        j                  g d      t        j                  dt         j                  g      f}t        j                  | }t        |j                  t         j                         t        |j                  t         j                         y )Nrg  r   r   rd   rm   rf   r

  r   r  r  )rn   r7  r   s      rx   test_nan_policy_propagatez-TestAlexanderGovern.test_nan_policy_propagate  sZ    zz,'QK)@@##T*SZZ(S]]BFF+rz   c                     t        j                  g d      t        j                  dt         j                  g      f}t        t        d      5  t        j                  |ddi d d d        y # 1 sw Y   y xY w)Nrg  r   r   r   r   r   )r   rd   rm   r   r   rf   r

  )rn   r7  s     rx   test_nan_policy_raisez)TestAlexanderGovern.test_nan_policy_raise  sY    zz,'QK)@@:-LM 	=!!4<G<	= 	= 	=s   A--A6c                    t        j                  dddt         j                  dg      t        j                  dt         j                  ddg      f}t        j                  g d      t        j                  g d      f}t        j                  |d	d
i}t        j                  | }t        |j                  |j                         t        |j                  |j                         y )Nr   r3   r4   r5   r  r  rg  )r   r  r  r   r   r'
  )rn   args_nanargs_no_nanres_nan
res_no_nans        rx   test_nan_policy_omitz(TestAlexanderGovern.test_nan_policy_omit  s    ::q!Q23RZZBFFBPR@S5TTjj.

;0GG''EfE**K8
W^^Z%6%67W&&
(<(<=rz   c                 |   t        j                  g d      }t        j                  g d      }t        j                  t        d      5  t        j                  ||      }d d d        t        j                  t         j                         t        |j                  t         j                         y # 1 sw Y   RxY w)Nr8  r:  r  r   )r   rd   r   r>  r   rf   r

  r   r  rm   r  )rn   r  r  r   s       rx   rB  z'TestAlexanderGovern.test_constant_input  sz    ZZ-.ZZ-.\\.0LM 	0''B/C	0S]]BFF+SZZ(	0 	0s   
B22B;N)r   r   r   r
  r   r   r  r
  r
  r
  r#
  r%
  r(
  r*
  r0
  rB  r   rz   rx   r
  r
    sz    >( [[Vq!fb\QFA;!Q!$NO- P-)B=H11f10f,=
>)rz   r
  c            	          e Zd Zd 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   r3   r   r   )rf   f_onewayr   rn   r	  rA  s      rx   test_trivialzTestFOneWay.test_trivial  s2    ~~q!fq!f-1QQrz   c                     t        j                  ddgddg      \  }}t        |d       t        |dt	        j
                  d      z
  d       y )	Nr   r3   r5   r   r   r<   r+  rj  )rf   r5
  r   r   r   r'  r6
  s      rx   r5  zTestFOneWay.test_basic  sC     ~~q!fq!f-1Q1rwws|+%8rz   c                     g dg dg dg}t        j                  |ddi\  }}t        |dd       t        |d	d       y )
Ng(\5IgHz'D@gףp=
2g
ףp=A@g333333g)\(?gq=
ףp7@r@   g333333.@gRQ#@gzG'@r  g=
ףp#@gGz."@gp=
ף
@r  FgM;yQ?r+  rj  gWe?rf   r5
  r   )rn   samplesr	  rA  s       rx   test_unequal_varzTestFOneWay.test_unequal_var  sG    =+35 ~~w8%81& 	,59,59rz   c                     g dg dg dg}d}t        j                  t        |      5  t        j                  |ddi d d d        y # 1 sw Y   y xY w)Nr:
  r;
  r<
  z(Expected a boolean value for 'equal_var'r   r  False)r   r   r|  rf   r5
  )rn   r>
  r  s      rx   test_equal_var_input_validationz+TestFOneWay.test_equal_var_input_validation  sM    =+35 =]]9G4 	8NNG7w7	8 	8 	8s   AAc                 x    t        j                  dgdgg d      \  }}t        |dd       t        |dd       y )Nr3   r^  r  r#  rj  r  r=
  r6
  s      rx   test_known_exactzTestFOneWay.test_known_exact  s6     ~~qcA3	213U+3U+rz   c                     t        j                  ddgt         j                        }t        j                  ddgt         j                        }t        j                  ||      \  }}t        |dd       y )	N    rH       gŸ?r+  rj  )r   r   uint16rf   r5
  r   )rn   r*  r4  r	  rA  s        rx   test_large_integer_arrayz$TestFOneWay.test_large_integer_array  sU    HHc3Zryy1HHc3Zryy1~~a#1 	.U;rz   c                     t        j                  ddgt         j                        }t        j                  ddgt         j                        }t        j                  ||      }d}t        ||       y )NrF
  rG
  rH   rH
  rI
  r  )r   r   rJ
  rf   r5
  r   )rn   r*  r4  r   r   s        rx   test_result_attributesz"TestFOneWay.test_result_attributes  sQ    HHc3Zryy1HHc3Zryy1nnQ",
C,rz   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.datrz  zdata/nist_anova
r  r  rd  )skiprowsr   r_   )rO
  rP
  rQ
  rs  zFailing testcase: )rk  r	  )ospathabspathjoindirname__file__openreadsplitstripr   loadtxtr   r  r  uniquer  rf   r5
  r   )rn   	filenames	test_caserk  fnamer9  contentline	certifieddatafrr   rq   catyr  xlistr   hard_tcs                    rx   	test_nistzTestFOneWay.test_nist   si   ?	 # 	F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-	F/ /* .s   7 E8&'F4F	8F	za, b, expected)r  r  r  rV	  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>  rf   r?  r5
  )rn   r*  r4  r  r   r9  rA  s          rx   rB  zTestFOneWay.test_constant_input   sW     6\\%44C@ 	$>>!Q'DAq#a8m#1	$ 	$ 	$s   &AA!rT   )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   r5   r4   r4   )r3   r6   r4   r4   )r4   r7   r4   r4   rx  )r4   r   r6   r4   )r5   r7   r6   r4   )r5   r4   r6   r4   )r   r6   r6   r4   )r6   r6   r6   r4   )r3   r4   r6   r4   )r9   r3   r6   r4   )r3   r3   r6   r4   )r5   r4   r5   r4   )r5   r3   r5   r4   )r6   r5   r5   r4   r_   r   r   r   rl
  r   rS   r  r+  rj  r  )r   r   r   r   r>  rf   r?  r5
  taker   r   )rn   rT   r*  r4  r,  	take_axisr  r9  rA  rW  fjpjs               rx   test_2d_inputszTestFOneWay.test_2d_inputs+  s   HHl""""	$ %
 HHl"""""""$ % HHl"""$ %
 7?AAAII:\\%44HE 	6>>!Q5DAq	6
  	2A^^BGGAq)$<$&GGAq)$<$&GGAq)$<>FB AaD"51AaD"51	2  	'Ae88I '1i(@(*1i(@(*1i(@BB QqT2&QqT2&' '	'	6 	6' 's   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      r5   r6   r8   r3      r9   q   rS   )r5   r8   r   )	r   r   rh   cosrf   r5
  r  r  r   )
rn   r*  r4  r,  r9  rA  r  rW  fijpijs
             rx   test_3d_inputszTestFOneWay.test_3d_inputs[  sC   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-.	.rz   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   r}  r9  )	r   r>  r   r   rf   r5
  r   r   rm   r  s     rx   test_length0_1d_errorz!TestFOneWay.test_length0_1d_errorl  sP    \\,4IJ 	3^^Ir<@F"&&"&&!12	3 	3 	3s   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   r4   r5   r   r6   r-  )r   r>  r   r   r   r  rf   r5
  r   rm   r   )rn   ncolsr*  r4  r,  r9  rA  r  s           rx   test_length0_2d_errorz!TestFOneWay.test_length0_2d_errorr  s    \\,4IJ 	"EE
#AE
#AE
#A>>!Q*DAq77E87DD!D!	" 	" 	"s   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)NrY   rZ   r[   r\   )r   r>  r   rf   r5
  r   r   rm   r  s     rx   test_all_length_onezTestFOneWay.test_all_length_one}  sW    \\,- 	3^^RD2$rd;F"&&"&&!12	3 	3 	3s   AA**A3r7  r   r}  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|  rf   r5
  )rn   r7  r  s      rx   test_too_few_inputszTestFOneWay.test_too_few_inputs  s2    89G4 	"NND!	" 	" 	"s   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)Nr1  r6   r5   r3   rS   )r   r  r   r&   rf   r5
  rn   r*  r4  s      rx   test_axis_errorzTestFOneWay.test_axis_error  sI    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)Nr1  r
  r   rS   )r   r  r   r   rf   r5
  r
  s      rx   test_bad_shapeszTestFOneWay.test_bad_shapes  sI    GGFOGGFO:& 	)NN1aa(	) 	) 	)r
  N)r   r   r   r7
  r5  r?
  rB
  rD
  rK
  rM
  rj
  r   r   r  r   r   r  rm   rB  rs
  r{
  r}
  r
  r
  r
  r
  r
  r   rz   rx   r3
  r3
    s   9:88,<-F@ [[-	,	)!4rvvqkB	,	,!7"&&"&&9IJ0
 $	$ [[V^4-' 5-'^."3	"3
 [[Vb9,%78" 9"
))rz   r3
  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   r3   r   )	rf   kruskalr   r
   ru  rg  rv  r   r   rn   rq   rr   hrA  s        rx   test_simplezTestKruskal.test_simple  s    CC}}Q"1QAu2277::1a@A}}RXXa["((1+61QAu2277::1a@Arz   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 )Nr   r4   r6   r8   r:   r3   r5   r7   r9   rY   r	  rY   r  r   )rf   r
  r
   ru  rg  rv  r   r   r
  s        rx   r5  zTestKruskal.test_basic  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Erz   c                 n    dg}ddg}d}d}||z  }t        j                  ||      \  }}t        ||       y )Nr   r3   r	  r:  )rf   r
  r   rn   rq   rr   h_uncorrrV  r  r
  rA  s           rx   test_simple_tiezTestKruskal.test_simple_tie  sE    CF*d?}}Q"1 	Q!rz   c                     g d}g d}d}dt        d      dz  z
  }||z  }t        j                  ||      \  }}t        ||       y )N)r   r   r   r3   )r3   r3   r3   r3   r   r        )r  rf   r
  r
   r
  s           rx   test_another_tiezTestKruskal.test_another_tie  sM    >5,-::d?}}Q"1Ax(rz   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  r3   rL   r   r
  r
  )r  rf   r
  r
   ru  rg  rv  )	rn   rq   rr   r  r
  rV  r  r
  rA  s	            rx   test_three_groupszTestKruskal.test_three_groups  s{    FG5,-::d?}}Q1%1Ax(Au2277::1a@Arz   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   rf   r
  r   rm   )rn   rq   rr   r  s       rx   rF  zTestKruskal.test_empty  s^    \\,4IJ 	Cq!Q/"&&"&&1AB	C 	C 	Cs   A A33A<c                 \    g d}g d}t        j                  ||      }d}t        ||       y )Nr
  r
  r  )rf   r
  r   )rn   rq   rr   r   r   s        rx   test_kruskal_result_attributesz*TestKruskal.test_kruskal_result_attributes  s+    mmAq!,
C,rz   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   r:   r   r   r  r   r   )	r   r   rm   r   rf   r
  r   r   r   rC  s     rx   rF  zTestKruskal.test_nan_policy  s}    IIcNvv!U]]1a(266266*:;EMM!Q6BJOj%--A'Jj%--A(Krz   c                     d}t         j                  j                  |      }t         j                  j                  |      dz   }t        j                  ||      \  }}d}t        ||       y )Nr  r  r   )r   r  r>  rf   r
  r
   )rn   rU  rq   rr   r
  rA  r  s          rx   test_large_no_samplesz!TestKruskal.test_large_no_samples  sS    IIOOAIIOOA#}}Q"1Ax(rz   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   rf   r
  r  s     rx   test_no_args_gh20661z TestKruskal.test_no_args_gh20661  s3    B]]:W5 	MMO	 	 	s	   <AN)r   r   r   r
  r5  r
  r
  r
  rF  r
  rF  r
  r
  r   rz   rx   r
  r
    s9    BF	")
BC-L)rz   r
  c                      e Zd Zej                  j                  dg d      d        Zej                  j                  dg dddfg dd	d
fg      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
ej                  j                  de      ej                  j                  dddg      d               Zy)TestCombinePvaluesz+method, expected_statistic, expected_pvalue))r  g'"x-@g({#H?)stoufferv!:@/?)rq  gQ4gF?)tippettr  gL^i?)mudholkar_georgegzP@guKqN?c                     g d}t        j                  |j                  |      |      }t        |j                  |j                  |             t        |j
                  |j                  |             y )Nr  r  r  r  )rf   combine_pvaluesrd   r1   r  r  )rn   ro   r  r  r  rq   r   s          rx   test_reference_valuesz(TestCombinePvalues.test_reference_values  sR     ##BJJqM&Arzz2D'EF

BJJ$?@rz   z,weights, expected_statistic, expected_pvaluer   r   r   r
  r
  )r   r   r   ga;?grmT?c                    |j                  g d      }t        j                  |d|j                  |            }t        |j                  |j                  |             t        |j
                  |j                  |             y )Nr
  r
  )r  r	  )rd   rf   r
  r1   r  r  )rn   ro   r	  r  r  rq   r   s          rx   test_weighted_stoufferz)TestCombinePvalues.test_weighted_stouffer	   s^     JJ}%##Aj"**WBUVrzz2D'EF

BJJ$?@rz   )r  rq  r
  r
  r
  r  )singler  r  r  c                    d\  }}t         j                  j                  d      }|dk(  rr|j                  |j	                  |j                  |            ||f      }|j                  |j                  |j                  dd|      d      |d d dd f   gd      }np|d	k(  r0|j                  |j                  dd|      ||f      j                  }n;|d
k(  r6|j                  |j	                  |j                  dd||f            d      }|j	                  t        j                  d         D cg c],  }t        t        j                  ||d d f   |      d         . c}      }	|j!                  |	dd  |	d d z
  dk\        sJ y c c}w )N)rY   r8   l	   TrU(	"b-= r
  r  r  rn
  r   rS   r  r  r   r  r  r_   )r   r  r  r  rd   r  rh   r  r   r	  rm  r  r  r  rf   r
  r  )
rn   r  r  ro   rT  rU  r  pvaluessr  combined_pvaluess
             rx   test_monotonicityz$TestCombinePvalues.test_monotonicity   s~    1ii##$KL hrzz#**Q-'@1a&IHyy"**R[[c1-Ew"O"*1ab5/"39: ! <Hr{{3Q'?!QHJJH wwrzz#++a!Q+*HIPQwRH::8>>!,-'
 %''AvFqIJ'
  vv&qr*-=cr-BBaGHHH	'
s   11F	c                     t        j                  |j                  g d      |      }t        |j                  |d          t        |j
                  |d          y )Nr
  r  r   r   )rf   r
  rd   r2   r  r  )rn   r  ro   r   s       rx   r  zTestCombinePvalues.test_result5   sA    ##BJJ}$=fMs1v.

CF+rz   rT   r   r   c                 p   t         j                  j                  d      }|j                  |j                  d            }|dk(  r|j                  n|}t        j                  |||      }|j|j                  |d      }t        j                  ||      }t        |j                  |j                         t        |j                  |j                         y |dk(  r|j                  n|}|dd d f   |dd d f   }	}t        j                  ||      }
t        j                  |	|      }t        |j                  d   |
j                         t        |j                  d   |j                         t        |j                  d   |
j                         t        |j                  d   |j                         y )	Nl   2'$FV r3   rY   r  r   )rT   r  r  r  r   )r   r  r  rd   r   rf   r
  rh   r1   r  r  )rn   r  rT   ro   r  rq   r   r  r  r  ref0ref1s               rx   r@  zTestCombinePvalues.test_axis;   sL   
 ii##O4JJszzwz/0AIACCA##AD@<

1e$A''&9CCMM3==9CJJ

3AIACCA1a4!AqD'B$$R7$$R7a($..9a($..9

1t{{3

1t{{3rz   N)r   r   r   r   r   r  r
  r
  r  r
  r  r@  r   rz   rx   r
  r
    s-    [[5	GHAHA [[ 	7
)+>	?
)+=	>	@	AA	AA OG[[Y(CD[[Xw/I 0 EI0 [[Xw/, 0,
 [[Xw/ [[VaV,4 - 04rz   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   r3   r5   r4   r   r   r   rf   wasserstein_distancer8  s    rx   &test_distinct_value_and_weight_lengthsz@TestCdfDistanceValidation.test_distinct_value_and_weight_lengths]   sG     	j%"<"<cA3aV	-j%"<"<qcA3AOrz   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   r3   r4   r
  r8  s    rx   test_zero_weightz*TestCdfDistanceValidation.test_zero_weightd   sN     	j%"<"<!fqcAq6	+j%"<"<!fqcAq6A3	0rz   c           	      X    t        t        t        j                  ddgddgddgddg       y )Nr   r   r3   r4   r_   r
  r8  s    rx   test_negative_weightsz/TestCdfDistanceValidation.test_negative_weightsl   s-    j%"<"<!fq!fq!fq"g	7rz   c                     t        t        t        j                  g ddg       t        t        t        j                  dgg        y rr  r
  r8  s    rx   test_empty_distributionz1TestCdfDistanceValidation.test_empty_distributionq   s2     	j%"<"<b1a&Ij%"<"<qc2Frz   c           	      v    t        t        t        j                  g dddgdt        j
                  dgddg       y )Nr7  r   )r   r   rf   r
  r   r  r8  s    rx   test_inf_weightz)TestCdfDistanceValidation.test_inf_weightw   s0    j%"<"<!Q!RVVQ!Q	Arz   N)	r   r   r   r  r
  r
  r
  r
  r
  r   rz   rx   r
  r
  W   s#    
P07
GArz   r
  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)r  r  r  r  r  r  r  r  r  r  )r5   r3   r7   r   r
  )r  r  r\  r\  r\  r  r  r  r  r  r  r  )r8   r   )r   r   rL   r   r   r   )r   gw@r   r  r   r   )rf   wasserstein_distance_ndr   r   r"  r   )rn   r  r  r   flowdistr  s          rx   test_published_valuesz/TestWassersteinDistanceND.test_published_values   sm    
"" ++Aq1 xx01xx@AffTD[!"&&,.S!rz   n_value)r5   r  r:  r`  )r4   r5   r8   max_repeats)r6   rY   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  rI   r  r   rS   rJ	  r#  r$  )r   r  r  r  r  r  r"  r   rz  bincountr  rf   r
  r   )rn   r`  r
  r
  r  repeatsu_valuesv_values	v_weightsrange_repeat	u_weightsr3  r   s                rx   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+rz   nu)r9   r:   &   nv)r9   r[   rb   )r4   r6   rQ  c                    t         j                  j                  d      }|j                  ||f      }t        j                  ||f      }|j                  |      }|j                  |      }t        j                  t         j
                  j                  |d      |      }	t        j                  ||||      }
t        |
|	       y )N   }&=:! r  r   rS   rJ	  )
r   r  r  r  r	  r  r  rf   r
  r   )rn   r
  r
  r`  r  r
  r
  r
  r
  r  r   s              rx   test_collapse_nDz*TestWassersteinDistanceND.test_collapse_nD   s     ii##$89::B::.88RJ'JJBJ'	JJBJ'	jjq99M++Hh	9US!rz   )r9   r   r  )r   r3   r7   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
  r  r   r3   rS   )	r   r  r  rf   r
  r  insertr  r   )rn   r
  r
  r`  r  r
  r
  r
  r
  r  add_rownrows	add_valuer   s                 rx   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!rz   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   r3   r  r  )r   r  rf   r
  r   r  rm   )rn   uvvvuwdistances        rx   test_inf_valuesz)TestWassersteinDistanceND.test_inf_values   s     !fq!f%"&&(9':QFB00R<Xrvv&[[* 	+vvrvv&'266BFF7*;)<B44R<H266*	+ 	+ 	+s   6A4C33C<rf  )r   r4   r6   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/ r  r   r   rS   )r   r  r  rf   r
  r  r
  r   )rn   r
  r
  r`  r  r
  r
  r
  r
  r  add_dimr
  r   s                rx   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!rz   )r8   r\   r  )r3   r5   r8   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~r  r  )r   r  r  rf   r
  ortho_groupr  r   )rn   r
  r
  r`  r  r
  r
  r
  r
  r  r
  	transformshiftr   s                 rx   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!rz   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   )r5   rY   r  r  )r7   r3   r8   z Invalid input values. Dimensions)r  )r4   r  z(Invalid input values. If two-dimensionalr
  r]  )r   r  r  r   r   r   rf   r
  )rn   r  r
  r
  rv  s        rx   test_error_codez)TestWassersteinDistanceND.test_error_code   s1   ii##$>?]]:-OP 	Bzz{z3Hzzyz1H--hAA	B ]]:-OP 	Bzzuz-Hzzwz/H--hAA	B ]]:<> 	Bzzwz/Hzzvz.H--hAA		B 	B	B 	B	B 	B	B 	Bs#   ;D;;E7;E;EEEu_size)r   rY   r  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   r  )r   r  r  r  rf   r
  r
  r   )rn   r
  r
  r  r
  r
  u_values_flatv_values_flatd1d2d3r
  r
  s                rx   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rz   N)r   r   r   r  r
  r   r   r  r
  r
  r
  r
  r
  r
  r
  r  r   rz   rx   r
  r
  }   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 rz   r
  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   r<   r4   rj  r3   rm  r}  r   rf   r
  r8  s    rx   r
  z#TestWassersteinDistance.test_simple0!  s     	&&1vsQFQC@	 	22FQC!Q!&	 	22FQC!Q!&	 	22y"	rz   c           	          t        t        j                  g dg d      d       t        t        j                  g dddgg dddg      d       y 	Nr}  r_  r   )r   r   r   r5   r5   r   r  r4   )r   rf   r
  r8  s    rx   test_same_distributionz.TestWassersteinDistance.test_same_distribution@!  sE     	U//	9EqI&&|aV'3aV=	rz   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  r6   rY   r  )rZ   r[   r\   rW   r  )r@   g@r	  )r  r8   r  )r4   r   r   )r   r4   r   r>   r	  r8  s    rx   
test_shiftz"TestWassersteinDistance.test_shiftI!  sz     	22A3<a@22B4!=rB&&8LM	 	&&'0)=	rz   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   r6   )r   r4   r4   r4   r4   r5   r5   )r   r   r   r   r   r   r   )r6   r   r   )r   r5   r4   r   r3   r5   r	  r8  s    rx   test_combine_weightsz,TestWassersteinDistance.test_combine_weightsV!  s?     	&&%'<%'<> &&y)'0)=		>rz   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 )Nr4  r  r  r_   rJ	  )
r   r   r  r   rf   r
  ri   rf  rz  r	  )rn   r  r  r
  r
  s        rx   test_collapsez%TestWassersteinDistance.test_collapse`!  s     IIc2s#MM!&&q!,GGBFF1I	  IIc!f%	ddO	&&q!Y	BJJrvvay)4	6rz   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   r3   r  r   r,  r3   r	  r8  s    rx   r
  z(TestWassersteinDistance.test_zero_weightp!  sN    &&~1v'01a&:&&1v1v1v1vF	Hrz   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   r3   r   )	r   rf   r
  r   r  r   r   r   rm   rn   r   s     rx   r
  z'TestWassersteinDistance.test_inf_valuesw!  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  r
  r
  r   rz   rx   r  r  ,!  s+     >6 Hrz   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   r3   r<   r4   rj  r   rm  r}  r  r   rf   energy_distancer   r'  r8  s    rx   r
  zTestEnergyDistance.test_simple!  s     	!!1a&1#1vs;GGAJO	 	E11FQC!Q!&GGAJ	 	E11FQC!Q!&	 	!!)Y7GGAJ**	,rz   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   rf   r  r8  s    rx   r  z)TestEnergyDistance.test_same_distribution!  sB     	U**9i@!D!!,Aq!fM	rz   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   r3   r  r6   gS[:XL	@r  r8  s    rx   r  zTestEnergyDistance.test_shift!  sS     	E111#s;RWWQZH!!2$,GGAJ	!rz   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   rf   r  r8  s    rx   r  z'TestEnergyDistance.test_combine_weights!  s<     	!!"79N"79NP!!)Y	9M	Orz   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#  r8  s    rx   r
  z#TestEnergyDistance.test_zero_weight!  sK    !!.1a&)aVL!!1a&1a&1a&1a&A	Crz   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   rf   r  r   r  r   r   r   rm   r  s     rx   r
  z"TestEnergyDistance.test_inf_values!  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  r
  r
  r   rz   rx   r  r  !  s'    , !OCrz   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   r3   r   r   r   r   r   r   r   r   r3   r5   r   r   r4   r4   r5   r4   r   r3   r4   r   r   r6   r5   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 )	Nrb  rh  rd  r  |	&	@|	&	gҏGg?g@-pL?)rf   brunnermunzelre   r  r
   r  r   r  s	            rx   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sided!  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	:rz   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr`  rh  r  r*  r+   ҏGw?rf   r,  re   r  r
   r  r  s        rx   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	:rz   c                 x   t        j                  | j                  | j                        \  }}t        j                  | j                  | j                        \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr  r*  r+  r/  r0  r  s        rx   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	:rz   c           	          d}d}d}t        |dv       t        t        t        j                  | j
                  | j                  |||       y )Nr  r  rR  r!  r   r   r   rf   r,  re   r  rn   ri  distributionr   s       rx   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error"  sI     
#CCDj))ffff!" 	"rz   c                    t        j                  | j                  | j                  d      \  }}t        j                  | j                  | j                  d      \  }}t	        ||| j
                         t	        |d| j
                         t	        |d| j
                         t	        |d| j
                         y )Nr  r7  r  r*  r+  g "H[?r0  r  s        rx   $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	:rz   c           	          d}d}d}t        |dv       t        t        t        j                  | j
                  | j                  |||       y )Nr`  r  rR  )r  r  r5  r6  s       rx   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error"  sH    ! 
?23j))ffff!" 	"rz   kwarg_updaterr   rq   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   rf   r,  r   r   rm   )rn   r>  r8  r  r  s        rx   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput)"  s{     vvDFF+l#\\,4IJ 	> % 3 3 =f =Iv	>Y'VRVV$	> 	>s   
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   r3   r5   r(  rR  r   )r   rm   rf   r,  r   rn   re   r  r  r  r  ri  s          rx   &test_brunnermunzel_nan_input_propagatez8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagate3"  s    1aAq!Q1aArvv>-$$QkBB$$QkBBR R R R rz   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   r3   r5   r(  r`  r  r   )r   rm   r   r   rf   r,  )rn   re   r  ri  r7  r   s         rx   "test_brunnermunzel_nan_input_raisez4TestBrunnerMunzel.test_brunnermunzel_nan_input_raise>"  s    1aAq!Q1aArvv>-!
j))!" 	" 	j))!" 	"rz   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   r3   r5   r(  r   r   r  r*  r+  r/  )r   rm   rf   r,  r
   r  rB  s          rx   !test_brunnermunzel_nan_input_omitz3TestBrunnerMunzel.test_brunnermunzel_nan_input_omitT"  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	:rz   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)
        r}  rL  zDp-value cannot be estimated|divide by zero|invalid value encounteredr   r  r:  N)r   r>  r   rf   r,  r  s       rx   test_brunnermunzel_return_nanz/TestBrunnerMunzel.test_brunnermunzel_return_nanb"  sH     T\\.4 	8137	8 	8 	8s   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)
        r}  rL  zdivide by zeror   r  r:  Nr   )r   r>  r   rf   r,  r   )rn   rq   rr   rv  rA  s        rx   test_brunnermunzel_normal_distz0TestBrunnerMunzel.test_brunnermunzel_normal_distm"  sX     \\.0@A 	D&&q!(CDAq	DQ	D 	Ds   AAN)r   r   r   re   r  r  r-  r1  r3  r8  r;  r=  r   r   r  r@  rC  rE  rG  rI  rK  r   rz   rx   r'  r'  !  s    2A)AK:.::"	:" [[^sBi#r46R.@.B C%C%	!",:	8	rz   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)Nr}  z/`x` must be a one-dimensional array of numbers.r   z`q` must be a scalar.r   r3   )rb  z-`p` must be a float strictly between 0 and 1.r<   r:  )rA  r  z`alternative` must be one of...z	one-sidedrh  r)  )r   r   r   rf   quantile_testrT  )rn   rq   r  s      rx   test_quantile_test_ivz&TestQuantileTest.test_quantile_test_iv~"  s   C]]:W5 	%$	% *]]:W5 	-aV,	- B]]:W5 	2c4[1	2]]:W5 	(Q'	(]]:W5 	+T*	+ 4]]:W5 	<{;	< I]]:W5 	:"66q9	: 	:)	% 	%	- 	-	2 	2	( 	(	+ 	+	< 	<	: 	:sS   F=G
GG$G0G<%H=G
GG!$G-0G9<HHzp, alpha, lb, ub, alternative)r  r	  gX݊?g蜶?r`  )r<   r  g-tA?gP"?r`  rj  r	  g{gA?rb  r  r  gg @rd  c                     t        j                  t        j                  ddd            }t        j                  |||      }t        |j                  |      ||gd       y )Nr   r  r  )rA  ri  r#  rj  )r   r  r   rf   rO  r   rT  )rn   rA  r+  lbubri  rq   r   s           rx   test_R_ci_quantilez#TestQuantileTest.test_R_ci_quantile"  sN      FF299Qd+,!!!qkB//6RuMrz   zq, p, alternative, ref)r  r  r`  gͯI	?)r 
  r<   r`  gɍQ%e?c                     t        j                  t        j                  ddd            }t        j                  ||||      }t        |j                  |d       y )Nr   r  r  rb  rA  ri  r;   rj  )r   r  r   rf   rO  r   r  )rn   rb  rA  ri  r  rq   r   s          rx   test_R_pvaluezTestQuantileTest.test_R_pvalue"  sE     FF299Qd+,!!!qA;G

Ce4rz   r|  
continuousdiscreteri  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 )Nr8   rX  r3   r  r  r   rZ   rV  r$  rb  )r  rz  r   r  r  r  rf   rO  rT  rX  rW  r  )rn   r|  ri  r+  r=  r  rA  rb  r  r   rr  i_insiderq   s                rx   test_pval_ci_matchz#TestQuantileTest.test_pval_ci_match"  sc    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	)))	*rz   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)                                    r        geX?ri  r:  r`  rV  rK	  rj  ;   r9   rU   h   r<   p   )rA  rU  r  rd  rd  r  r$  )rf   rO  r   r  r   r#  )rn   rq   pvalue_expectedr   s       rx   test_match_conover_examplesz,TestQuantileTest.test_match_conover_examples"  s     !!!sdL

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

O%@rz   N)r   r   r   r  rP  r   r   r  r   r  rT  rW  r\  rp  r   rz   rx   rM  rM  y"  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rz   rM  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   r4   r  rY      i2  g:hў?Fr  i  gsH?i,0  gY@?)r  r  I   r:  r  `   r  rl  r  r	  r  1   r  +   rN  r  r	  r	  r  r  rU   r  rg  r  r  )D   rr  rd  "   r  r  A   X   rV   r  r  r	  r	  C   E   r  r  r  r  W   rN  rw  r  ru  rw  )r  r\   U   r:  O   r[   \   V   rV   @   r   r  rx  rb   r   Y   rX  rw  rw  r	  6   r\   B   r  r  i
  gXY?r  )r=   r   g @r6   r  rZ   )r6   r5   r?   rY   r  rV   )r  r 	  rY   r[   rW   r  iL  gs˜?T)r5   r4   r3   r   )r4   r5   r   r3   rg     gĞ?)r4   r3   r   r_  r}     g>K=?)r7   r6   r5   r4   r3   r   )r   r4   r5   r6   r3   r7   i  gqူ?)r6   r5   r4   r3   r   )r5   r   r4   r3   r6   r     ga?i  g;?)r8   r7   r6   r5   r4   r3   r   )r7   r6   r8   r5   r4   r3   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  )rankedr  
r   r  r=  rf   page_trend_testr   r  r   r  r  rn   LrA  r  r  rh  r   s          rx   test_accuracyzTestPageTrendTest.test_accuracyC#  sP    
		r##DGQ&3::&VSZZ(rz   i  g-lpW?)
rY   r:   r9   r8   r7   r6   r5   r4   r3   r   )
r   r9   r5   r8   r7   r6   r:   r4   r3   rY   i*  gh[?)
r:   r3   r9   r8   r7   r6   r5   r4   rY   r   r?  i  g&]2?)r9   r8   r7   r6   r5   r4   r3   r   )r   r4   r6   r7   r5   r8   r3   r9   r:  c                     t         j                  j                  d       t        j                  |||      }t        ||j                         t        ||j                         t        ||j                         y r  r  r  s          rx   test_accuracy2z TestPageTrendTest.test_accuracy2`#  sR     			r##DGQ&3::&VSZZ(rz   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  )rY   r  r   rS   Tr  F)predicted_ranks)r   r  r=  r   r  rH  rf   rankdatar  r   r  )rn   rT  rU  r  permrh  ranksr  r  r  res4res5s               rx   test_optionszTestPageTrendTest.test_optionsi#  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^^4rz   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  )rB  r  o   )r  rG  k   )g      y   )r  rS  r
  )r
        )   r5	  t   r   r8   Fr  )r  r  r  i  gy&1l?r5   r  r  gHPsb?)r   r  r=  r   r   r   rf   r  r   r  r   r  )rn   rh  r  r   s       rx   test_Ames_assayz!TestPageTrendTest.test_Ames_assay{#  s    
		r/Cxx~))Aq/##D4C+79 	S]]C(CJJ:##D4C+24 	S]]C(CJJ:rz   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   r3   zPage's L is only appropriater4   z+`predicted_ranks` must include each integerr}  rm  )rh  r  )r  r3   r4   )r   r3   r4   r4   r  z`data` is not properly ranked)r   r3   r4   Tr  z`data` contains NaNsFr  z`method` must be inekki)rh  r  z`ranked` must be boolean.)rh  r  )	r   r   rf   r  r   r  rH  rm   r|  r  s     rx   r  z'TestPageTrendTest.test_input_validation#  sa   :-IJ 	(!!$'	(:-IJ 	&!!"%	&:-IJ 	*!!1a&)	*:-IJ 	+!!QC5'*	+ :-KL 	8!!"))..A"67	8:-KL 	8!!"))..A"67	8 @:W5 	=!!	9'=2;=	= :W5 	?!!	9'=2=?	? :W5 	@!!	9'=2>@	@ :W5 	=!!	9'=2;=	=
 :-LM 	@!!9i"8$?	@:-LM 	@!!9i"8$?	@ :-CD 	0!!9q!RVVn"=).0	0 :-BC 	1!!	9'=)/1	1 9,GH 	1!!	9'=)/1	1 	1W	( 	(	& 	&	* 	*	+ 	+	8 	8	8 	8
	= 	=	? 	?	@ 	@	= 	=
	@ 	@	@ 	@	0 	0	1 	1	1 	1s   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   r   r  r=  rH  	data_3_25
data_10_26tsr   r   r  r  ts2r  r  r  r  r  r   rz   rx   rr  rr  #  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$;*/1rz   rr  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)Nr  r  rK  z#() got multiple values for argumentr   )r  rK  )r   r   r   r   r|  reescape)r	  r7  r   r  errs        rx   test_rename_mode_methodr  #  st     t
$G
$C#7#Ddll^>
?C	y		#	7 1T'01 1 1s   
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  r  r<   r+  )r   r  r  r   rf   	expectileri   rn   r  rq   s      rx   test_same_as_meanzTestExpectile.test_same_as_mean#  sC    ii##B'JJBJ5rwwqzBrz   c                     t         j                  j                  d      }|j                  d      }t        t	        j
                  |d      t        j                  |             y )Nr  r  r  r   r  )r   r  r  r   rf   r  aminr  s      rx   test_minimumzTestExpectile.test_minimum#  C    ii##B'JJBJ3RWWQZ@rz   c                     t         j                  j                  d      }|j                  d      }t        t	        j
                  |d      t        j                  |             y )Nr  r  r  r   r  )r   r  r  r   rf   r  amaxr  s      rx   test_maximumzTestExpectile.test_maximum#  r  rz   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   r3   )r   r/  r"  )r  r*  r+  r	  r  s        rx   r	  z'TestExpectile.test_weights.<locals>.fun#  sC    Q51AE	Aa1fI66!g+Q
233rz   c                     t        j                  |       t        j                  |       f}t        j                  || ||f      j
                  S )N)bracketr7  )r   r	  r	  r   minimize_scalarrq   )r*  r+  r	  r  r	  s       rx   
expectile2z.TestExpectile.test_weights.<locals>.expectile2#  sE    ffQi*G++C23UG1DFFGaHrz   rY   rJ	  )r   r  r  rf   r  r   )
rn   r  r  rU  r*  r+  r	  r   r  r	  s
            @rx   test_weightszTestExpectile.test_weights#  s{    
 ii##$78	4
	H
 JJqM

**Q-ooa8E7+S!rz   r+  )r  g?r<   g/#    ?r  rU  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  r  )r  r   r<   )r  r.  r  rY   r>  r<   c                     t        | |       y r  )r   r*  r4  s     rx   	assert_opz:TestExpectile.test_expectile_properties.<locals>.assert_op;$  s    1%rz   c                     | |k  sJ y r  r   r  s     rx   r  z:TestExpectile.test_expectile_properties.<locals>.assert_op?$      1uurz   c                     | |kD  sJ y r  r   r  s     rx   r  z:TestExpectile.test_expectile_properties.<locals>.assert_opC$  r  rz   r6   )r  r<   r  r   N)r   r  r  r  r   rf   r  r   exponentiallogisticr_)rn   r+  rU  r  rq   r,  rr   r  s           rx   test_expectile_propertiesz'TestExpectile.test_expectile_properties$  sO   $ 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..	
rz   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  r3   )r*  r  r  r<   r  r   r   r_   r  )r   r  r  paretologspacelog10r  r  rf   r  r  diff)rn   rU  r  rq   e_list	alpha_seqr+  s          rx   test_monotonicity_in_alphaz(TestExpectile.test_monotonicity_in_alphag$  s    ii##B'JJJ#KKRXXc]C8	UU1iYv2v->)>AB 	;EMM%//!59:	;vvbggfo)***rz   N)r   r   r   r  r  r  r  r   r   r  r  r  r   rz   rx   r  r  #  s    C
A
A
"4 [[: [[S2t*-_
 ._
B [[S2t*-+ .+rz   r  c            	       `   e Zd Zg dZdg dej
                  ej                  dgZd Ze	d        Z
ej                  j                  dedd	g g d
ggz         d        Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  dddg dg      ej                  j                  dddg      ej                  j                  dddg      d                      Zd Zy)TestLMoment)yףp=
?r  p=
ף?r=   r	  r  r=   r<   r   r  r	  {Gz?g@(\?gףp=
?
ףp=
?g)\(?gRQ @r  {Gz?ffffff @r  g{Gz@gRQ?gGz@gQ?(\?r  gzG?g
ףp=
?gQ?ffffff?gGz
@g(\?g(\?gQ?q=
ףp?g(\@Q?gGz	@r	  Q?r  p=
ף @r  gp=
ף@gq=
ףp@gRQ?Gz?g
ףp=
?r  gHzG?g      @r	  gQ?r  r  RQ?r  gQ?p=
ף?gQ@gGz?gQ?gp=
ף?q=
ףp?r	  gp=
ף?gQ?r  r  g@r  g)\( @gzG@r  r  gGz?g(\?r  333333?)\(?r  r  gGz@r  g(\?g=
ףp=?r  r  gHzG?{Gz?r  g
ףp=
?gףp=
?r  r  r  gQ?r}  g?r  r  g(\?r  gQ?gffffff@gQ?g?r  gGz?r  g{Gz?gHzG@r  r  r  g\(\?g(\?r  g(\?r=   )r   r3   r?   za duckc                     d}t        j                  t        |      5  t        j                  t        j                  | j                  t
        j                               d d d        y # 1 sw Y   y xY wNz*`sample` must be an array of real numbers.r   rH   )	r   r   r   rf   lmomentr   r   rh  r  r  s     rx   test_dtype_ivzTestLMoment.test_dtype_iv$  sM    >]]:W5 	DMM"((499BMMBC	D 	D 	Ds   AA**A3c                     d}t        j                  t        |      5  t        j                  t        j                  | j                  t                     d d d        y # 1 sw Y   y xY wr  )	r   r   r   rf   r  r   r   rh  r  r  s     rx   test_dtype_iv_non_numericz%TestLMoment.test_dtype_iv_non_numeric$  sE    >]]:W5 	=MM"((499F;<	= 	= 	=s   9A  A)r  r   r_   r}  c                     d}t        j                  t        |      5  t        j                  | j
                  |       d d d        y # 1 sw Y   y xY w)Nz*`order` must be a scalar or a non-empty...r   r  r   r   r   rf   r  rh  )rn   r  r  s      rx   test_order_ivzTestLMoment.test_order_iv$  s<    >]]:W5 	2MM$))51	2 	2 	2   "A		ArT   c                     d}t        j                  t        |      5  t        j                  | j
                  |       d d d        y # 1 sw Y   y xY w)Nz"`axis` must be an integer, a tupler   rS   r  )rn   rT   r  s      rx   test_axis_ivzTestLMoment.test_axis_iv$  s<    6]]:W5 	0MM$))$/	0 	0 	0r  sortedc                     d}t        j                  t        |      5  t        j                  | j
                  |       d d d        y # 1 sw Y   y xY w)Nz`sorted` must be True or False.r   )r  r  )rn   r  r  s      rx   test_sorted_ivzTestLMoment.test_sorted_iv$  s<    3]]:W5 	4MM$))F3	4 	4 	4r  standardizec                     d}t        j                  t        |      5  t        j                  | j
                  |       d d d        y # 1 sw Y   y xY w)Nz$`standardize` must be True or False.r   )r  r  )rn   r  r  s      rx   test_standardize_ivzTestLMoment.test_standardize_iv$  s<    8]]:W5 	>MM$))=	> 	> 	>r  r   r5   rg  FTc                 .   t        j                  g d      }|s|dd xxx |d   z  ccc |rt        j                  | j                        n| j                  }t	        j
                  ||||      }t        ||t        j                  |      dz
            y )N)g0ʻEH?gk?gz[?g+3 ?r3   r   )r  r  )r   rd   r	  rh  rf   r  r   )rn   r  r  r  r  rh  r   s          rx   test_lmomentzTestLMoment.test_lmoment$  s}     jj B C Gs1vG%+rwwtyy!mmD%[PSE!21!456rz   c                    t         j                  }t        j                  | j                        }t	        j
                  |j                  |            }t	        j
                  |      }|j                  j                  |k(  sJ t        ||d       t         j                  }t        j                  g d      }t	        j
                  |j                  |            }t	        j
                  |j                  t         j                              }|j                  j                  t         j                  k(  sJ t        ||d       y )Nrs  rj  r  r#  )r   r   rd   rh  rf   r  r  rI   r  r   int64r   )rn   rI   sampler   r  s        rx   
test_dtypezTestLMoment.test_dtype$  s    

DII&mmFMM%01mmF#yy~~&&&St,O,mmFMM%01mmFMM"**56yy~~+++Su-rz   N)r   r   r   rh  r   rm   r  not_integersr  r'   r  r   r   r  r  r  r   r  r  r	  r   rz   rx   r  r  s$  sN   
ND bffbffh?LD
 = =
 [[WlaR)5M&MN2 O2
 [[V\20 30
 [[X|44 54
 [[]L9> :>
 [[Wq!\&:;[[]UDM:[[Xt}57 6 ; <7".rz   r  c                      e Zd Zej                  j                  dg d      ej                  j                  dddg      ej                  j                  dddg      d                      Zd	 Zej                  j                  d
      ej                  j                  d      d               Z	ej                  j                  d      d        Z
 ed      d        Zd Zej                  j                  d      d        Zd Zd Zy)TestXP_MeanrT   Nr   r_   )r  r3   r	  NTrV  Fc                    t         j                  j                  d      }|j                  d      }|j                  |      }d x}}	|r;|j                  d      }|j                  |      }	t        j                  ||      \  }}t        ||	||      }
t        j                  ||||      }t        |
|j                  |             y )N   -fH rl  r   )r	  rT   rV  )r   r  r  rd   rr  r#   r	  r1   )rn   ro   rT   r	  rV  r  rq   x_xpr  w_xpr   r  s               rx   test_xp_mean_basiczTestXP_Mean.test_xp_mean_basic$  s     ii##N3JJy!zz!}D

6"A::a=D&&q!,DAqtTxHjjAD8DRZZ_-rz   c                     |j                  d      |j                  d      }}d}t        j                  t        |      5  t        ||       d d d        y # 1 sw Y   y xY w)Nr   r6   z/Array shapes are incompatible for broadcasting.r   rJ	  )r   r  r   r   r   r#   )rn   ro   rq   r  r  s        rx   test_non_broadcastablez"TestXP_Mean.test_non_broadcastable$  sM    yy~rxx{1C]]:W5 	#Q"	# 	# 	#s    AA r  r  c                    |j                  g d      }t        |j                  g d      |      }t        ||j                  |j                               t        |j                  g d      |      }t        ||j                  t        j
                                t        |j                  g d      |      }t        ||j                  t        j
                               y )Nr  r
  rJ	  )r   r   r   )r   r   r   )rd   r#   r1   rm   r   r  )rn   ro   r	  r   s       rx   test_special_caseszTestXP_Mean.test_special_cases$  s     **]+rzz,/ARZZ/0rzz,/ARZZ01rzz,/ARZZ/0rz   r>  c                 @   |j                  d      }|dk(  }|j                  ||j                  |      }t        |      r2t	        j
                  t        d      5  t        |d       d d d        n1t	        j
                  t        d      5  t        |d       d d d        t        |      }t        |d      }|j                  |j                        }t        ||       t        ||       t        |d	      }|j                  ||          }t        ||       |j                  d
      }|j                  ||j                  |      }t        |j                  d      |d	      }|j                  ||          }t        ||       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r4   r  r   r   r   r   rR  r   rY   )r	  r   )r   r  rm   r*   r   r   r|  r#   r   rd   r2   ri   r1   r  )	rn   ro   rq   r   r  r  r  r   r	  s	            rx   rF  zTestXP_Mean.test_nan_policy$  s_    IIcNQHHT2661% y0OP 0w/0 0 z1PQ 0w/0 {k2jj c"c" qV,ggahS! ''"+((41ryy~w6JggahS!/0 00 0s   FFFFr  c                 T   |j                  d      }|j                  |dk(  |j                  |      }d}t        j                  t
        |      5  t        |t        j                  z  d      }|j                  |j                        }t        ||       d d d        y # 1 sw Y   y xY wNr   r4   zAfter omitting NaNs...r   r   r   )
r   r  rm   r   r>  r   r#   r   rd   r2   rn   ro   rq   r  r   r  s         rx   test_nan_policy_warnsz!TestXP_Mean.test_nan_policy_warns%  s    IIcNHHQ!VRVVQ' +\\.8 	&1rvv:&9C**RVV$CC%	& 	& 	&   ABB'c                 L   d}t        j                  t        |      5  t        |j	                  g             }|j	                  |j
                        }t        ||       d d d        d}t        j                  t        |      5  t        |j	                  g g      d      }|j	                  |j
                  g      }t        ||       d d d        t        |j	                  g g      d      }|j	                  g       }t        ||       y # 1 sw Y   xY w# 1 sw Y   PxY wNz,One or more sample arguments is too small...r   z2All axis-slices of one or more sample arguments...r   rS   r   )r   r>  r   r#   rd   rm   r2   rn   ro   r  r   r  s        rx   rF  zTestXP_Mean.test_empty#%  s    @\\,G< 	&2::b>*C**RVV$CC%	&
 G\\,G< 	&2::rd+!4C**bffX&CC%	&
 rzz2$'a0jjnS!	& 	&	& 	&   ADADDD#4ignore:overflow encountered in reduce:RuntimeWarningc                    |j                  |j                        j                  }t        j                  ||gt        j                        }|j	                  |      }t        j
                  d      5  t        |      }t        j                  |      }t        j                  j                  |t        j                         t        ||j	                  |             d d d        t        ||j                        }|j	                  t        j                  t        j                  |t        j                                    }t        ||       y # 1 sw Y   txY w)NrH   r  )over)r   r   r	  r   rd   r  r#   ri   r  r   r  r1   r   rn   ro   r	  x_npr  r   r  s          rx   r	  zTestXP_Mean.test_dtype4%  s     hhrzz"&&zz3*BJJ7zz$ [[h' 	24.C''$-CJJ##C0CC1		2 t2::.jjD

!CDES!	2 	2s   4A*EEc                     |j                  d      }|j                  d      }t        t        |      t        |             t        t        ||      t        ||             y )NrY   r   rJ	  )r   r2   r#   r   s       rx   test_integerzTestXP_Mean.test_integerH%  sF    IIbMIIcNXa[1A.A0FGrz   c                 X   t         j                  j                  d      }|j                  d      \  }}}}t        |j	                  ||dz  z         |j	                  ||dz  z               }t        j
                  ||dz  z   ||dz  z         }t        ||j	                  |             y )Nr  )r5   r  r  rJ	  )r   r  r  r#   rd   r	  r1   )	rn   ro   r  rq   rr   wxwyr   r  s	            rx   r  z TestXP_Mean.test_complex_gh22404O%  s    ii##N3zz'*1b"rzz!ad(+RZZRU
5KLjjQrT22:6RZZ_-rz   )r   r   r   r   r   r  r  r  r   r  rF  r   r  rF  r	  r'  r  r   rz   rx   r  r  $  s   [[V%;<[[Yt5[[Z%7. 8 6 =. # [[ WX[[ VW1 X Y1 [[9""@ &	& '	&"" [[>"""H.rz   r  c                      e Zd Zej                  j                  dg d      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d Z e	d      d        Z
 e	d      d        Zd Zej                  j                  d      d        Zd Zd Zy)
TestXP_VarrT   r  rV  FTr}   r   r   r   rR  r   c                    t         j                  j                  d      }|j                  d      }t         j                  }|dk(  rB|j                  |j                        dkD  }	t         j
                  ||	<   t         j                  }|j                  |      }
t        |
||||      }t               5 }|j                  t        d        |||||      }d d d        t        ||j                               y # 1 sw Y   %xY w)	Nr  rl  r   r  r<   )rT   rV  r}   r   r  )rT   rV  r  )r   r  r  r   r  rm   nanvarrd   r$   r   r   r   r1   )rn   ro   rT   rV  r}   r   r  rq   var_refnan_maskr  r   r   r  s                 rx   test_xp_var_basiczTestXP_Var.test_xp_var_basicX%  s    
 ii##N3JJy!&&zzqwwz/#5H&&AhKiiGzz!}dZ!+-   	LCJJ~'JK!$
KC	L 	RZZ_-		L 	Ls   3#C::Dc                     t        |j                  ddg      d      }t        ||j                  |j                               y )Nr   r   r4   r|   )r$   rd   r1   rm   )rn   ro   r   s      rx   r  zTestXP_Var.test_special_casesq%  s2    bjj"b*q9RZZ/0rz   c                 \   |j                  d      }|dk(  }|j                  ||j                  |      }t        |      }t        |d      }|j	                  |j                        }t        ||       t        ||       t        |d      }|j                  ||          }t        ||       y )Nr   r4   rR  r   r   )r   r  rm   r$   rd   r2   r   r1   )rn   ro   rq   r   r  r  r  r   s           rx   rF  zTestXP_Var.test_nan_policyv%  s    IIcNQHHT2661% qzq[1jj c"c" aF+ffQuXS!rz   r  c                 T   |j                  d      }|j                  |dk(  |j                  |      }d}t        j                  t
        |      5  t        |t        j                  z  d      }|j                  |j                        }t        ||       d d d        y # 1 sw Y   y xY wr  )
r   r  rm   r   r>  r   r$   r   rd   r2   r  s         rx   r  z TestXP_Var.test_nan_policy_warns%  s    IIcNHHQ!VRVVQ' +\\.8 	&!bff*8C**RVV$CC%	& 	& 	&r  c                     d}t        j                  t        |      5  t        |j	                  dd|j
                  g      d       d d d        y # 1 sw Y   y xY w)Nr   r   r   r3   r   r   )r   r   r   r$   rd   rm   r  s      rx   r*
  z TestXP_Var.test_nan_policy_raise%  sM     2]]:W5 	DBJJ1bff~.7C	D 	D 	Ds   *AAc                 L   d}t        j                  t        |      5  t        |j	                  g             }|j	                  |j
                        }t        ||       d d d        d}t        j                  t        |      5  t        |j	                  g g      d      }|j	                  |j
                  g      }t        ||       d d d        t        |j	                  g g      d      }|j	                  g       }t        ||       y # 1 sw Y   xY w# 1 sw Y   PxY wr  )r   r>  r   r$   rd   rm   r2   r  s        rx   rF  zTestXP_Var.test_empty%  s    @\\,G< 	&"**R.)C**RVV$CC%	&
 G\\,G< 	&"**bT*3C**bffX&CC%	&
 bjj"&Q/jjnS!	& 	&	& 	&r   r!  c                 j   |j                  |j                        j                  }t        j                  ||dz  gt        j                        }|j	                  |      }t        |      }t        j                  |      }t        j                  j                  |t        j                         t        ||j	                  |             t        ||j                        }|j	                  t        j                  t        j                  |t        j                                    }t        ||       y )Nr3   rH   )r   r   r	  r   rd   r$   r   r  r   r  r1   r   r$  s          rx   r	  zTestXP_Var.test_dtype%  s     hhrzz"&&zz3A,bjj9zz$dmffTl


RVV,RZZ_- d"**-jj

4rzz BCDS!rz   c                     |j                  d      }|j                  d      }t        t        |      t        |             y )NrY   r   )r   r2   r$   r   s       rx   r'  zTestXP_Var.test_integer%  s.    IIbMIIcN
GAJ/rz   c                    t         j                  j                  d      }|j                  d      \  }}t        |j	                  ||dz  z               }t        j
                  ||dz  z         }t        ||j	                  |      d       y )Nr  )r3   r  r  F)check_dtype)r   r  r  r$   rd   r   r1   r  s          rx   r  zTestXP_Var.test_complex_gh22404%  sm    ii##N3zz'"1bjjQrT*+ffQ2XRZZ_%@rz   N)r   r   r   r   r   r  r1  r  rF  r   r  r*
  rF  r   r	  r'  r  r   rz   rx   r,  r,  W%  s    [[V%;<[[Z%7[[\Aq62[[\K+@A. B 3 8 =.*1
"" &	& '	& &D 'D"" [[>""0Arz   r,  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^  r  r   r;	  r   r3   rk  )	r   r  r  rd   r    r2   r   r  
atleast_1d)ro   r  r  rq   rT   x_outaxis_outs          rx   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 rz   numpyz,These parameters *are* compatible with NumPyc                 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)Nrg  r  r   r   r   Tru  )rd   r   r   r  rf   r  )ro   rq   r  s      rx   'test_axis_nan_policy_keepdims_nanpolicyrB  %  s     	

< A5G	*'	: )

1()	*'	: %

1t$% %) )% %s   B,BBB"rY  )r  rT
  r  rx  collectionsr   	itertoolsr   hypothesis.extra.numpyextrar@  r  r  r  numpy.testingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   scipy.statsrf   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   rJ  r   r    r!   r"   r#   r$   r%   scipy._lib._utilr&   scipy.conftestr'   scipy._lib._array_apir(   r)   r*   r+   r,   r-   r.   r/   r0   scipy._lib._array_api_no_0dr1   r2   scipy._lib.array_api_extra_libarray_api_extrarj   lazy_xp_modulesr   r   r  re   r  r   r   r   r   r   rF   r   r   r  r  r1  r  r  r  r  r  r  r   rp  rs  rw  r  r  r  r  r
  r  r  rH  r  r  r  r  r  r  r  r  r  rA  rC  r  r  r  r  r  r  r  r  	compositer  r  r  r4  PowerDivCaser  r  r   r  rs  rm  rt  r  r  r  r  r  rp  ru  ry  r  r  r  r  r  re  r  r  r  r  r  r  r  r   r  r  r  r'  r4  r6  rP  rb  rd  r  rl  rn  rp  rt  rr  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	  r	  r	  r	  r	  r	  r
  r3
  r
  r
  r
  r
  r
  r  r  r'  rM  rr  r  r  r  rq   rr   wilcoxonr  r  r  r  r  r  r  r  r  r,  r?  rB  r   rz   rx   <module>r]     s   
 	  "  % %  . . .
  * / /   # # 0 0 ( -   -T TU U U & .G G G I ( (';;//  

u% %(  !&(	 238
:DeLDeL3U;KT KT\p# p#f 5>>"E> E> #E>PDL DLN{6 {6|~5 ~5VV:r4 < 3 3$TE TEnY2x	*&R+ +(n# n#b0D)3"rN rNjf3 f3R 599+E +E +E\ 5::j" j" j"Z 5<< f& f& !f&R 5==!0 0 "0*<@ <@~1f@ f@R 5<< e" e" !e"P1 1& 5::_" _" _"D 5>>"`"# `" #`"F    !< 5$$%J) J) &J)Z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 5))*A< A< +A<H 5??#(' (' $('V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
/d 
/ 5??E$>$>?Q% @Q%h7At DEM7 M7 FM7`
 DEG5 G5 FG5TQ7 Q7h 5??#IB IB $IBXL$ 5??#y* y* $y*x 5--.) ) /), t4HIMNG O JG8% STRS5$$%9> & T U 9>x $'QR S, 5$$%k2RS% T &%: 5>>"N+ N+ #N+b*- *-Z 5>>"-> - #-6 5%%&-~ - '-B 5##$-^ - %- A A. 5$$%61 61 &61r{- {-|1"(>V 15D+ DDD 5;;q3 q3  q3h 5;;n3 n3  n3b 5;;tW tW  tWn 5::R3 R3 R3j(.90[;|T7 T7n,/ ,/^i) i)X\) \)~X Xx 5(()b4 b4 *b4J#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T. T.nJ. J.ZqA qAh!* '"PQ
% R
%rz   