
    giܶ                    F   d dl Z d dl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	Z	d dl
mZ d dlZd dlmZ d dlZd dlmc mZ d dlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d d	l;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF ej                  ej                  ej                  ej                  gZKd
 ZLd ZM G d d      ZN G d d      ZO G d d      ZP G d d      ZQej                  j                  dg d      d        ZT G d d      ZU G d d      ZV G d d      ZW G d d      ZX G d d       ZY G d! d"      ZZ G d# d$      Z[ G d% d&      Z\ G d' d(      Z] G d) d*      Z^d+ Z_ G d, d-      Z` G d. d/      Za G d0 d1      Zb G d2 d3      Zc G d4 d5      Zd G d6 d7      Zednd8Zfdod9Zg G d: d;      Zh G d< d=      Zi G d> d?      Zj G d@ dA      Zkej                  j                  ddBej                  dC   z   ej                  dD   z         ej                  j                  dEg dF       G dG dH                    Zm G dI dJ      Zn G dK dL      Zo G dM dN      Zp G dO dP      Zq G dQ dR      Zr G dS dT      Zs G dU dV      Zt G dW dX      Zu G dY dZ      Zv G d[ d\      Zw G d] d^      Zx G d_ d`      Zyg daZzg dbZ{dcgZ| G dd de      Z} G df dg      Z~ G dh di      Z G dj dk      Z G dl dm      Zy)p    N)Fraction)partial)arrays)angleaveragebartlettblackmancorrcoefcovdeletediffdigitizeextractflipudgradienthamminghanningi0insertinterpkaisermameshgrid	piecewiseplacerot90selectsetxor1dsinc	trapezoid
trim_zerosuniqueunwrap	vectorize)normalize_axis_tuple)	AxisError)rand)HAS_REFCOUNTIS_WASMNOGIL_BUILDassert_assert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equalassert_equalassert_raisesassert_raises_regexc                 p    t        j                  |       }t         j                  j                  ||      }|S N)nparangeaddouter)ndatas     Z/var/www/html/audio_env/lib/python3.12/site-packages/numpy/lib/tests/test_function_base.pyget_matr<   D   s(    99Q<D66<<d#DK    c                     t        j                  t        j                  | |      j                  t         j                        }| |_        ||_        |S )za
    Like real + 1j * imag, but behaves as expected when imag contains non-finite
    values
    )r5   zeros	broadcastshape
complex128realimag)rC   rD   rets      r;   _make_complexrF   J   s<    
 ((2<<d+112==
ACCHCHJr=   c                       e Zd Zd Zd Zd Zy)	TestRot90c                    t        t        t        t        j                  d             t        t        t        t        j                  d      d       t        t        t        t        j                  d      d       t        t        t        t        j                  d      d       t        t        t        t        j                  d      d       g dg d	g}d
dgddgddgg}g dg dg}ddgddgdd
gg}g dg d	g}t        ddd      D ]  }t        t        ||      |        t        ddd      D ]  }t        t        ||      |        t        ddd      D ]  }t        t        ||      |        t        ddd      D ]  }t        t        ||      |        t        t        t        |d      d      |       t        t        |dd      t        |dd             y )N      rL   rL   r      rL   axesrL   rL   r   rL   rN   rN   )rN      rJ      rL   rW   rN   r   rV   rW   rJ   rV   rL   rN   r      )krT   r   rN   rN   r   r\   rP   )r1   
ValueErrorr   r5   onesranger0   )selfab1b2b3b4r\   s          r;   
test_basiczTestRot90.test_basicV   s   j%4j%);)Lj%vFj%vFj%);'J!f!f!f !f!f!f  r2q! 	,AqA+	,r2q! 	,AqA+	,r2q! 	,AqA+	,q"a 	,AqA+	, 	U50v>BU1/qBV1LMr=   c                     t        j                  d      }t        t        |      j                  d       t        t        |d      t        |d             t        t        |d      t        |d             y )N)2   (   rV   )rm   rl   rV   rR   rO   r   r]   rN   rL   rT   r]   )r5   rb   r0   r   rA   rd   re   s     r;   	test_axeszTestRot90.test_axesv   sR    GGK U1X^^[1U16*E!',BCU16*E!(,CDr=   c           	         t        j                  d      j                  d      }ddgddggddgd	d
ggg}ddgddggd
dgd	dggg}d	dgddggd
dgddggg}d	d
gddggddgddggg}t        t	        |d      |       t        t	        |d      |       t        t	        |d      |       t        dd
      D ])  }t        t	        ||d      t	        ||dz
  d             + y )N   rK   rL   rV         r   rN   rJ   rW   r^   rO   r_   ro   )rL   r   r`   )r5   r6   reshaper0   r   rc   )rd   re   
a_rot90_01
a_rot90_12
a_rot90_20
a_rot90_10r\   s          r;   test_rotation_axeszTestRot90.test_rotation_axes|   sD   IIaL  +1v1v1v1v 
 1v1v1v1v 
 1v1v1v1v 
 1v1v1v1v 

 	U16*J7U16*J7U16*J7q! 	BAqAF3zQU@B	Br=   N)__name__
__module____qualname__rj   rr   r|    r=   r;   rH   rH   U   s    N@EBr=   rH   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestFlipc                    t        t        t        j                  t        j                  d      d       t        t        t        j                  t        j                  d      d       t        t        t        j                  t        j                  d      d       t        t        t        j                  t        j                  d      d       y )NrJ   rN   axisrJ   rJ   rL   rZ   r   rV   )r1   r&   r5   fliprb   rd   s    r;   rr   zTestFlip.test_axes   sj    i"''!*1=i"''&/Bi"''&/Ci"''&/Gr=   c                     t        d      }|d d d d df   }t        t        j                  |d      |       g dg dg}g dg dg}t        t        j                  |d      |       y )NrJ   r]   rN   rM   rU   rY   rX   r<   r0   r5   r   rd   re   bs      r;   test_basic_lrzTestFlip.test_basic_lr   s^    AJa2gJRWWQ]A&RWWQ]A&r=   c                     t        d      }|d d dd d f   }t        t        j                  |d      |       g dg dg}g dg dg}t        t        j                  |d      |       y )NrJ   r]   r   rM   rU   r   r   s      r;   test_basic_udzTestFlip.test_basic_ud   s^    AJddAgJRWWQ]A&RWWQ]A&r=   c                     t        j                  ddgddggddgddggg      }t        j                  ddgddggddgddggg      }t        t        j                  |d      |       y 	Nr   rN   rL   rV   rJ   rW   ru   rv   r5   arrayr0   r   r   s      r;   test_3d_swap_axis0zTestFlip.test_3d_swap_axis0       HH1v1v1v1v  !
 HH1v1v1v1v  !
 	RWWQ]A&r=   c                     t        j                  ddgddggddgddggg      }t        j                  ddgddggddgddggg      }t        t        j                  |d      |       y r   r   r   s      r;   test_3d_swap_axis1zTestFlip.test_3d_swap_axis1   r   r=   c                     t        j                  ddgddggddgddggg      }t        j                  ddgddggddgddggg      }t        t        j                  |d      |       y r   r   r   s      r;   test_3d_swap_axis2zTestFlip.test_3d_swap_axis2   r   r=   c           
      ,   t        j                  d      j                  dddd      }t        |j                        D ]U  }t        t        j                  ||      t        j                  |j                  d|            j                  |d             W y )Nx   rL   rV   rJ   rW   r   )	r5   r6   rw   rc   ndimr0   r   r   swapaxes)rd   re   is      r;   test_4dzTestFlip.test_4d   ss    IIm$,,Q1a8qvv 	EAA1::a#34==aCE	Er=   c                     t        j                  g dg dg      }t        j                  g dg dg      }t        t        j                  |      |       y )NrN   rL   rV   rJ   rW   ru   )ru   rW   rJ   rV   rL   rN   r   r   s      r;   test_default_axiszTestFlip.test_default_axis   sD    HHi! "HHi! "RWWQZ#r=   c                    t        j                  ddgddggddgddggg      }t        t        j                  |d	
      |       t        j                  ddgddggddgddggg      }t        t        j                  |d
      |       t        j                  ddgddggddgddggg      }t        t        j                  |d
      |       y )Nr   rN   rL   rV   rJ   rW   ru   rv   r   r   rR   ro   r   rd   re   r   cs       r;   test_multiple_axeszTestFlip.test_multiple_axes   s    HH1v1v1v1v  !
 	RWWQR(!,HH1v1v1v1v  !
 	RWWQV,a0HH1v1v1v1v  !
 	RWWQV,a0r=   N)r}   r~   r   rr   r   r   r   r   r   r   r   r   r   r=   r;   r   r      s1    H'''''E$1r=   r   c                       e Zd Zd Zd Zy)TestAnyc                     g d}g d}g d}t        t        j                  |             t        t        j                  |             t        t        j                  |              y )Nr   r   rN   r   r   r   r   r   )rN   r   rN   r   )r+   r5   anyrd   y1y2y3s       r;   rj   zTestAny.test_basic  sC    r
r
BFF2Jr=   c                     g dg dg dg}t        t        j                  |             t        t        j                  |d      g d       t        t        j                  |d      g d       y )Nr   r   r   r   rN   r   rN   rN   r   r   r   rN   r   rN   rN   )r+   r5   r   r/   rd   r   s     r;   test_ndzTestAny.test_nd
  sH    I.r
266"1-y9266"1-y9r=   Nr}   r~   r   rj   r   r   r=   r;   r   r      s     :r=   r   c                       e Zd Zd Zd Zy)TestAllc                 8   g d}g d}g d}t        t        j                  |              t        t        j                  |             t        t        j                  |              t        t        j                  t        j                  |                    y )N)r   rN   rN   r   r   rN   rN   rN   rN   )r+   r5   allr   r   s       r;   rj   zTestAll.test_basic  s`    BFF2Jr
BFF2J}%&r=   c                     g dg dg dg}t        t        j                  |              t        t        j                  |d      g d       t        t        j                  |d      g d       y )Nr   r   rN   r   rN   rN   rN   r   r   rN   )r+   r5   r   r/   r   s     r;   r   zTestAll.test_nd  sJ    I.BFF2J266"1-y9266"1-y9r=   Nr   r   r=   r;   r   r     s    ':r=   r   dtype)i8U10objectzdatetime64[ms]c                     t        j                  d|       }t        j                  |      j                  t         j                  k(  sJ t        j
                  |      j                  t         j                  k(  sJ y )NrV   r   )r5   rb   r   r   boolr   )r   arrs     r;   test_any_and_all_result_dtyper   #  sR    
''!5
!C66#;'''66#;'''r=   c                       e Zd Zd Zd Zd Zy)TestCopyc                     t        j                  ddgddgg      }t        j                  |      }t        ||       d|d<   t	        |d   d       t	        |d   d       y )NrN   rL   rV   rJ   
   )r   r   )r5   r   copyr/   r0   )rd   re   a_copys      r;   rj   zTestCopy.test_basic,  sY    HHq!fq!f%&1f%tQtWa VD\2&r=   c                    t        j                  ddgddgg      }t        |j                  j                         t        |j                  j
                          t        j                  ddgddggd      }t        |j                  j                          t        |j                  j
                         t        j                  |      }t        |j                  j                         t        |j                  j
                          t        j                  |      }t        |j                  j                          t        |j                  j
                         y )NrN   rL   rV   rJ   Forder)r5   r   r+   flagsc_contiguousf_contiguousr   )rd   re   a_fortr   a_fort_copys        r;   
test_orderzTestCopy.test_order4  s     HHq!fq!f%&$$%AGG((()Aq6Aq6*#6FLL---.))*))*FLL---.ggfoK%%2223!!../r=   c                 `   t        j                  d      }t        t        j                  t	        j
                  |d                    t        t        j                  t	        j
                  |d                   t        t        j                  t	        j
                  |                    y )NrW   F)subokT)r   rb   r+   isMaskedArrayr5   r   )rd   mxs     r;   
test_subokzTestCopy.test_subokE  sl    WWQZB$$RWWRu%=>>?  4!89:B$$RWWR[112r=   N)r}   r~   r   rj   r   r   r   r=   r;   r   r   *  s    '0"3r=   r   c                       e Zd Zd Zej
                  j                  dg dddgg ddgdgfg d	g d
gdg dgddgg dgg dgfg      d        Zd Zd Z	d Z
d Zd Zd Zd Zd Zy)TestAveragec                 |   t        j                  g d      }t        t        |d      dk(         t        j                  g d      }t        t        |d      dk(         g d}t        t        |d      dk(         t        j                  d      }d|d	<   d
|d<   t        |j                  d      t        |d             t        |j                  d      t        |d             t        dd      }t        |j                  d      t        |d             t        |j                  d      t        |d             y )Nr   r   r          @      ?r         @)        r   r   r   r   r^   rL   r_   rN   rW   )r5   r   r+   r   rb   r-   meanr'   )rd   r   r   r   y4y5s         r;   rj   zTestAverage.test_basicO  s    XXi #r)*XXl##r)*#r)*WWV_44BGGAJA7BGGAJA7!QZBGGAJA7BGGAJA7r=   z<x, axis, expected_avg, weights, expected_wavg, expected_wsumr   Nr   )rV   rJ   rN         ?       @)rN   rL   rW   )rN   ru      r   )r         @r   rN   rV   )r         @      #@rJ   rJ   rJ   c                     t        j                  ||d      }|j                  t        j                  |      k(  sJ t        ||       t        j                  |||d      }|j                  t        j                  |      k(  sJ t        ||       t        j                  |||dd      \  }}	|j                  t        j                  |      k(  sJ t        ||       |	j                  t        j                  |      k(  sJ t        |	|       y )NTr   keepdims)r   weightsr   )r   r   returnedr   )r5   r   rA   r/   )
rd   xr   expected_avgr   expected_wavgexpected_wsumavgwavgwsums
             r;   test_basic_keepdimszTestAverage.test_basic_keepdimsa  s     jj5yyBHH\22223-zz!$$GzzRXXm44444/ZZg)-/
dzzRXXm44444/zzRXXm44444/r=   c                    t        j                  d      }t        j                  d      }t        ||      }t        j                  d      dz  j                         dz  t        j                  d      j                         z  }t	        ||       t        j
                  g dg dg      }ddg}t        ||d	      }t        j
                  g d
      }t	        ||       g d}t        ||d	      }t        j
                  ddg      }t	        ||       t        j                  t        d      5  t        ||       d d d        g dg dg}t        j
                  ddg      }t        t        ||d	      |       t        t        ||      d       t        d      j                  t         j                        }	t        d      j                  t         j                        }
t        t        j                  |	|
      j                   t        j"                  |	|
      k(         t        j
                  g d      j%                  dd      }t        j
                  g d      j%                  dd      }t        j                  ||dd      }t        j
                  g d      }t        ||       t        j                  ||dd      }t        j
                  dgdgdgg      }t        ||       y # 1 sw Y   xY w)Nr   r   rL   r   r   r   rN   r   r   r   )r   r   r   r   r         @z:Axis must be specified when shapes of a and weights differmatch)r   r   rL   r   rW   rL   rV   rJ   rV   F)r   r   r   )r   r   r   Tr   r   )r5   r6   r   sumr-   r   pytestraises	TypeErrorr/   r0   r'   astypefloat32float64r+   r   result_typerw   )rd   ywactualdesiredr   w0w1w2r   w3r   s               r;   test_weightszTestAverage.test_weightsx  sD   IIbMIIbMA&99R=A%**,r1BIIbM4E4E4GGFG,XXy),-VRa0((<(FG,Ra0((B8$FG, ]]+, 	$ B#		$ #((B8$72r:GDWR,b1!W^^BJJ'!W^^BJJ'

2r*00BNN2r4JJK HHY''1-HHY''1-Aqq5A((<(67+Aqq4@((RD2$-.67+7	$ 	$s   1K11K;c                    t        j                  d      j                  ddd      }t        j                  g d      j                  ddd      }|d d d d df   }t	        |d|      }t        j                  g d      }t        ||       |d	d d d d f   }t	        |d
|      }t        j                  ddg      }t        ||       |d d dd d f   }t	        |d|      }t        j                  ddg      }t        ||       t        j                  t        d      5  t	        |d|       d d d        t        j                  t        d      5  t	        |d|       d d d        t	        |d|      }t	        |d|j                        }t        ||       t	        |d|      }t        |j                  dk(         y # 1 sw Y   xY w# 1 sw Y   nxY w)N   rL   rV   )r   r   r         ?r  r   r   r  r  r   r   r   r   r^   )r   r         @r         "@rN   ro   g      @g      @rR         @g      @zHShape of weights must be consistent with shape of a along specified axisr  rM   r_   )r5   r6   rw   r   r   r-   r	  r
  ra   Tr+   r   )rd   r  r  subw0r  r  subw1subw2s           r;   $test_weight_and_input_dims_differentz0TestAverage.test_weight_and_input_dims_different  s   IIbM!!!Q*HHEFWQ1 	
 !Q'
7((<(FG,!Q'
7((D$<(FG,!Q'
7((D$<(FG, ]]89 	6 AIu5		6 ]]89 	3 AFE2		3 7!&%'':FG, A6q !'	6 	6	3 	3s   !GGGGc                    t        j                  g dg dg      }t        |d      \  }}t        |d       t        |dd      \  }}t	        |t        j                  g d             t        |dd      \  }}t	        |t        j                  d	d	g             dd
g}t        ||dd      \  }}t	        |t        j                  g d             g d}t        ||dd      \  }}t	        |t        j                  ddg             g dg dg}t        ||dd      \  }}t	        |t        j                  ddg             y )Nr   r   T)r   r  r   )r   r   r   rN   r   rL   r   r   r   )r   r   r   r   r   )r5   r   r   r0   r/   )rd   r  r   sclr  r  r  s          r;   test_returnedzTestAverage.test_returned  s   HHi+, 1t,SS"1a$/S3 671a$/S3"b 23 V1bq4@S3 671bq4@S3"b 23#1bq4@S3"b 23r=   c                     G d dt         j                        }t        j                  ddgddgg      j                  |      }t        j                  ddgddgg      j                  |      }t	        t        t        j                  |            |       t	        t        t        j                  ||            |       t        j                  ||d	      \  }}t	        t        |      |       t	        t        |      |       t        j                  ||d
   dd      \  }}t	        t        |      |       t	        t        |      |       y )Nc                       e Zd Zy)-TestAverage.test_subclasses.<locals>.subclassNr}   r~   r   r   r=   r;   subclassr+        r=   r-  rN   rL   rV   rJ   r  T)r   r   r   r&  )r5   ndarrayr   viewr0   typer   )rd   r-  re   r  rarws         r;   test_subclasseszTestAverage.test_subclasses  s    	rzz 	HHq!fq!f%&++H5HHq!fq!f%&++H5T"**Q-((3T"**Q23X>Aq48BT"Xx(T"Xx(Aqt!dCBT"Xx(T"Xx(r=   c                    g d}|D ]~  \  }}}t        j                  ddgddgg|      }t        j                  ddgddgg|      }t        t        j                  ||      j                  t        j                  |              y )N))i4r6  f8)r6  f4r7  )r8  r6  r7  )r8  r8  r8  )r8  r7  r7  rN   rL   rV   rJ   r   r  )r5   r   r0   r   r   )rd   typsatwtrtre   r  s          r;   test_upcastingzTestAverage.test_upcasting  s}    9 	GJBB1a&1a&)4A1a&1a&)4AAq177"F	Gr=   c                    t        j                  t        d      D cg c]  }t        j                  |       c}      }t        j                  t        d      D cg c]  }t        j                  d       c}      }||j                         z  }t        |j                  d      t        ||             y c c}w c c}w )Nr   rN   r   r  )	r5   r   rc   decimalDecimalr  r-   r   r   )rd   r   re   _r  s        r;   test_object_dtypezTestAverage.test_object_dtype  s~    HH%)<Qgooa(<=HH%)<Qgooa(<=	QUUWAFF1Iwq!'<= =<s   B9B>c                     t        j                  t        d      D cg c]  }t        j                  |       c}      }t        |      }|t        j                  d      k(  sJ y c c}w )Nr   z4.5)r5   r   rc   r?  r@  r   )rd   r   re   ms       r;   test_object_no_weightsz"TestAverage.test_object_no_weights  sM    HH%)<Qgooa(<=AJGOOE**** =s   A&c                     t        j                  t        dd      t        dd      g      }t        t        j                  |      t        dd             y )NrN   rW   rV   rL   )r5   r   r   r0   r   rq   s     r;    test_average_class_without_dtypez,TestAverage.test_average_class_without_dtype  s9    HHhq!nhq!n56RZZ]HQN3r=   )r}   r~   r   rj   r	  markparametrizer   r  r$  r(  r4  r=  rB  rE  rG  r   r=   r;   r   r   M  s    8$ [[F
TC5)dVcU	;j
!1&7a&?#i[
2	300".,`("T44)"G>+
4r=   r   c                      e Zd Z ej                  g d       ej                  g d       ej                  g d      gZ ej                  g d       ej                  g d       ej                  g d      gZddZd Zd	 Z	d
 Z
d Zd Zy)
TestSelectr   r   rv   rt   	   )FFFFTFFFTc                     g }t        t        |            D ]2  }|t        ||      D cg c]  \  }}||   s||    c}}xs |gz  }4 |S c c}}w r4   )rc   lenzip)rd   condvaluesdefaultoutputrD  VCs           r;   _selectzTestSelect._select  s]    s4y! 	PAFD(9B1QqTqtBOwiOF	P Cs
   A
A
c                     | j                   }| j                  }t        t        ||d      | j	                  ||d             t        t        |      d       t        t        |      d       y )N   rU  rV   )choices
conditionsr/   r   rY  r0   rQ  rd   r]  r^  s      r;   rj   zTestSelect.test_basic$  sX    ,,__
6*grB<<
GR<H	J 	S\1%S_a(r=   c                 F   t        j                  d      t        j                  g d      g}dt        j                  d      j                  dd      g}t	        t        ||      t        j                  d             t        t        dgdgdg	      j                  d
       y )NTrN  rN   r  rJ   rV   rJ   rV   r   r\  rN   )	r5   r   r6   rw   r/   r   rb   r0   rA   rd   r^  r]  s      r;   test_broadcastingzTestSelect.test_broadcasting-  su    hhtnbhh/C&DE
biim++Aq126*g6HVTFQC!5;;TBr=   c           	      D   t        t        | j                  | j                  d      j                  t
        j                         | j                  D cg c]!  }|j                  t
        j                        # }}t        t        | j                  |      j                  t
        j                         t        j                  dddt
        j                  ddg      }t        j                  |      }t        t        |g|g      dddt
        j                  ddg       y c c}w )N              ?rN   rL   rV   rW   rv   r   )r0   r   r^  r]  r   r5   rB   r  int8r   nanisnan)rd   choicer]  drD  s        r;   test_return_dtypezTestSelect.test_return_dtype4  s    VDOOT\\2>DD]]	$ 9=Ef6==)EEVDOOW5;;RWWEHHaArvvq!,-HHQKVQC!%1aA'>? Fs   &Dc                 R   | j                   }| j                  d d  }|d   j                  t        j                        |d<   t        t        t        ||       |d   j                  t        j                        |d<   t        t        t        ||       t        t        t        ||       y Nr   )	r]  r^  r  r5   int_r1   r  r   uint8r_  s      r;   test_non_bool_deprecationz$TestSelect.test_non_bool_deprecation@  s{    ,,__Q'
"1,,RWW5
1iW="1,,RXX6
1iW=iW=r=   c                     t        j                  dg      gdz  }t        j                  dg      gdz  }t        ||       y )NFd   rN   )r5   r   r   rc  s      r;   test_many_argumentszTestSelect.test_many_argumentsI  s:    hhw'(3.
88QC=/C'z7#r=   Nr   )r}   r~   r   r5   r   r]  r^  rY  rj   rd  rl  rq  rt  r   r=   r;   rK  rK    s    rxx	"rxx	"rxx	"$G "((01"((/0"((/02J)C
@>$r=   rK  c                   ~    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	d
g      d        Zy)
TestInsertc           
         g d}t        t        |dd      g d       t        t        |dd      g d       t        t        |g dg d      g d       t        t        |dg d      g d       t        t        |g d	d
      g d       t        t        |t        dd d      d
      g d       t        t        |g dg d      g d       t        j                  ddgt        j
                        }t        t        |d|d         g d       t        t        |g g       |       t        t        |t        j                  dgdz        d
      g d       t        t        |t        j                  g d      d
      g d       y )Nr   r   rN   )rN   rN   rL   rV   rV   )rN   rL   rV   rN   r   )rN   rN   rL   rV   rL   rV   )rN   r]   rV   rM  )rN   rM  rL   rM  rV   rM  r]   )rM  rN   rM  rL   rM  rV   r]   rN   rV   rL  )rN   rt   rL   rv   rV   rM  r   r   r   r   TrJ   )rM  rN   rM  rL   rM  rV   rM  )TFTF)rM  rN   rL   rM  rV   )r0   r   slicer5   r   r  r   s      r;   rj   zTestInsert.test_basicR  s   VAq!_l3VAq!_l3VAy)46HIVAq),.@AVAz1-/ABVAuRr2A68JKVAz957IJHHaV2::.VAq!A$'6VAr2&*VArxx
3Q79NOVArxx(BCQG$	&r=   c                 0   g dg}g dg dg}t        t        |ddg      g d       t        t        |dg dd      |       t        t        |ddd      |       t        t        |ddd      g dg       t        j                  ddgddgd	d	gg      }t        j                  dd
      j                  d	      j                  d	d	      }t        j                  |d d ddf   t        j                  dd
      j                  d	      j                  d	d	      j                  |d d ddf   fd      }t        t        |dgdgdgd	ggd      |       t        t        |dgg dd      |       t        t        |dg dd      |       t        t        |ddgdgd	ggd      |       t        j                  d
      j                  dd      }t        t        |d d d df   d|d d df   d      |       t        t        |d dd d f   d|dd d f   d      |       t        j                  d      j                  d      }t        t        |d|d d d d d	f   d      t        |d|d d d d d	f   d             t        t        |d|d d dd d f   d      t        |d|d d dd d f   d             t        t        t        |d|d d dd d f   d	       t        t        t        |d|d d dd d f   d       t        j                  d      j                  d      }t        t        |d|d d d d d	f   d      t        |d|d d d d d	f   d             t        t        |d|d d dd d f   d      t        |d|d d dd d f   d             y )Nr   rK   r   rN   r   r   rL   )rN   rN   rL   rN   rV   rJ   r      r  r]   rT   )r0   r   r5   r   r6   repeatrw   concatenater   r1   r&   )rd   re   rr   r   s        r;   test_multidimzTestInsert.test_multidimb  s:   KVAq1#&5VAq)!4a8VAq!!,a0VAq!!,|n=HHq!fq!fq!f-.IIaO""1%--a3NNq!A#vY		!Q..q199!Q?AAq!A#vY! 	VAsaS1#sO!<a@VAsIA6:VAq)!4a8VAqA3aS/:A>IIaL  A&VAa!eHa1a4q91=VAbqb!eHa1a4q91= IIbM!!),VAq!Aq!G*26Aq!Aq!G*15	7VAq!Aq!G*26Aq!Aq!G*15	7 	iAqAqzBiAqAqzC IIbM!!),VAq!Aq!G*26Aq!Aq!G*15	7VAq!Aq!G*26Aq!Aq!G*15	7r=   c                 "   t        j                  d      }t        j                  t              5  t        |g dd       d d d        t        j                  t              5  t        |g dd       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)NrN   rL   r   r   nonsense)r5   r   r	  r
  r&   r   r  rq   s     r;   test_0dzTestInsert.test_0d  sr    HHQK]]9% 	%1b!!$	%]]9% 	.1b!*-	. 	.	% 	%	. 	.s   A9 B9BBc                     G d dt         j                        }t        j                  d      j                  |      }t	        t        t        j                  |ddg      |             t	        t        t        j                  |g g       |             t	        t        t        j                  |ddgddg      |             t	        t        t        j                  |t        dd      ddg      |             t	        t        t        j                  |t        ddd      g       |             t        j                  d      j                  |      }t	        t        t        j                  |ddg      |             y )	Nc                       e Zd Zy)*TestInsert.test_subclass.<locals>.SubClassNr,  r   r=   r;   SubClassr    r.  r=   r  r   r   rN   rL   rT   r]   )	r5   r/  r6   r0  r+   
isinstancer   r{  r   )rd   r  re   s      r;   test_subclasszTestInsert.test_subclass  s	   	rzz 	IIbMx(
299QA3/:;
299QB/:;
299QAA7BC
299QaaV<hGH
299QaR(8"=xHIHHQKX&
299QA3/:;r=   c                     t        j                  g d      }t        j                  g d|g d       t        |t        j                  g d             y )Nr   rM   rU   )r5   r   r   r0   rd   r   s     r;   test_index_array_copiedz"TestInsert.test_index_array_copied  s3    HHY
		)Q	*Q+,r=   c                 f   t        j                  g dddg      }d}t        j                  |d|      }t        |d   t        j                  ||j                               dgdz  }t        j                  |ddg|      }t        |ddg   t        j                  ||j                               y )	N))rN   re   )rL   r   )rV   r   )foor   )barS1r   )rJ   rk  r   rL   rV   )r5   r   r   r/   r   )rd   re   valr   s       r;   test_structured_arrayz TestInsert.test_structured_array  s    HH3(-8:IIaC 1Q4#QWW!=>j1nIIa!Q%1aV9bhhs!''&BCr=   c                    t        j                  t              5  t        j                  g dt        j
                  ddg      ddg       d d d        t        j                  t              5  t        j                  g dt        j
                  g t              g        d d d        y # 1 sw Y   ^xY w# 1 sw Y   y xY w)NrM   r   r   r      r   )r	  r
  
IndexErrorr5   r   r   floatr   s    r;   test_index_floatszTestInsert.test_index_floats  s    ]]:& 	AIIi3*!5Bx@	A]]:& 	@IIi"E!:B?	@ 	@	A 	A	@ 	@s   1B(,3B4(B14B=idxrJ   r~  c                     t        j                  t        d      5  t        j                  g d|gddg       d d d        y # 1 sw Y   y xY w)Nzout of boundsr  rM   rV   rJ   )r	  r
  r  r5   r   )rd   r  s     r;   test_index_out_of_boundsz#TestInsert.test_index_out_of_bounds  s;    ]]:_= 	0IIi#A/	0 	0 	0s   AAN)r}   r~   r   rj   r  r  r  r  r  r  r	  rH  rI  r  r   r=   r;   rw  rw  P  sQ    & (7T.<-
D@ [[UQG,0 -0r=   rw  c                       e Zd Zd Zy)TestAmaxc                     g d}t        t        j                  |      d       g dg dg dg}t        t        j                  |d      g d       t        t        j                  |d	      g d
       y )NrV   rJ   rW   r   rZ   r        $@rV   r  r  rJ   r  r   rt   r   r   r   r   )r   r  r  rN   )r  r  r   )r0   r5   amaxr   s      r;   rj   zTestAmax.test_basic  sW    &RWWQZ& 	RWWQQ')9:RWWQQ')9:r=   Nr}   r~   r   rj   r   r=   r;   r  r    s    ;r=   r  c                       e Zd Zd Zy)TestAminc                     g d}t        t        j                  |      d       g dg dg dg}t        t        j                  |d      g d       t        t        j                  |d	      g d
       y )Nr  g      r  r  r  r   r   )r   r   r   rN   )r   r   r   )r0   r5   aminr   s      r;   rj   zTestAmin.test_basic  sU    &RWWQZ& 	RWWQQ'9RWWQQ'9r=   Nr  r   r=   r;   r  r    s    :r=   r  c                       e Zd Zd Zy)TestPtpc                    t        j                  g d      }t        t        j                  |d      d       t        j                  g dg dg dg      }t        t        j                  |d      g d       t        t        j                  |d	      g d
       t        t        j                  |dd      g dg       t        t        j                  |dd      dgg       y )Nr  r   r         .@r  r  r  )r   r  r  r]   )r  r  r  Tr   r^   r   )r5   r   r0   ptpr   s      r;   rj   zTestPtp.test_basic  s    HH/0RVVAA&-HHm$#% & 	RVVAA&8RVVAB'9RVVAA57HIRVVAFT:cUGDr=   Nr  r   r=   r;   r  r    s    
Er=   r  c                   |    e Zd Zej                  j                  dej                  ej                  g      d        Z	y)
TestCumsumcumsumc           
         g d}g dg dg dg}t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  f
D ]  }t        j                  ||      }t        j                  ||      }t        j                  g d|      }t         ||d      |       t        j                  g dg dg d	g|      }t         ||d      |       t        j                  g d
g dg dg|      }t         ||d      |        y )NrN   rL   r   r   ru   rW   rJ   rN   rL   rV   rJ   rW   ru   rv   rM  r   rV   rJ   rW   )rN   rV   r[   r}     #   '   r   r   )ru   rt   r   r[   )   r         )rN   rV   ru   r   )rW   r   r     )r   r[         rN   )r5   rg  rp  int16uint16int32uint32r  r  	complex64rB   r   r/   )rd   r  baba2ctypere   a2tgts           r;   rj   zTestCumsum.test_basic  s   $\=9ggrxx299bhhiiRZZmm% 	8E U#A#u%B((5u=Cvaa0#6((~/?@%ICvbq137((1ABEKCvbq137	8r=   N)
r}   r~   r   r	  rH  rI  r5   r  cumulative_sumrj   r   r=   r;   r  r    s5    [[X		23D3D'EF8 G8r=   r  c                       e Zd Zd Zy)TestProdc                     g d}g dg dg dg}t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  fD ]  }t        j                  ||      }t        j                  ||      }|dv r@t        t        t         j                  |       t        t        t         j                  |d       st        |j                  d      d	       t        |j                  d      t        j                  g d
|             t        |j                  d      t        j                  g d|              y )Nr  r  r  r  1r   rN   r   r    g  rl   $   T      r]   )r}  b  X  )r5   r  r  r  r  r  r  r  rB   r   r1   ArithmeticErrorprodr0   r/   )rd   r  r  r  re   r  s         r;   rj   zTestProd.test_basic  s    $\=9hh		288RYYjj"**bllBMMK 	EEU#A#u%B
"orww:orwwA>QVVV^U3"2777?#%88,=u#EG"2777#3#%88OU#CE	Er=   Nr  r   r=   r;   r  r    s    Er=   r  c                   |    e Zd Zej                  j                  dej                  ej                  g      d        Z	y)TestCumprodcumprodc           
         g d}g dg dg dg}t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  fD ]  }t        j                  ||      }t        j                  ||      }|dv r5t        t        ||       t        t        ||d       t        t        ||       ht         ||d      t        j                  g d	|             t         ||d
      t        j                  g dg dg dg|             t         ||d      t        j                  g dg dg dg|              y )Nr  r  r  r  r  rN   r]   r   )rN   rL   r     i(  i  r  r   )rW   r     r  r  )rN   rL   ru   r}  )rW   r     r  )r   r  r   r  )r5   r  r  r  r  r  r  r  rB   r   r1   r  r/   )rd   r  r  r  r  re   r  s          r;   rj   zTestCumprod.test_basic  s3   $\=9hh		288RYYjj"**bllBMMK 	JEU#A#u%B
"ow:owA>ow:"712#6#%88 -@AF$HI #72A#6#%88\-<->-@AF$HI #72B#7#%88]-?-?-ABG$IJ!	Jr=   N)
r}   r~   r   r	  rH  rI  r5   r  cumulative_prodrj   r   r=   r;   r  r    s7    [[YR5G5G(HIJ JJr=   r  c                  @   t        j                  d      j                  d      } t        j                  ddgddgddggddgddgdd	ggg      }t	        t        j
                  | dd
      |       t        j                  g dg dgg dg dgg      }t	        t        j                  | dd
      |       t        j                  dt         j                        }t        j                  ddgddgddggt         j                        }t        j                  dd      j                  d      } t        j
                  | d|d
       t	        ||       t        j                  g d      }t	        t        j                  t        j                  ddg      d
      |       y )Nrt   rK   r   rN   rL   rJ   rW   r   r  T)r   include_initial)rN   r   r   )rN   rL   ru   )rN   rJ   r  )rN   ru   *   rV   rL   r   ru   rQ   )r   outr  )rN   rL   rJ   )r  )	r5   r6   rw   r   r/   r  r  r?   r  )r   expectedr  s      r;   test_cumulative_include_initialr  *  sb   
))A,

y
)Cxx
Q!Q!Q Aq6Aq6B8"< H 
#At<h xx	IZ 8 H 
3Q=x ((6
,Cxx!Q!Q!Q0

CH
))Aq/
!
!&
)CcsDAsH%xx	"H
288QF+TBHr=   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestDiffc                 8   g d}t        j                  g d      }t        j                  g d      }t        j                  ddg      }t        t        |      |       t        t        |d      |       t        t        |d      |       g d	}t        j                  g d
      }t	        t        |      |       g d}t        j                  g d      }t        j                  ddg      }t        t        |      |       t        t        |d      |       y )N)rN   rJ   ru   rv   r  )rV   rL   rN   rW   )r]   r]   rJ   r   rW   rL   r9   rV   )皙?皙@r   gɿ皙)r  皙?g	皙?)TTFFrN  T)r5   r   r/   r   r-   )rd   r   r  out2out3s        r;   rj   zTestDiff.test_basicI  s    hh|$xx$xxA47C(4Q<.4Q<.'hh,-DGS)&hh+,xxt%47C(4Q<.r=   c                    t        j                  d      }d|d d dd dd d f<   t        j                  d      }d|d d dd dd d f<   t        t	        |      t        j                  d             t        t	        |d      t        j                  d             t        t	        |d      t        j                  d	             t        t	        |d      |       t        t	        |d
      |       t        t        t        |d       t        t        t        |d       t        j                  dt         j                        }t        t        t        |       y )N)r   r  r  rN   rL   )r      r  r]   )r   r     r   r   )rM  r  r  rT   rV   r~  gq?)
r5   r?   rb   r/   r   r1   r&   r   r  ra   )rd   r   exps      r;   	test_axiszTestDiff.test_axis\  s    HH\"!QTT1*ggl#Aqt!tQJ47BHH\$:;4+RXXl-CD4?BHH[,AB4?C04+S1iqq1iqr2HH]BJJ/j$*r=   c                    dt        ddd      z  }|d d d d dd f   |d d d d d df   z
  }|d d d d dd f   |d d d d d df   z
  }|dd d d d d f   |d dd d d d f   z
  }|dd d d d d f   |d dd d d d f   z
  }t        t        |      |       t        t        |d      |       t        t        |d	      |       t        t        |dd
      |       y )Nr  r   r  rN   r]   rL   r  r   r   )r9   r   )r'   r/   r   )rd   r   out1r  r  out4s         r;   r   zTestDiff.test_ndl  s    b"b!!Aqr{Qq!SbSy\)Aq!"H~Q3B3Y/Q{QssAqy\)AB1H~SbS!QY/47D)4Q<.4?D14QQ/6r=   c           
      0   t        t        d            }t        t        t        |d       t        dd      D cg c]  }t	        ||       }}ddgdgg g g}t        t	        |d      |u        t        t        ||      d      D ]  \  }\  }}t        t        |      t        j                  u        t        ||       t        |j                  t        j                         t        t        |      t!        dt        |      |z
                y c c}w )NrV   r]   r  rN   rW   r   start)listrc   r1   ra   r   r+   	enumeraterR  r1  r5   r/  r/   r0   r   ro  rQ  max)rd   r   r9   rV  r  
expected_noutput_ns          r;   test_nzTestDiff.test_nw  s    qNj$R0(-a41$qA,44FQCR(Q!!")23x3HPQ)R 	<%A%
HDNbjj01x41XAs1vz(:;		< 5s   Dc                    t        j                  ddt         j                        }t        j                  ddgd      t        j                  dgd      g}|j	                  t        j                  g d      gdz         t        |d      D ]>  \  }}t        ||	      }t        ||       t        |j                  |j                         @ y )
Nz
1066-10-13z
1066-10-16r   rN   timedelta64[D]r   rV   r  r  )
r5   r6   
datetime64r   extendr  r   r/   r0   r   )rd   r   r  r9   r  r  s         r;   
test_timeszTestDiff.test_times  s    IIlLFHHaV#34HHaS 01
 	",<=>BC2 	/FAsqA,CsC(CII.	/r=   c           	         t        j                  ddgddgddgddgd	d
ggddgddgddgddgddgg      }t        |      }t        |j                  dgdgdgdgdgg       t        |j
                  dgdgdgdgdgg       t        t        |      t        |      u        t        |d      }t        |j                  g g g g g g       t        |j
                  g g g g g g       t        t        |      t        |      u        y )NrN   rL   rV   rJ   rW   ru   rv   rt   rM  r   FTmaskr  )r   r   r   r/   r:   r  r+   r1  )rd   r   r  r  s       r;   r  zTestDiff.test_subclass  s   HHq!fq!fq!fq!fq"g>!5>D%=!4=4,HI 1g388qcA3aS1#%>?388ugv'+ftfug&? 	@S	T!W$%A|499r2r2r&:;499r2r2r&:;T
d1g%&r=   c                    t        j                  d      dz   }t        t        |d      t        j                  d             t        t        |dg      t        j                  d             t        t        j
                  t        j                  |d            |       t        t        |ddg      t        j                  d             t        j                  d      j                  dd      }t        j                  |dd	      }ddgddgg}t        ||       t        j                  |ddgdgg	      }t        ||       t        j                  |dd	      }ddgddgg}t        ||       t        j                  |dddgg	      }t        ||       t        t        t         j                  |t        j                  d
             t        t        t        |dd       y )NrW   rN   r   )prependr]   ru   rJ   rL   )r   r  rV   rV   rV   )r  r   )r5   r6   r/   r   rb   r  rw   r1   ra   r?   r&   rd   r   resultr  s       r;   test_prependzTestDiff.test_prepend  sj   IIaL141-rwwqz:4A3/<299RWWQ%:;Q?4B73RWWQZ@IIaL  A&A.FQF#68,aS1#J768,A.FQF#68,aVH568,j"''1bhhv6FGiq!!<r=   c                    t        j                  d      }t        |d      }g d}t        ||       t        |dg      }t        ||       t        |ddg      }|dgz   }t        ||       t        j                  d      j	                  dd      }t        j                  |dd      }dd	gdd
gg}t        ||       t        j                  |ddgdgg      }t        ||       t        j                  |dd      }ddgdd
gg}t        ||       t        j                  |dddgg      }t        ||       t        t        t         j                  |t        j                  d             t        t        t        |dd       y )NrW   r   )append)rN   rN   rN   rN   r~  rL   rJ   rN   )r   r  r]   rZ   rT   r  rV   )r  r   )	r5   r6   r   r/   rw   r1   ra   r?   r&   r  s       r;   test_appendzTestDiff.test_append  sN   IIaLa"#68,a$68,aA'qc>68,IIaL  A&1-GaW%68,QC!:668,1-FRH%68,QF8468,j"''1RXXf5EFiq;r=   N)r}   r~   r   rj   r  r   r  r
  r  r  r  r   r=   r;   r  r  G  s*    /&+ 	7
<
/'=0<r=   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
 ej                   dg      dgg      d        Zd Zy)
TestDeletec                     t        j                  d      }t        j                  d      j                  d      j                  ddd      }||fS )NrW   rL   rN   )r5   r6   r  rw   )rd   re   nd_as      r;   _create_arrayszTestDelete._create_arrays  s?    IIaLyy|""1%--aA6$wr=   c                     | j                         \  }}t        ||      }t        ||d      }d|}t        t        |||f         ||       t        |dd d df   |d|df         }t        ||dd d df   |       y )NrN   r   zDelete failed for obj: )err_msgr   )r  r   r/   r   )rd   indicesre   r  a_delnd_a_delmsgxors           r;   _check_inverse_of_slicingz$TestDelete._check_inverse_of_slicing  s    %%'4q'"$a0'{38E1WX<8!#&	(x1a($q'1}*=>3Q1Ws;r=   c                 z    g d}g d}|D ].  }|D ]'  }|D ]   }t        |||      }| j                  |       " ) 0 y )N)rT   r   rN   rL   rJ   rW   )rZ   r]   rN   rV   )r{  r#  )rd   limsstepsr  stopstepss          r;   test_sliceszTestDelete.test_slices  sU    & 	6E 6! 6DeT40A221566	6r=   c                    | j                         \  }}| j                  t        j                  ddgddgg             t	        j
                  t              5  t        |dg       d d d        t	        j
                  t              5  t        |dg       d d d        | j                  g d       | j                  g d       t	        j
                  t              5  t        |d       d d d        t	        j
                  t              5  t        |d	       d d d        t	        j
                  t              5  t        |d	gd
z         d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   y xY w)Nr   rN   rL   rs  i)r   r]   rL   rL   )TFFTFTFrJ   )	r  r#  r5   r   r	  r
  r  r   ra   )rd   re   rA  s      r;   
test_fancyzTestDelete.test_fancy  s@   ""$1&&rxx!Q!Q0@'AB]]:& 	1se	]]:& 	1tf	 	&&}5&&'HI ]]:& 	1dO	]]:& 	1e	 ]]:& 	#1ugk"	# 	#!	 		 		 		 		# 	#s<   EEE)	E57FEE&)E25E>F
c                 H    | j                  d       | j                  d       y )Nr   r~  )r#  r   s    r;   test_singlezTestDelete.test_single  s    &&q)&&r*r=   c                    t        j                  d      }t        j                  t              5  t        |g d       d d d        t        j                  t              5  t        |g d       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)NrN   r   r   r  )r5   r   r	  r
  r&   r   r  rq   s     r;   r  zTestDelete.test_0d  sn    HHQK]]9% 	"1bq!	"]]9% 	+1bz*	+ 	+	" 	"	+ 	+s   A7B7B Bc                     G d dt         j                        }| j                         \  }}|j                  |      }t	        t        t        |d      |             t	        t        t        |g       |             t	        t        t        |ddg      |             t	        t        t        |t        dd            |             t	        t        t        |t        dd            |             y )Nc                       e Zd Zy)*TestDelete.test_subclass.<locals>.SubClassNr,  r   r=   r;   r  r3    r.  r=   r  r   rN   rL   rT   )r5   r/  r  r0  r+   r  r   r{  )rd   r  a_origrA  re   s        r;   r  zTestDelete.test_subclass  s    	rzz 	 '')	KK!
6!Q<23
6!R=(34
6!aV,h78
6!U1a[18<=
6!U1b\2H=>r=   c                 R   t        j                  d      j                  ddd      }t        |t	        dd       d      }t        |j                  j                  |j                  j                         t        |j                  j                  |j                  j                         y )	Nr   rL   rW   r   r   <   rN   r   )	r5   r6   rw   r   r{  r0   r   r   r   )rd   r\   rD  s      r;   test_array_order_preservez$TestDelete.test_array_order_preserve  ss    IIbM!!!Qc!21eBoA. 	QWW))177+?+?@QWW))177+?+?@r=   c                 x   t        j                  t              5  t        j                  g dt        j
                  ddg             d d d        t        j                  t              5  t        j                  g dt        j
                  g t                     d d d        y # 1 sw Y   ]xY w# 1 sw Y   y xY w)NrM   r   r   r   )r	  r
  r  r5   r   r   r  r   s    r;   r  zTestDelete.test_index_floats$  s}    ]]:& 	7IIi3*!56	7]]:& 	<IIi"E!:;	< 	<	7 	7	< 	<s   .B$)2B0$B-0B9indexerrN   c                     | j                         \  }}t        |d      }t        ||      }t        ||       t        |dd      }t        |t        j                  dg      d      }t        ||       y )NrN   r   )r  r   r0   r5   r   )rd   r9  re   r  	a_del_intr  nd_a_del_intr   s           r;   test_single_item_arrayz!TestDelete.test_single_item_array*  se    %%'41aL	q'"Y&dAA.$!A6\8,r=   c                 P   t        t        j                  d      t        j                  dg            }t	        |t        j                  d             t        j                  d      }t        j                  dgt
              }t        j                  dgt
              }t        ||d      }t	        ||       t        ||d      }t	        ||d d d df          t        j                  t              5  t        t        j                  d	      t        j                  dgt                     d d d        t        j                  t              5  t        t        j                  d	      t        j                  dgd
             d d d        y # 1 sw Y   axY w# 1 sw Y   y xY w)NrN   FrV   rN   r   Tr]   r   r   rL   zm8[ns])
r   r5   rb   r   r/   r   r	  r
  r  r   )rd   resr   
false_mask	true_masks        r;   test_single_item_array_non_intz)TestDelete.test_single_item_array_non_int5  s-    RWWQZ5'!233
+ GGFOXXugT2
HHdV40	Q
,3"Q	+3!RaR%) ]]:& 	<2771:rxx6:;	< ]]:& 	>2771:rxx8<=	> 	>	< 	<	> 	>s   6:F6FFF%N)r}   r~   r   r  r#  r+  r-  r/  r  r  r7  r  r	  rH  rI  r5   r   r=  rC  r   r=   r;   r  r    sm    
<6#,++
?A< [[Y1#(<=- >->r=   r  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                  j!                  dej$                  ej&                  ej(                  ej*                  g      d        Zej                  j!                  dej.                  ej0                  ej2                  ej4                  g      d        Zej                  j!                  dej$                  ej&                  ej(                  ej*                  g      d        Zej                  j!                  dej.                  ej0                  ej2                  ej4                  g      d        Zd Zy)TestGradientc                     ddgddgg}t        j                  |      }t        j                  ddgddgg      t        j                  ddgddgg      g}t        t        |      |       t        t        |      |       y )NrN   rV   rJ   r   r   r   r   )r5   r   r/   r   rd   vr   dxs       r;   rj   zTestGradient.test_basicP  sv    VaVHHQKhhR2r(+,hhR2r(+,.8A;+8A;+r=   c           
         t        j                  t        j                  d            }g d}t        j                  d      j	                  dd      }t        t        j                  d      d       t        t        j                  d      t        j                  d             t        t        j                  d      |       t        |d       t        |t        j                  d             t        |||       t        ||d       t        ||d       t        t        d	t
        |t        j                  |gdz  d
      d       y )NrW   )r   r   r   r        &@   r         ?rL   rN   r   z.*scalars or 1dr]   )
r5   r  rb   r6   rw   r   r   r2   ra   stack)rd   rI  	dx_unevenf_2ds       r;   	test_argszTestGradient.test_argsX  s    YYrwwqz")	yy}$$Q* 	1r"1rxx|,1r"srxx}%y), 	r1 	r" 	J(9dBHHbTAXB7	<r=   c           	         t        j                  d      j                  dd      }t        j                  t        j                  d            }t        t        t        ||t        j                  d             t        t        t        |dt        j                  d             t        t        t        |t        j                  d      t        j                  d             t        t        t        ||       t        t        t        ||d       t        t        t        ||||       t        t        t        |ddd       t        t        t        |||d       t        t        t        |ddd       y )NrL  rW   rL   rN   r^   r   )	r5   r6   rw   r  rb   r1   ra   r   r  )rd   rP  r   s      r;   test_badargszTestGradient.test_badargsq  s    yy}$$Q*IIbggaj! 	j(D!RWWQZ@j(D!RWWQZ@j(D"''!*bggajIi43i4@i4Aq9i4Aq9i4AA>i4AA>r=   c                     t        j                  g dd      }t        j                  g dd      }t        t        |      |       t	        |j
                  t        j
                  d      k(         y )N)z
1910-08-16z
1910-08-11z
1910-08-10z
1910-08-12z
1910-10-12z
1910-12-12z
1912-12-12zdatetime64[D]r   )r  rZ   r      =   i  i  r  r5   r   r/   r   r+   r   rd   r   rI  s      r;   test_datetime64zTestGradient.test_datetime64  sY    HH7!# XX)"$ 	8A;+BHH%5667r=   c                    t         j                  j                  ddgddggddgddgg      }t        |      d   }t	        t        |      t        |             t        |j                  |j                  u       t         j                  j                  d      }t         j                  j                  |d<   t        j                  |d	       t        |j                  g d
       y )NrN   rV   rJ   Fr  r   rW   rL   
edge_order)FFTFF)r5   r   r   r   r0   r1  r+   _maskr6   maskedr/   r  )rd   r   r  x2s       r;   test_maskedzTestGradient.test_masked  s    EEKK!Q!Q($enuen=  ?qk!nT#YQ( 	syy()UU\\!_1
B1%277$FGr=   c                    t        j                  ddd      }|d   |d   z
  }d|dz  z  d|dz  z  z   d|z  z   }d|dz  z  d|z  z   dz   }t        j                  t        j                  ||d	      |z  dz
        }t	        t        j
                  |d
k        dk(         t         j                  j                  d      }t        j                  |j                  d            }d|dz  z  d|dz  z  z   d|z  z   }d|dz  z  d|z  z   dz   }t        j                  t        j                  ||d	      |z  dz
        }t	        t        j
                  |d
k        dk(         y )Nr   rN   r   rL   rV   rJ   ru   rt   r[  gQ?T)	r5   linspaceabsr   r+   r   randomdefault_rngsort)rd   r   rI  r  
analytical	num_errorrngs          r;   test_second_order_accuratez'TestGradient.test_second_order_accurate  sO   
 KK1b!qTAaD[QJQ!V#a!e+aZ!a%'!+
FFBKK2!<zIQNO	y4'(D01 ii##A&GGCJJrN#QJQ!V#a!e+aZ!a%'!+
FFBKK1;jHAMN	y4'(D01r=   c                    t        j                  g d      }t        j                  |d      |j                  dd      z   }t        j                  g d      }t        j                  d      }t        j                  g dd      }t        j                  g dd      }t        j                  g d	d      }t        j                  g d
d      }d|fd|ffD ]  \  }}	t        |dd|      }
t        |||d|      }t        |||d |      }t        |
|       t        ||       t        |
d   |	j                         t        |
d   |	       t        |dd|      }
t        ||d|      }t        |
j                  |j                  k(         t        ||	j                         t        |dd|      }
t        ||d|      }t        |
j                  |j                  k(         t        ||	        d|fd|ffD ]  \  }}	t        |||d|      }
t        |||d |      }t        |
|       t        |
d   |	j                         t        |
d   |	       t        ||d|      }
t        |
|	j                         t        ||d|      }
t        |
|	        t        |||dd      }
t        |||dd      }t        |
d   |d          t        |
d   |d          t        |
d   |j                         t        |
d   |       t        |||dd      }
t        |||dd      }t        |
d   |d          t        |
d   |d          t        |
d   |j                         t        |
d   |       y )N)r   r   r   r   r   r   )ru   rN   r]   rN   )r   r  r   r   r   r  r  )r   rM  r   r   r  r   )      @rM  r   r   r        )r   r   333333?r        ?r   )r   r   rn  r  ro  g      пrL   r   r^   )r   r\  r   r_   )r5   r   tilerw   r6   r   r/   r-   r   r+   rA   )rd   fx_unevenx_evenfdx_even_ord1fdx_even_ord2fdx_uneven_ord1fdx_uneven_ord2r\  exp_resres1res2res3s                r;   test_spacingzTestGradient.test_spacing  s+   HH,-GGAv2q!1188562 :FC =vF''">G''"A6J &'$6M8J#K 	.JAr:FDAvv!'J@DAvv!%*>DtT*tT*Q3Q1ArjADAvA*EDDJJ$**,-gii0ArjADAvA*EDDJJ$**,-tW-'	., &'$81o:N#O 	/JAx!'J@DAx!%*>DtT*Q3Q1AxaJGDgii0AxaJGDg.	/  68&QG8V&QG47DG,47DG,DG]__5DG_568&QG8V&QG47DG,47DG,DG]__5DG_5r=   c                    ddgddgg}t        j                  |      }t        j                  ddgddgg      t        j                  ddgddgg      g}t        t        |d	      |d          t        t        |d	      |d          t        t        |d
	      |d          t        t        |d	      |d   |d   g       t	        t        |d 	      |d   |d   g       t	        t        |d 	      t        |             t        t        |ddd	      |d   dz  |d   dz  g       t        t        t        |ddd	       t        t        t        |d	       t        t        t        |d	       y )NrN   rV   rJ   r   r   r   r   r   r   r]   r_   rL   rZ   )r5   r   r/   r   r-   r1   r  r&   rG  s       r;   test_specific_axeszTestGradient.test_specific_axes  sI   VaVHHQKhhR2r(+,hhR2r(+,.8AA.168AA.168AB/A78AF3beRU^D 	HQT2RUBqENCHQT2HQK@ 	8Aq!&9qECKA5	7 	i1a;i115i126r=   c                     t        j                  g dd      }t        j                  g dd      }t        t        |      |       t	        |j
                  t        j
                  d      k(         y )N)r  rZ   r   r  rV  iA  ,  r  r   )rL   rv   rv   rL     w   irW  rX  s      r;   test_timedelta64zTestGradient.test_timedelta64
  sW    HH*"$ XX("$ 	8A;+BHH%5667r=   c                    t         j                  t         j                  t         j                  fD ]W  }t        j                  g d|      }t        t        |      j                  t        j                  |      j                         Y y )Nr   r   )	r5   float16r  r  r   r0   r   r   r   )rd   dtr   s      r;   test_inexact_dtypesz TestGradient.test_inexact_dtypes  sV    ::rzz2::6 	>B"-A!**BGGAJ,<,<=	>r=   c                 (   t        t        j                  d      d       t        t        j                  d      d       t        t        t         t        j                  d      d       t        t        t         t        j                  d      d       t        t        t         t        j                  d      d       t        t        t         t        j                  d      d       t        t        t         t        j                  d      d       y )NrL   rN   r[  rV   r   )r   r5   r6   r1   ra   r   s    r;   test_valueszTestGradient.test_values  s    1!,1!,j(BIIaLQGj(BIIaLQGj(BIIaLQGj(BIIaLQGj(BIIaLQGr=   f_dtypec                 ~    t        j                  g d|      }t        |      }t        |dgt	        |      z         y )N)rW   rJ   rV   rL   rN   r   r]   r5   r   r   r/   rQ  )rd   r  rq  gs       r;   test_f_decreasing_unsigned_intz+TestGradient.test_f_decreasing_unsigned_int'  s1     HH_G4QK1rdSVm,r=   c                     t        j                  |      j                  }t        j                  ddg      }t        j                  d|g|      }t	        ||      }t        ||dz   dz  gdz         y )NrN   rV   r]   r   rL   )r5   iinfor  r   r   r/   )rd   r  maxintr   rq  dfdxs         r;   test_f_signed_int_big_jumpz'TestGradient.test_f_signed_int_big_jump.  sd     '"&&HHaVHHb&\11~46A:!"3!4q!89r=   x_dtypec                     t        j                  g d|      }t        j                  g d      }t        ||      }t        |dgt	        |      z         y )Nr   r   r   rL   rJ   rT   r  )rd   r  r   rq  r  s        r;   test_x_decreasing_unsignedz'TestGradient.test_x_decreasing_unsigned7  sA     HHYg.HHY1~4"A/r=   c                    t        j                  |      j                  }t        j                  |      j                  }t        j                  d|g|      }t        j                  |dz  dg      }t        ||      }t        |ddg       y )Nr]   r   rL   r   r  )r5   r  minr  r   r   r/   )rd   r  minintr  r   rq  r  s          r;   test_x_signed_int_big_jumpz'TestGradient.test_x_signed_int_big_jump?  sp     '"&&'"&&HHb&\1HHfk1%&1~4#s,r=   c                 `    t        j                  ddgddgf      }t        |      t        u sJ y )NrN   rL   rV   )r5   r   r1  tuplerd   r@  s     r;   test_return_typezTestGradient.test_return_typeI  s/    kkAq6Aq6*+CyE!!!r=   N)r}   r~   r   rj   rQ  rS  rY  r`  rj  r|  r~  r  r  r  r	  rH  rI  r5   rp  r  r  uint64r  rg  r  r  int64r  r  r  r  r   r=   r;   rE  rE  N  sQ   ,<2? 
8H2(>6@74	8>
H [[Y299)+BII)? @-@-
 [[Y"(()+288)= >:>: [[Y299)+BII)? @0@0 [[Y"(()+288)= >->-"r=   rE  c                       e Zd Zd Zd Zy)	TestAnglec                 d   dt        j                  d      dz  dt        j                  d      z  dz  z   dddddd	g}t        |      }t        j                  d
      t        j                  d      dt         j                  dz  t         j                  t         j                   dz  t        j                  d
       t         j                  t        j                  d
      z
  g}t        |d      }t        j
                  |      dz  t         j                  z  }t        ||d       t        ||d       y )N      ?      @rL   r   rf  rN   r]                      ?      y            @r   r   r   T)degr  r   )r5   sqrtr   arctanpir   r.   )rd   r   r  yozzos         r;   rj   zTestAngle.test_basicP  s    RWWQZ#%RWWQZ!(;;BVW.!HIIi IIcNAruuqy"%%"%%#YYy!!255299Y+?#?A !XXb\C"%%'!!R,!!R,r=   c                 (   t         j                  j                  ddt        j                  d      dz  dz  g      }t         j                  j                  |d<   t         j                  j                  t        j
                  d      dt        j
                  d      g      }t         j                  j                  |d<   t        |      }t        t        |      t        |             t        |j                  |j                         t        ||       y )Nr  rN   rL         ?      ?r   r   r   )
r5   r   r   r  r^  r  r   r0   r1  r  rd   r   r  r  s       r;   r  zTestAngle.test_subclass]  s    EEKKBGGAJNf$=>?uu||!55;;		) 4a3HIeellqT&\4>2V[[(--0VX&r=   N)r}   r~   r   rj   r  r   r=   r;   r  r  N  s    -'r=   r  c                   8   e Zd Z ej                  g d      Zej                  e      Zej                  e	      Z
ej                  e      Zd Zd Zd Zd Zd Zd Zd Zej*                  j-                  d	 ej                  g d
       ej                  g d       ej                  g d      g      d        Zd Zd Zej*                  j-                  dd      d        Zej*                  j-                  dd      d        Zd Zej*                  j-                  dd      d        Zej*                  j-                  d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d d!gd d"gd#dgd#dgd#d$gd#d%gg      ej*                  j-                  dg d&      d'               Zy)(TestTrimZeros)r   r   rN   r   rL   rV   rJ   r   c           	         t        t        t                          n;t        t              rdk  rt              z   nfnt        fdD              t        j                        }|j                  dt        j                        dz
        }|j                  |dz         }t        ||z
        }d|j                  |      z   }	|	|t        d t        ||      D              <   d|vr#t        j                  D 
cg c]  }
d c}
      }d|vr#t        j                  D 
cg c]  }
d c}
      }t        fd	t        t        ||            D              }||   }||fS c c}
w c c}
w )
z2Construct an input/output test pair for trim_zerosNr   c              3   H   K   | ]  }|d k  rt              |z   n|  ywr   N)rQ  ).0axrA   s     r;   	<genexpr>z7TestTrimZeros.construct_input_output.<locals>.<genexpr>w  s$     JrBFUb:J   "rN   )lowhighc              3   :   K   | ]  \  }}t        ||        y wr4   r{  )r  r   js      r;   r  z7TestTrimZeros.construct_input_output.<locals>.<genexpr>  s     ?41a5A;?s   rq  r   c              3   `   K   | ]%  \  }\  }}|v rt        ||      n
t        d        ' y wr4   r  )r  r  r   r  r   s       r;   r  z7TestTrimZeros.construct_input_output.<locals>.<genexpr>  s8      F"FQ $&:E!QK5;> Fs   +.)r  rc   rQ  r  intr5   r?   integersr   rd  rR  r  )rd   ri  rA   r   trimr:   i_starti_endinner_shape
inner_datarA  r  r  s     ``         r;   construct_input_outputz$TestTrimZeros.construct_input_outputo  sT    <s5z*+Dc")-CJ%t=DJTJJD xx,,1288E?Q+>,?159EGO,K00
CMU?3w+>??@ d?hhe445Gd?HHE2qd23E F&/GU0C&DF F9X~  52s   
	E11	E6c                      d} fd|D        S )N)re   r   r   rk  c              3   6   K   | ]  }t        |        y wr4   )getattr)r  namerd   s     r;   r  z'TestTrimZeros.values.<locals>.<genexpr>  s     ;d#;s   r   )rd   
attr_namess   ` r;   rT  zTestTrimZeros.values  s    )
;
;;r=   c                     t         j                  dd }| j                         D ]  }t        |      }t	        |||           y )NrL   r]   r5   s_rT  r!   r/   rd   slcr   r@  s       r;   rj   zTestTrimZeros.test_basic  s=    eeAbk;;= 	.CS/CsCH-	.r=   c                     t         j                  d d }| j                         D ]  }t        |d      }t	        |||            y )Nr]   r   r  r  r  s       r;   test_leading_skipzTestTrimZeros.test_leading_skip  s@    eeCRj;;= 	.CSs+CsCH-	.r=   c                     t         j                  dd  }| j                         D ]  }t        |d      }t	        |||            y )NrL   r   r  r  r  s       r;   test_trailing_skipz TestTrimZeros.test_trailing_skip  s@    eeABi;;= 	.CSs+CsCH-	.r=   c                     | j                         D ]]  }t        j                  ||j                        }t	        |d      }t        |      dk(  sJ t	        |d      }t        |      dk(  r]J  y )Nr   Br  r   rq  )rT  r5   
zeros_liker   r!   rQ  )rd   _arrr   ry  rz  s        r;   test_all_zerozTestTrimZeros.test_all_zero  sc    KKM 	"D--DJJ7Cc,Dt9>!>c,Dt9>!>	"r=   c                 \    t        j                  d      }t        |      }t        ||       y rn  r5   r?   r!   r/   rd   r   r@  s      r;   test_size_zerozTestTrimZeros.test_size_zero  s"    hhqko3$r=   r   )r   l            r   )r   l            r   )r   l            r   c                 ^    t         j                  dd }t        |      }t        |||          y )NrN   rL   )r5   r  r!   r/   )rd   r   r  r@  s       r;   test_overflowzTestTrimZeros.test_overflow  s*     eeAajo3C)r=   c                 `    t        j                  g d      }t        |      }t        ||       y )N)NrN   Nr5   r   r!   r/   r  s      r;   test_no_trimzTestTrimZeros.test_no_trim  s#    hh'o3$r=   c                 n    t        | j                  j                               }t        |t              sJ y r4   )r!   re   tolistr  r   r  s     r;   test_list_to_listzTestTrimZeros.test_list_to_list  s&    )#t$$$r=   r   )r   rN   rL   rV   r   c                     t        j                  d|z        }t        j                  |ddd      }t        |d       }t	        ||       y )NrL   rL   rN   constantr   )modeconstant_valuesr   )r5   rb   padr!   r/   )rd   r   re   r   r@  s        r;   test_nd_basiczTestTrimZeros.test_nd_basic  s>    GGD4K FF1f:qA&1c"r=   r   rN   rL   rV   c                     t        j                  d|z        }t        |d       }t        |t        j                  d|z               y )NrV   r   ru  r  )rd   r   re   r@  s       r;   test_allzerozTestTrimZeros.test_allzero  s7    HHTD[!&3 56r=   c                     t        j                  g d      }t        |d      }t        |g d       t        |d      }t        |g d       y )N)r   rN   rL   r   rq  r  )rN   rL   r   r   rM   r  rd   re   r@  s      r;   test_trim_argzTestTrimZeros.test_trim_arg  s<    HH\"%3	*%3	*r=   r  )front c                     | j                   }t        j                  t        d      5  t	        ||       d d d        y # 1 sw Y   y xY w)Nz#unexpected character\(s\) in `trim`r  r  )re   r	  r
  ra   r!   )rd   r  r   s      r;   test_unexpected_trim_valuez(TestTrimZeros.test_unexpected_trim_value  s9    ff]]:-ST 	's&	' 	' 	's	   ?Azshape, axis)rW   Nr   r   )rW   ru   r]   )rW   ru   rv   rN   rR   )rW   ru   rv   rt   rT   r   rN   rV   )fbrq  r   c                     t         j                  j                  d      }| j                  ||||      \  }}t	        t        |||      |       y )N  )r   r  )r5   rd  re  r  r/   r!   )rd   rA   r   r  ri  r:   r  s          r;   r   z TestTrimZeros.test_multiple_axes  sE    & ii##D)44S%tLh:dDA8Lr=   )r}   r~   r   r5   r   re   r  r  r   complexr   r   rk  r  rT  rj   r  r  r  r  r	  rH  rI  r  r  r  r  r  r  r  r   r   r=   r;   r  r  h  s   )*A	A	A	A<<..."%
 [[	-	 	-	 	-	 	"**
%
% [[V%56# 7# [[V\27 37
+ [[V]3' 4'
 [[]	t	r
	q						D	B	A	F	t	r	r	y!- " [[V%56M 7#$Mr=   r  c                       e Zd Zd Zd Zd Zy)
TestExtinsc                 l    t        j                  g d      }t        |dkD  |      }t        |g d       y )N)rN   rV   rL   rN   rL   rV   rV   rN   )rV   rL   rL   rV   rV   )r5   r   r   r/   r   s      r;   rj   zTestExtins.test_basic  s+    HH*+AE11o.r=   c                    t        t        t        g dddgddg       t        j                  g d      t        g dg d       t        g d	       t        t        j                  d
      g        t        t        j                  dd             t        g dddg       t        g d       t        t        dfd       t        j                  ddg      t        ddgd       t        ddg       y )Nr   TFr   rN   )rN   rJ   rV   rL   rW   rt   rv   )r   rN   r   rN   r   rN   r   rL   rJ   ru   )rN   rL   rV   rJ   rW   ru   rv   rv   rt   )rN   r   rN   r   rN   r   rN   rM  )rt   rL   rM  rJ   rt   ru   rM  z!Cannot insert from an empty arrayc                  "    t         g dg       S )N)r   r   r   r   r   rN   r   )r   re   s   r;   <lambda>z'TestExtins.test_place.<locals>.<lambda>  s    E!-BB$G r=   12349)
r1   r  r   r5   r   r/   r?   r6   r2   ra   rq   s    @r;   
test_placezTestExtins.test_place  s     	i	D%=1a&IHH*+a&	2134a!b!1bii1o.a&A/134J(KG	I HHdD\"a!Q1tSk*r=   c                     t        d      }|dkD  }|j                         }t        ||      }t        ||d       t        |||       t	        ||       y )Nr   r  r   )r'   r   r   r   r/   )rd   re   r  acr   s        r;   	test_bothzTestExtins.test_both  sM    H3wVVXD!aqaq1b!r=   N)r}   r~   r   rj   r  r  r   r=   r;   r  r    s    /
+,"r=   r  c                 2    |t        j                  |       z  S r4   mathfloorr   r  s     r;   _foo1r  #  s    tzz!}r=   c                 8    |t        j                  |       z  |z   S r4   r  )r   r  r  s      r;   _foo2r  '  s    tzz!}q  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%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0y/)0TestVectorizec                 V    d }t        |      } |g dg d      }t        |g d       y )Nc                      | |kD  r| |z
  S | |z   S r4   r   re   r   s     r;   addsubtractz.TestVectorize.test_simple.<locals>.addsubtract.      1u1u1ur=   r   rV   ru   rM  rN   rV   rW   rv   rN   ru   rN   rL   r$   r/   rd   r  rq  r  s       r;   test_simplezTestVectorize.test_simple-  s)    	 k"lL)1l+r=   c                 R    d }t        |      } |g dd      }t        |g d       y )Nc                      | |kD  r| |z
  S | |z   S r4   r   r  s     r;   r  z.TestVectorize.test_scalar.<locals>.addsubtract9  r  r=   r   rW   )rW   rt   rN   rJ   r#  r$  s       r;   test_scalarzTestVectorize.test_scalar8  s)    	 k"lA1l+r=   c                 r    t        j                  ddd      }t        d       } ||      }t        ||       y )NrZ   rL   '  c                     | S r4   r   r   s    r;   r	  z*TestVectorize.test_large.<locals>.<lambda>E       r=   )r5   rb  r$   r/   )rd   r   rq  r  s       r;   
test_largezTestVectorize.test_largeC  s1    KKAu%k"aD1a r=   c                 >   t        t        j                        }t        j                  ddt        j
                  z  t        j
                  dt        j
                  z  dt        j
                  z  g      } ||      }t        j                  |      }t        ||       y )Nr   r  rM  rL   )r$   r  cosr5   r   r  r.   )rd   rq  argsr1r2s        r;   
test_ufunczTestVectorize.test_ufuncI  se    dhhxxC"%%KbeeQYGHtWVVD\!"b)r=   c                     dd}t        |      }t        j                  g d      } ||      }t        j                  g d      }t        ||        ||d      }t        j                  g d      }t        ||       y )Nc                     | |z   S r4   r   r  s     r;   r  z(TestVectorize.test_keywords.<locals>.fooR      q5Lr=   r   r  rL   rU   rb  r$   r5   r   r/   rd   r  rq  r1  r2  r3  s         r;   test_keywordszTestVectorize.test_keywordsP  sd    	 cNxx	"tWXXi 2r"tQZXXi 2r"r=   c                     t        t        t        g      } |t        j                  d      d      } |t        j                  d            }t        ||       y Notypesr   r   r$   r  r  r5   r6   r/   rd   rq  r2  r3  s       r;    test_keywords_with_otypes_order1z.TestVectorize.test_keywords_with_otypes_order1^  sD     eUG, ryy~s#ryy~2r"r=   c                     t        t        t        g      } |t        j                  d            } |t        j                  d      d      }t        ||       y r<  r?  r@  s       r;    test_keywords_with_otypes_order2z.TestVectorize.test_keywords_with_otypes_order2h  sD     eUG, ryy~ryy~s#2r"r=   c                    t        t        t        g      } |t        j                  d            } |t        j                  d      d      } |t        j                  d            }t        ||       t        ||       y )Nr=  r   r   r  r?  rd   rq  r2  r3  r3s        r;    test_keywords_with_otypes_order3z.TestVectorize.test_keywords_with_otypes_order3s  s`     eUG, ryy~ryy~%ryy~2r"2r"r=   c                     t        t        t        g      } |dd      } |dd      } |d      }t        |t        dd             t        |t        dd             t        |t        d             y )Nr=  $@rs  )r  r]   rE  r$   r  r  r0   rF  s        r;   +test_keywords_with_otypes_several_kwd_args1z9TestVectorize.test_keywords_with_otypes_several_kwd_args1  sc     eUG, ts^tr]tWRts+,Rtr*+Rt%r=   c                     t        t        t        g      } |ddd      } |ddd      }t        |t        ddd             t        |t        ddd             y )	Nr=  rs  rJ  r]   )r  r   r  rN   rL   rV   rK  r@  s       r;   +test_keywords_with_otypes_several_kwd_args2z9TestVectorize.test_keywords_with_otypes_several_kwd_args2  sT     eUG, #q!QZR34Rq!Q(r=   c                 ^    dd l }	 t        |j                         y # t        $ r t        w xY wrn  )rd  r$   	randrange	ExceptionAssertionError)rd   rd  s     r;   test_keywords_no_func_codez(TestVectorize.test_keywords_no_func_code  s/     		!f&&' 	!  	!s    ,c                 .   d
d}t        |      }t        j                  g d      } ||      }t        j                  g d      }t        ||        |d|      }t        ||        ||d      }t        j                  g d	      }t        ||       y )NrN   c                     | |z   S r4   r   r  s     r;   r  z5TestVectorize.test_keywords2_ticket_2100.<locals>.foo  r7  r=   r   r  r  )r   re   rL   r   rU   rb  r8  r9  s         r;   test_keywords2_ticket_2100z(TestVectorize.test_keywords2_ticket_2100  sy    	 cNxx	"YXXi 2r"d^2r"tq\XXi 2r"r=   c                     d }t        j                  |ddg      }ddg}t        | |ddgg d	             t        | |ddgg d
             t        | |ddgg d             y )Nc                 v    t        |      }|j                  d      }|r|| z  |j                  d      z   }|r|S rn  )r   pop)r   p_pr@  s       r;   	mypolyvalz;TestVectorize.test_keywords3_ticket_2100.<locals>.mypolyval  s;    aB&&)CAgq	) Jr=   r[  rN   )excludedrV   ru   r   r   )r   r[  )r[  )r5   r$   r/   )rd   r]  vpolyvalanss       r;   test_keywords3_ticket_2100z(TestVectorize.test_keywords3_ticket_2100  se    	 <<	S!H=!f3Aq6Y ?@3!Q9 =>3!Q ;<r=   c                 P    t         d        }t         |ddgddg      ddg       y )Nc                  (    d}| D ]
  }|| |   z  } |S Nr   r   )kwr@  _ks      r;   rq  z3TestVectorize.test_keywords4_ticket_2100.<locals>.f  s(    C r"vJr=   rN   rL   rV   rJ   r  rt   r#  rd   rq  s     r;   test_keywords4_ticket_2100z(TestVectorize.test_keywords4_ticket_2100  s3    		 
	 	11v!Q01a&9r=   c                 N    t         d        }t         |ddgddg      ddg       y )Nc                  ,    t        j                  |       S r4   )r5   r  )rH  s    r;   rq  z3TestVectorize.test_keywords5_ticket_2100.<locals>.f  s    771:r=   rN   rL   rV   rJ   rt   r#  rg  s     r;   test_keywords5_ticket_2100z(TestVectorize.test_keywords5_ticket_2100  s3    		 
	 	1aVaV,q!f5r=   c                 B    d }t        |      }t         |       d       y )Nc                       yNrN   r   r   r=   r;   r  z5TestVectorize.test_coverage1_ticket_2100.<locals>.foo      r=   rN   r#  rd   r  rq  s      r;   test_coverage1_ticket_2100z(TestVectorize.test_coverage1_ticket_2100  s    	 cN13"r=   c                     d }t        |      }t        |j                  |j                         d}t        ||      }t        |j                  |       y )Nc                     | S )zOriginal documentationr   r,  s    r;   r  z3TestVectorize.test_assigning_docstring.<locals>.foo      Hr=   zProvided documentation)doc)r$   r0   __doc__)rd   r  rq  ru  s       r;   test_assigning_docstringz&TestVectorize.test_assigning_docstring  sC    	 cNQYY,&cs#QYY$r=   c                 f    G d d      }t         t         |       j                        t        j                  d            t        j                  d      dz         t         t        |j                         |       t        j                  d            t        j                  d      dz         y )Nc                       e Zd ZdZd Zy)9TestVectorize.test_UnboundMethod_ticket_1156.<locals>.FoorL   c                      || j                   z  S r4   rV  rq   s     r;   r  z=TestVectorize.test_UnboundMethod_ticket_1156.<locals>.Foo.bar  s    DFF{"r=   N)r}   r~   r   r   r  r   r=   r;   Foorz    s    A#r=   r|  rM  rL   )r/   r$   r  r5   r6   )rd   r|  s     r;   test_UnboundMethod_ticket_1156z,TestVectorize.test_UnboundMethod_ticket_1156  sz    	# 	# 	/9SUYY/		!=99Q<1,	.-9SWW-ceRYYq\B99Q<1,	.r=   c                 @   t        d       } |t        j                  d            } |t        j                  dd            }t        d       } |t        j                  dd            } |t        j                  d            }t        ||       t        ||       y )Nc                     | S r4   r   r,  s    r;   r	  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>       r=   rV   r  c                     | S r4   r   r,  s    r;   r	  z@TestVectorize.test_execution_order_ticket_1487.<locals>.<lambda>  r  r=   )r$   r5   r6   r0   )rd   f1res1ares1bf2res2bres2as          r;    test_execution_order_ticket_1487z.TestVectorize.test_execution_order_ticket_1487  sx    {#299Q< 299S!$%{#299S!$%299Q< UE"UE"r=   c                 X    t        j                  d       }d}t        | ||             y )Nc                     | S r4   r   r,  s    r;   r	  z7TestVectorize.test_string_ticket_1892.<locals>.<lambda>      1 r=   d0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789)r5   r$   r0   )rd   rq  r*  s      r;   test_string_ticket_1892z%TestVectorize.test_string_ticket_1892  s#    LL%Q!r=   c                 j   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  g}|D ]R  }t        j                  g d|      } t        j                  d       |      }|j                  |j                  k(  rRJ  y )Nr   r   c                     | | z   S r4   r   r,  s    r;   r	  z=TestVectorize.test_dtype_promotion_gh_29189.<locals>.<lambda>  s
    q1u r=   )
r5   r  r  r  r  r  r  asarrayr$   r   )rd   dtypesr   r   r  s        r;   test_dtype_promotion_gh_29189z+TestVectorize.test_dtype_promotion_gh_29189  sv    ((BHHbhh

BJJ

S 	&E

9E2A-_-a0A77agg%%%	&r=   c                     dgt         fd       }d|_        t        j                  d      }t	         ||      ||z         t        d   t        |             y )Nr   c                 (    dxx   dz  cc<   | dz  S )Nr   rN   rL   r   )r   _callss    r;   rq  z#TestVectorize.test_cache.<locals>.f  s    1INI6Mr=   TrW   )r$   cacher5   r6   r/   r0   rQ  )rd   rq  r   r  s      @r;   
test_cachezTestVectorize.test_cache  sV    		 
	 IIaL1Q4Q'VAYA'r=   c                     t        j                  d       }d|_        t        j                  d      }t	         ||      |       y )Nc                     | S r4   r   r,  s    r;   r	  z+TestVectorize.test_otypes.<locals>.<lambda>  r  r=   r   rW   )r5   r$   r>  r6   r/   rd   rq  r   s      r;   test_otypeszTestVectorize.test_otypes  s2    LL%IIaL1Q4#r=   c                 `   t        j                  d      t        fdt        g      } |d       j	                         u sJ  |d g      j	                         u sJ g dt        fdt        g      } |d       j	                         u sJ  |d g      j	                         u sJ y )NrV   c                     S r4   r   r  s    r;   r	  z8TestVectorize.test_otypes_object_28624.<locals>.<lambda>&       r=   r=  r   c                     S r4   r   r  s    r;   r	  z8TestVectorize.test_otypes_object_28624.<locals>.<lambda>,  r  r=   )r5   r6   r$   r   item)rd   rq  r  s     @r;   test_otypes_object_28624z&TestVectorize.test_otypes_object_28624"  s     IIaLk6(3w||~"""$y~~1$$$k6(3w||~"""$y~~1$$$r=   c                    t        t        j                  d      dgdgf       t        t        j                  d      dgdgf       t        t        j                  d      ddgdgf       t        t        j                  d      dgdgf       t        t        j                  d	      dgddgf       t        t        j                  d
      g ddgf       t        t        j                  d      dgdgf       t        t        j                  d      dgdgf       t        t        j                  d      ddgdgf       t        t        j                  d      dgdgf       t        t        j                  d      dgddgf       t        t        j                  d      g ddgf       t        t              5  t        j                  d       d d d        t        t              5  t        j                  d       d d d        t        t              5  t        j                  d       d d d        y # 1 sw Y   dxY w# 1 sw Y   CxY w# 1 sw Y   y xY w)Nz(x)->()r,  r   z	(x,y)->()r  z(x),(y)->()rE  z(x)->(y)z(x)->(y),()z(),(a,b,c),(d)->(d,e))r   )re   r   r   )rk  )rk  ez(x )->()z( x , y )->(  )z(x),( y) ->()z(  x)-> (y )  z (x)->( y),( )z*(  ), ( a,  b,c )  ,(  d)   ->   (d  ,  e)z
(x)(y)->()z	(x),(y)->z
((x))->(x))r0   nfb_parse_gufunc_signaturer1   ra   r   s    r;   test_parse_gufunc_signaturez)TestVectorize.test_parse_gufunc_signature1  s"   S00;vh=MNS00=!lRD)	+S00?v&-	/S00<h)	+S00?h-	/S001HI3j\B	D 	S00<x">NOS001BC!lRD)	+S00Av&-	/S001ABh)	+S001ABh-	/S00AC3j\B	D :& 	6''5	6:& 	5''4	5:& 	6''5	6 	6		6 	6	5 	5	6 	6s$   :H3'H?I3H<?IIc                 Z    d }t        |d      } |g dg d      }t        |g d       y )Nc                      | |kD  r| |z
  S | |z   S r4   r   r  s     r;   r  z8TestVectorize.test_signature_simple.<locals>.addsubtractT  r  r=   z	(),()->()	signaturer   r!  r"  r#  r$  s       r;   test_signature_simplez#TestVectorize.test_signature_simpleS  s+    	 k[9lL)1l+r=   c                 \    d }t        |d      } |ddgddgg      }t        |ddg       y )Nc                 "    | j                         S r4   r   r  s    r;   r   z4TestVectorize.test_signature_mean_last.<locals>.mean_  s    668Or=   z(n)->()r  rN   rV   rL   rJ   r#  )rd   r   rq  r  s       r;   test_signature_mean_lastz&TestVectorize.test_signature_mean_last^  s:    	 di01v1v1q!f%r=   c                 d    d }t        |d      } |ddgddgg      }t        |ddgddgg       y )	Nc                 (    | | j                         z
  S r4   r  r  s    r;   centerz3TestVectorize.test_signature_center.<locals>.centerg  s    qvvx<r=   (n)->(n)r  rN   rV   rL   rJ   r]   r#  )rd   r  rq  r  s       r;   test_signature_centerz#TestVectorize.test_signature_centerf  sC    	  f
31v1v1AwQ01r=   c                     t        d d      } |g d      }t        t        |t              xr t	        |      dk(         t        |d   g d       t        |d   g d       y )Nc                 
    | | fS r4   r   r,  s    r;   r	  z:TestVectorize.test_signature_two_outputs.<locals>.<lambda>o  
    A r=   	()->(),()r  r   rL   r   rN   )r$   r+   r  r  rQ  r/   rd   rq  r  s      r;   test_signature_two_outputsz(TestVectorize.test_signature_two_outputsn  sP    &+>iL
1e$4Q151Q4+1Q4+r=   c                 j   t        t        j                  d      } |ddgg d      }t        |g dg dg        |ddgggg d      }t        |g dg dggg        |ddgddggg d      }t        |g dg dgg dg dgg        |ddgg dg dg      }t        |g dg dgg dg dgg       y )	Nz(a),(b)->(a,b)r  rN   rL   r   r  r   r   )r$   r5   r8   r/   r  s      r;   test_signature_outerz"TestVectorize.test_signature_outeru  s    bhh*:;q!fi 1y)45Axj)$1I 67891v1v	*1	95 )957 	8 q!fy),-1	95 )957 	8r=   c                     t        d d      } |g d      }t        |ddg        |g dg dg      }t        |ddgddgg       y )	Nc                     | d d S Nr]   r   r,  s    r;   r	  z<TestVectorize.test_signature_computed_size.<locals>.<lambda>      #2 r=   z(n)->(m)r  r   rN   rL   r  rV   r#  r  s      r;   test_signature_computed_sizez*TestVectorize.test_signature_computed_size  sL    &*=iL1q!f%y)$%11v1v./r=   c                     d	d}t        |ddh      }t         |g d      g d       t         |g dd      g d       y )
Nc                     | |z   S r4   r   r  s     r;   r  z2TestVectorize.test_signature_excluded.<locals>.foo  r7  r=   ()->()r   )r  r^  r   r  r   rV  rb  r#  rp  s      r;   test_signature_excludedz%TestVectorize.test_signature_excluded  s8    	 cX>1Y<31Y!,i8r=   c                     t        d ddg      } |g d      }t        |j                  t        j                  d             t	        |g d       y )Nc                     | S r4   r   r,  s    r;   r	  z5TestVectorize.test_signature_otypes.<locals>.<lambda>  r-  r=   r  r  r  r>  r   )r$   r0   r   r5   r/   r  s      r;   test_signature_otypesz#TestVectorize.test_signature_otypes  s<    kZLiLQWWbhhy121i(r=   c                    t        t        j                  d      }t        t        d      5   |ddg       d d d        t        t
        d      5   |dd       d d d        t        t
        d      5   |ddgg d       d d d        t        t        j                  d	      }t        t        d      5   |dd       d d d        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   y xY w)
Nz(n),(n)->(n)r  zwrong number of positionalrN   rL   zdoes not have enough dimensions$inconsistent size for core dimensionr   r  )r$   operatorr7   r2   r  ra   rg  s     r;   test_signature_invalid_inputsz+TestVectorize.test_signature_invalid_inputs  s    hlln= ,HI 	q!fI	 =? 	aG	 !BD 	!q!fi 	! hllh7 ,HI 	aG	 		 		 		! 	!
	 	s/   C
C1C2
C)CCC&)C2c                 n   t        d d      }t        t        d      5   |g d       d d d        t        d d      }t        t        d      5   |d	       d d d        t        d
 d      }t        t        d      5   |d	dg       d d d        y # 1 sw Y   jxY w# 1 sw Y   GxY w# 1 sw Y   y xY w)Nc                     | d d S r  r   r,  s    r;   r	  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r  r=   r  r  r  r   c                     | S r4   r   r,  s    r;   r	  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r-  r=   r  zwrong number of outputsrN   c                 
    | | fS r4   r   r,  s    r;   r	  z>TestVectorize.test_signature_invalid_outputs.<locals>.<lambda>  r  r=   r  rL   )r$   r2   ra   rg  s     r;   test_signature_invalid_outputsz,TestVectorize.test_signature_invalid_outputs  s    &*= BD 	iL	 k[9 -FG 	aD	 &(; -FG 	q!fI	 		 	
	 		 	s#   B	B?B+BB(+B4c                 6   t        j                  d       }t        j                  ddgt              }t	        t
        d      5   ||       d d d        d|_        t         ||      |       t        j                  d d	      }t	        t
        d      5   ||       d d d        t        j                  d
 dd      }t         ||      |       t        j                  d dd      }t         ||      |       t        j                  d d	      }t         ||j                        |j                         t        j                  d dd      }t	        t
        d      5   ||       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)Nc                     | S r4   r   r,  s    r;   r	  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r  r=   r   rW   r   r>  r   c                     | S r4   r   r,  s    r;   r	  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r  r=   r  r  c                     | S r4   r   r,  s    r;   r	  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r  r=   r  c                     | S r4   r   r,  s    r;   r	  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r  r=   r  c                     | S r4   r   r,  s    r;   r	  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  r  r=   c                     | gS r4   r   r,  s    r;   r	  z5TestVectorize.test_size_zero_output.<locals>.<lambda>  s    A3 r=   z()->(n)znew output dimensions)	r5   r$   r?   r  r2   ra   r>  r/   r   r  s      r;   test_size_zero_outputz#TestVectorize.test_size_zero_output  s=   LL%HHaV3' X6 	aD	 1Q4#LL9 X6 	aD	 LLE1Q4#LL
3G1Q4#LL
;1QSS6133'LL)CH -DE 	aD	 	)	 		 		 	s$   	E6	F$	F6F FFc                      G d dt         j                        }t        j                  g dg dg dg      j                  |      }t        j                  g dg dg dg      j                  |      }t        j                  t         j
                  d	
      } |||      }t        t        |      |       t        |g dg dg dg       t        j                  d       } |||      }t        t        |      |       t        |||z         y )Nc                       e Zd Zy)/TestVectorize.test_subclasses.<locals>.subclassNr,  r   r=   r;   r-  r    r.  r=   r-  )r   r   r   rz  )r   r   r   r   )r   r   r  r  z(m,m),(m)->(m)r  )r   r   r   )r   r  r   )r  r  r   c                     | |z  S r4   r   r  s     r;   r	  z/TestVectorize.test_subclasses.<locals>.<lambda>  s
    Q r=   )r5   r/  r   r0  r$   matmulr0   r1  )rd   r-  rD  rH  matvecr  mults          r;   r4  zTestVectorize.test_subclasses  s    	rzz 	 HHl""$ %%)T(^ 	
 HHlL,?@EEhObii3CD1aLT!Wh'Q|\BC ||./AJT!Wh'QAr=   c                 R    t         j                  d        }|j                  dk(  sJ y )Nc                     | |z   S r4   r   r  s     r;   r  z#TestVectorize.test_name.<locals>.f2  s    q5Lr=   r  )r5   r$   r}   )rd   r  s     r;   	test_namezTestVectorize.test_name  s,    		 
	 {{d"""r=   c                 R    t         d        } |g dg d      }t        |g d       y )Nc                      | |kD  r| |z
  S | |z   S r4   r   r  s     r;   r  z1TestVectorize.test_decorator.<locals>.addsubtract  s    1u1u1ur=   r   r!  r"  r#  )rd   r  r  s      r;   test_decoratorzTestVectorize.test_decorator  s,    		 
	 l31l+r=   c                 z    t         d        }t        j                  j                  dk  r|j                  dk(  sJ y y )Nc                     | S )	Docstringr   r,  s    r;   rq  z'TestVectorize.test_docstring.<locals>.f  s	     Hr=   rL   r  )r$   sysr   optimizerv  rg  s     r;   test_docstringzTestVectorize.test_docstring  s?    		 
	 99!99+++ "r=   c                 f    d }t        |d      }t        j                  |      } |d      dk(  sJ y )Nc                     | |z   S r4   r   r  s     r;   r  z'TestVectorize.test_partial.<locals>.foo  r7  r=   rV   rN   rJ   )r   r5   r$   )rd   r  r  vbars       r;   test_partialzTestVectorize.test_partial  s2    	 c1o||C Aw!||r=   c                     t        ddg      d        } |g d      }t        |j                  t        j                  d             t	        |g d       |j
                  dk(  sJ y )Nr  r  r  c                     | S r4   r   r,  s    r;   rq  z8TestVectorize.test_signature_otypes_decorator.<locals>.f  rt  r=   r   rq  )r$   r0   r   r5   r/   r}   r  s      r;   test_signature_otypes_decoratorz-TestVectorize.test_signature_otypes_decorator  s[    	Z	<	 
=	 iLQWWbhhy121i(zzS   r=   c                 x    t        t              5  t        j                  d      }d d d        y # 1 sw Y   y xY w)NrV   )pyfuncr1   r  r5   r$   )rd   As     r;   test_bad_inputzTestVectorize.test_bad_input  s-    9% 	'A&A	' 	' 	's   09c                     t        t              5  t        j                  d      d        }d d d        y # 1 sw Y   y xY w)Nstringc                       y)Nr  r   r   r=   r;   r  z+TestVectorize.test_no_keywords.<locals>.foo  s    r=   r  )rd   r  s     r;   test_no_keywordszTestVectorize.test_no_keywords  s:    9% 	\\(# $	 	 	s   5>c                     t        d dg      } |dg      }t        |j                  t        j                  d             y )Nc                     | S r4   r   r,  s    r;   r	  z?TestVectorize.test_positional_regression_9477.<locals>.<lambda>%  r  r=   r  rL   )r$   r0   r   r5   r  s      r;   test_positional_regression_9477z-TestVectorize.test_positional_regression_9477!  s4     {i[1qcFQWWbhhy12r=   c                     d}t        j                  g dd      }t         t        j                  d d|g      |      |       y )Nzdatetime64[ns])z
2024-01-01z
2024-01-02z
2024-01-03r   c                     | S r4   r   r,  s    r;   r	  z8TestVectorize.test_datetime_conversion.<locals>.<lambda>-  s    ! r=   z(i)->(j)r  )r5   r   r/   r$   )rd   otyper   s      r;   test_datetime_conversionz&TestVectorize.test_datetime_conversion)  sH     hhA-/ 82<<z05w88;=>A	Cr=   N)1r}   r~   r   r%  r(  r.  r4  r:  rA  rC  rH  rL  rN  rS  rW  ra  rh  rk  rq  rw  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r4  r  r  r  r  r  r  r  r   r  r   r=   r;   r  r  +  s    	,	,!*##	#
#&	)!#"=	:6#
%.	#&($% 6D	,&2,8 09)6(#	,,!'3Cr=   r  c                   @   e Zd Z G d d      Zej
                  j                  e d      ej
                  j                  ed      ej
                  j                  ddej                  fdg      ej
                  j                  d	      d
                             Zy)	TestLeaksc                   &    e Zd ZdZd Zed        Zy)TestLeaks.Ar  c                      yrn  r   rd   r1  s     r;   boundzTestLeaks.A.bound5  ro  r=   c                       yrn  r   )r1  s    r;   unboundzTestLeaks.A.unbound8  s    r=   N)r}   r~   r   itersr  staticmethodr  r   r=   r;   r  r  2  s     	 
	 
	r=   r  Python lacks refcountsreasonzJFunctions are immortalized if a thread is launched, making this test flakyz
name, incrr  )r  r   z=test result depends on the reference count of a global objectc                    dd l }t        | j                  |      }|j                          	 t	        j
                  |      }t        | j                  j                        D ]\  }| j                         }t        j                  t        ||      dd      |_
        |j                  t        j                  d            }^ d }t        t	        j
                  |      ||z          t        d      D ]  }|j                           t        t	        j
                  |      |       |j                          y # |j                          w xY w)Nr   rN   r   rW   )gcr  r  disabler  getrefcountrc   r  r5   
frompyfuncrq  r6   r0   collectenable)	rd   r  incrr  A_funcrefcountr   re   r  s	            r;   test_frompyfunc_leakszTestLeaks.test_frompyfunc_leaks<  s    " 	&


	v.H466<<( )FFHmmGAt$4a;cc"))B-() A0(T/B1X 

0(;IIKBIIKs   C6D3 3EN)r}   r~   r   r  r	  rH  skipifr(   r*   rI  r  thread_unsafer  r   r=   r;   r  r  1  s      [[L(1IJ[[!C  E [[\agg,  [[N  	E Kr=   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                  j!                  d      d        Zy)TestDigitizec                     t        j                  dd      }t        j                  dd      }t        t        ||      t        j                  d             y )Nr%  rW   r  r   r5   r6   r/   r   rd   r   binss      r;   test_forwardzTestDigitize.test_forwardb  s;    IIb!yyQ8At,biim<r=   c                     t        j                  ddd      }t        j                  ddd      }t        t        ||      t        j                  d             y )NrW   r%  r]   r  r   r#  r$  s      r;   test_reversezTestDigitize.test_reverseg  s?    IIaR yyB#8At,biim<r=   c                     t        d      }t        j                  |j                         |j	                         d      }t        t        j                  t        ||      dk7               y )Nr   r   r'   r5   rb  r  r  r+   r   r   )rd   r   bins      r;   test_randomzTestDigitize.test_randoml  sF    Hkk!%%'1557B/x3'1,-.r=   c                 ~    g d}g d}g d}t        t        ||      |       g d}t        t        ||d      |       y )N)rN   rW   rJ   r   rt   r   r   )rN   rW   r   )rN   rL   rN   rV   rL   rV   r   )r   rN   rN   rL   rL   rV   r   T)r/   r   )rd   r   r%  default_answerright_answers        r;   test_right_basiczTestDigitize.test_right_basicq  s:    #.8At,n=,8AtT2LAr=   c                     t        j                  dd      }t        j                  dd      }t        t        ||d      t        j                  d             y )Nr%  rW   rJ   Tr   r#  r$  s      r;   test_right_openzTestDigitize.test_right_openy  s=    IIb!yyQ8AtT2BIIbMBr=   c                     t        j                  ddd      }t        j                  ddd      }t        t        ||d      t        j                  d             y )NrW   r%  r]   rJ   Tr   r#  r$  s      r;   test_right_open_reversez$TestDigitize.test_right_open_reverse~  sA    IIaR yyB#8AtT2BIIbMBr=   c           	          t        d      }t        j                  |j                         |j	                         d      }t        t        j                  t        ||d      dk7               y )Nr   Tr*  r$  s      r;   test_right_open_randomz#TestDigitize.test_right_open_random  sH    H{{1557AEEGR0x4."456r=   c                    g d}g d}t        t        ||d      g d       t        t        ||d      g d       g d}t        t        ||d      g d       t        t        ||d      g d	       g d
}t        t        ||d      g d       t        t        ||d      g d       g d}t        t        t        ||       g d}t        t        t        ||       y )N)r]   r   rN   rL   r   F)r   rL   rV   rV   T)r   r   rL   rV   r   )rV   rL   r   r   )rV   rV   rL   r   r   )r   r   rJ   rJ   )r   r   r   rJ   r   )rN   rN   r   rN   )r/   r   r1   ra   r$  s      r;   test_monotoniczTestDigitize.test_monotonic  s    8AtU3\B8AtT2LA8AtU3\B8AtT2LA8AtU3\B8AtT2LAj(At4j(At4r=   c                 t    g d}g d}t        t        t        ||       ||}}t        t        t        ||       y )N)rN   rL   y      @      ?r   )r1   r  r   r$  s      r;   test_casting_errorzTestDigitize.test_casting_error  s1    i1d34i1d3r=   c           	      L    G d dt         j                        }t        j                  d      j                  |      }t        j                  dd      j                  |      }t	        t        t        ||d      |              t	        t        t        ||d      |              y )Nc                       e Zd Zy)(TestDigitize.test_return_type.<locals>.ANr,  r   r=   r;   r  r=    r.  r=   r  rW   rN   rV   FT)r5   r/  r6   r0  r+   r  r   )rd   r  re   r   s       r;   r  zTestDigitize.test_return_type  sz    	

 	IIaLa IIaO  #Jx1e4a889Jx1d3Q778r=   c                 X    d}t        t        j                  ||dz
  |dz   g      d       y Nl          rN   r0   r5   r   r  s     r;   test_large_integers_increasingz+TestDigitize.test_large_integers_increasing  s(    R[[QUAEN3Q7r=   z9gh-11022: np._core.multiarray._monoticity loses precisionr  c                 X    d}t        t        j                  ||dz   |dz
  g      d       y r?  r@  r  s     r;   test_large_integers_decreasingz+TestDigitize.test_large_integers_decreasing  s*     R[[QUAEN3Q7r=   N)r}   r~   r   r&  r(  r,  r0  r2  r4  r6  r8  r:  r  rA  r	  rH  xfailrC  r   r=   r;   r!  r!  `  si    =
=
/
BC
C
7
5 498
 [[J  L8L8r=   r!  c                       e Zd Zd Zd Zy)
TestUnwrapc                     t        t        dddt        j                  z  z   g      ddg       t	        t        j
                  t        t        t        d      dz              t        j                  k               y )NrN   rL   r   rs  )r/   r#   r5   r  r+   r   r   r'   r   s    r;   r%  zTestUnwrap.test_simple  sR    61a!bee)m"451v>tF48c>23bee;<=r=   c                 B   t        t        ddgd      ddg       t        t        j                  t        t        t        d      dz  d            dk               t        j                  g d      }t        j                  |d      }t        t        |d      |       t        j                  g d	      }t        j                  |d
      }t        |d
      }t        |g d       t        |d
d      }t        |g d	       |j                  |j                  k(  sJ y )NrN   i     periodrL   r     )r   K         r  )r   rM  rN  rO  r  i     )r   rM  rN  rO  r  r     )rK  discont)
r/   r#   r+   r5   r   r   r'   r   modr   )rd   
simple_seqwrap_seq
uneven_seqwrap_uneven
no_discont
sm_disconts          r;   test_periodzTestUnwrap.test_period  s    61g,s;aVDtF48d?3?@3FGHXX45
66*c*6(37DXX9:
ffZ-K4
:'BCKSA
:'BC;#4#4444r=   N)r}   r~   r   r%  rZ  r   r=   r;   rF  rF    s    >5r=   rF  O
AllIntegerFloatM)r   rN   r   c                   p    e Zd ZdededdfdZdededdfdZdededdfdZdededdfdZdededdfd	Z	y)
TestFilterwindowsr   r^  returnNc                    t        j                  ||      d   }t        |      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r[  rN   r   r         @rJ   )r5   r   r   r  r  r   r0   r   r/   rb   r-   r  rd   r   r^  scalarr  	ref_dtypes         r;   test_hanningzTestFilterwindows.test_hanning  s    !5)"-FOC<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 15!<r=   c                    t        j                  ||      d   }t        |      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r[  rN   r   r   g(\@rJ   )r5   r   r   r  r  r   r0   r   r/   rb   r-   r  rd  s         r;   test_hammingzTestFilterwindows.test_hamming  s    !5)"-FOC<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 161=r=   c                    t        j                  ||      d   }t        |      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r[  rN   r   r   g^)@rJ   )r5   r   r   r  r  r   r0   r   r/   rb   r-   r  rd  s         r;   test_bartlettzTestFilterwindows.test_bartlett 	      !5)"-VC<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 161=r=   c                    t        j                  ||      d   }t        |      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r[  rN   r   r   g=
ףp=@rJ   )r5   r   r	   r  r  r   r0   r   r/   rb   r-   r  rd  s         r;   test_blackmanzTestFilterwindows.test_blackman	  rl  r=   c                    t        j                  ||      d   }t        |d      }|dk(  rt         j                  }n.t        j                  |j
                  t         j                        }|j
                  |k(  sJ t        |t        |             |dk  r t        |t        j                  g              y |dk(  r t        |t        j                  d             y t        t        j                  |d      dd       y )	Nr   r   r   r[  rN   r   r   r[  )r5   r   r   r  r  r   r0   r   r/   rb   r-   r  rd  s         r;   test_kaiserzTestFilterwindows.test_kaiser*	  s    !5)"-61C<

Iv||RZZ@Iww)### 	Qq	" A:q"((2,/q[q"''!*-qq 12r:r=   )
r}   r~   r   strr  rg  ri  rk  rn  rp  r   r=   r;   r`  r`    s    =# =# =$ =*># ># >$ >*>3 >3 >4 >*>3 >3 >4 >*; ; ; ;r=   r`  c                       e Zd Zd Zd Zd Zy)TestTrapezoidc                     t        j                  ddd      }t        t        j                  d|dz  z        t        j                  dt         j
                  z        z  d      }t        |dd       y )	Nr   r  rm  rL   )rI  rN   rv   )r5   r6   r    r  r  r  r-   )rd   r   r  s      r;   r%  zTestTrapezoid.test_simpleB	  sS    IIc2r"bffS16\*RWWQY-??CHAq!$r=   c                 F   t        j                  ddd      }t        j                  ddd      }t        j                  ddd      }t        j                  |      |d   |d   z
  z  }|dxx   dz  cc<   |dxx   dz  cc<   t        j                  |      |d   |d   z
  z  }|dxx   dz  cc<   |dxx   dz  cc<   t        j                  |      |d   |d   z
  z  }|dxx   dz  cc<   |dxx   dz  cc<   |d d d d f   |d d d d f   z   |d d d d f   z   }||d d d d f   z  j                  d      }||d d d d f   z  j                  d      }	||d d d d f   z  j                  d      }
t	        ||d d d d f   d	      }t        ||       t	        ||d d d d f   d	      }t        ||	       t	        ||d d d d f   d	      }t        ||
       t	        ||d	      }t        ||       t	        ||d	      }t        ||	       t	        ||d	      }t        ||
       y )
Nr   rN   rV   rL   rt   r[   r]   r   )r   r   )r5   rb  	ones_liker  r    r-   )rd   r   r  r  wxwywzqqxqyqzr  s               r;   	test_ndimzTestTrapezoid.test_ndimH	  s.   KK1a KK1a KK1b!\\!_!qt,
1

2!\\!_!qt,
1

2!\\!_!qt,
1

2!atmqq$//!D$M2BB"Qd]##((a(0"T1d]##((a(0"T4]##((a(0 a1Qd]+!4Ar"a1T1d]+!4Ar"a1T4]+!4Ar" a11%Ar"a11%Ar"a11%Ar"r=   c                    t        j                  d      }||z  }|dk(  }t         j                  j                  ||      }d}t	        t        ||      |       t         j                  j                  ||      }t	        t        ||      |       t         j                  j                  ||      }t	        t        ||      |       y )NrW   rL   r  g      *@)r5   r6   r   r   r-   r    )rd   r   r  r  ymr  xms          r;   r`  zTestTrapezoid.test_maskedm	  s     IIaLEAvUU[[[&Ib!,a0UU[[[&Ib"-q1UU[[[&Ia,a0r=   N)r}   r~   r   r%  r  r`  r   r=   r;   rs  rs  @	  s    %##J1r=   rs  c                   \   e Zd Zd Zd Zd Zej                  j                  de	j                  e	j                  e	j                  g      d        Zej                  j                  de	j                  e	j                  e	j                   e	j"                  e	j$                  g      d        Zd Zy)	TestSincc                     t        t        d      dk(         t        t        j                  ddd            }t	        |t        |      d       y )Nr   rN   r]   rs  rv   )r+   r   r5   rb  r.   r   rd   r  s     r;   r%  zTestSinc.test_simple	  s9    Q1RC()!!VAY2r=   c                     ddg}t        t        j                  |            }t        t        |            }t        t	        |            }t        ||       t        ||       y )Nr   r  )r   r5   r   r   r  r/   )rd   r   r   r   r   s        r;   test_array_likezTestSinc.test_array_like	  sK    H"((1+$q']%(^2r"2r"r=   c                    t        j                  dt         j                        dz  dk(  }t        |      }t        |j	                  t         j
                              }t        ||       |j                  t         j
                  k(  sJ y )NrJ   r   rL   rN   )r5   r6   rp  r   r  r  r,   r   )rd   r   r  r  s       r;   test_bool_dtypezTestSinc.test_bool_dtype	  s`    YYq)A-2a,-)||rzz)))r=   r   c                     t        j                  d|      }t        |      }t        |j                  t         j                              }t        ||       |j                  t         j                  k(  sJ y NrJ   r   )r5   r6   r   r  r  r,   r   )rd   r   r   r  r  s        r;   test_int_dtypeszTestSinc.test_int_dtypes	  sR    IIau%a,-)||rzz)))r=   c                 z    t        j                  d|      }t        |      j                  |j                  k(  sJ y r  )r5   r6   r   r   )rd   r   r   s      r;   test_float_dtypeszTestSinc.test_float_dtypes	  s.    
 IIau%Aw}}'''r=   c                 ~    t        j                  d      }t        t        |      t        j                  d             y )Nr   r   )r5   r  r/   r   r  r  s     r;   test_float16_underflowzTestSinc.test_float16_underflow	  s'    JJqM 	47BJJsO4r=   N)r}   r~   r   r%  r  r  r	  rH  rI  r5   rp  r  r  r  r  r  
longdoubler  rB   r  r  r   r=   r;   r  r  ~	  s    3#* [[Wrxx299&EF* G* [[ZZR]]BLL"--P(	(5r=   r  c                       e Zd Zd Zy)
TestUniquec                    t        j                  g d      }t        t        j                  t	        |      g dk(               t        t	        t        j                  g d            t        j                  dg      k(         g d}t        t        j                  t	        |      g dk(               t        j                  g d      }t        t        j                  t	        |      g dk(               y )	N)	rJ   rV   rL   rN   rN   rL   rV   rJ   r   )r   rN   rL   rV   rJ   )rN   rN   rN   rN   rN   rN   )widgethamr  r  r  r  )r  r  r  r  )      @      @r        ?      $@r   r  )r  r  r  r   )r5   r   r+   r   r"   r  s     r;   r%  zTestUnique.test_simple	  s    HH01vayO345rxx01RXXqc]BC9vay$CCDEHH:;vay$AABCr=   N)r}   r~   r   r%  r   r=   r;   r  r  	  s    Dr=   r  c                       e Zd Zd Zd Zy)TestCheckFinitec                     g d}ddt         j                  g}ddt         j                  g}t        j                  |       t	        t
        t         j                  |       t	        t
        t         j                  |       y )Nr   rN   rL   )r5   infrh  asarray_chkfiniter1   ra   r   s       r;   r%  zTestCheckFinite.test_simple	  sW    266N266N
Qj""6"6:j""6"6:r=   c                     g d}t        j                  |dt         j                        }t        |j                  t         j                  k(         y )Nr   r   )r   r   )r5   r  r  r+   r   rq   s     r;   test_dtype_orderz TestCheckFinite.test_dtype_order	  s4      #RZZ@2::%&r=   N)r}   r~   r   r%  r  r   r=   r;   r  r  	  s    ;'r=   r  c            	       ^   e Zd Z ej                  g dg dg dg      Z ej                  g dg dg dg      Z ej                  g dg dg d	g      Z ej                  g d
g dg dg dg dg dg      Zd Z	d Z
d Zd Zd Zd Zej                   j#                  de      d        Zy)TestCorrCoef)g^?g.{<?g$,?)g4?gp)?gJG?)gY?g?gވ0v?)gة?gBFU?g G)t?)g3TB?gL\?gA?)g>
?gqFE`?g5?)r   ޛ?r@)r  r   p]4?)r  r  r   )r   r  r  ?'L?(8?4V}?)r  r   r  w{,H5?jS,?)r  r  r   )h?5#A?)r  r  r  r   toBC,)r  r  r  r  r   @02v?)r  r  r  r  r  r   c                 X    t        t        j                  g dg d      ddgddgg       y )Nr   )rN   r   rN   r         )r-   r5   r
   r   s    r;   test_non_arrayzTestCorrCoef.test_non_array	  s'    BKK	9= #Yb	2	4r=   c                    t        | j                        }t        || j                         t	        t        j                  t        j                  |      dk               t        | j                  | j                        }t        || j                         t	        t        j                  t        j                  |      dk               y rd  )
r
   r  r-   ry  r+   r5   r   rc  r  rz  )rd   tgt1tgt2s      r;   r%  zTestCorrCoef.test_simple	  s|    D$)),rvvd|s*+,'D$)),rvvd|s*+,r=   c                    t        j                  g dg dg      }t        |      }t        j                  ddgddgg      }t        ||       t	        t        j
                  t        j                  |      dk               y Nr   rf  y               @y              @r   r  rf  )r5   r   r
   r,   r+   r   rc  )rd   r   r@  r  s       r;   test_complexzTestCorrCoef.test_complex	  sa    HHi./qkhhT
S"I./S!rvvc{c)*+r=   c                     t        j                  g dg      }t        j                  g dg      }t        t        j                  ||      t        j                  ddgddgg             y r  )r5   r   r,   r
   rd   r   r  s      r;   test_xyzTestCorrCoef.test_xy	  sM    HHi[!HHl^$Aq)288b$Z#r4K+LMr=   c           	         t        j                  d      5  t        j                  dt               t	        t        t        j                  g             t        j                         t	        t        t        j                  g       j                  dd            t        j                  g       j                  dd             t	        t        t        j                  g       j                  dd            t        j                  t        j                  t        j                  gt        j                  t        j                  gg             d d d        y # 1 sw Y   y xY wNTrecordalwaysr   rL   )
warningscatch_warningssimplefilterRuntimeWarningr/   r
   r5   r   rh  rw   r   s    r;   
test_emptyzTestCorrCoef.test_empty	  s    $$D1 	O!!(N;x5rvv>x(<(<Q(BC!xx|33Aq9;x(<(<Q(BC!xx"&&"&&)9BFFBFF;K(LMO	O 	O 	O   D5EEc                 2   ddgddgg}t        j                  d      5  t        |      }d d d        t        t        j                  ddgddgg             t        t        j                  t        j                  |      dk               y # 1 sw Y   cxY w)Ng0.++g}Ô%ITraiser   r   r  )r5   errstater
   r.   r   r+   r   rc  )rd   r   r   s      r;   test_extremezTestCorrCoef.test_extreme 
  s|    e_ufo.[[W% 	A	!!RXXCy3).D%EFrvvayC'()	 	s   BB	test_typec                 v    | j                   j                  |      }t        ||      }||j                  k(  sJ y Nr   )r  r  r
   r   )rd   r  cast_Ar@  s       r;   test_corrcoef_dtypez TestCorrCoef.test_corrcoef_dtype
  s2    y)vY/CII%%%r=   N)r}   r~   r   r5   r   r  r  ry  rz  r  r%  r  r  r  r  r	  rH  rI  	np_floatsr  r   r=   r;   r  r  	  s    	-	-	,	.	/A 		,	-	,	.	/A 288	%	$	&	()D 288	I	I	K	M	J	J	LMD4-,N
O* [[[)4& 5&r=   r  c                      e Zd Z ej                  ddgddgddgg      j
                  Z ej                  ddgddgg      Z ej                  g dd      Z ej                  g d      Z	 ej                  d	gdgdgdgdgd
gg      j
                  Z
 ej                  ddgddgg      Z ej                  dej                        Z ej                  g d      Z ej                  ddgddgg      Z ej                  d      Z ej                  g d      Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej<                  j?                  de       d        Z!d Z"y )!TestCovr   rL   rN   r   r  )r   r   r   )ndmin)rN   rJ   rN   r   r   皙?gٿrV   r   )r   r   r   gUUUUUU?gUUUUUU)g&S:?go_?g#~j?gZӼ?gQ|?c                 V    t        t        | j                        | j                         y r4   )r,   r   x1ry  r   s    r;   rj   zTestCov.test_basic
  s    DGGdii0r=   c                     t        j                  g dg dg      }t        j                  ddgddgg      }t        t        |      |       t        t        |t        j                  d            |       y )Nr   r  r   r  rf  rV   aweights)r5   r   r,   r   rb   )rd   r   r@  s      r;   r  zTestCov.test_complex
  sW    HHi./hhT
S"I./A$A
3S9r=   c                     t        j                  g dg      }t        j                  g dg      }t        t        ||      t        j                  ddgddgg             y r  )r5   r   r,   r   r  s      r;   r  zTestCov.test_xy$
  sH    HHi[!HHl^$Aq	288b$Z#r,C#DEr=   c           	         t        j                  d      5  t        j                  dt               t	        t        t        j                  g             t        j                         t	        t        t        j                  g       j                  dd            t        j                  g       j                  dd             t	        t        t        j                  g       j                  dd            t        j                  t        j                  t        j                  gt        j                  t        j                  gg             d d d        y # 1 sw Y   y xY wr  )
r  r  r  r  r/   r   r5   r   rh  rw   r   s    r;   r  zTestCov.test_empty)
  s    $$D1 	O!!(N;s288B<0"&&9s288B<#7#71#=>!xx|33Aq9;s288B<#7#71#=>!xx"&&"&&)9BFFBFF;K(LMO	O 	O 	Or  c           	      v   t        j                  d      5  t        j                  dt               t	        t        | j                  d      t        j                  t        j                  t        j                   gt        j                   t        j                  gg             d d d        y # 1 sw Y   y xY w)NTr  r  rW   ddof)
r  r  r  r  r/   r   r  r5   r   r  r   s    r;   test_wrong_ddofzTestCov.test_wrong_ddof2
  s~    $$D1 	>!!(N;s4773!xx"&&266'):+-66'266):)<  =>	> 	> 	>s   BB//B8c                    t        t        | j                        t        | j                  d             t        j                  g d      }t        t        | j                  |      t        | j                  |d             y )NF)rowvar)g+?g4@?g&S?go_?gJ4?)r,   r   x3r5   r   rd   r  s     r;   test_1D_rowvarzTestCov.test_1D_rowvar9
  sO    DGGc$''%&@AHH=>DGGQTWWa)FGr=   c                     t        t        | j                  d      t        j                  | j                  d             y )NrN   r  )r,   r   r  r5   varr   s    r;   test_1D_variancezTestCov.test_1D_variance>
  s&    DGG!,bffTWW1.EFr=   c                 ^   t        t        | j                  | j                        t        | j                               t        t        | j
                  | j                        | j                         t        t        | j
                  | j                        | j                         | j                  dz   }t        t        t        | j
                  |       t        j                  dt        j                        }t        t        t        | j
                  |       t        j                  dt        j                        }t        t        t        | j
                  |       dt        j                  dt        j                        z  }t        t        t        | j
                  |       y )N)fweightsr  rL   rV   r   rL   r]   rV   )r,   r   r_  frequencies
x2_repeatsr  rz  unit_frequenciesry  r1   r  r5   rb   ro  RuntimeErrorra   )rd   nonintrq  s      r;   test_fweightszTestCov.test_fweightsA
  s   DGGd.>.>?DOO,	.DGGd.>.>?			#DGGd.C.CD			#!!C'idgg?GGF"''*lC1=GGARWW%lC1="''**j#tww;r=   c                    t        t        | j                  | j                        | j                         t        t        | j                  d| j                  z        t        | j                  | j                               t        t        | j                  | j
                        | j                         t        j                  d      }t        t        t        | j                  |       t        j                  d      }t        t        t        | j                  |       dt        j                  d      z  }t        t        t        | j                  |       y )Nr  r   r  rL   r  rV   )r,   r   r  r   r{  unit_weightsry  r5   rb   r1   r  ra   r  s     r;   test_aweightszTestCov.test_aweightsQ
  s    DGGdll;TYYGDGGcDLL.@ADGGdll;	=DGGd.?.?@$))LGGFOlC1=GGAJlC1=2771:j#tww;r=   c                 F   t        t        | j                  | j                  | j                        t        | j
                               t        t        | j                  | j                  | j                        | j                         t        t        | j                  | j                  | j                        | j                         t        t        | j                  | j                  | j                        | j                         t        t        | j                  | j                  d| j                  z        t        | j                  | j                               t        t        | j                  | j                  | j                        | j                         y )N)r  r  r   r  )r,   r   r_  r  r  r  r  rz  r  ry  r   r{  r   s    r;   test_unit_fweights_and_aweightsz'TestCov.test_unit_fweights_and_aweights]
  s+   DGGd.>.>%)%6%68DOO,	. 	DGGd.>.>%)%6%68			# 	DGGd.C.C%)%6%68			# 	DGGd.C.C%)\\3			# 	DGGd.C.C%(4<<%79DGGdll;	= 	DGGd.C.C%)%6%68			#r=   r  c                 v    | j                   j                  |      }t        ||      }||j                  k(  sJ y r  )r  r  r   r   )rd   r  cast_x1r@  s       r;   test_cov_dtypezTestCov.test_cov_dtypeq
  s2    ''..+'+CII%%%r=   c                     t        j                  d      }t        j                  |dd      }t        j                  |j                  dd      }t	        ||d       y )Nr?  r   T)r  r  F)strict)r5   rb   r   r   r,   r  s       r;   test_gh_27658zTestCov.test_gh_27658w
  sC    GGFO66!!D1!E26r=   N)#r}   r~   r   r5   r   r   r  ry  r_  r  r  rz  rb   ro  r  r   r{  r  r  rj   r  r  r  r  r  r  r  r  r  r	  rH  rI  r  r  r  r   r=   r;   r  r  
  s|   	Aq6Aq6Aq6*	+	-	-B288b#Yb	*+D	/	+B"((9%KC53%#useDEGGJ288c4[4+./Drwwq0bhh'G288gx(8W*=>?D2771:L	:	;B1:F
O>H
G< 
<#( [[[)4& 5&
7r=   r  c                       e Zd Zd Zd Zd Zy)Test_I0c                 |   t        t        d      t        j                  d             t        j                  g d      }t        j                  g d      }t        t        |      |       t        t        |       |       t        j                  ddgddgd	d
gddgddgg      }t        t        |      t        j                  ddgddgddgddgddgg             t        j                  dg      }t	        |j
                  d       t        t        j                  dg      t        j                  dg             y )Nr  gǒ#?)gC7?gmM?g3a,?g$WV?ۏ?r  )gֿN^?gE ?g閡1?g%m? ?gDn@g>@v?guͥ?gVX˳?gua&?gB-sJ?g-^?g_V?gX.?gVaX?gj?gp?g~-@?gD/b?gݦ?g,Y1ؔ?g[!?gQL?gWsU+?g@?gfxw?r   rb  r   )r-   r   r5   r   r0   rA   r/   )rd   r  r  r  i0_0s        r;   r%  zTest_I0.test_simple
  s    sGHH'(	*
 HHIJ88 8 9BqE8,BrFH-HHx,!:.!:.!:.!:.	0 1
 	qEHHz:.!:.!:.!:.!:.	0 1	2 uubT{TZZ&255";"7r=   c                 
   t        j                  d       G fdd      }t        t        j                   |             |      sJ t        j                        }t        j                   |             }t        ||       y )NrJ   c                   .    e Zd ZW  j                  Zd Zy)*Test_I0.test_non_array.<locals>.array_likec                     | S r4   r   )rd   r   contextreturn_scalars       r;   __array_wrap__z9Test_I0.test_non_array.<locals>.array_like.__array_wrap__
  s    r=   N)r}   r~   r   __array_interface__r
  r  s   r;   
array_liker  
  s    "#"7"7r=   r  )r5   r6   r  rc  r   r/   )rd   r  r  r@  re   s       @r;   r  zTest_I0.test_non_array
  s^    IIaL	 	 "&&.
;;;eeAheeJL!3$r=   c                     t        j                  ddg      }t        j                  t        d      5  t        |      }d d d        y # 1 sw Y   y xY w)Nr   y      ?       @z#i0 not supported for complex valuesr  )r5   r   r	  r
  r  r   r  s      r;   r  zTest_I0.test_complex
  sA    HHa[!]]9,QR 	Q%C	 	 	s   AAN)r}   r~   r   r%  r  r  r   r=   r;   r  r  ~
  s    8:% r=   r  c                       e Zd Zd Zd Zy)
TestKaiserc                    t        t        j                  t        dd                   t	        t        dd      t        j
                  g              t	        t        dd      t        j
                  ddg             t	        t        dd      t        j
                  g d             t	        t        dd      t        j
                  g d	             y )
NrN   r   r   rL    oF?rW   )r  vT=?r   r  r  gg?)?YJ?r   r  r  )r+   r5   isfiniter   r-   r   r   s    r;   r%  zTestKaiser.test_simple
  s    F1cN+,F1cNHHRL	*F1cNHHj*%=>	@F1cNHH &> ?	@ 	F1g.HH &> ?	@r=   c                     t        dd       y )NrV   rJ   )r   r   s    r;   test_int_betazTestKaiser.test_int_beta
  s    q!r=   N)r}   r~   r   r%  r  r   r=   r;   r  r  
  s    @r=   r  c                   N    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y)TestMeshgridc           
          t        g dg d      \  }}t        |t        j                  g dg dg dg dg             t        |t        j                  g dg dg dg dg             y )Nr   rJ   rW   ru   rv   r   )rW   rW   rW   )ru   ru   ru   )rv   rv   rv   r   r/   r5   r   rd   XYs      r;   r%  zTestMeshgrid.test_simple
  s^    )\2A1bhh	(1(1(1(3 4 	5 	1bhh	(1(1(1(3 4 	5r=   c                 d    t        g d      \  }t        |t        j                  g d             y )Nr  r  )rd   r  s     r;   test_single_inputzTestMeshgrid.test_single_input
  s!    |$1bhh|45r=   c                 V    g }t        g t        |        t        g t        |ddi       y )Nr   F)r/   r   r
  s     r;   test_no_inputzTestMeshgrid.test_no_input
  s)    2x/2x:E:;r=   c           	      B   g d}g d}t        ||d      \  }}t        |t        j                  g dg dg dg             t        |t        j                  g dg dg dg             dd	g}t	        t        ||      d
   j
                  dk(         t	        t        ||d      d
   j
                  dk(         t	        t        |||      d
   j
                  dk(         t	        t        |||d      d
   j
                  dk(         t        t        t         ||d       y )Nr   r  ijindexingr   )rL   rL   rL   rL   )rV   rV   rV   rV   rt   rM  r   ra  rV   rJ   )rJ   rV   rL   )rV   rJ   rL   notvalid)r   r/   r5   r   r+   rA   r1   ra   )rd   r   r  r  r  r  s         r;   test_indexingzTestMeshgrid.test_indexing
  s   !Q.A1bhh(4(4(6 7 	8 	1bhh(4(4(6 7 	8
 FAq!''612A-a066&@AAq!!$**i78Aq40399YFGj(Aq:Fr=   c           	          t        g dg dd      \  }}t        |t        j                  g dg             t        |t        j                  dgdgdgdgg             y )	Nr   r  TsparserJ   rW   ru   rv   r  r  s      r;   test_sparsezTestMeshgrid.test_sparse
  sM    )\$?A1bhh	{341bhhaS1#s';<=r=   c                 <    t        t        t        g dg dd       y )Nr   r  r%  )r  )r1   r  r   r   s    r;   test_invalid_argumentsz#TestMeshgrid.test_invalid_arguments
  s     	it	=r=   c                    t        j                  ddt         j                        }t        j                  ddt         j                        }t        j                  ||      \  }}t        |j                  |j                  k(         t        |j                  |j                  k(         t        j                  ||d      \  }}t        |j                  |j                  k(         t        |j                  |j                  k(         t        j                  ||d      \  }}t        |j                  |j                  k(         t        |j                  |j                  k(         y )Nr   r   r   r  T)r   r,  )r5   r6   r  r  r   r+   r   )rd   r   r  r  r  s        r;   r  zTestMeshgrid.test_return_type
  s     IIa2::.IIb"BJJ/{{1a 1177"#177"# {{1ad+1177"#177"# {{1a-1177"#177"#r=   c                     t        j                  ddg      }t        j                  ddg      }t        j                  ||dd      \  }}d|dd d f<   t        |dd d f   d       t        |d	d d f   |       y )
Nr  r  gffffff
@g@FT)r-  r   r   rN   )r5   r   r   r0   )rd   r  r  r   r  s        r;   test_writebackzTestMeshgrid.test_writeback  so    HHc3Z HHc3Z {{1aD91!Q$Qq!tWa Qq!tWa r=   c                 6   t        j                  d t        dd      D         \  }}}}}d}t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       t        |j                  |       y )Nc              3   (   K   | ]
  }d g|z    ywr  r   )r  r   s     r;   r  z-TestMeshgrid.test_nd_shape.<locals>.<genexpr>  s     %C!qcAg%Cs   rN   ru   )rL   rN   rV   rJ   rW   )r5   r   rc   r0   rA   )rd   re   r   r   rk  r  expected_shapes          r;   test_nd_shapezTestMeshgrid.test_nd_shape  sq    %CuQ{%CD1aA(QWWn-QWWn-QWWn-QWWn-QWWn-r=   c                     t        j                  dgddgg d      \  }}}t        |g dgg dgg       t        |g dgg dgg       t        |g dgg dgg       y )Nr   rN   rL   rU   r   r   rK   r5   r   r0   r   s       r;   test_nd_valueszTestMeshgrid.test_nd_values'  sY    ++qcAq6951aQ)yk23Q)yk23Q)yk23r=   c                     t        j                  dgddgg dd      \  }}}t        |g dg dgg       t        |g dg d	gg       t        |g dg dgg       y )
Nr   rN   rL   rU   r%  r&  r   r   rK   r9  r   s       r;   test_nd_indexingzTestMeshgrid.test_nd_indexing-  sX    ++qcAq69tD1aQ)Y/01Q)Y/01Q)Y/01r=   N)r}   r~   r   r%  r!  r#  r*  r.  r0  r  r3  r7  r:  r<  r   r=   r;   r  r  
  s:    	56<
G(>
=$0!.42r=   r  c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestPiecewisec           	      v   t        ddgddgdg      }t        |ddg       t        ddgddggdg      }t        |ddg       t        ddgt        j                  ddg      dg      }t        |ddg       t        ddgt        j                  ddg      dg      }t        |ddg       t        ddgt        j                  ddg      gdg      }t        |ddg       t        ddgddggd g      }t        |ddg       t	        t
        dt         ddgddggg        t	        t
        dt         ddgddggg d       y )	Nr   TFrN   c                      yr  r   r,  s    r;   r	  z+TestPiecewise.test_simple.<locals>.<lambda>K  s    r=   r]   z1 or 2 functions are expectedr   )r   r/   r5   r   r2   ra   r  s     r;   r%  zTestPiecewise.test_simple6  sP   q!ftUmaS11q!f% q!fe}os31q!f% q!fbhhe}5s;1q!f% q!fbhh1v.41q!f% q!frxxA/01#61q!f%q!ft}o}=1q"g&J(G1v	4J(G1v		;r=   c                 N    t        ddgddgddggddg      }t        |ddg       y )NrN   rL   TFrV   rJ   r   r/   r  s     r;   test_two_conditionsz!TestPiecewise.test_two_conditionsS  s3    q!fe}udm<q!fE1q!f%r=   c                 >    t        dg dg d      }t        |d       y )NrV   )TFF)rJ   rL   r   rJ   )r   r0   r  s     r;   $test_scalar_domains_three_conditionsz2TestPiecewise.test_scalar_domains_three_conditionsW  s    a-y9Qr=   c                     t        ddgddgdg      }t        |ddg       t        ddgddgddg      }t        |ddg       y )NrN   rL   TFr   rV   rB  r  s     r;   test_defaultzTestPiecewise.test_default[  sR    q!ftUmaS11q!f% q!ftUmaV41q!f%r=   c                 J   t        j                  d      }t        ||dkD  ddg      }t        |j                  dk(         t        |dk(         d}t        |ddgddg      }t        |j                  dk(         t        |dk(         t        |g dg d	      }t        |d       y )
NrV   rJ   r   rW   TFrN   rO  r   )r5   r   r   r+   r   r/   r  s      r;   r  zTestPiecewise.test_0dd  s    HHQKaQA'!Qa$A/!Q a-y91a r=   c           	      2   d}t        ||dk  |dkD  gddg      }t        |d       d}t        ||dk  |dkD  |dk  z  |dkD  gg d      }t        |d       t        t        dt         ||dk  |dkD  gdg       t        t        dt         ||dk  |dkD  gg d	       y )
NrV   rJ   r   rW   r   rL   z2 or 3 functions are expectedrN   r   )r   r0   r/   r2   ra   r  s      r;   test_0d_comparisonz TestPiecewise.test_0d_comparisons  s    a!q&!a%1a&1Q a!q&1q5Q!V"4a!e<iH1a J(Gq161q5/A3	0J(Gq161q5/<	9r=   c                     t        j                  d      }t        j                  |dkD        }t        ||gddg      }t        |d       y )NrV   rN   rL   )r5   r   r   r0   )rd   r   r   r  s       r;   test_0d_0d_conditionz"TestPiecewise.test_0d_0d_condition  s>    HHQKHHQUOa!q!f%Qr=   c                     t        j                  g dg dg      }t        ||dk  |dk\  gg d      }t        |t        j                  g dg dg             y )N)g      g      rm  )r  rM  rl  r   rL   ry  )r  r  r  )r   r   r   )r5   r   r   r/   r  s      r;   test_multidimensional_extrafuncz-TestPiecewise.test_multidimensional_extrafunc  sT    HH(%' (a!a%a*51bhh(4(6 7 	8r=   c                      G d dt         j                        }t        j                  d      j                  |      }t	        ||dk  |dk\  gg d      }t        t        |      |       t        |g d       y )Nc                       e Zd Zy)/TestPiecewise.test_subclasses.<locals>.subclassNr,  r   r=   r;   r-  rQ    r.  r=   r-  r   r   rJ   )r  r   r   )r  r  r   r   r   )r5   r/  r6   r0  r   r0   r1  )rd   r-  r   r  s       r;   r4  zTestPiecewise.test_subclasses  s^    	rzz 	IIbMx(a!b&!q&)=9T!Wh'Q./r=   N)r}   r~   r   r%  rC  rE  rG  r  rJ  rL  rN  r4  r   r=   r;   r>  r>  4  s/    ;:&&!980r=   r>  c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zej                  j                  d
ddg      d        Zd Zej                  j#                  e d      d        Zej                  j                  dddggdg      d        Zej                  j                  dej,                  d         d        Zd Zd Zy)TestBincountc                     t        j                  t        j                  d            }t        |t        j                  d             y )NrJ   )r5   bincountr6   r/   rb   r  s     r;   r%  zTestBincount.test_simple  s*    KK		!%1bggaj)r=   c                     t        j                  t        j                  g d            }t        |t        j                  g d             y )N)rN   rW   rL   rJ   rN   )r   rL   rN   r   rN   rN   )r5   rU  r   r/   r  s     r;   test_simple2zTestBincount.test_simple2  s-    KK121bhh'9:;r=   c                     t        j                  d      }t        j                  g d      }t        j                  ||      }t	        ||       y )NrJ   )皙?333333?r  r  )r5   r6   r   rU  r/   rd   r   r  r  s       r;   test_simple_weightzTestBincount.test_simple_weight  s8    IIaLHH)*KK11a r=   c                     t        j                  g d      }t        j                  g d      }t        j                  ||      }t        |t        j                  g d             y )NrN   rL   rJ   rW   rL   rY  rZ  r  r  rY  )r   rY  r  r   r  r  r5   r   rU  r/   r[  s       r;   test_simple_weight2z TestBincount.test_simple_weight2  sC    HH_%HH./KK11bhh'ABCr=   c                    t        j                  g d      }t        j                  |d      }t        |t        j                  g d             g }t        j                  |d      }t        |t        j                  g              y )N)r   rN   r   rN   rN   rV   	minlength)rL   rV   r   r   r`  r  s      r;   test_with_minlengthz TestBincount.test_with_minlength  sZ    HH_%KKQ'1bhhy12KKQ'1bhhrl+r=   c                    t        j                  g d      }t        j                  |d      }t        |t        j                  g d             t        j                  |d      }t        |t        j                  g d             y )N)r   rN   rN   rL   rL   rV   rV   rL   rc  )rN   rL   rL   rL   r   r`  r  s      r;   )test_with_minlength_smaller_than_maxvaluez6TestBincount.test_with_minlength_smaller_than_maxvalue  sW    HH*+KKQ'1bhh|45KKQ'1bhh|45r=   c                     t        j                  g d      }t        j                  g d      }t        j                  ||d      }t        |t        j                  g d             y )Nr^  r_  rt   )r   rY  r  r   r  r  r   r   r`  r[  s       r;   test_with_minlength_and_weightsz,TestBincount.test_with_minlength_and_weights  sE    HH_%HH./KK1a 1bhh'GHIr=   c                 |    t        j                  g t              }t        j                  |      }t	        ||       y r  )r5   r   r  rU  r/   r  s      r;   r  zTestBincount.test_empty  s)    HHRs#KKN1a r=   c                     t        j                  g t              }t        j                  |d      }t	        |t        j
                  dt                     y )Nr   rW   rc  )r5   r   r  rU  r/   r?   r  s      r;   test_empty_with_minlengthz&TestBincount.test_empty_with_minlength  s7    HHRs#KKQ'1bhhq45r=   rd  r   rV   c                 x    t        t        j                  g |      t        j                  |t                     y )Nrc  r   )r/   r5   rU  r?   r  )rd   rd  s     r;   test_empty_listzTestBincount.test_empty_list  s%    2;;rY?88IS9	;r=   c                    t        j                  g t              t        t        dfd       t        t
        dfd       t        j                  d      t        t        dfd       t        t
        dfd       y )	Nr   z"'str' object cannot be interpretedc                  2    t        j                   d      S Nfoobarrc  r5   rU  r,  s   r;   r	  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>      BKKX$F r=   zmust not be negativec                  2    t        j                   d      S Nr]   rc  rs  r,  s   r;   r	  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>      BKKR$@ r=   rW   c                  2    t        j                   d      S rq  rs  r,  s   r;   r	  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>  rt  r=   c                  2    t        j                   d      S rv  rs  r,  s   r;   r	  z<TestBincount.test_with_incorrect_minlength.<locals>.<lambda>  rw  r=   )r5   r   r  r2   r  ra   r6   r  s    @r;   test_with_incorrect_minlengthz*TestBincount.test_with_incorrect_minlength  sj    HHRs#I@F	H 	J2@	B IIaLI@F	H 	J2@	Br=   r  r  c                 ~   t        j                  t        j                  t        j                              }t        j                  t        j                  t        j
                              }t        d      D ]  }t        j                  g d        t        t        j                  t        j                  t        j                              |       t        t        j                  t        j                  t        j
                              |       t        d      D ]  }t        j                  g dg d        t        t        j                  t        j                  t        j                              |       t        t        j                  t        j                  t        j
                              |       y )Nr   r   r   )	r  r  r5   r   intpdoublerc   rU  r0   )rd   intp_refcountdouble_refcountr  s       r;   test_dtype_reference_leaksz'TestBincount.test_dtype_reference_leaks  s     (9://"((299*=>r 	#AKK	"	#S__RXXbgg%67GS__RXXbii%89?Kr 	.AKK	9-	.S__RXXbgg%67GS__RXXbii%89?Kr=   valsrL   c                    t        j                  |      }t        t              5  t        j                  |       d d d        t        t              5  t        j                  |       d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY wr4   )r5   r  r1   ra   rU  )rd   r  vals_arrs      r;   test_error_not_1dzTestBincount.test_error_not_1d  si     ::d#:& 	"KK!	":& 	KK	 		" 	"	 	s   A1A=1A:=Br  r\  c                     t        j                  g d|      }t        j                  |      }g d}t        ||       y )Nr   rN   rN   rV   rL   rN   rv   r   rN   rV   rN   rN   r   r   r   rN   r`  )rd   r  re   r  r  s        r;   test_gh_28354zTestBincount.test_gh_28354  s/    HH*"5Q+68,r=   c                 `    t        j                  t        j                  d      d d d          y )Nr*  rL   )r5   rU  r6   r   s    r;   test_contiguous_handlingz%TestBincount.test_contiguous_handling  s     
BIIe$SqS)*r=   c                 p     G d d      } |       }t        j                  |      }g d}t        ||       y )Nc                       e Zd Zd Zy)0TestBincount.test_gh_28354_array_like.<locals>.Ac                 P    t        j                  g dt         j                        S )Nr  r   )r5   r   r  r   s    r;   	__array__z:TestBincount.test_gh_28354_array_like.<locals>.A.__array__	  s    xx 5RYYGGr=   N)r}   r~   r   r  r   r=   r;   r  r    s    Hr=   r  r  )r5   rU  r/   )rd   r  re   r  r  s        r;   test_gh_28354_array_likez%TestBincount.test_gh_28354_array_like  s3    	H 	H CQ+68,r=   N)r}   r~   r   r%  rW  r\  ra  re  rg  ri  r  rl  r	  rH  rI  rn  rz  r  r(   r  r  r5   	typecodesr  r  r  r   r=   r;   rS  rS    s    *<!D,6J!
6
 [[[1a&1; 2;B" [[L(1IJL KL [[V1vh]3 4 [[T2<<#=>- ?-+-r=   rS  c                       e Zd Zd Zd Zd Zd Zd Z ej                  e
j                  d d d gg d	
      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)
TestInterpc                 
   t        t        t        dg g        t        t        t        ddgddg       t        t        t        dddgddgd       t        t        t        dg g d       t        t        t        ddgddgd       y )Nr   rN   rL   rJ  h  )r1   ra   r   r   s    r;   test_exceptionszTestInterp.test_exceptions  sl    j&!R4j&!aS1a&9j&!aVaVAFj&!RC@j&!aS1a&Er=   c                     t        j                  ddd      }t        j                  ddd      }t        j                  ddd      }t        t        j                  |||      |       y )Nr   rN   rW   rl   )r5   rb  r-   r   rd   r   r  x0s       r;   rj   zTestInterp.test_basic  sO    KK1a KK1a [[Ar"BIIb!Q/4r=   c                    t        dd      D ]  }t        j                  |t        j                        }t        j                  |t        j                        }t        j
                  dd|dz
  |gt        j                        }|d d d   }t        |||      }t        |||      }t        j
                  g dt              }|d d d   }	t        ||       t        ||	       t        |||d      }t        |||d      }t        j
                  g dt              }|d d d   }	t        ||       t        ||	       t        |||d	
      }t        |||d	
      }t        j
                  g dt              }|d d d   }	t        ||       t        ||	       t        |||dd	      }t        |||dd	      }t        j
                  g dt              }|d d d   }	t        ||       t        ||	        y )NrN   r   r   r]   r   r   left)r   rN   rN   rN   rL   right)rN   rN   rN   rL   )r  r  )r   rN   rN   rL   )	rc   r5   r6   r}  rb   r   r   r  r0   )
rd   sizexpypincptsdecptsincresdecresinctgtdectgts
             r;   test_right_left_behaviorz#TestInterp.test_right_left_behavior!  s    !RL  	)D4ryy1BRYY/BXXr1dQh5RYYGFDbD\FFB+FFB+FXXl%8FDbD\F((FB3FFB3FXXl%8FDbD\F((FB!4FFB!4FXXl%8FDbD\F((FB!<FFB!<FXXl%8FDbD\F((A 	)r=   c                 &   t        j                  ddd      }t        j                  ddd      }d}t        t        j                  |||      |       d}t        t        j                  |||      |       t        j                  d      }t        t        j                  |||      |       t        j
                  d      }t        t        j                  |||      |       t         j                  }t        t        j                  |||      |       y )Nr   rN   rW   rZ  )r5   rb  r-   r   r  r  rh  r  s       r;   test_scalar_interpolation_pointz*TestInterp.test_scalar_interpolation_pointG  s    KK1a KK1a BIIb!Q/4BIIb!Q/4ZZ^BIIb!Q/4ZZ^BIIb!Q/4VVBIIb!Q/4r=   c                 l   g d}g d}ddt         j                  dg}t        t        j                  |||      ddt         j                  t         j                  dg       ddt         j                  dg}t        t        j                  |||      ddt         j                  t         j                  dg       y )NrN   rL   rl  rV   rJ   r  rN   rL   rJ   )r5   r  r-   r   rh  )rd   r   r  fps       r;    test_non_finite_behavior_exact_xz+TestInterp.test_non_finite_behavior_exact_xU  s    BFFABIIaR01a2KLBFFABIIaR01a2KLr=   c                     t        | d      S rn  rF   r,  s    r;   r	  zTestInterp.<lambda>_      -1% r=   c                     t        d|       S rn  r  r,  s    r;   r	  zTestInterp.<lambda>`  r  r=   c                 B    t        | t        j                  | d            S )NrT   )rF   r5   multiplyr,  s    r;   r	  zTestInterp.<lambda>a  s    -2;;q"#56 r=   )rC   zcomplex-realzcomplex-imagzcomplex-both)paramsidsc                     |j                   S )z( scale function used by the below tests )param)rd   requests     r;   sczTestInterp.sc]  s     }}r=   c           
      l   t        t        j                  dt        j                  dg |ddg             |t        j                               t        t        j                  ddt        j                  g |ddg             |t        j                               t        t        j                  dddg |t        j                  dg             |t        j                               t        t        j                  dddg |dt        j                  g             |t        j                               y)z test that nans are propagated r  rN   r   r   N)r0   r5   r   rh  rd   r  s     r;   test_non_finite_any_nanz"TestInterp.test_non_finite_any_nanl  s    RYYsRVV!$4bqb9I6JKRPRPVPVZXRYYs!RVV$4bqb9I6JKRPRPVPVZXRYYs!!$4b"&&b9I6JKRPRPVPVZXRYYs!!$4bq"&&9I6JKRPRPVPVZXr=   c           
         t         j                  }t         j                  }t        t        j                  d| |g |ddg             ||             t        t        j                  dddg || |g             ||             t        t        j                  dddg ||| g             ||             t        t        j                  dt         j                   t         j                  g |ddg             |d             y)z2 Test that interp between opposite infs gives nan r  r   r   rN   Nr5   r  rh  r0   r   rd   r  r  rh  s       r;   test_non_finite_infzTestInterp.test_non_finite_infs  s    ffffRYYscTC4L"b\2BCRWMRYYsaL"sdSD\2BCRWMRYYsaL"sdSD\2BCRWM 	RYYsbffWrvvg$6";M8NOQSTVQWXr=   c           
      t   t         j                  }t         j                  }t        t        j                  d| dg || dg             ||             t        t        j                  d| dg ||dg             ||             t        t        j                  d| dg |d| g             ||             t        t        j                  d| dg |d|g             ||             t        t        j                  dd|g || dg             ||             t        t        j                  dd|g ||dg             ||             t        t        j                  dd|g |d| g             ||             t        t        j                  dd|g |d|g             ||             y)z@ Test that interp where both axes have a bound at inf gives nan r  rN   r   r   Nr  r  s       r;   test_non_finite_half_inf_xfz&TestInterp.test_non_finite_half_inf_xf~  st   ffffRYYscTaL"sdb\2BCRWMRYYscTaL"sdb\2BCRWMRYYscTaL"SD\2BCRWMRYYscTaL"SD\2BCRWMRYYsC4L"sdb\2BCRWMRYYsC4L"sdb\2BCRWMRYYsC4L"SD\2BCRWMRYYsC4L"SD\2BCRWMr=   c           
      @   t        t        j                  dt        j                   t        j                   g |ddg             |d             t        t        j                  dt        j                   dg |ddg             |d             t        t        j                  ddt        j                  g |ddg             |d             t        t        j                  dt        j                  t        j                  g |ddg             |d             y)z1 Test interp where the x axis has a bound at inf r  r   r   rN   Nr0   r5   r   r  r  s     r;   test_non_finite_half_inf_xz%TestInterp.test_non_finite_half_inf_x  s    RYYsbffWrvvg$6Ar7DbfMRYYsbffWa$6Ar7DbfMRYYs1rvvg$6Ar7DbeLRYYsbffWrvvg$6Ar7DbeLr=   c           
         t        t        j                  dddg |dt        j                   g             |t        j                                t        t        j                  dddg |dt        j                  g             |t        j                               t        t        j                  dddg |t        j                   dg             |t        j                                t        t        j                  dddg |t        j                  dg             |t        j                               t        t        j                  dddg |t        j                   t        j                   g             |t        j                                t        t        j                  dddg |t        j                  t        j                  g             |t        j                               y)z1 Test interp where the f axis has a bound at inf r  r   rN   r   Nr  r  s     r;   test_non_finite_half_inf_fz%TestInterp.test_non_finite_half_inf_f  sL   RYYsQFBa"&&/A,BCR[QRYYsQFBa"&&/A,BCR[QRYYsQFBb/A,BCR[QRYYsQFBb/A,BCR[QRYYsQFB"&&/A,BCR[QRYYsQFB"&&/A,BCR[Qr=   c                    t        j                  ddd      }t        j                  ddd      dt        j                  ddd      z   dz  z   }d}|d|z   dz  z   }t        t        j                  |||      |       d}d}t        t        j                  ||||      |       d	}d}t        t        j                  ||||
      |       g d}g d}ddt         j                  dg}ddt         j                  dz   t         j                  dg}t        t        j                  |||      |       g d}g d}g d}g d}t        t        j                  |||d      |       y )Nr   rN   rW   rf  rZ  r]          @      @r  r   r  r  r         @      ?rJ   y              ?iLiViG   ru  r  r   im     iBi^  i)      @      ?y      $@       @      @      @y      @      @)y      @      ?r  y     !@      ?y      @      ?r  y      
@      
@y      @      @y      @      @r  rJ  )r5   rb  r-   r   r  )	rd   r   r  r  y0r  r  r  r  s	            r;   test_complex_interpzTestInterp.test_complex_interp  s4   KK1a KK1a AAq!(<$<#DD1r6T/!BIIb!Q/4BIIb!QT:DABIIb!Qe<eD#rvvq1BIIaR0!44#0'BIIaR<a@r=   c                    t        j                  ddd      }t        j                  ddd      }t        j                  d      }t        t        j                  |||      |       t        j                  g d      }t        j                  g d      }t        j                  t        j                  d      ||      }t        |d       t        t        |t         j                               t        j                  t        j                  d      ||d	      }t        |d
       t        t        |t         j                               y )Nr   rN   rW   rZ  r  )rN   r]   rN   rc  rJ   rJ  r  )	r5   rb  r   r-   r   r0   r+   r  r  )rd   r   r  r  r  r  r  s          r;   )test_zero_dimensional_interpolation_pointz4TestInterp.test_zero_dimensional_interpolation_point  s    KK1a KK1a XXb\BIIb!Q/4XXi XXj!288A;B/VQ
62::./288C="b;VS!
62::./r=   c                     t        j                  ddd      }t        j                  |      }t        t        j                  t         j
                  ||      d       y )Nr   r   g-C6?r   )r5   r6   sinr-   r   r  )rd   r  r  s      r;   test_if_len_x_is_smallz!TestInterp.test_if_len_x_is_small  s<    YYq"f%VVBZBIIbeeR4c:r=   c                 L   g d}g d}g d}g d}t        t        j                  |||d      |       t        j                  |d      j	                  d	d
      }t        j                  |d      j	                  d	d
      }t        t        j                  |||d      |       y )Nr  r  )rW   r   rV   rJ   )g      @r        !@g      @r   g      
@      @g      @r  rJ  r   r   rL   r]   rX  )r-   r5   r   r   rw   )rd   r   r  r  r  s        r;   rZ  zTestInterp.test_period  s    4#6BIIaR<a@HHQc"**1b1HHQc"**1b1BIIaR<a@r=   N)r}   r~   r   r  rj   r  r  r  r	  fixturer5   r  r  r  r  r  r  r  r  r  r  rZ  r   r=   r;   r  r    s    F5$)L5M V^^


%%6	


Y	YNMRA80";
Ar=   r  )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibulllinearmedian_unbiasednormal_unbiasednearestlowerhighermidpoint)r  r  r  r  r  r  r  r  r  c                      e Zd Zd Zd Zd Zd Zd Zej                  j                  dej                  d         d        Zej                  d	   D  cg c]  }|t        j                  f c}}} ej                  ej                  fej                   ej                   fej                  ej                  fej"                  ej"                  f ej$                  d
      ej                  fgz   Zej                  j                  ddgej(                  dfej*                  dfg      ej                  j                  ddge      ej                  j                  g dg d      d                      Zej                  d	   ej                  d   z   d
z   Zej                  j                  de      d        Zej                  j                  de      d        Zej                  j                  de      d        Zd Zd Zd Zd Zd Zd Z ej                  j                  dej*                  df e!ej*                  d       d!fg      d"        Z"d# Z#d$ Z$d% Z%d& Z&d' Z'd( Z(d) Z)ej                  j                  d*d+d,d+gg      ej                  j                  d-g d./      d0               Z*d1 Z+ej                  j                  d2g d3      d4        Z,d5 Z-d6 Z.ej                  j                  dd7d8g      ej                  j                  d9g d:      d;               Z/ej                  j                  d<ej                  ej                   g      ej                  j                  d=e0      d>               Z1d? Z2ej                  j                  d=e3      ej                  j                  d*d@dAg      dB               Z4ej                  j                  d=e3      dC        Z5yDc c}}} w )ETestPercentilec           
         t        j                  d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       t         j                  |d	<   t        t        j                  |d      t         j                         t        t        j                  |dd
      t         j                         t        t        j                  |dd      t         j                         t        t        j                  |ddt        j
                  |            t         j                         y )Nrt   r  r   r   rs  r  rl   r   rN   r  methodr  r  r   )r5   r6   r0   
percentilerh  rw  r  s     r;   rj   zTestPercentile.test_basic  s    IIaL3R]]1a("-R]]1c*C0R]]1b)40vv!R]]1a("&&1R]]1a	:BFFCR]]1a?HMM!Q~"$,,q/3FF	
r=   c           	         t        d      D cg c]  }t        |d       }}t        j                  |t        d            }t	        |t        d             t	        t        |      t               t        j                  |t        d            }t	        |t        dd             t	        t        |      t               t        j                  |t        d            }t	        |t        dd             t	        t        |      t               t        j                  |t        d      g      }t	        |t        j                  t        dd      g             t	        t        |      t        j                         y c c}w )Nrt   rL   r   rs  rv   rl   rJ   )rc   r   r5   r  r0   r1  r   r/  )rd   r   r   r[  s       r;   test_fractionzTestPercentile.test_fraction  s    %*1X.Xa^..MM!Xa[)Q$T!Wh'MM!Xc]+QA'T!Wh'MM!Xb\*QA'T!Wh'MM!hrl^,Q(1a.!123T!Wbjj)! /s   E:c                     t        j                  d      }t        j                  |dd d d       t        j                  |dd d dd       t        j                  d      }t        j                  |dd |dd       y )NrW   Fr  rb  )r5   rb   r  )rd   rk  os      r;   test_apizTestPercentile.test_api  s\    GGAJ
aD$.
aD$x8GGDM
aD!UH5r=   c                 Z   t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       y N)y      ?      @y @      ?y?ffffff@Gr   r  Dr   )r5   r   r1   r  r  rd   arr_cs     r;   r  zTestPercentile.test_complex  sk    =SIis;=SIis;=SIis;r=   c                     t        j                  g dg dg dg dg dg      }t        t        j                  |dd      g d       y )Nr   )rJ   rJ   rV   rl   r   r   )r5   r   r/   r  r  s     r;   test_2DzTestPercentile.test_2D  s<    HHi	! "
 	2==BQ7Cr=   r   r]  c                 L   t        j                  dt         j                  dddg|      }t        j                  |dd      }t         j                  j                  |t         j                         t         j                  j                  |j                  |j                         y )Nr       A@      D@      I@r   r  r  )r5   r  rh  r  testingr0   r   )rd   r   r   r@  s       r;   test_linear_nan_1Dz!TestPercentile.test_linear_nan_1D"  sp     jj$dD9Gmm 	

RVV,


		3995r=   r\  r[  functionquantiler  r   input_dtypeexpected_dtype)r  weightedr  )
)r  Fr  )r  Tr  )r  F     ;@)r  Fr  )r  Fr  )r  Fr	  )r  F   )r  Fr  )r  Fr  )r  Fg      ;@c                    t        j                  |      }t        j                  g d|      }|rt        j                  |      nd }	|t         j                  u r5|t         j
                  u r |d      }t         j                  j                  }
nt         j                  j                  }
 |||||	      } |
||j                  |             |dv r|dk(  rLt         j                  j                  t        j                  |      j                  t         j                         y t         j                  j                  t        j                  |      j                  t        j                  |             y t         j                  j                  t        j                  |      j                  t        j                  |             y )N)r  g      4@r  r   r  r   z0.4r  )r  r  r[  )r5   r   r  rw  r  r  r  r-   assert_array_almost_equal_nulpr1  r0   r  )rd   r  r  r  r  r  r  r  r   r   test_functionr  s               r;   test_linear_interpolationz(TestPercentile.test_linear_interpolation5  s4   0 .1jj7{K'/",,s#T"--'2;;& 'u-JJ::MJJEEM#xHfn11(;<<<c!

''

6(:(@(@"**M

''

6(:(@(@(*(=? JJ##BJJv$6$<$<$&HH^$<>r=   c                     t        t        j                  t        j                  d|      dd      d       t        t        j                  t        j                  d|      dd      d       y )	Nr   r   rl   r  r  rJ   r  rW   r0   r5   r  r6   rd   r   s     r;   test_lower_higherz TestPercentile.test_lower_higherk  sR    R]]299Ru#=r*1345	7R]]299Ru#=r*2456	8r=   c                    t        t        j                  t        j                  d|      dd      d       t        t        j                  t        j                  d|      dz   d	d      d
       t        t        j                  t        j                  d|      dd      d       t        t        j                  t        j                  d|      d	d      d
       y )Nr   r   3   r  r  rc  rM  rN   rl   rW   r         @r  r  s     r;   test_midpointzTestPercentile.test_midpointr  s    R]]299Ru#=r*467:	<R]]299Qe#<q#@"*4678	:R]]299Ru#=r*467:	<R]]299Ru#=r*4678	:r=   c                     t        t        j                  t        j                  d|      dd      d       t        t        j                  t        j                  d|      dd      d       y )	Nr   r   r  r  r  rW   1   rJ   r  r  s     r;   test_nearestzTestPercentile.test_nearest}  sR    R]]299Ru#=r*3567	9R]]299Ru#=r*3567	9r=   c                 R   t         j                  j                  d      }t        j                  |d      }t         j                  j                  ||j                                t        j                  |d      }t         j                  j                  ||j                                y )NrW   rs  r   )r5   rd  r'   r  r  r0   r  r  )rd   r   r  s      r;   'test_linear_interpolation_extrapolationz6TestPercentile.test_linear_interpolation_extrapolation  sh    iinnQsC(


	2sA&


	2r=   c                 |    t        j                  d      dz  }t        t        j                  |g d      g d       y )Nrt   r  )r   rs  rl   )r   r  r   )r5   r6   r0   r  r  s     r;   test_sequencezTestPercentile.test_sequence  s)    IIaL3R]]1l3^Dr=   c                    t        j                  d      j                  dd      }t        t        j                  |d      g d       g dg dg dg}t        t        j                  |dd	
      |       g dg dg dg}t        t        j                  |dd
      t        j
                  |      j                         t        j                  d      j                  dddd      }t        t        j                  |d      j                  d       t        t        j                  |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	d      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d       y )Nr  rV   rJ   )rL  rl   rs  )g      @r  rK  )rL   rV   rJ   rW   r  )rt   rM  r   r   r   r   )      ?rM  rV   )r  r  rv   )r  r   r   rN   r  rW   ru   rL  rl   r  )rL  rl   rM  r  )rL   rJ   rW   ru   )rL   rV   rW   ru   rL   )rL   rV   rJ   ru   )rV   rV   rW   ru   r  r  r   r  )r5   r6   rw   r0   r  r   r   rA   )rd   r   r0r2  s       r;   r  zTestPercentile.test_axis  sh   IIbM!!!Q'R]]1m46GHL.9R]]1m!<bAno>R]]1m!<bhhrlnnM IIm$,,Q1a8R]]1h/55t<R]]1l3994@R]]1hQ7==|LR]]1hQ7==|LR]]1hQ7==|LR]]1hQ7==|LMM!\288,	HR]]1h*2449E4	AR]]1l*2449E4	AR]]1hQ*2449E<	IR]]1hQ*2449E<	IR]]1hQ*2449E<	IR]]1hQ*2449E<	IR]]1l*2449E<	Ir=   c                    t        j                  d      j                  dd      }t        t        j                  |d      d       t        t        j                  t        j                  |d                   t        j                  g d      }t        t        j                  |dd      |       t        t        j                  |dd      j                  |j                         t        j                  g d	      }t        t        j                  |dd
      |       t        t        j                  |dd
      j                  |j                         t        j                  d
      }t        t        j                  |d|      d       t        |d       t        j                  d      }t        t        j                  |dd|      |       t        ||       t        j                  d      }t        t        j                  |dd
|      |       t        ||       t        j                  d      j                  dd      }t        t        j                  |dd      d       t        t        j                  t        j                  |d                   t        j                  g d      }t        j                  |ddd      }t        ||       t        |j                  |j                         t        j                  g d      }t        j                  |ddd
      }t        ||       t        |j                  |j                         t        j                  d|j                        }t        j                  |dd|      }t        |d       t        |d       t        j                  d|j                        }t        j                  |ddd|      }t        ||       t        ||       t        j                  d|j                        }t        j                  |ddd
|      }t        ||       t        ||       y )Nr  rV   rJ   rl   r  r   r   r  r  r   r   rM  r  r   rN   r  r   r  r  r  r   )r  r   )r   r   r  r   r   r  r  rW   r  r   r  )r5   r6   rw   r0   r  r+   isscalarr   rA   r-   emptyr   )rd   r   r"  r2  r  c0c1r   s           r;   test_scalar_qzTestPercentile.test_scalar_q  s   IIbM!!!Q'R]]1b)3/BMM!R012XX&'R]]1bq126R]]1bq177BXXo&BMM!Ra8"=R]]1bq177BhhqkR]]1bc2C8S#hhqkR]]1bqc:B?S"hhqkR]]1bqc:B?S" IIbM!!!Q'R]]1b92>BMM!R012XX&']]1bq9RRXXrxx(XXl#]]1bq9B#RXXrxx(hhr)MM!RS9QS!hhq(MM!RaSAQS"hhq(MM!RaSAQS"r=   c           
         t        t        t        j                  ddgdd       t        t        t        j                  dgd       t        t        t        j                  dgd       t        t        t        j                  dgt	        t        d            dgz          t        t        t        j                  dgt	        t        d            d	gz          y )
NrN   rL   8   rr  r  e   r]   rl   r  )r1   ra   r5   r  r   rc   r   s    r;   test_exceptionzTestPercentile.test_exception  s    j"--!Q%	'j"--!c:j"--!b9j"--!d59o6MNj"--!d59o6NOr=   c                 H    t        t        j                  g dd      d       y )Nr   r   rN   )r0   r5   r  r   s    r;   test_percentile_listz#TestPercentile.test_percentile_list  s    R]]9a0!4r=   zpercentile, with_weightsFr  r  Tc           	      4   |rt         nt        }t        j                  g d      }t        j                  d|      }d}|rt        j
                  |      nd } |||||      }||u sJ t         ||||      |       t        j                  g dg dg      }t        j                  d|      }|rt        j
                  |      nd } |||d||	      }||u sJ t         ||||d
      |       t        j                  d|      } |||d||	       t         ||||d
      |       t        j                  d      j                  dd      }|rt        j                  g dg dg      }	nt        j                  g dg dg      }	t        j                  d|      }
|rt        j
                  |      nd }t         ||dd|
|	      |	       t        |
|	       t        j                  g dg dg      }t        j                  d      }
t        t        j                  |dd|
      |       t        |
|       t        j                  g dg dg      }	t        j                  d|j                        }
t        j                  |ddd|
      }t        ||	       t        |
|	       t        j                  g dg dg      }t        j                  d|j                        }
t        j                  |ddd|
      }t        ||       t        |
|       y )Nr   r  r   )r  r   r  r   r  r   )r   r  r   r  r  rN   r  rV   rJ   r  r  )r   r   r   r   r$  )rL   rJ   r   )r  r  r  r%  r  r'  r  r)  )r   rJ   rt   )rN   rW   rM  )r  r  r5   r   r?   rw  r0   r6   rw   r+  r  r   )rd   r  with_weights	out_dtyper   r  r[  r   r  r"  r  r2  r   s                r;   test_percentile_outz"TestPercentile.test_percentile_out  s    (CU	HHYHHT+%1",,q/tq!G4AvvZ1g6:HHi! "HHV9-%1",,q/tq!!G<AvvZ1gA>BHHV9-1aaQ8Z1gA>BIIbM!!!Q'<67B+-=>?BhhvY/%1",,q/tq(WEr	
 	S"XX)?;<hhvR]]1hQC@"ES" XX|\23hhvQWW-MM!XgA3GQS"XXy),-hhvQWW-MM!XgA3GQS"r=   c           	         t        j                  d      j                  ddd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d      j
                  d
       t        t        j                  |ddd      j
                  d
       t        t        j                  t        j                  |ddgd            j
                  d       t        t        j                  t        j                  |ddgd            j
                  d       t        t        j                  t        j                  |ddgd            j
                  d       t        t        j                  t        j                  |ddgd            j
                  d       y )Nr  r   rN   rL   rl   r   r   )rN   rL   rN   )r   rL   rN   )r   rN   rN   rV   )r   rN   rL   r]   rT   rZ   r~  r  r!  r   )rL   rN   rL   rN   )rL   r   rL   rN   )rL   r   rN   rN   )rL   r   rN   rL   )r5   r6   rw   r/   r  rA   r   rd   rk  s     r;   test_percentile_empty_dimz(TestPercentile.test_percentile_empty_dim*  s	   IIf%%b!Q22==BQ7==yI2==BQ7==zJ2==BQ7==zJ2==BQ7==zJ2==BR8>>
K2==BR8>>
K2==BR8>>
K2==BR8>>	J2==BQ0:<<AE%	' 	2==BR0:<<AE%	' 	288BMM!b"XA$FGMM'	)288BMM!b"XA$FGMM(	*288BMM!b"XA$FGMM(	*288BMM!b"XA$FGMM(	*r=   c                 D   t        j                  g d      }t        j                  |dgd       t        |t        j                  g d             t        j                  g d      }t        j                  |dg       t        |t        j                  g d             y )NrL   rV   rJ   rN   rl   Foverwrite_inputr5   r   r  r0   rq   s     r;   test_percentile_no_overwritez+TestPercentile.test_percentile_no_overwriteF  sf    HH\"
a"u5Q./HH\"
a"Q./r=   c                    t        j                  ddd      }t        j                  t        j                  d      |d       t	        |t        j                  ddd             t        j                  ddd      j                         }t        j                  t        j                  d      |d       t	        |t        j                  ddd      j                                y )Nr         Y@rW   )numr  r  )r5   rb  r  r6   r/   r  )rd   r[  s     r;   test_no_p_overwritez"TestPercentile.test_no_p_overwriteO  s    KKDa(
biioq<1bkk"d:;KKDa(//1
biioq<1bkk"d:AACDr=   c                    t        j                  g d      }t        j                  |dgd      }t        |t        j                  dg             t        j                  g ddgd      }t        |t        j                  dg             y )Nr=  rl   Tr>  rl  r@  r   s      r;   test_percentile_overwritez(TestPercentile.test_percentile_overwriteW  s`    HH\"MM!bT48Q#(MM,dCQ#(r=   c                    t         j                  j                  d      }t        j                  |gdz        }t	        t        j
                  |dd      t        j
                  |d             t        j                  |dd      }t	        t        j
                  |dd	      t        j
                  |d             |j                  dd
      j                         }t	        t        j
                  |dd      t        j
                  |d             |j                  dd
      j                         }t	        t        j
                  |ddgd      t        j
                  |ddgd              t	        t        j
                  |ddgd      t        j
                  |ddgd             t        j                  d      j                  d      }t         j                  j                  |j                                t	        t        j
                  |dd      d   t        j
                  |d d d d d d df   j                         d             t	        t        j
                  |ddgd      d d d
f   t        j
                  |d d d d d
d d f   j                         ddg             t	        t        j
                  |dd      d   t        j
                  |d d d d dd d f   j                         d             t	        t        j
                  |dd      d   t        j
                  |dd d d d d d f   j                         d             t	        t        j
                  |dd      d   t        j
                  |dd
d d d d f   j                         d             t	        t        j
                  |dd      d   t        j
                  |dd d d d d
f   j                         d             t	        t        j
                  |dd      d   t        j
                  |dd d dd d f   j                         d             y )NG      r  r   r  r^   r   r]   r   rp   rN   rn   rL  r6  rM   ru    rV   rW   rv   r   Z   r  rV   rN   r~  rL   rV   rN   rL   r  r  rN   rT   rN   rV   rQ   )r5   rd  normaldstackr0   r  moveaxisr   r   r6   rw   shuffleravelflattenrd   r  r   rk  s       r;   test_extended_axisz!TestPercentile.test_extended_axis_  s4   II(+IIqcBhR]]1bv6a8LMKK2q!R]]1bx8"--2:NOJJq!!!#R]]1bw7q"9MNJJq!!!#R]]1r2hY?]]1r2hT:	<R]]1r2hT:]]1r2hQ7	9 IIn%--m<
		!'')$R]]1by9!<]]1Q1aZ=#8#8#:B?	AR]]1r2hY?1E]]1Q1aZ=#8#8#:RHE	GR]]1bz:1=]]1Q1aZ=#8#8#:B?	AR]]1by9!<]]1Q1aZ=#8#8#:B?	AR]]1bv6t<]]1Q1aZ=#8#8#:B?	AR]]1bw7=]]1Q1aZ=#8#8#:B?	AR]]1bv6t<]]1Q1aZ=#8#8#:B?	Ar=   c                 
   t        j                  d      }t        t        t         j                  |dd       t        t        t         j                  |dd       t        t        t         j                  |dd       t        t        t         j                  |dd       t        t
        t         j                  |dd       t        t
        t         j                  |d	d       t        t
        t         j                  |d
d       y )NrN  r  rL  )r   r{  r   r  rJ   r   rJ   rS   )r]   r]   )rV   r]   )r5   rb   r1   r&   r  ra   r:  s     r;   test_extended_axis_invalidz)TestPercentile.test_extended_axis_invalid  s    GGM"ibAi2FiR@i"Ej"--2Fj"--RHj"--BGr=   c                    t        j                  d      }t        t        j                  |dd d      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d	       t        t        j                  |dd
d      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddd      j                  d       t        t        j                  |ddgdd      j                  d       t        t        j                  |ddgdd      j                  d       y )NrN  rv   Tr   r   r^   rN   rN   rv   r   r   rN   rW   rv   rN   rb  rV   rN   rv   r   r  )r   r  rN   rN   rv   rN   rN   )rL   rN   rN   rv   rN   )rL   rN   rW   rv   rN   )r5   rb   r0   r  rA   r:  s     r;   test_keepdimszTestPercentile.test_keepdims  s.   GGM"R]]1adTBHH!	#R]]1aftDJJ"	$R]]1aftDJJ!	#R]]1adTBHH"	$R]]1aEKK!	#R]]1ai$GMM!	# 	R]]1q!f9,0227%	JR]]1q!f6,0227%	Jr=   r{  rv   rN   r   NrN   rb  r^   )rZ   r]   argnames	argvaluesc                    t        j                  d      |dj                  z  }n>t        |j                        t	        fdt        j                        D              }t        j                  |      |z   }t        j                  |      }t        j                  ||d|      }||u sJ t        |j                  |       y )NrN  rb  c              3   H   K   | ]  }|v rd nj                   |     ywrN   NrA   r  r   	axis_normrk  s     r;   r  z3TestPercentile.test_keepdims_out.<locals>.<genexpr>  +      L89Q)^3Lr  Tr   r   r  )
r5   rb   r   r%   r  rc   rA   r+  r  r0   )rd   r{  r   	shape_outr  r  ro  rk  s         @@r;   test_keepdims_outz TestPercentile.test_keepdims_out  s     GGM"<qvvI,T166:I L=B166]L LIHHQK)+	hhy!q!$3G}}V\\9-r=   c           	      R   t        j                  d      }t        j                  d      }t        t        j                  |dd|      |       t        t        j                  |ddd|      |       t        j                  d      }t        t        j                  |dd|      |       t        t        j                  |ddd|      |       t        j                  d	      }t        t        j                  |d
|      |       t        t        j                  |d
d|      |       y )NrJ   r(  r   r&  r  r(  r  rN   r   rL   )r5   r?   rb   r0   r  rd   r  rk  s      r;   test_outzTestPercentile.test_out  s    HHTNGGFOR]]1a2A6R]]1a9!DaHHHTNR]]1a2A6R]]1a9!DaHHHRLR]]1aQ/3R]]1a	qA1Er=   zmethod, weighted))r  F)r  F)r  F)r  Tc                 r   |rt        j                  d      |d}nd|i}t        j                  d      5  t        j                  ddt
               t        j                  d      }t        j                  d      }t         j                  |d	<   t        t        j                  |d
d
fd|i||       t        j                  d      }t        t        j                  |ddfd|i||       t        j                  d      }t        t        j                  |dfd|i||       d d d        y # 1 sw Y   y xY w)Nr(  r   r  r  Tr  r  r  ru  r  r   r  r  rN   r   )
r5   rb   r  r  filterwarningsr  r?   rh  r0   r  )rd   r  r  kwargsr  rk  s         r;   test_out_nanzTestPercentile.test_out_nan  s     !#FCF'F$$D1 	B##Hb.AAAffAdGq!Q@A@@!DAq!Q@A@@!DAq!==f=qA	B 	B 	Bs   C.D--D6c                 
   t        j                  dt              }t         j                  |d<   t	        t        j
                  |d      t         j                         t	        t        j
                  |dd      t         j                         t	        t        j
                  |ddgd      t        j                  t         j                  gdz               t        j                  dt              j                  ddd	      }t         j                  |d
<   t         j                  |d<   t	        t        j
                  |d      t         j                         t	        t        j
                  |d      j                  d       t        j
                  t        j                  dt              j                  ddd	      dd      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |dd      |       t        j
                  t        j                  dt              j                  ddd	      ddgd      }t         j                  |d d ddf<   t         j                  |d d ddf<   t	        t        j
                  |ddgd      |       t        j
                  t        j                  dt              j                  ddd	      dd      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |dd      |       t        j
                  t        j                  dt              j                  ddd	      ddgd      }t         j                  |d d ddf<   t         j                  |d d ddf<   t	        t        j
                  |ddgd      |       t        j
                  t        j                  dt              j                  ddd	      dd      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |dd      |       t        j
                  t        j                  dt              j                  ddd	      ddgd      }t         j                  |d d df<   t         j                  |d d df<   t	        t        j
                  |ddgd      |       t        j
                  t        j                  dt              j                  ddd	      ddgdd      }t         j                  |d d df<   t         j                  |d d df<   t	        t        j
                  |ddgdd      |       y )Nr}  r   rL   rZ  r   r   333333?rV   rJ   r   rN   rN   rL   r  ro   rN   rS  rR   r  r  )	r5   r6   r  rh  r0   r  r   rw   r   r   s      r;   test_nan_behaviorz TestPercentile.test_nan_behavior  s   IIb&vv!R]]1c*BFF3R]]1c2BFF;R]]1sCjq9XXrvvhl+	- IIb&..q!Q7VV'
VV'
 	R]]1c*BFF3R]]1c*//3 MM"))Be4<<Q1EsAN&&$&&$R]]1c1-q1 MM"))Be4<<Q1E*a)VV!Q'
VV!Q'
R]]1sCj!4a8 MM"))Be4<<Q1EsAN&&$&&$R]]1c1-q1MMIIb&..q!Q7#sQHVV!Q'
VV!Q'
R]]1sCj!4a8 MMIIb&..q!Q7fFvv!vv!R]]1c62A6MM"))Be4<<Q1E*f.&&!Q$&&!Q$R]]1sCj&91=MM"))Be4<<Q1E*fY@&&!Q$&&!Q$R]]Sz6)567	9r=   c                 B   t        j                  t        d      5  t        j                  g dt        j
                         d d d        t        j                  t        d      5  t        j                  g dt        j
                  g       d d d        t        j                  ddd      }t        j
                  |d<   t        j                  t        d      5  t        j                  g 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Percentiles must be inr  )rN   rL   rV   r   r   g     X@r  r   )r	  r
  ra   r5   r  rh  rb  )rd   r{  s     r;   
test_nan_qzTestPercentile.test_nan_q  s    ]]:-EF 	2MM."&&1	2]]:-EF 	4MM.266(3	4KKT2&vv!]]:-EF 	-MM.!,	- 	-	2 	2	4 	4	- 	-s#   'C=&(D	D=D	DDzm8[D]zM8[s]posr   rK  r   c                 &   t        j                  dd|      }d||<   t        j                  |d      }|j                  |k(  sJ t        j                  |      sJ t        j                  |ddg      }|j                  |k(  sJ t        j                  |      j                         sJ t        j                  dd|      j                  dd	      }d||d
f<   t        j                  |dd      }t        t        j                  |      g d       y Nr   r}  r   NaTr  r6  H   r]   rV   rN   r   rN  )r5   r6   r  r   isnatr   rw   r/   rd   r   r  re   r@  s        r;   test_nat_basiczTestPercentile.test_nat_basic%  s    
 IIa5)#mmAr"yyE!!!xx}}mmABx(yyE!!!xx}  """IIau-55b!<#q&	mmAr*288C=*>?r=   qtyper  c                 B    |d      } |d      }t        j                  d|      }||d d t        j                  |d|      }||k(  sJ |j                  |j                  k(  sJ t        j                  |d|      }||k(  sJ |j                  |j                  k(  sJ y )Nr   rN      N  rl   r  c   )r5   r?   r  r   )rd   r  r  zeroonere   r  s          r;   test_percentile_gh_29003z'TestPercentile.test_percentile_gh_290038  s     QxAhHHUE"'6
MM!R/Dyyww!''!!!MM!R/Cxxww!''!!!r=   c                 0   t        d      }t        d      }t        j                  |gdz        }||d d t        j                  |d      }||k(  sJ t        j                  |t        d            }||k(  sJ t        j                  |      j                  |j                  k(  sJ t        j                  |d      }||k(  sJ t        j                  |t        d            }||k(  sJ t        j                  |      j                  |j                  k(  sJ y )Nr   rN   r  r  rl   r  )r   r5   r   r  r   )rd   r  r  re   r  s        r;   !test_percentile_gh_29003_Fractionz0TestPercentile.test_percentile_gh_29003_FractionG  s    {qkHHdVe^$'6
MM!R DyyMM!Xb\*Dyyxx{  AGG+++MM!R CxxMM!Xb\*Cxxxx{  AGG+++r=   rl   r  c                     t        j                  g dt         j                        }t        j                  |||      }|j                  t         j                  k(  sJ y NrN   rL   rV   rJ   rW   r   r  )r5   r   r  r  r   rd   r  r{  re   values        r;   test_q_weak_promotionz$TestPercentile.test_q_weak_promotionY  s@     HH_BJJ7a62{{bjj(((r=   c                     t        j                  g dt         j                        }t        j                  |t        j                  d      |      }|j
                  t         j                  k(  sJ y )Nr  r   rl   r  )r5   r   r  r  r  r   rd   r  re   r  s       r;   test_q_strong_promotionz&TestPercentile.test_q_strong_promotion`  sH    
 HH_BJJ7aB?{{bjj(((r=   N)6r}   r~   r   rj   r  r  r  r  r	  rH  rI  r5   r  r  r  r  r  r  r   H_F_TYPE_CODESr  r  r  
TYPE_CODESr  r  r  r  r  r  r.  r2  r4  r   r8  r;  rA  rE  rG  r[  r_  re  rs  rw  r|  r  r  r  quantile_methodsr  r  interpolating_quantile_methodsr  r  )r  int_typer5   s   000r;   r  r    s!   
*&6<D [[Wbll7&;<6 =6 ')ll<&@ "  , JJ

3JJ

3JJ

3MM2==9$BHHSM2::6	88N [[j*5!{{C0!}}d356 [[m-=>O[[?
!"">" P6 ">H l+bll7.CCcIJ[[Wj18 28 [[Wj1: 2: [[Wj19 293E"IH.`P5 [["]]E"R]]>:DA	
11f*80E)A@	HJ( [[S1q!f+.[[
  	.	 /.F [[/ 2 BB$;9z	- [[Ww&89[[UK0@ 1 :@" [[Wrzz2::&>?[[X'78" 9 @",$ [[X'EF[[S2t*-) . G)
 [[X'EF) G)is   Or  c                   @   e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dej                  d	         d
        Ze
j                  j                  de      d        Ze
j                  j                  de      d        Z ej(                   eej,                   ej0                  dd       ej2                  dddd                  d        Zd Ze
j                  j                  dddg      e
j                  j                  de      e
j                  j                  dg d      d                      Ze
j                  j                  dddg      e
j                  j                  de      e
j                  j                  dg d      d                      Ze
j                  j                  de      e
j                  j                  dg d      d               Ze
j                  j                  de      e
j                  j                  dg d       d!               Z e
j                  j                  de      d"        Z!e
j                  j                  de      d#        Z"d$ Z#e
j                  j                  d e$ e%e       e%e      z
              d%        Z&d& Z'd' Z(e
j                  j                  dd(ejR                  d(d(gd(ejR                  d(ejR                  gg d) ejT                  d*      jV                  gd+z  g      e
j                  j                  d,d-d.g      d/               Z,e
j                  j                  dd(ejZ                  d(d(gd(ejZ                  ejZ                  d(gg      e
j                  j                  d0d,ge.d-fe/e.fd.fg      d1               Z0d2 Z1d3 Z2e
j                  j                  de3      e
j                  j                  d4d5d(g      d6               Z4e
j                  j                  de3      d7        Z5y8)9TestQuantilec                     ||k\  |z
  S r4   r   )rd   r   r  alphas       r;   rW  zTestQuantile.Vm  s    Q%r=   c                 |    g d}t        j                  |d      }t         j                  j                  |dd       y )N)r   rY  r  g?g
ףp=
?rN   )maxulp)r5   r  r  assert_array_max_ulp)rd   r   re   s      r;   test_max_ulpzTestQuantile.test_max_ulpq  s2    KK4  	

''4':r=   c                     t        j                  d      dz  }t        t        j                  |d      d       t        t        j                  |d      d       t        t        j                  |d      d       y )Nrt   r  r   r   rN   r  r   )r5   r6   r0   r  r  s     r;   rj   zTestQuantile.test_basicy  sS    IIaL3R[[A&+R[[A&,R[[C($/r=   c                 j   t        j                  dg      }t        j                  dd      }t        ||d          t        t	        |      |j
                         t        j                  g d      }t        j                  ||      }t        ||       t        |j
                  |j
                         y )NTFr   )FTT)r5   r   r  r0   r1  r   r/   )rd   re   tf_quant	quant_ress       r;   test_correct_quantile_valuez(TestQuantile.test_correct_quantile_value  s}    HHdV;;tU+Xqt$T(^QWW-HH()KK1%	9a(Y__agg.r=   c           	         t        d      D cg c]  }t        |d       }}t        j                  |d      }t	        |d       t	        t        |      t               t        j                  |d      }t	        |t        dd             t	        t        |      t               t        j                  |d      }t	        |d       t        |t              sJ t        j                  |t        dd            }t	        |t        dd             t	        t        |      t               t        j                  |t        dd      g      }t	        |t        j                  t        dd      g             t	        t        |      t        j                         t        j                  |t        dd      gg      }t	        |t        j                  t        dd      gg             t	        t        |      t        j                         t        j                  d      }t	        t        j                  |t        dd            t        dd             y c c}w )	Nrt   rL   r   rN   rv   r  r   rJ   )rc   r   r5   r  r0   r1  r  r  r   r/  r6   )rd   r   r   r{  s       r;   r  zTestQuantile.test_fraction  s   %*1X.Xa^..KK1QT!Wh'KK1QA'T!Wh'KK2Q!U###KK8Aq>*QA'T!Wh'KKHQN+,Q(1a.!123T!Wbjj)KKXa^,-.Q8Aq>"2!345T!Wbjj) IIaLR[[HQN3Xa^D7 /s   Ic                 Z   t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       t        j                  g dd      }t        t        t         j                  |d       y r  )r5   r   r1   r  r  r  s     r;   r  zTestQuantile.test_complex  sk    =SIieS9=SIieS9=SIieS9r=   c                 n   t        j                  g d      }|j                         }t        j                  t        j                  d      |d       t        ||       |j                         }|j                         }t        j                  t        j                  d      |d       t        ||       y )N)r   r  ro  r  r   rC  r  r  )r5   r   r   r  r6   r/   r  )rd   p0r[  s      r;   rE  z TestQuantile.test_no_p_overwrite  sv    XX/0GGI
BIIdOQz:1b!YY[HHJ
BIIdOQz:1b!r=   r   r\  c                     t        j                  t        j                  ddg|      dgd      }|j                  |k(  sJ y )NrN   rL   r   r  r  r  )r5   r  r   r   )rd   r   r@  s      r;   test_quantile_preserve_int_typez,TestQuantile.test_quantile_preserve_int_type  s:    kk"((Aq67#!*,yyE!!!r=   r  c                     g d}t        j                  |ddg|      }t        |t        j                  ddg             y )N)r   r   r  r   rN   )r{  r  r   r  )r5   r  r0   r   )rd   r  r   r  s       r;   test_q_zero_onezTestQuantile.test_q_zero_one  s6     ;;sq!fV<XrxxR12r=   c                 B   t        j                  ddd      }t        j                  t        j                  g d      dz  ||      }t	        t        j
                  |      |       t        j                  g d||      }t	        t        j
                  |      |       y )Nr   rN   r1  )r   rN   rN   rL   rL   rV   rV   rJ   rW   rW   rN   rN   rM  rM  rM  rt   rt   rv   r  r  )r   r   r   r   )r5   rb  r  r   r0   rf  )rd   r  r  r  s       r;   test_quantile_monotonicz$TestQuantile.test_quantile_monotonic  s}    
 [[As#;;rxx )2  358 9:<VMRWWX&1 ;;/FCRWWX&1r=   rV   rL  )	min_value	max_valueFu <7u <7~)allow_infinity	allow_nanr  r  )r   rA   elements)r   c                     t        j                  ddd      }t        j                  ||      }t        t        j                  |      |       y )Nr   rN   g{Gz?)r5   r6   r  r0   rf  )rd   r   r  r  s       r;   test_quantile_monotonic_hypoz)TestQuantile.test_quantile_monotonic_hypo  s9     YYq!T";;sB'RWWX&1r=   c                    t        j                  g dg dg      }t         j                  |d   d<   t        j                  |d      }t        j                  |      sJ t        t        j                  |d      t         j                         y )N)r  r  r   )r   r   r   r   rN   r  )r5   r   rh  r  r*  r0   )rd   re   r  s      r;   test_quantile_scalar_nanz%TestQuantile.test_quantile_scalar_nan  sa    HHm\23&&!QQ${{6"""R[[C("&&1r=   r   Tr  )rY  r  ?c           
         |r|t         vrt        j                  d       t        j                  j                  d      }d}|j	                  |      }|r|j                  dd|      nd }t        j                  ||||      }|dv rBt        j                  t        j                  | j                  |||                  d	|z  kD  sJ y t        ||z        ||z  k(  r7|s5t        t        j                  | j                  |||      |
      dd       y t        t        j                  | j                  |||      |
      dd|z  t        j                  |d|z
  g      z         y )N Weights not supported by method.r   f   r   r   r  r  r  r  )r  r  r  g+=)atolrN   )methods_supporting_weightsr	  skipr5   rd  re  r  r  rc  r   rW  r  r,   r   r  )	rd   r   r  r  ri  r9   r  r  r   s	            r;   %test_quantile_identification_equationz2TestQuantile.test_quantile_identification_equation  s*    v%??KK:;ii##D)
 JJqM4;CLLQRaL0KK5;[ 66"''$&&Au"567#'AAAU^q5y(

466!Q.:AE BJJtvvaE':AFURWWeQY%788:r=   c           	      p   |r|t         vrt        j                  d       t        j                  j                  d      }d}|j	                  |      }|r|j                  dd|      nd }t        j                  ||||      }d}	t        t        j                  |	|z   |||      |	|z          t        t        j                  |	|z  |||      |	|z         |ry t        j                  | d	|z
  |
       }|dk(  r||z  t        ||z        k(  s*t        j                  ||z        t        ||z        d	z   k(  r#t        |t        j                  ||d
             y t        |t        j                  ||d
             y |dk(  r||z  t        ||z        k(  r#t        |t        j                  ||d
             y t        j                  ||z        t        ||z        d	z   k(  r)t        |t        j                  ||d	|z  z   d
             y t        |t        j                  ||d
             y |dk(  r)t        |t        j                  ||d	|z  z   |
             y |dk(  r`||z  t        ||z        k(  r)t        |t        j                  ||d	|z  z   |
             y t        |t        j                  |||
             y |dk(  r#t        |t        j                  ||d
             y |dk(  r#t        |t        j                  ||d
             y t        |t        j                  |||
             y )Nr  r   r  r   r   r  r  g      +@rN   r  r  r  r  r  r  r  )r  r	  r  r5   rd  re  r  r  r,   r  round)
rd   r   r  r  ri  r9   r  r  r{  r   s
             r;   'test_quantile_add_and_multiply_constantz4TestQuantile.test_quantile_add_and_multiply_constant  s    v%??KK:;ii##D)
 JJqM4;CLLQRaL0KK5; 	AE5KA	 	AE5KA	 [[!QYv66^#E	SU^+88AI&#a%i.1*<<2;;q%#IJ2;;q%#HI,,5yCE	N*2;;q%#IJ!e)$AI(::r{{1ea!emHEG  2;;q%#HI22Ar{{1ea!emFKLy 5yCE	N*2;;q%!a%-#OP2;;q%#GHwAr{{1eHEFxAr{{1eGDE Ar{{1eFCDr=   c                    t         j                  j                  d      }d}|j                  |      }t        j                  |||      }t        j                  |      }t        j                  ||||      }t        ||       dt        j                  |      z  }t        j                  ||||      }t        ||       y )Nr   r  r  r  g     @ @)r5   rd  re  r  rw  r,   )	rd   r  r  ri  r9   r  r{  r  qws	            r;   test_quantile_constant_weightsz+TestQuantile.test_quantile_constant_weightsQ  s     ii##D)
 JJqMKK50LLO[[E&!<ABLLO#[[E&!<Ar=   )r   rY  r  r  rN   c                 P   t         j                  j                  d      }d}|j                  |      }|j                  dd|t         j                        }t        j
                  ||||      }t        j
                  t        j                  ||      ||      }t        ||       y )Nr   r  r   r   )r  r  r  r   r  r  )r5   rd  re  r  r  r  r  r,   )	rd   r  r  ri  r9   r  r  r  r{  s	            r;   "test_quantile_with_integer_weightsz/TestQuantile.test_quantile_with_integer_weightse  s     ii##D)
 JJqMLLQRarxxL@[[E&!<KK		!Qv>Ar=   c                    t         j                  j                  d      }|j                  d      }t        j                  |j                  d            }d}t        j                  ||||d      }t        j
                  d      }t        d	      D ]8  }t        d
      D ](  }	t        j                  ||d d |	f   |||      |||	f<   * : t        ||       g d}t        j                  ||||d      }t        j
                  d      }t        d	      D ];  }t        d
      D ]+  }	t        j                  ||d d |	f   |||      |d d ||	f<   - = t        ||       ddgddgddgg}t        j                  ||||d      }|j                  d      }t        ||       t        j                  |j                  d            }d}t        j                  ||||d      }t        j
                  d      }t        d	      D ]@  }t        d
      D ]0  }	t        j                  ||d d |	f   ||||d d |	f         |||	f<   2 B t        ||       t        j                  ||||d      }t        j                  ||||d       }t        ||       t        j                  ||||d      }t        j
                  d      }t        d	      D ]$  }t        j                  ||   |||   |      ||<   & t        ||       y )Nr   )rL   r   rV   r   r  rN   r   r  r   r  rm  rL   rV   r  )r   rY  r  r~  r  rN   )ru   rL   rV   r   rY  r  r~  r  )rV   rL   rL   rV   rM   ro   r  ry  )	r5   rd  re  rc  r  r?   rc   r,   rw   )
rd   r  ri  r  r  r  r{  q_resr   r  s
             r;   #test_quantile_with_weights_and_axisz0TestQuantile.test_quantile_with_weights_and_axisv  s   ii##D) JJz"FF3::b>"KK5!FCv&q 	A1X  kkaAgJfaad	
 	5! +KK5!FCy)q 	A1X !#aAgJfa"aAg	
 	5! SC:Qx0KK5!FCl+5! FF3::j)*KK5!FCv&q 	A1X  kkaAgJfa1ajad	
 	5! KK5!FKAuaTJ5!KK5!FHt$q 	MA{{1Q4!VLE!H	M5!r=   c                     g d}t        j                  d      }t        j                  |d|d      }t        j                  |d|d      }||d   k(  sJ ||d   k(  sJ y )	N)r   r   rN   rL   rV   r   ru   r   r  ry  rN   rL   rJ   )r5   r6   r  )rd   r  r  r  y_miny_maxs         r;   test_quantile_weights_min_maxz*TestQuantile.test_quantile_weights_min_max  s^     IIaLAq!NCAq!NC!}}!}}r=   c                     ddg}ddg}t        j                  t        d      5  t        j                  |d|d       d d d        y # 1 sw Y   y xY w)	NrN   rL   rm  zWeights must be non-negativer  r  r  ry  r	  r
  ra   r5   r  )rd   r  r  s      r;   -test_quantile_weights_raises_negative_weightsz:TestQuantile.test_quantile_weights_raises_negative_weights  sN    F1I]]:-KL 	BKK3.A	B 	B 	Bs   AAc                     ddg}ddg}d}t        j                  t        |      5  t        j                  |d||       d d d        y # 1 sw Y   y xY w)NrN   rL   r  z+Only method 'inverted_cdf' supports weightsr  ry  r  )rd   r  r  r  r!  s        r;   0test_quantile_weights_raises_unsupported_methodsz=TestQuantile.test_quantile_weights_raises_unsupported_methods  sP    
 F!H;]]:S1 	:KK3&9	: 	: 	:s   A		Ac           	      P   t        dd      t        dd      g}t        j                  |dgd      }t        |t        j                  t        dd                   t        j                  |t        dd      gd      }t        |t        j                  t        dd                   y )Nr   rN   r   r  r  rL   r  )r   r5   r  r0   r   )rd   r   r  s      r;   test_weibull_fractionz"TestQuantile.test_weibull_fraction  sy    1~x2/;;sQE)<XrxxA78;;sXa^$4YGXrxxB89r=   c                 ^   d}d}g d}t        dt        j                  |dd ||             t        dt        j                  |dd ||             t        dt        j                  |dd	 ||             t        dt        j                  |dd
 ||             t        dt        j                  |dd ||             t        dt        j                  |dd ||             t        dt        j                  |dd ||             t        d	t        j                  |||             y )Nr  r  )
rN   rL   rV   rJ   rW   ru   rv   rt   rM  r   rL   r   rV   r  rJ   rW   ru   rv   rt   rM  )r0   r5   r  )rd   rD  r{  r   s       r;   test_closest_observationz%TestQuantile.test_closest_observation  s    !-QC!Ha:;QC!Ha:;QC!Ha:;QC!Ha:;QC!Ha:;QC!Ha:;QC!Ha:;QC156r=   rN   r   r  rJ   dtyr7  r[  c           	      f   d}d}t        j                  g dgdz        }t        j                  |dgdz  g|      }t        j                  t        d      5  t        j
                  d	
      5  t        j                  ||||d      }d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r  r  rL   rJ   r   z*Weights included NaN, inf or were all zeror  ignorer  rN   r  )r5   r   r	  r
  ra   r  r  )rd   r   r  rD  r{  r   wgtsre   s           r;   test_inf_zeroes_errz TestQuantile.test_inf_zeroes_err  s    
 hh~)*xx3%!),C8]]:CE 	H
 * HKKQQQGH	H 	H
H H	H 	Hs$   B'/B
B'B$	 B''B0errc                    d}d}t        j                  g dgdz        }t        j                  |dgdz  g|      }t        j                  |      5  t        j                  ||||      }d d d        y # 1 sw Y   y xY w)Nr  r  r  rL   rJ   r   ry  )r5   r   r	  r
  r  )	rd   r  r  r   rD  r{  r   r  re   s	            r;   test_nan_errzTestQuantile.test_nan_err  ss    
 hh~)*xx3%!),C8]]3 	<CD;A	< 	< 	<s   A55A>c                    t        j                  ddgt        d            }|t        d      k(  sJ t        |t              sJ t        j                  ddgt        d            }|t        dd      k(  sJ t        |t              sJ y )NrN   rL   )r{  r  rV   )r5   r  r   r  )rd   r  s     r;   test_quantile_gh_29003_Fractionz,TestQuantile.test_quantile_gh_29003_Fraction  sx    KKA(1+.HQK!X&&&KKA(2,/HQN"""!X&&&r=   c                     t        j                  dt         j                        }d}t        j                  ||      }||dz  k(  sJ |j                  t         j                  k(  sJ y )NiQ  r   g+?iP  )r5   r6   r  r  r   )rd   re   r{  r  s       r;   test_float16_gh_29003z"TestQuantile.test_float16_gh_29003  sS    IIfBJJ/Aq!F
"""{{bjj(((r=   r{  r  c                     t        j                  g dt         j                        }t        j                  |||      }|j                  t         j                  k(  sJ y r  )r5   r   r  r  r   r  s        r;   r  z"TestQuantile.test_q_weak_promotion  s@     HH_BJJ7Aq0{{bjj(((r=   c                     t        j                  g dt         j                        }t        j                  |t        j                  d      |      }|j
                  t         j                  k(  sJ y )Nr  r   r  r  )r5   r   r  r  r  r   r  s       r;   r  z$TestQuantile.test_q_strong_promotion  sH    
 HH_BJJ7Arzz#v>{{bjj(((r=   N)6r}   r~   r   rW  r  rj   r  r  r  rE  r	  rH  rI  r5   r  r  r  r  r  
hypothesisgivenr   r  str  floatsr  r  r  r  r  r  r  r  r  r  sortedsetr  r  r  r  finfor  r  rh  ra   r  r  r  r  r  r  r  r   r=   r;   r  r  j  s]    ;0/E>:
" [[Wbll<&@A" B"
 [[X'783 93 [[X'782 92 ZRZZ(R[[1E )		%4:e!MNO
2O
2
2 [[Y6[[X'78[[Wo6 : 7 9 7 :D [[Y6[[X'78[[Wo6>E 7 9 7>E@ [[X'AB[[Wo6 7 C$ [[X'AB[[W&;< = C [[X'AB6" C6"p [[X'AB CB [[3'(3/I+JJK:	::7 [[YABFFArvv 6bhhy!%%&*,- [[UT3K0H 1-H [[YABFFBFFA 679[[eU^$>:">!DEG<G9<') [[X'EF[[S3(+) , G)
 [[X'EF) G)r=   r  c                   F   e Zd Z ej                   ej                  dddd       ej                  dddd       ej                  dddd       ej                  dddd            d        Z ej                   ej                  dddd       ej                  dddd       ej                  dddd      	      d
        Z ej                   ej                  dddd       ej                  dddd       ej                  dddd      	      d        Z	d Z
y)TestLerpFr   rN   )r  r  r  r  r  r  )t0t1re   r   c                     t        j                  |||      }t        j                  |||      }||k(  s||k(  r||k(  sJ y ||k  ||k  k(  r||k  sJ y ||k\  sJ y r4   r  _lerp)rd   r  r   re   r   l0l1s          r;   +test_linear_interpolation_formula_monotonicz4TestLerp.test_linear_interpolation_formula_monotonic!  sf     YYq!R YYq!R 8qAv8O82g1q5!8O88O8r=   )tre   r   c                     ||k  r&|t        j                  |||      cxk  r|k  sJ  J y |t        j                  |||      cxk  r|k  sJ  J y r4   r  )rd   r  re   r   s       r;   )test_linear_interpolation_formula_boundedz2TestLerp.test_linear_interpolation_formula_bounded3  sW     6		!Q*/a/////		!Q*/a/////r=   c                     t        j                  ||dd|z
  z
        }t        j                  ||d|z
        }t        ||       y rn  )r  r  r,   )rd   r  re   r   r  r  s         r;   +test_linear_interpolation_formula_symmetricz4TestLerp.test_linear_interpolation_formula_symmetric?  s>     yyAqAE{+		!QA&e$r=   c                     t        j                  d      }t        j                  d      }t        j                  d      }t        j                  |||      dk(  sJ y )NrL   rW   rY  g@)r5   r   r  r  )rd   re   r   r  s       r;   +test_linear_interpolation_formula_0d_inputsz4TestLerp.test_linear_interpolation_formula_0d_inputsK  sD    HHQKHHQKHHSMyyAq!S(((r=   N)r}   r~   r   r  r  r  r  r  r	  r  r  r   r=   r;   r  r     sW   ZU5-.!="U5-.!=!		E%,2eE!		E%,2eEFF Z			E%,-<!		E%,2eE!		E%,2eE	F0F0 Z			E%,-<!		E%,2eE!		E%,2eE	F%F%)r=   r  c                      e Zd Zd Zd Zd Zd Zd Zej                  j                  dg ddej                  d	gej                  d
f      d        Zd Zd Zd Zej                  j#                  ed      d        Zd Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  ddg      ej                  j                  dg d      d               Zy) 
TestMedianc                 \   t        j                  d      }t        j                  d      }t        j                  d      j                  dd      }t	        t        j
                  |      d       t        t        j
                  |      d       t        t        j
                  |      d       t        t        j
                  |d      g d	       t	        t        j
                  |d      dd
g       t        t        j
                  |d       d       t        j                  g d      }t        |d   |d   z   dz  t        j
                  |             t        j                  g d      }t	        |d   t        j
                  |             t        j                  g d      }t	        |d   t        j
                  |             t	        t        j
                  |      j                  d       t         j                  |d<   t	        t        j
                  |      j                  d       y )NrN   rL   ru   rV   r  rl  r   r   rM  rl  r  rJ   )6-¦?0?}r?g4?r   )r  r  r  )r  r  r  r]   )
r5   r   r6   rw   r0   medianr,   r-   r   rh  )rd   a0a1r  re   s        r;   rj   zTestMedian.test_basicT  sh   XXa[YYq\YYq\!!!Q'RYYr]A&		"s+		"s+		"1-?RYYr*QF3		"40#6HH@AQqTAaD[B.		!=HH56QqT299Q<(HH56QrUBIIaL)RYYq\&&*vv!RYYq\&&*r=   c                    t        j                  ddgddgddgddgg      }|t         j                  j                  dd	d
      fD ]f  }|j	                         }t        j
                  |d        t        |j                        D ]  }t        j
                  ||        t        ||       h t        t        j
                  |d      ddg       t        t        j
                  |j                  d      ddg       t        t        j
                  |      d       t        t        j
                  |d       d       t        t        j
                  |j                        d       y )NrL   rV   r   rN   ru   rv   rJ   rW   rs  r  rL  r   r  )r5   r   rd  randintr   r  rc   r   r/   r,   r   )rd   a3re   origr  s        r;   test_axis_keywordzTestMedian.test_axis_keywordj  s   XX1v1v1v1v   bii''3Y'?@ 	(A668DIIad#AFFm &		!"%&q$'	( 			"1-1v6		"$$Q/!Q8		"s+		"40#6		"$$-r=   c                    t        j                  ddgddgddgddgg      }t        j                  d      }t        j                  d      }t        j                  d      j                  dd      }t	        t        j
                  |j                         d	
      d       t	        t        j
                  |j                         d	
      d       t	        t        j
                  |j                         d	
      d       t	        t        j
                  |j                         d	d      g d       t	        t        j
                  |j                         d	d      ddg       t	        t        j
                  |j                         d	d       d       t	        t        j
                  |j                         d	d      ddg       t	        t        j
                  |j                  j                         d	d      ddg       t        j                  dt         j                        j                  d      }t         j                  j                  |j                                t	        t        j
                  |d       t        j
                  |j                         d d	             t	        t        j
                  |d      t        j
                  |j                         dd	             t	        t        j
                  |d      t        j
                  |j                         dd	             t	        t        j
                  |d      t        j
                  |j                         dd	             y )NrL   rV   r   rN   ru   rv   rJ   rW   Tr>  r  rl  )r?  r   r  r6  r   rU   r   )r   r?  )r5   r   r6   rw   r,   r  r   r   r  rd  rW  rX  )rd   r  r  r  r  a4s         r;   test_overwrite_keywordz!TestMedian.test_overwrite_keyword|  sU   XX1v1v1v1v   XXa[YYq\YYq\!!!Q'		"'')TBAF		"'')TBCH		"'')TBCHIIbggiA>	QIIbggiA>A	HIIbggiDA3	HIIbggiA>A	HIIbddiik4a@1a&	J YYy

3;;IF
		"((*%		"40		"'')$M	O		"1-		"'')!TJ	L		"1-		"'')!TJ	L		"1-		"'')!TJ	Lr=   c                     g d}t        t        j                  |      d       |g}t        t        j                  |      d       t        t        j                  |d      |       y )Nr   rL   r   r   )r-   r5   r  r,   )rd   r   r_  s      r;   r  zTestMedian.test_array_like  sG    BIIaL!,SBIIbM1-		"1-q1r=   c                      G d dt         j                        } |g d      }t        t        j                  |      d       y )Nc                       e Zd ZddZddZy),TestMedian.test_subclass.<locals>.MySubClassNc                 \    t        j                  |      j                  |       }||_        |S r4   )r5   r  r0  info)clsinput_arrayr%  objs       r;   __new__z4TestMedian.test_subclass.<locals>.MySubClass.__new__  s'    jj-2237
r=   c                      y)Nr   )rd   r   r   r  s       r;   r   z1TestMedian.test_subclass.<locals>.MySubClass.mean  s    r=   r4   )NNN)r}   r~   r   r)  r   r   r=   r;   
MySubClassr#    s    
r=   r,  r   r+  )r5   r/  r0   r  )rd   r,  re   s      r;   r  zTestMedian.test_subclass  s0    	 	 y!RYYq\2&r=   r   r   r   r   r   c                      G d dt         j                        }t        j                  t        j                  |      j	                  |            }t        ||      sJ y)z6Check that we return subclasses, even if a NaN scalar.c                       e Zd Zy)-TestMedian.test_subclass2.<locals>.MySubclassNr,  r   r=   r;   
MySubclassr/    r.  r=   r0  N)r5   r/  r  r   r0  r  )rd   r   r0  rD  s       r;   test_subclass2zTestMedian.test_subclass2  sE    	 	 IIbhhsm((45!Z(((r=   c                 v   t        j                  d      }t        j                  d      }t        t        j                  |d|      |       t        j                  d      }t        t        j                  |d|      |       t        j                  d      }t        t        j                  ||      |       y )Nru  r(  r   r&  r  rN   r   )r5   r?   rb   r0   r  rv  s      r;   rw  zTestMedian.test_out  sy    HHTNGGFORYYq!+Q/HHTNRYYq!+Q/HHRLRYYqa(!,r=   c                 (   t        j                  d      5  t        j                  ddt               t	        j
                  d      }t	        j                  d      }t        j                  |d<   t        t	        j                  |d|	      |       t	        j
                  d
      }t        t	        j                  |d|	      |       t	        j
                  d      }t        t	        j                  ||	      |       d d d        y # 1 sw Y   y xY w)NTr  r  r  ru  r(  r  r   r&  r  rN   r   )
r  r  rz  r  r5   r?   rb   rh  r0   r  rv  s      r;   r|  zTestMedian.test_out_nan  s    $$D1 		1##Hb.AAAffAdG1aQ/3A1aQ/3A1!,a0		1 		1 		1s   C(DDc                    t        j                  dt              }t         j                  |d<   t	        t        j
                  |      t         j                         t	        t        j
                  |d      t         j                         t        j                  dt              j                  ddd      }t         j                  |d<   t         j                  |d	<   t	        t        j
                  |      t         j                         t	        t        j
                  |      j                  d       t        j
                  t        j                  dt              j                  ddd      d      }t         j                  |d
<   t         j                  |d<   t	        t        j
                  |d      |       t        j
                  t        j                  dt              j                  ddd      d      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |d      |       t        j
                  t        j                  dt              j                  ddd      d      }t         j                  |d<   t         j                  |d<   t	        t        j
                  |d      |       y )Nr}  r   rL   r   r   rV   rJ   r   r  r  ro   rN   rS  rR   )r5   r6   r  rh  r0   r  rw   r   r   s      r;   r  zTestMedian.test_nan_behavior  s   IIb&vv!RYYq\266*RYYqq)2662IIb&..q!Q7VV'
VV'
 	RYYq\266*RYYq\&&* IIbii%088AqA1E&&$&&$RYYq!_a( IIbii%088AqA1E&&$&&$RYYq!_a( IIbii%088AqA6Jvv!vv!RYYq&)1-r=   zfp errors don't work correctlyr  c                    t        j                  g t              }t        j                  d      5 }t        j
                  ddt               t        t        j                  |      t         j                         t        |d   j                  t        u        t        t        |      d       d d d        t        j                  g t        d	      }t        j                  d      5 }t        j
                  ddt               t        t        j                  |      t         j                         t        |d   j                  t        u        d d d        t        j                  g t        d	      }t        t        j                  |d
      |       t        t        j                  |d
      |       t        j                  t         j                  t        d	      }t        j                  d      5 }t        j
                  ddt               t        t        j                  |d
      |       t        |d   j                  t        u        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)Nr   Tr  r  r  r   rL   rV   )r   r  r   rN   )r5   r   r  r  r  rz  r  r0   r  rh  r+   categoryrQ  )rd   re   r  r   s       r;   r  zTestMedian.test_empty  s    HHRu%$$D1 	$Q##Hb.A1rvv.AaDMM^34Q#		$ HHRuA.$$D1 	5Q##Hb.A1rvv.AaDMM^34	5 HHRuA.RYYqq)1-RYYqq)1- HHRVV52$$D1 	5Q##Hb.A11-q1AaDMM^34	5 	5+	$ 	$	5 	5	5 	5s&   A<I(A'I&5AI3I#&I03I<c           	      P   t        j                  d      }t        t        t        j                  |j                  t                          t               t         j                  |d<   t        t        t        j                  |j                  t                          t               y )Nr  rL   )	r5   r6   r+   r1  r  r  r   r  rh  )rd   r  s     r;   test_objectzTestMedian.test_object  s^    IIbMRYYqxx/0159vv!RYYqxx/0159r=   c                 r   t         j                  j                  d      }t        j                  |gdz        }t	        t        j
                  |d      t        j
                  |             t        j                  |dd      }t	        t        j
                  |d      t        j
                  |             |j                  dd	      j                         }t	        t        j
                  |d
      t        j
                  |             t	        t        j
                  |d      t        j
                  |d              t	        t        j
                  |d      t        j
                  |d             t	        t        j
                  |d      t        j
                  |d             t        j                  d      j                  d      }t         j                  j                  |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 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                                      y )NrI  rL  r   r^   r   r]   r   rp   rN   rn   rM   ru  r  rM  rN  r  rP  rL   rQ  r  r  rR  rS  rQ   )r5   rd  rT  rU  r0   r  rV  r   r   r6   rw   rW  rX  rY  rZ  s       r;   r[  zTestMedian.test_extended_axis  s   II(+IIqcBhRYYqv.		!=KK2q!RYYqx0"))A,?JJq!!!#RYYqw/1>RYYqy1299QT3JKRYYqu-ryy/CDRYYqv.		!"0EFIIn%--m<
		!'')$RYYqy1!4YYqAq!}4467	9RYYqy1!4YYqAq!}4467	9RYYqz215YYqAq!}4467	9RYYqy1!4YYqAq!}4467	9RYYqv.t4YYqAq!}4467	9RYYqw/5YYqAq!}4467	9RYYqv.t4YYqAq!}4467	9r=   c                 x   t        j                  d      }t        t        t         j                  |d       t        t        t         j                  |d       t        t        t         j                  |d       t        t        t         j                  |d       t        t
        t         j                  |d       y )NrN  r  r   r]  rJ   r^  rS   )r5   rb   r1   r&   r  ra   r:  s     r;   r_  z%TestMedian.test_extended_axis_invalid4  sj    GGM"iAB7iAG<iAA6iAF;j"))QV<r=   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       y )NrN  Tr   r   r^   ra  r   rb  rb  rc  r  r  rd  )r5   rb   r0   r  rA   r:  s     r;   re  zTestMedian.test_keepdims<  s    GGM"RYYqtd;AA!	#RYYqv=CC"	$RYYqv=CC!	#RYYqtd;AA"	$RYYq|dCII!	#RYYqy4@FF!	#r=   r   rf  rg  c                 f   t        j                  d      |dj                  z  }n>t        |j                        t	        fdt        j                        D              }t        j                  |      }t        j                  |d|      }||u sJ t        |j                  |       y )NrN  rb  c              3   H   K   | ]  }|v rd nj                   |     ywrl  rm  rn  s     r;   r  z/TestMedian.test_keepdims_out.<locals>.<genexpr>[  rp  r  Trq  )
r5   rb   r   r%   r  rc   r+  r  r0   rA   )rd   r   rr  r  r  ro  rk  s        @@r;   rs  zTestMedian.test_keepdims_outK  s     GGM"<qvvI,T166:I L=B166]L LIhhy!14$C@}}V\\9-r=   r   zm8[s]r  r  c                 "   t        j                  dd|      }d||<   t        j                  |      }|j                  |k(  sJ t        j                  |      sJ t        j
                  |ddg      }|j                  |k(  sJ t        j                  |      j                         sJ t        j                  dd|      j                  dd	      }d||d
f<   t        j                  |d      }t        t        j                  |      g d       y r  )	r5   r6   r  r   r  r  r   rw   r/   r  s        r;   test_nat_behaviorzTestMedian.test_nat_behaviorb  s    
 IIa5)#iilyyE!!!xx}}mmABx(yyE!!!xx}  """IIau-55b!<#q&	ii"288C=*>?r=   N)r}   r~   r   rj   r  r  r  r  r	  rH  rI  r5   rh  r1  rw  r|  r  r  r)   r  r8  r[  r_  re  rs  r?  r   r=   r;   r  r  R  s   +,.$LB2' [[U*R,<bffbIK)K)-
1.@ [[(HI5 J5::9<=# [[
  	.	. [[Wwi0[[UK0@ 1 1@r=   r  c                   Z    e Zd Zej                  j                  dg d      d        Zd Zy)TestSortComplexztype_in, type_out))lr  )hr   )Hr   )r   r   )r  r   )r  r  c                     t        j                  g d|      }t        j                  |      }t        j                  |      j	                  |      }t        ||       t        |j                  |j                         y )N)rW   rV   ru   rL   rN   r   )r5   r   sort_complexrf  r  r0   r   )rd   type_intype_outre   r  r  s         r;   test_sort_realzTestSortComplex.test_sort_realx  sV     HH_G4#771:$$X.VX&V\\8>>2r=   c                     t        j                  g dd      }t        j                  g dd      }t        j                  |      }t        ||       t        |j                  |j                         y )N)r        ?       r  r  r  r   )r  rK  r  r  )r5   r   rF  r0   r   )rd   re   r  r  s       r;   test_sort_complexz!TestSortComplex.test_sort_complex  sN    HH5SA88<CH#VX&V\\8>>2r=   N)r}   r~   r   r	  rH  rI  rI  rL  r   r=   r;   rA  rA  v  s0    [[0 3
 333r=   rA  )r   )r   r   )r?  r  r  r  r  	fractionsr   	functoolsr   r  hypothesis.strategies
strategiesr  r	  hypothesis.extra.numpyr   numpyr5   numpy.lib._function_base_impllib_function_base_implr  r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   numpy._core.numericr%   numpy.exceptionsr&   numpy.randomr'   numpy.testingr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   halfsingler}  r  r  r<   rF   rH   r   r   r   rH  rI  r   r   r   rK  rw  r  r  r  r  r  r  r  r  r  rE  r  r  r  r  r  r  r  r!  rF  r  r`  rs  r  r  r  r  r  r  r  r  r>  rS  r  r  r  r  r  r  r  r  rA  r   r=   r;   <module>r\     sM      
     "  )  + +                 B 5 &     WWbiiBMM:	AB ABHd1 d1N: :": :$ "KL( M( 3  3FF4 F4R7$ 7$th0 h0V	; 	;	: 	:E E8 80E E(J J8:I< I<Xx> x>v}" }"@' '4OM OMd$" $"R!CC CCL, ,^R8 R8j5 56 S2<<--W0EE j)i; i; *i;X;1 ;1|+5 +5\	D 	D' '"B& B&Jm7 m7`2 2j &k2 k2\a0 a0Hw- w-tCA CAL "@  -- @
) @
)Fs) s)l/) /)da@ a@H	3 3r=   