
    Ph\#                       d dl Z 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Z	d dl
mZ d dlmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZm Z! d dl"mZ#  G d	 d
      Z$ G d d      Z% G d d      Z& G d d      Z' G d d      Z( G d d      Z) G d d      Z* G d d      Z+ G d d      Z, G d de-      Z. G d d      Z/ G d d       Z0 G d! d"      Z1 G d# d$      Z2 G d% d&      Z3 G d' d(      Z4d) Z5 G d* d+      Z6 G d, d-      Z7 G d. d/      Z8 G d0 d1      Z9 G d2 d3      Z: G d4 d5      Z; G d6 d7      Z< G d8 d9      Z= G d: d;      Z> G d< d=      Z? G d> d?      Z@ G d@ dA      ZA G dB dC      ZB G dD dE      ZC G dF dG      ZDdH ZE G dI dJ      ZF G dK dL      ZG G dM dN      ZH G dO dP      ZI G dQ dR      ZJy)S    N)Decimal)umath)randrandintrandn)assert_assert_equalassert_raisesassert_raises_regexassert_array_equalassert_almost_equalassert_array_almost_equalassert_warnsassert_array_max_ulpHAS_REFCOUNTIS_WASM)rational)given
strategies)numpyc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)
TestResizec                    t        j                  ddgddgg      }t        j                  g dg dg      }t        t        j                  |d      |       t        j                  ddgddgddgddgg      }t        t        j                  |d      |       t        j                  g dg d	g d
g dg      }t        t        j                  |d      |       y )N            r   r   r   r   r   r   r   r   r   r   r   )r   r   r   )r   r   r   r   r   r   r   r   nparrayr	   resizeselfAAr1Ar2Ar3s        hC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\numpy/core/tests/test_numeric.pytest_copieszTestResize.test_copies   s    HHq!fq!f%&hhl34RYYq&)3/hhAAAA78RYYq&)3/hh	9iCDRYYq&)3/    c                    t        j                  g d      }t        j                  g dg dg      }t        t        j                  |d      |       t        j                  ddgddgddgddgg      }t        t        j                  |d      |       t        j                  g dg dg dg dg      }t        t        j                  |d	      |       y )
Nr!   )r   r   r   r   )r   r   r   r   r   r   r   r   r    r#   r$   r(   s        r.   test_repeatszTestResize.test_repeats#   s    HHYhhl34RYYq&)3/hhAAAA78RYYq&)3/hh	9iCDRYYq&)3/r0   c                    t        j                  ddgddgg      }t        j                  |d      }t        |t        j                  g              t	        |j
                  |j
                         t        j                  |d      }t	        |j                  d       t        j                  |d      }t	        |j                  d       y )Nr   r   r   r   r   r   r   r   r   )r%   r&   r'   r   r	   dtypeshaper)   r*   Ars      r.   test_zeroresizezTestResize.test_zeroresize.   s    HHq!fq!f%&YYq$2rxx|,QWWbhh'YYq&!RXXv&YYq&!RXXv&r0   c                    t        j                  ddt         j                  fg      }t        j                  |d      }t	        |t        j                  d|j
                               t        |j
                  |j
                         y )Nr   ar7   r   r   )r%   zerosfloat32r'   r   r7   r	   r9   s      r.   test_reshape_from_zeroz!TestResize.test_reshape_from_zero:   sY    HHQRZZ012YYq&!2rxx9:QWWbhh'r0   c                     t        j                  ddt         j                        }d}t        j                  t
        d      5  t        j                  ||       d d d        y # 1 sw Y   y xY w)Nr   
   r>   )negativematch)	new_shape)r%   arangerA   pytestraises
ValueErrorr'   )r)   r*   rJ   s      r.   test_negative_resizezTestResize.test_negative_resizeA   sE    IIa2::.	]]:[9IIa9- :99s   A%%A.c                     G d dt         j                        }t        j                  dg      j                  |      }t	        t        j
                  |d            |u sJ t	        t        j
                  |d            |u sJ t        j                  g       j                  |      }t	        t        j
                  |d            |u sJ y )Nc                       e Zd ZdZy))TestResize.test_subclass.<locals>.MyArray      ?N)__name__
__module____qualname____array_priority__ r0   r.   MyArrayrR   H   s    !#r0   rY   r      r   )r%   ndarrayr&   viewtyper'   )r)   rY   my_arrs      r.   test_subclasszTestResize.test_subclassG   s    	$bjj 	$ 1###G,BIIfa()W444BIIfa()W444"""7+BIIfa()W444r0   N)	rT   rU   rV   r/   r2   r;   rB   rO   r_   rX   r0   r.   r   r      s     	0	0
'(.	5r0   r   c                   L   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zej"                  j%                  dej(                  ej*                  ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  g      d        Zej"                  j%                  d ej@                  ddej"                  jC                  d            dd e"jF                   e"jH                  d            z
  fd e"jF                   e"jH                  d             fg      d        Z%d Z&ej"                  jC                  e'd      d        Z(d Z)d Z*d Z+d Z,d  Z-d! Z.d" Z/d# Z0d$ Z1d% Z2y&)'TestNonarrayArgsc                 n    g dg dg dg}g d}g d}t        j                  ||      }t        ||       y )Nr   r   r   r   r   rZ   rZ         )rZ   r   rZ   )r   r   r   )r%   chooser	   )r)   choicestgtr=   outs        r.   test_choosezTestNonarrayArgs.test_chooseU   s8     ii7#S#r0   c                 Z    g d}t        j                  |dd      }g d}t        ||       y )N)rF   rZ   r   r   rD   ir   rg   )r   rZ   r   r   rg   r   r   r%   clipr	   )r)   arrrk   rj   s       r.   	test_clipzTestNonarrayArgs.test_clip_   s(    'ggc1a #S#r0   c                 j    g dg dg}g dg}t        j                  ddg|d      }t        ||       y )Nr   r   r   r   r   rZ   rf   rg      	   r   r   axis)r%   compressr	   r)   rq   rj   rk   s       r.   test_compresszTestNonarrayArgs.test_compresse   s7     kk1a&#A.S#r0   c                     g dg dg}t        j                  ddg      }t        j                  |d      }t        ||       y )Nr   r   rg   r   r   r   r   r   r      r   r   r   rx   )r%   r&   count_nonzeror	   r{   s       r.   test_count_nonzeroz#TestNonarrayArgs.test_count_nonzerol   s=    !hh1vs+S#r0   c                     g dg dg}t        t              5  t        j                  g d      }t	        t        j
                  t        j                  |      |k(               d d d        y # 1 sw Y   y xY w)Nr!   r   rZ   rf   )r   r   rf      x   i  )r   DeprecationWarningr%   r&   r   all
cumproduct)r)   r*   expecteds      r.   test_cumproductz TestNonarrayArgs.test_cumproducts   sO    	",-xx 78HBFF2==+x789 .--s   AA--A6c                 d    g dg dg dg}t        j                  |      }g d}t        ||       y )Nr   r   r   r   )r   rZ   rf   rg   )rv   rw   rD      )r   rZ   rD   )r%   diagonalr	   )r)   r=   rk   rj   s       r.   test_diagonalzTestNonarrayArgs.test_diagonaly   s0     kk!nS#r0   c           	         g dg dg}t        t        j                  |      dk(         t        t        j                  t        j                  |d      t        j                  g d      k(               t        t        j                  t        j                  |d      t        j                  ddg      k(               t        j                  d	
      5 }t        j                  ddt               t        t        j                  t        j                  g                    t        |d   j                  t        u        d d d        y # 1 sw Y   y xY w)Nr!   r         @r   )g      @r   g      @r          @      @Trecordalways )r   r%   meanr   r&   warningscatch_warningsfilterwarningsRuntimeWarningisnancategoryr)   r*   ws      r.   	test_meanzTestNonarrayArgs.test_mean   s    	"
c!"rwwq!}(AABCrwwq!}"b(::;<$$D1Q##Hb.ABHHRWWR[)*AaDMM^34 211s   A+EEc                 N    g d}t        t        j                  |d      d       y )N)r   r   rZ   rD   g      @r   rx   g      .@)r	   r%   ptpr)   r=   s     r.   test_ptpzTestNonarrayArgs.test_ptp   s    &RVVAA&-r0   c                 d    g dg dg dg}g d}t        t        j                  |d      |       y )Nr   )rZ   rf   rg   rw   )rD   r   r   rZ   )r   ib  iX  rF   rx   )r	   r%   prodr)   rq   rj   s      r.   	test_prodzTestNonarrayArgs.test_prod   s.     RWWSr*C0r0   c                 f    g dg dg dg dg}g d}t        t        j                  |      |       y )Nr!   r   rg   rv   rw   rD   r      )r   r   r   r   rZ   rf   rg   rv   rw   rD   r   r   )r	   r%   ravel)r)   r=   rj   s      r.   
test_ravelzTestNonarrayArgs.test_ravel   s'    	9l;5RXXa[#&r0   c                 X    g d}g d}t        j                  |d      }t        ||       y )Nr!   )r   r   r   r   r   r   r   )r%   repeatr	   )r)   r=   rj   rk   s       r.   test_repeatzTestNonarrayArgs.test_repeat   s%     ii1oS#r0   c                 p    g dg dg dg dg}g dg dg}t        t        j                  |d      |       y )Nr!   r   r   r   )r   r   r   r   rZ   rf   )rg   rv   rw   rD   r   r   )r   rf   )r	   r%   reshaper   s      r.   test_reshapezTestNonarrayArgs.test_reshape   s0    )Y=!#89RZZV,c2r0   c                    g d}g d}t        t        j                  |d      |       t        j                  d      }t	        t        |j                         t        j                               t        |j                         d       y )N)g(\?g(\"R@gffffff@g      
@)g?g      R@g@g	@r   )decimalsrS   )r	   r%   aroundfloat64r   
isinstanceround)r)   rq   rj   ss       r.   
test_roundzTestNonarrayArgs.test_round   sW    '#RYYsQ/5JJrN
1779bjj12QWWY#r0   r7   c                 j    |d      }t        t        t        |      t                     t        t        t        |d       t                     t        t        t        |d       t                     t	        t        |      d       t	        t        |d       d       t	        t        |d       d       y )Nr   ndigits)r   r   r   intr	   )r)   r7   r   s      r.   test_dunder_roundz"TestNonarrayArgs.test_dunder_round   sz     !H
58S)*
5D>3/0
5D1378U1Xq!U1d^Q'U1d+Q/r0   zval, ndigitsirF   zOut of range of int32reason)marksr   c                 j    t        t        ||      t        t        j                  |      |             y N)r	   r   r%   int32)r)   valr   s      r.   test_dunder_round_edgecasesz,TestNonarrayArgs.test_dunder_round_edgecases   s$     	U3(%w*GHr0   c                    t        j                  dddz  z        }t        t        t	        |d      t         j                               t        t	        |d      dddz  z         t        t        t	        |d      t         j                               t        t	        |d      dddz  z         t        j                  d      }t        t        t	        |d      t         j                               t        t	        |d      d	       t        t        t	        |d      t         j                               t        t	        |d      d	       y )
Nffffff@rD   I   r   r   i  i  )r%   r   r   r   r   r   int64)r)   fis      r.   test_dunder_round_accuracyz+TestNonarrayArgs.test_dunder_round_accuracy   s    JJsRV|$
5C="**56U1c]C"b&L9
5C0"**=>U1c2C"b&LAHHSM
5B<23U1b\3/
5B/:;U1b137r0   zgh-15896)rM   r   c                 z    dddz  z  }t        t        t        j                  |      d      t        |d             y )Nr   rD   r   r   )r	   r   r%   r   )r)   r   s     r.   test_round_py_consistencyz*TestNonarrayArgs.test_round_py_consistency   s.    "b&LU2::a=#.a>r0   c                 P    g d}t        j                  |d      }t        |d       y )N)ir   rF   r   rf   rD   r   r   )r%   searchsortedr	   )r)   rq   rk   s      r.   test_searchsortedz"TestNonarrayArgs.test_searchsorted   s!    $ooc1%S!r0   c                     g dg dg}t        t        j                  |      dk(         t        t        j                  |d      dk(         t        t        j                  |d      dk(         y )Nr!   r   rf   r   r   r   r   )r   r%   sizer)   r*   s     r.   	test_sizezTestNonarrayArgs.test_size   sN    	"
a 1"#1"#r0   c                 N   g dg dg dgg}t        t        j                  |      j                  d       t        t        j                  t        j                  d            j                  d       t        t        j                  t        j                  d      d      j                  d	       t        t        j                  t        j                  d      d
      j                  d       t        t        j                  t        j                  d      d      j                  d       t        t        j                  t        j                  d	      g      j                  d       t        t        j                  t        j                  d	      gd      j                  d	       t        t        j                  t        j                  d	      gd      j                  d       t        t        j                  t        j                  d	      gd
      j                  d       y )Nr   r   r   r   r   r   r   r   r   r   r   )r   r   r   )r   r   rx   r   r   rF   r   r   r   )r	   r%   squeezer8   r@   r   s     r.   test_squeezezTestNonarrayArgs.test_squeeze   sQ   I./RZZ]((&1RZZ 34::DARZZ 3!<BBFKRZZ 3"=CCVLRZZ 3!<BBFKRZZ&!1 23994@RZZ&!1 2;AA6JRZZ&!1 2;AA6JRZZ&!1 2<BBFKr0   c                 P   g dg dg}t        t        j                  |      d       t        t        j                  |d      t        j                  g d             t        t        j                  |d      t        j                  ddg             t	        j
                  d	      5 }t	        j                  d
dt               t        t        j                  t        j                  g                    t        |d   j                  t        u        d d d        y # 1 sw Y   y xY w)Nr!   r   gbp@S?r   )      ?r   r   r   gɪo ?Tr   r   r   )r   r%   stdr&   r   r   r   r   r   r   r   r   s      r.   test_stdzTestNonarrayArgs.test_std   s    	"BFF1I'89BFF1aL"((?*CDBFF1aL"((J
3K*LM$$D1Q##Hb.ABHHRVVBZ()AaDMM^34 211s   (A+DD%c                     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        j                  |dd      }t        ||       y )	Nr   r   r   rf   r   rZ   r   rg   )r%   swapaxesr	   )r)   rj   r=   rk   s       r.   test_swapaxeszTestNonarrayArgs.test_swapaxes   sf    AA1a&1a&!12!fq!fAA/0kk!Q"S#r0   c                 r    g dg dg dg}dgdgdgg}t        j                  |dd	      }t        ||       y )
Nr!   r   r   rf      r   r   Try   keepdims)r%   sumr	   )r)   mrj   rk   s       r.   test_sumzTestNonarrayArgs.test_sum  sB     sRD2$ffQQ.S#r0   c                 `    g d}g d}g d}t        j                  ||      }t        ||       y )N)r   r   rZ   )r   r   r   r   r   r   r   rZ   )r%   taker	   )r)   rj   indicesr=   rk   s        r.   	test_takezTestNonarrayArgs.test_take  s+    gga!S#r0   c                 X    ddgddgddgg}t        t        j                  |      d       y )Nr   r   r   r   rZ   rf   )r	   r%   trace)r)   cs     r.   
test_tracezTestNonarrayArgs.test_trace  s,    VaVaV$RXXa[!$r0   c                 j    ddgddgddgg}g dg dg}t        t        j                  |d	      |       y )
Nr   r   r   r   rZ   rf   )r   r   rZ   )r   r   rf   r   r   )r	   r%   	transposer   s      r.   test_transposezTestNonarrayArgs.test_transpose  s9    1v1v1v&)$R\\#v.4r0   c                    g dg dg}t        t        j                  |      d       t        t        j                  |d      t        j                  g d             t        t        j                  |d      t        j                  ddg             t	        j
                  d	      5 }t	        j                  d
dt               t        t        j                  t        j                  g                    t        |d   j                  t        u        d d d        t        j                  d dg      }d|d<   t        t        j                  |      d       y # 1 sw Y   ExY w)Nr!   r   gUUUUUU@r   )      @r  r  r   gvWUU?Tr   r   r                 ?g      ?)r   r%   varr&   r   r   r   r   r   r   r   )r)   r*   r   Bs       r.   test_varzTestNonarrayArgs.test_var  s    	"BFF1I'9:BFF1aL"((3E*FGBFF1aL"((J
3K*LM$$D1Q##Hb.ABHHRVVBZ()AaDMM^34 2
 HHdAY!BFF1It, 21s   (A+EE N)3rT   rU   rV   rl   rr   r|   r   r   r   r   r   r   r   r   r   r   rL   markparametrizer%   int8int16r   r   uint8uint16uint32uint64float16rA   r   r   paramxfailmathceillog10r   r   AssertionErrorr   r   r   r   r   r   r   r   r   r  r	  rX   r0   r.   ra   ra   S   s   :	5.1'
3
$ [[W
288RXX
"))RYY		


BJJ

' 
0
0 [[^Y++##+B#C	
 
Aidii


9 5667	YTYYztzz)4556. II8 [[nZ@? A?
$
L	5%5
-r0   ra   c                       e Zd Zd Zy)TestIsscalarc                 @   t        t        j                  d             t        t        j                  t        j                  d                   t        t        j                  d             t        t        j                  d             t        t        j                  dg              t        t        j                  d               ddlm} t        t        j                   |dd                   dd	lm} t        t        j                   |                    y )
Ng@i90  Fr   r   )FractionrZ      )Number)r   r%   isscalarr  	fractionsr  numbersr  )r)   r  r  s      r.   test_isscalarzTestIsscalar.test_isscalar/  s    C !BHHUO,-E"#G$%BKK&&'BKK%%& 	'HQO,-"FH%&r0   N)rT   rU   rV   r"  rX   r0   r.   r  r  .  s    'r0   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestBoolScalarc                     t         j                  }t         j                  }d}t        |xr ||u        t        |xr ||u        y )Nxyzr%   False_True_r   )r)   r   tr   s       r.   test_logicalzTestBoolScalar.test_logical?  s9    IIHHqQqQr0   c                     t         j                  }t         j                  }t        ||z  |u        t        ||z  |u        t        ||z  |u        t        ||z  |u        y r   r'  r)   r   r*  s      r.   test_bitwise_orzTestBoolScalar.test_bitwise_orF  T    IIHHQ1Q1Q1Q1r0   c                     t         j                  }t         j                  }t        ||z  |u        t        ||z  |u        t        ||z  |u        t        ||z  |u        y r   r'  r-  s      r.   test_bitwise_andzTestBoolScalar.test_bitwise_andN  r/  r0   c                     t         j                  }t         j                  }t        ||z  |u        t        ||z  |u        t        ||z  |u        t        ||z  |u        y r   r'  r-  s      r.   test_bitwise_xorzTestBoolScalar.test_bitwise_xorV  r/  r0   N)rT   rU   rV   r+  r.  r1  r3  rX   r0   r.   r$  r$  >  s     r0   r$  c                   $    e Zd Zd Zd Zd Zd Zy)TestBoolArrayc                    t        j                  dgdz  t              dd  | _        t        j                  dgdz  t              dd  | _        t        j                  dgdz  t              dd  | _        | j                  j                         | _        | j                  j                         | _        d| j                  d<   d| j                  d	<   d| j                  d<   d| j                  d	<   y )
NT)   r>   r   F*   r   r   r   )	r%   r&   boolr*  r   ocopynmimr)   s    r.   setup_methodzTestBoolArray.setup_method`  s    4&2+T21375'B,d3AC85'B,d3AC8&&++-&&++-

r0   c                    t        | j                  j                                t        | j                  j                                t        | j                  j                                 t        | j                  j                                 t        | j
                  j                                t        | j                  j                                t        | j
                  j                                 t        | j                  j                                 t        d      D ]  }t        j                  dgdz  t              dd  }d||<   t        t        j                  |             t        j                  dgdz  t              dd  }d||<   t        t        j                  |              t        ||         t        t        ddd	            g d
z   D ]  }t        j                  dgdz  t              }d||<   t        t        j                  |      d|z         t        j                  dgdz  t              }d||<   t        t        j                  |       d|z          y )N   F   r>   rg   Trw   ip  i  )iT  i_ rE   iˆ z%rmsg)r   r*  r   anyr   r<  r=  ranger%   r&   r9  r   list)r)   r   des       r.   test_all_anyzTestBoolArray.test_all_anyl  s   



DFFJJL !DFFJJL !DGGKKM!"DGGKKM!"wA%3d3AC8AAaDBFF1I$#T2137AAaDq	M"q1"%   eAtS)*-??A%6)6AAaDBFF1I4!8,$&5AAaDq	Mtax0 @r0   c                    t        | j                   | j                         t        t        j                  | j                         | j                         t        t        j                  | j                         | j                         t        t        j                  | j                        | j                         t        t        j                  | j                         | j                         t        t        j                  | j                         | j                         t        t        j                  | j
                         | j                         t        j                  | j                  | j                         t        | j                  | j                         t        j                  | j                  | j                         t        | j                  | j                         y )Nrk   )	r   r*  r   r%   absr<  r=  logical_notr:  r>  s    r.   test_logical_not_absz"TestBoolArray.test_logical_not_abs  s   DFF7DFF+266466'?DFF3266466'?DFF3266$&&>4662BFF466N?DFF3BFF466N?DFF3266477(+TWW5
tvv466*466466*
tvv466"466466*r0   c                 	   t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        j                  | j                  | j                  | j
                         t        | j
                  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        j                  | j                  | j                  | j
                         t        | j
                  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        j                  | j                  | j                  | j
                         t        | j
                  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  d       t        | j                  dz  | j                         t        | j                  dz  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        | j                  dz  | j                         t        | j                  dz  | j                         t        | j                  | j                  z  | j                         t        | j                  | j                  z  | j                         t        | j                  dz  | j                         t        | j                  dz  | j                         y )NrL  FT)
r   r*  r   r%   
logical_orr:  logical_andlogical_xorr<  r=  r>  s    r.   test_logical_and_or_xorz%TestBoolArray.test_logical_and_or_xor  s   466DFF?DFF3466DFF?DFF3466DFF?DFF3466DFF?DFF3
dffdff$&&1466466*466DFF?DFF3466DFF?DFF3466DFF?DFF3466DFF?DFF3
tvvtvv4662466466*466DFF?DFF3466DFF?DFF3466DFF?DFF3466DFF?DFF3
tvvtvv4662466466*477TVV+TWW5477TVV+U3477T>4773477U?DFF3477TVV+TVV4477TVV+TWW5477T>4662477U?DGG4477TVV+TWW5477TVV+TWW5477T>4773477U?DGG4r0   N)rT   rU   rV   r?  rJ  rO  rT  rX   r0   r.   r5  r5  _  s    
16+5r0   r5  c                       e Zd Zd Zd Zd Zy)TestBoolCmpc                 x   t        j                  dt         j                        | _        t        j                  | j                  j                  t
              | _        t        j                  dt         j                        | _        t        j                  | j                  j                  t
              | _	        d}t        d      D ]h  }t        d      D cg c]
  }|d|z  z   c}| j                  ||dz    t        d      D cg c]  }|d|z  z  dk7   c}| j                  ||dz    |dz  }j d}t        d      D ]h  }t        d	      D cg c]
  }|d|z  z   c}| j                  ||d	z    t        d	      D cg c]  }|d|z  z  dk7   c}| j                  ||d	z    |d	z  }j | j                  j                         | _        | j                  j                         | _        t         j                  | j                  | j                  <   t         j                  | j                  | j                  <   | j                  j                         | _        | j                  j                         | _        t         j"                  | j                  d d d
   | j                  d d d
   <   t         j"                  | j                   d d d
   | j                  d d d
   <   t         j"                   | j                  dd d
   | j                  dd d
   <   t         j"                   | j                   dd d
   | j                  dd d
   <   t         j                  | j                  dd d
   | j                  dd d
   <   t         j                  | j                   dd d
   | j                  dd d
   <   | j                  j                         | _        d| j$                  dd d
<   | j                  j                         | _        d| j&                  dd d
<   | j                  j                         | _        | j                  j                         | _        | j(                  | j                  xx   dz  cc<   | j*                  | j                  xx   dz  cc<   t         j"                   | j(                  dd d   | j                  dd d   <   t         j"                   | j*                  dd d   | j                  dd d   <   t         j                   | j(                  d
d d   | j                  d
d d   <   t         j                   | j*                  d
d d   | j                  d
d d   <   d| j(                  d	d d   | j                  d	d d   <   d| j*                  d	d d   | j                  d	d d   <   y c c}w c c}w c c}w c c}w )NrB  r>      r       rv   r      r   r   r   F      rf   g       )r%   onesrA   r   r   r9  efr   rH  edrF  r;  nfndnaninffinfdinfefnonanednonansignfsignd)r)   r   r   xs       r.   r?  zTestBoolCmp.setup_method  su   BJJ/''$&&++T2BJJ/''$&&++T2rA/4Qx8x!QAXx8DFF1QqSM7<Qx@x!q1a4xAox@DGGAacNFA  rA/4Qx8x!QAXx8DFF1QqSM7<Qx@x!q1a4xAox@DGGAacNFA 
 &&++-&&++-6666FFKKM	FFKKM	')vv		#A#twwss|$')vv		#A#twwss|$*,&&		!$Q$1&*,&&		!$Q$1&)+		!$Q$1&)+		!$Q$1&ww||~"QTTww||~"QTTVV[[]
VV[[]


477s"

477s"+-66'

14a4A'+-66'

14a4A'+-66'

14a4A'+-66'

14a4A'*-

14a4A'*-

14a4A'I 9@ 9@s   V(	V-V2V7c                    t        d      D ]Q  }t        | j                  |d  dkD  | j                  |d         t        | j                  |d  dz
  dk\  | j                  |d         t        | j                  |d  dk(  | j                  |d          t        | j                  |d   dk  | j                  |d         t        | j                  |d   dz   dk  | j                  |d         | j                  |d  dk7  }t        || j                  |d         | j                  |d  t	        j
                  | j                  |d        k7  }d| j                  |d  k7  }t        ||       t        ||       t        |j                  t        j                        |j                  t        j                               t        |j                  t        j                        |j                  t        j                               t        |j                  t        j                        |j                  t        j                               t        t	        j                  | j                  |d        | j                  |d         t        t	        j                  | j                  |d        | j                  |d          t        t	        j                  | j                  |d        | j                  |d          t        t	        j                  | j                  |d        | j                  |d         t        t	        j                  | j                   |d        | j                  |d         T y )Nr   r   r   )rF  r   r   r]  r%   
zeros_liker\   r  astyper   r_  isfiniterb  isinfre  signbitrg  r)   r   rr2r3s        r.   
test_floatzTestBoolCmp.test_float  t   qAtvvabzA~twwqr{;tvvabzA~2DGGABK@tvvabzQ=qr
{Q<qr
{Q!3TWWQR[Aqr
aAq$''!"+.r}}TVVABZ88BdffQRjBq"%q"%qvvbgg0ABrwwrww/2771CDrwwrww/2771CD rxx4dggabkBr{{47712;7$''!"+Fr{{499QR=9DGGABK<Hrxx		!"6QR8HIrzz$**QR.947712;G- r0   c                    t        d      D ]Q  }t        | j                  |d  dkD  | j                  |d         t        | j                  |d  dz
  dk\  | j                  |d         t        | j                  |d  dk(  | j                  |d          t        | j                  |d   dk  | j                  |d         t        | j                  |d   dz   dk  | j                  |d         | j                  |d  dk7  }t        || j                  |d         | j                  |d  t	        j
                  | j                  |d        k7  }d| j                  |d  k7  }t        ||       t        ||       t        |j                  t        j                        |j                  t        j                               t        |j                  t        j                        |j                  t        j                               t        |j                  t        j                        |j                  t        j                               t        t	        j                  | j                  |d        | j                  |d         t        t	        j                  | j                  |d        | j                  |d          t        t	        j                  | j                  |d        | j                  |d          t        t	        j                  | j                  |d        | j                  |d         t        t	        j                  | j                   |d        | j                  |d         T y )Nr   r   r   )rF  r   rH  r^  r%   rk  r\   r  rl  r   r`  rm  rc  rn  rf  ro  rh  rp  s        r.   test_doublezTestBoolCmp.test_double  ru  r0   N)rT   rU   rV   r?  rt  rw  rX   r0   r.   rV  rV    s    ,.\H4Hr0   rV  c                      e Zd Zd Zd Zej                  j                  ed      ej                  j                   e	j                         dk(  d      d               Zej                  j                  ed      d        Zd	 Zy
)
TestSeterrc           	      ^    t        j                         }t        |t        dddd             y )Nwarnignore)divideinvalidoverunder)r%   geterrr	   dict)r)   errs     r.   test_defaultzTestSeterr.test_default  s*    iikS"(% (*	r0   c                    t        j                         5  t        j                         }t        j                  d      }t        ||k(         t        j                         }t        |d   dk(         t        j                  d       t        t        j                         d   dk(         t        |d   dk(         t        j                  di | t        t        j                         |k(         d d d        y # 1 sw Y   y xY w)Nprintr}  r}  raise)r  r  rX   )r%   errstateseterrr   r  )r)   r  oldnews       r.   test_setzTestSeterr.test_set$  s    [[]))+C))7+CC3J))+CCMW,-II7#BIIK'723CMW,-IIBIIK3&' ]]s   CC;;Dno wasm fp exception supportr   armv5telzSee gh-413.c                    t        j                  d      5  t        t              5  t        j                  dg      t        j                  dg      z   d d d        t        j
                  d       t        j                  dg      t        j                  dg      z   d d d        y # 1 sw Y   UxY w# 1 sw Y   y xY w)Nr  r  rS           r|  )r%   r  r
   FloatingPointErrorr&   r  r>  s    r.   test_divide_errzTestSeterr.test_divide_err1  s|     [[(12"2$/ 3 IIX&HHbTNRXXrd^+ )(22 )(s#   B5.B)AB5)B2	.B55B>c                 (    t        j                         }d _        	 t        j                  d      5 }t        j
                  d       t        j                  d      5  t        j                  g d       t        j                  dg      t        j                  d	g      z   t        t        |      d
       d d d        d d d         fd}t        j                  d      5  t        j                  dd|g       t        j                  dg      t        j                  d	g      z   d d d        t         j                  d
       t        j                  |       t        j                  d      5  t        j                  dd	dd|g       d d d        t         j                  d       t        j                  |        `y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ]xY w# t        j                  |        `w xY w)Nr   Tr   r   r{  r  ) N  r   NrS   r  r   c                      xj                   dz  c_         | }t        t        |      dk(         t        d|d   v        y )Nr   r   r}  r   )calledr   len)args
extobj_errr)   s     r.   log_errz'TestSeterr.test_errobj.<locals>.log_errG  s8    q !
J1,-JqM12r0   r|  r  r   )extobjr   )r%   	geterrobjr  r   r   simplefilterr  	seterrobjr&   r	   r  r}  )r)   	olderrobjr   r  s   `   r.   test_errobjzTestSeterr.test_errobj;  sg   LLN		((5%%h/[[/LL!12HHbTNRXXrd^3 Q+ 0 63 H-eQ01"2$/ . a(LL#H-		"b%G)<= .a(LL#- 0/ 65 .- .- LL#sm   G8 ,G AG:G#G8 %AG +A	G8 4G,G8 G	GGG8  G)%G8 ,G51G8 8Hc                 &   t        j                         }	 t        j                  t        j                  t        j
                  dz   d g       t        j                  t        j                  dg             t        d      D ]6  }t        j                  t        j                  t        j
                  d g       8 t        j                  t        j                  dg             t        j                  |       y # t        j                  |       w xY w)Nr   rf   i'  )	r%   r  r  r   UFUNC_BUFSIZE_DEFAULTERR_DEFAULTr   r&   rF  )r)   r  r   s      r.   test_errobj_noerrmaskz TestSeterr.test_errobj_noerrmaskZ  s    LLN		$LL%55**Q.6 7 HHRXXqc]# 5\e995;L;L!# $ " HHRXXqc]#LL#BLL#s   CC9 9DN)rT   rU   rV   r  r  rL   r
  skipifr   platformmachiner  r  r  rX   r0   r.   ry  ry    s    ( [[(FG[[(((*j8O, P H, [[(FG H<$r0   ry  c                       e Zd Zd Zd Zej                  j                  ed      ej                  j                  de
j                  d         d               Zej                  j                  ed      d        Zy	)
TestFloatExceptionsc           	          t        |      }	  |||       t        dd|d|d       y # t        $ r8}t        t        |      j	                  |      dk\  d|d|d       Y d }~y d }~ww xY w)NFzType z did not raise fpe error 'z'.r   z raised wrong fpe error ')r]   r   r  strfind)r)   fpeerrflopri  yftypeexcs          r.   assert_raises_fpez%TestFloatExceptions.assert_raises_fpen  sj    Q	KAJE?DfMO! 	KCHMM&)Q.>CSIK K	Ks   * 	A+.A&&A+c                     | j                  ||||       | j                  |||d   |       | j                  ||||d          | j                  |||d   |d          y NrX   )r  )r)   r  r  sc1sc2s        r.   assert_op_raises_fpez(TestFloatExceptions.assert_op_raises_fpex  sd     	vtS#6vtSWc:vtS#b':vtSWc"g>r0   r  r   typecodeAllFloatc           
      \   t        j                  d      5  t        j                  |      }t        j                  |      j                  dk(  rHt        j
                  |      }|j                  j                  }|j                  }|j                  }d}d}ntt         |d      j                        }	t        j
                  |	      } ||j                  j                        } ||j                        } ||j                        }d}d}d}
d	}t        j                  |      s*| j                  |d
 ||       | j                  |d ||       | j                  |
d | |d             | j                  |
d | |d             | j                  |
d |||z         | j                  |
d | ||z         | j                  |
t         j                   |d       |d|j                  z               | j                  |d  |d       |d             | j                  |d  |t         j                          |t         j                                | j                  |d  |d       |d             | j                  |d  |t         j                          |t         j                                | j                  |d  |t         j                          |t         j                                 | j                  |d  |d       |t         j                                d d d        y # 1 sw Y   y xY w)Nr  r   r   	underflowdivide by zeror   r   overflowr~  c                     | |z  S r   rX   r=   bs     r.   <lambda>z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>      1r0   c                     | |z  S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>  r  r0   c                     | |z  S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>      !r0   r   c                     | |z  S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>  r  r0         ?c                     | |z   S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>  r  r0   c                     | |z
  S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>  r  r0   c                     | |z  S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>  r  r0   r   c                     | |z  S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>      acr0   c                     | |z  S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>  r  r0   c                     | |z
  S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>  r  r0   c                     | |z   S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>  r  r0   c                     | |z  S r   rX   r  s     r.   r  z>TestFloatExceptions.test_floating_exceptions.<locals>.<lambda>  r  r0   )r%   r  
obj2sctyper7   kindfinfo_machartinymaxepsr]   realr   r  powernexprd  )r)   r  r  fift_tinyft_maxft_epsr  	divbyzerortyper  r~  s               r.   test_floating_exceptionsz,TestFloatExceptions.test_floating_exceptions  s    [[W%MM(+Exx##s*XXe_**//'	,	 U1X]]+XXe_

0rvvrvv		!HG 88G$&&y$4gvG&&y$4gwH""8#3VU1XG""8#3VU3ZI""8#3VVF]L""8#3fWfVmM""8#%88U1XuQZ7HJ""9#3U1XuQxI"")5=%- ""7#3U1XuQxI"")5=%- "")5=%. ""7#3U1XuRVV}Nk &%%s   LL""L+c           	          t        j                  d      5 }t        j                  d       t        j                  d      5  t        j
                  dd       t        t        |      d       t        dt        |d	   j                        v        t        j                  d
      t        j                  d
      z   t        t        |      d       t        dt        |d   j                        v        t        j                  t        j                        t        j                  t        j                        z
   t        t        |      d       t        dt        |d   j                        v        t        j                  d      t        j                  d      z   t        t        |      d       t        dt        |d   j                        v        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NTr   r   r{  r  r   r  r  r   gu <7~r   r  rF   r   zinvalid valuegYnr   r  )r   r   r  r%   r  r}  r	   r  r   r  messager&   rd  )r)   r   s     r.   test_warningsz!TestFloatExceptions.test_warnings  sN    $$D1Q!!(+(		!R SVQ'(C!,==>"((5/1SVQ'
c!B%--&889 288BFF#33SVQ'3qu}}+==> 288F#33SVQ's1R5=='99: ) 21(( 21s$   ,G4FG(G4(G1	-G44G=N)rT   rU   rV   r  r  rL   r
  r  r   r  r%   	typecodesr  r  rX   r0   r.   r  r  m  s    K
? [[(FG[[Zj)AB8N C H8Nt [[(FG; H;r0   r  c                      e Zd Zd Zd Zd Zd Zd Zej                  j                  dddg      ej                  j                  dd	d
g      d               Zej                  j                  ddg ej                  d       ej                  d      g ej                  dg       ej                  dg      gg      d        Zej                  j                  ddg ej                  d       ej                  d      g ej                  dg       ej                  d ej                  d      j                         fg      g ej                  d       ej                  d      g ej                  d       ej                  d      gg      d        Zej                  j                  d eej$                  d         dddddd egz         d!        Zej                  j*                  ej                  j-                  d"      ej                  j                  ddg ej0                   eej$                  d         ddddd egz   d#$            d%                      Zd& Zd' Zd( Zd) Zy*)+	TestTypesc                    t        j                  d      }t        j                  d      t        j                  d      t        j                  d      t        j
                  d      f\  }}}}t        j                  d      t        j                  d      t        j                  d      t        j                  d      f\  }}}	}
t        j                  d      t        j                  d      t        j                  d      }}}t        j                  d      t        j                  d      t        j                  d      }}}t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j
                               t!         |||	      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||	      t        j"                  t         j
                               t!         ||
|      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||	      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |||      t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               t!         |t        j$                  |g      |	      t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               t!         ||
t        j$                  |g            t        j"                  t         j                               t!         ||t        j$                  |	g            t        j"                  t         j                               t!         |t        j                  d      t        j$                  |
g            t        j"                  t         j                               t!         ||t        j$                  |g            t        j"                  t         j                               t!         ||t        j$                  |g            t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               t!         ||t        j$                  |g            t        j"                  t         j                               t!         ||t        j$                  |g            t        j"                  t         j                               t!         |t        j                  d      t        j$                  |g            t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j
                               t!         |t        j$                  |g      |
      t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               t!         |t        j$                  |g      |      t        j"                  t         j                               y )Nr   rF   y              @)r%   bool_r  r  r   r   r  r  r  r  rA   r   
longdouble	complex64
complex128clongdoubler	   r7   r&   )r)   promote_funcr  i8i16i32i64u8u16u32u64f32f64fldc64c128clds                    r.   check_promotion_caseszTestTypes.check_promotion_cases  s   HHQKGGAJRXXa["((1+MCcHHQK1ryy|RYYq\QCc

1rzz!}bmmA6F#Sa"--*:BNN1<M3T 	\"c*BHHRXX,>?\#r*BHHRXX,>?\#s+RXXbhh-?@\"c*BHHRYY,?@\#s+RXXbjj-AB\#s+RXXbmm-DE\#s+RXXbmm-DE\$,bhhr}}.EF\#t,bhhr~~.FG\#s+RXXbnn-EF 	\!S)288BHH+=>\!R("((288*<=\"b)288BHH+=>\"c*BHHRXX,>?\#s+RXXbhh-?@\#s+RXXbjj-AB\#s+RXXbjj-AB\#s+RXXbjj-AB\#s+RXXbjj-AB\#s+RXXbjj-AB\#s+RXXbll-CD\$,bhhr}}.EF\#s+RXXbnn-EF 	\"((A3-4bhhrww6GH\"((A3-4bhhrxx6HI\"((A3-5rxx7IJ\"((A3-5rxx		7JK\"((B4.#68IJ\#rxx7"((9KL\#rxx7"))9LM\"((2,#@XXbjj)	+\#rxx7"**9MN\#rxx7"**9MN\"((C5/37"**9MN\#rxx7XXbll+	-\#rxx7XXbmm,	.\",,r"2BHHcUODXXbmm,	.
 	\"((A3-5rxx

7KL\"((A3-5rxx7IJ\"((A3-5rxx		7JK\"((B4.#68LM\"((C5/37"**9MN 	\"((C5/37"))9LM 	\"((C5/48XXbll+	-r0   c                 0   d }| j                  |       t        j                  ddg      t        j                  ddgt        j                        fD ]  }d|z  }t	        |j
                  t        j
                  d      d	|j
                  z         t        j                  d      |z  }t	        |j
                  t        j
                  t        j                        d	|j
                  z         t        j                  d      |z  }t	        |j
                  t        j
                  d      d	|j
                  z         t        j                  d      |z  }t	        |j
                  t        j
                  d
      d	|j
                  z         t        j                  d      |z  }t	        |j
                  t        j
                  d      d	|j
                  z         d|z  }t	        |j
                  t        j
                  d      d	|j
                  z         t        j                  d      |z  }t	        |j
                  t        j
                  t        j                        d	|j
                  z         t        j                  d      |z  }t	        |j
                  t        j
                  d      d	|j
                  z         t        j                  d      |z  }t	        |j
                  t        j
                  d      d	|j
                  z          y )Nc                 B    t        j                  | |      j                  S r   )r%   addr7   r  s     r.   res_typez)TestTypes.test_coercion.<locals>.res_type!  s    66!Q<%%%r0   TFr   r   r>   gX9v?f8zarray type %sf4f2y        X9v?c16c8)r  r%   r&   r  r	   r7   r  r   rA   r  r  r  r  )r)   r  r=   r  s       r.   test_coercionzTestTypes.test_coercion   s   	& 	""8, ((D%=)288RHBGG+LMA	A"((4./AGG2KLe$q(A"((2=="9(17724

5!A%A"((4./AGG2KL

5!A%A"((4./AGG2KL

5!A%A"((4./AGG2KL
A"((5/?QWW3LMv&*A"((2>>":(17724f%)A"((5/?QWW3LMV$q(A"((4./AGG2KL+ Nr0   c                     | j                  t        j                         t        t        j                  d       t        j                  d       k(         y r   )r  r%   result_typer   r7   r>  s    r.   test_result_typezTestTypes.test_result_typeV  s2    ""2>>2t$67r0   c                 d   t        t        j                  dd      t        j                  d             t        t        j                  dd      t        j                  d             t        t        j                  dd      t        j                  d             t        t        j                  dd      t        j                  d             t        t        j                  dd      t        j                  d             t        t        j                  dd      t        j                  d             t        t        j                  dd      t        j                  d	             t        t        j                  d
d      t        j                  d	             t        t        j                  dd      t        j                  d	             t        t        j                  dd
      t        j                  d	             t        t        j                  dd      t        j                  d	             t        t        j                  dd      t        j                  d	             t        t        j                  dd      t        j                  d             t        t        j                  dd      t        j                  d             t        t        j                  dd      t        j                  d             t        t        j                  dd      t        j                  d             y )N<i8r  >i8z>U16U21z<U16z<S5z<U8U8z>S5z>U8z<U5z>U5z<M8M8z>M8z<m8m8z>m8)r	   r%   promote_typesr7   r>  s    r.   test_promote_types_endianz#TestTypes.test_promote_types_endianZ  s   R%%eU3RXXd^DR%%eU3RXXd^DR%%eV4bhhuoFR%%eV4bhhuoFR%%fe4bhhuoFR%%fe4bhhuoFR%%eU3RXXd^DR%%eU3RXXd^DR%%eU3RXXd^DR%%eU3RXXd^DR%%eU3RXXd^DR%%eU3RXXd^DR%%eU3RXXd^DR%%eU3RXXd^DR%%eU3RXXd^DR%%eU3RXXd^Dr0   c                 \   g d}d}t        j                  t              }|D ]I  }t        j                  |      }t        j                  ||      sJ t        j                  ||      |u rIJ  |D ]g  }t        j                  |      }t        j                  ||      rJ t        j                  t              5  t        j                  ||       d d d        i t        j                  d      }t        j                  ||      sJ t        j                  ||      |u sJ y # 1 sw Y   xY w)N)r  r  r   r   r9  BHILQPFDGmMfVdouble)r%   r7   r   can_castr  rL   rM   	TypeError)r)   valid_typesinvalid_typesrational_dtnumpy_dtype	double_dts         r.   #test_can_cast_and_promote_usertypesz-TestTypes.test_can_cast_and_promote_usertypesp  s    
 B;hhx(&K((;/K;;{K888##K=LLL '
 )K((;/K{{;<<<y)  k: *) ) HHX&	{{;	222	;79DDD *)s   9D""D+	swapr   string_dtypeUSc                    |dk(  rd }nt         j                  }|}t         |d|      t        j                  |dz                t         |d|      t        j                  |dz                t         |d|      t        j                  |dz                t         |d	|      t        j                  |dz                t         |d
|      t        j                  |dz                t         |d|      t        j                  |dz                t         |d|      t        j                  |dz                t         |d|      t        j                  |dz                t         |d|      t        j                  |dz                t         |d|      t        j                  |dz                t         |d|dz         t        j                  |dz                t         |d|dz         t        j                  |dz                t         |d|dz         t        j                  |dz                t         |d|dz         t        j                  |dz                t         |d|dz         t        j                  |dz                t         |d|dz         t        j                  |dz                t         |d	|dz         t        j                  |dz                t         |d	|dz         t        j                  |dz                t         |d
|dz         t        j                  |dz                t         |d
|dz         t        j                  |dz                t         |d|dz         t        j                  |dz                t         |d|dz         t        j                  |dz                t         |d|dz         t        j                  d             y )Nr!  c                 .    t        j                  ||       S r   r%   r  r  s     r.   r  z6TestTypes.test_promote_types_strings.<locals>.<lambda>  s    )9)9!Q)?r0   r9  5r  4u13u2u410r  20i1i26i411r  21130O)r%   r  r	   r7   )r)   r!  r"  r  r$  s        r.   test_promote_types_stringsz$TestTypes.test_promote_types_strings  s    6>?M,,M 	]61-rxx#?]3*BHHQsUO<]4+RXXae_=]4+RXXae_=]4+RXXaf-=>]4+RXXaf-=>]4+RXXae_=]4+RXXae_=]4+RXXaf-=>]4+RXXaf-=>]61S51288AcE?C]61T62BHHQtV4DE]3#.3@]3$/!D&1AB]43/!C%A]440"((1T62BC]43/!C%A]440"((1T62BC]43/!D&1AB]440"((1T62BC]43/!D&1AB]440"((1T62BC]3$/#?r0   dtype1dtype2V6V10)name1r  )name2r  c                     t        j                  t              5  t        j                  ||       d d d        y # 1 sw Y   y xY wr   )rL   rM   r  r%   r  r)   r:  r;  s      r.   test_invalid_void_promotionz%TestTypes.test_invalid_void_promotion  s,     ]]9%VV, &%%s	   :Ar>  r  zi8,i8zi8,>i8i4,i4c                 :    t        j                  ||      |k(  sJ y r   r'  rA  s      r.   test_valid_void_promotionz#TestTypes.test_valid_void_promotion  s     /6999r0   r7   Allzi,i10iS3S100U3U100c                 z   ddi}t        j                  ||      }t        j                  ||      }|j                  |j                  k(  sJ |j	                         }|j
                  ry t        j                  ||      }|j                  dk7  r|j                  J |j                  |k(  sJ |j
                  sJ y )Nr   metadatar#  )r%   r7   r  rN  newbyteorderisnativechar)r)   r7   rN  ress       r.   %test_promote_identical_types_metadataz/TestTypes.test_promote_identical_types_metadata  s     q62ue,||u~~--- ""$>>ue, ::<<'''<<8+++|||r0   z)ignore:Promotion of numbers:FutureWarningr   )r   c                    ddi}ddi}t        j                  ||      }t        j                  ||      }	 t        j                  ||      }|j                  dvs|j
                  |j                  dk7  r|j                  bJ ||k(  r||u sWJ ||k(  rBt        j                  ||j                        |k(  r|j                  du  n|j                  |k(   n|j                  J |j                         }|j                  |k(  sJ t        j                  ||      }||k(  sJ |j                  |j                  k(  sJ y# t        $ r Y yw xY w)a  Metadata handling in promotion does not appear formalized
        right now in NumPy. This test should thus be considered to
        document behaviour, rather than test the correct definition of it.

        This test is very ugly, it was useful for rewriting part of the
        promotion, but probably should eventually be replaced/deleted
        (i.e. when metadata handling in promotion is better defined).
        r   r   rM  NUSVrX   )
r%   r7   r  r  rQ  namesr8   rN  r  rO  )r)   r:  r;  	metadata1	metadata2rR  res_bss          r.   test_promote_types_metadataz%TestTypes.test_promote_types_metadata  sG     F	F	&95&95	""662C
 885 CII$9SYY"_ <<'''F]&= =F] 4>$	)<<''' $$&)+++!!&&1}}#,,...9  		s   D? ?	E
Ec                     t        t        j                  t        j                  t        j                               t        t        j                  t        j
                  t                     t        t        j                  t        t                      t        t        j                  dd             t        t        j                  dd              t        t        j                  dd             t        t        j                  ddd             t        t        j                  ddd              t        t        j                  ddd	             t        t        j                  d
dd	              t        t        j                  d
dd             t        t        j                  ddd              t        t        j                  ddd             t        t        j                  ddd              t        t        j                  ddd             t        t        j                  dd             t        t        j                  dd              t        t        j                  dd             t        t        j                  dd              t        t        j                  dd             t        t        j                  dd              t        t        j                  dd             t        t        j                  dd              t        t        j                  dd             t        t        j                  dd              t        t        j                  dd             t        t        j                  dd              t        t        j                  dd             t        t        j                  dd              t        t        j                  dd              t        t        j                  dd              t        t        j                  dd             t        t        j                  dd              t        t        j                  dd!             t        t        j                  dd              t        t        j                  dd             t        t        j                  dd              t        t        j                  dd"             t        t        j                  dd#              t        t        j                  dd#             t        t        j                  dd$              t        t        j                  dd%             t        t        j                  dd"              t        t        j                  dd&             t        t        j                  dd'              t        t        j                  dd(             t        t        j                  dd)              t        t        j                  dd"             t        t        j                  dd#              t        t        j                  dd*             t        t        j                  dd%              t        t        j                  dd+             t        t        j                  dd&              t        t        j                  dd,             t        t        j                  dd(              t        t        t        j                  dd        t        t        t        j                  d d       t        t        j                  t        j                  t        j                  -             y ).Nr  r  r  r3  S11nor  r  equivz<i4safez>i4	same_kindz>u4unsafer9  S5S4r  rH  r*  S2r,  r-  S10S9r  S20S19r0  r1  S6S21U4rJ  U2U5U10U9U20U19U6U11r  )from_to)
r   r%   r  r   r   r   complexfloatr
   r  r>  s    r.   test_can_castzTestTypes.test_can_cast  s   BHHbhh/0BJJ01BKK//0D$'(BKKd++,D%()D$-.BKKud334E5'23BKKug667E5&12BKKuf556E5+67BKKuk::;E5(34FD)*BKK--.C&'BKKT**+D$'(BKKd++,D$'(BKKd++,D%()BKKd++,D%()BKKe,,-D$'(BKKd++,D$'(BKKd++,D%()BKKe,,-D%()BKKe,,-FD)*BKK--.C&'BKKT**+D$'(BKKd++,D$'(BKKd++,D%()BKKd++,D%()BKKe,,-D$'(BKKd++,D$'(BKKd++,D%()BKKe,,-D%()BKKe,,-idD9idD9 	"((rxx89r0   c                    t        t        j                  dd              t        t        j                  dd              t        t        j                  ddd             t        t        j                  ddd             t        t        j                  ddg              t        t        j                  ddgd              t        t        j                  ddgd             t        t        j                  dd	g              t        t        j                  dd	gd             t        t        j                  dd
g              t        t        j                  dd
gd             y )Nr3  rC  zi4,i2ra  castingr1  f1r3  r`  )r}  rC  )r}  z(2,3)i4r   r%   r  r>  s    r.   "test_can_cast_simple_to_structuredz,TestTypes.test_can_cast_simple_to_structured^  s   BKKg../BKKg../D'8<=D'8<=BKK|n556BKK|nkJJKD<.(CDBKK&7889D?"3XFGBKK'8&9::;D#4"5xHIr0   c                 p   t        t        j                  dgd              t        t        j                  dgdd             t        t        j                  dgdd             t        t        j                  ddd              t        t        j                  ddgfgd              t        t        j                  ddgfgdd             t        t        j                  d	gd              t        t        j                  d	gdd             t        t        j                  d
gdd              y )Nr|  r3  ra  rz  r1  rC  r}  )ri  r3  )f0z(3,)i4)r  rC  r   r~  r>  s    r.   "test_can_cast_structured_to_simplez,TestTypes.test_can_cast_structured_to_simplen  s    BKK556\ND(CD\ND(CD 	BKKx@@ABKK$!6 7>>?d[M23T8LM 	BKK!1 2D99:-.hGHBKK!8 94(02 2 	3r0   c                    t         j                  d   t         j                  d   z   D ]  }t        j                  |      }t        t        j                  |j
                  |             t        t        j                  |j                  |             t        t        j                  |j
                  dz
  |              t        t        j                  |j                  dz   |               t         j                  d   D ]i  }t        j                  |      }t        t        j                  |j
                  |             t        t        j                  |j                  |             k y )Nr   uintr   rw  )r%   sctypesiinfor   r  minr  r  )r)   dtiir  s       r.   test_can_cast_valueszTestTypes.test_can_cast_values  s    **U#bjj&88B"BBKK+,BKK+,BFFQJ334BFFQJ334 9 **W%B"BBKK+,BKK+, &r0   N)rT   rU   rV   r  r	  r  r  r   rL   r
  r  r9  r%   r7   rB  rO  rE  rG  r  r   rS  slowr   	itertoolsproductrZ  rx  r  r  r  rX   r0   r.   r  r    s   H-TMl8E,E0 [[Vb&\2[[^c3Z8!@ 9 3!@F [[h1bhhtnhbhhuo.bhh()8288_4E+FG
-
- [[h1bhhuoxrxx/bhh()bhh("((4."="="?@ABDbhhw(!34bhhw'!23	:: [[We$%E4vx@ABB2 [[[[ KL[[h1IR\\%()fdFH=>
,/ M ,/\K:ZJ 3&-r0   r  c                       e Zd Zy)
NIterErrorNrT   rU   rV   rX   r0   r.   r  r    s    r0   r  c            
          e Zd Zd Zd Zd Zd Zd Zej                  j                  deeg      ej                  j                  ddgd	d
g      d               Zej                  j                  dg d      d        Zej                  j                  ddgdg dfdg dfdg dfdg df ej                   d      ddgfg      ej                  j                  dddg      d               Zd Zd Zd Zy) TestFromiterc                 &    d t        d      D        S )Nc              3   &   K   | ]	  }|d z    yw)r   NrX   ).0ri  s     r.   	<genexpr>z'TestFromiter.makegen.<locals>.<genexpr>  s     (i1is   r   )rF  r>  s    r.   makegenzTestFromiter.makegen  s    (eBi((r0   c                 ^   t        j                  | j                         t         j                        }t        j                  | j                         t         j                        }t        j                  | j                         t
              }t        |j                  t        j                  t         j                        k(         t        |j                  t        j                  t         j                        k(         t        |j                  t        j                  t
              k(         y r   )r%   fromiterr  r   r   rw  r   r7   )r)   ai32ai64afs       r.   
test_typeszTestFromiter.test_types  s    {{4<<>2884{{4<<>2884[[/

bhhrxx001

bhhrxx001BHHUO+,r0   c           	         t        j                  t        | j                                     }t        j                  | j                         t
              }t        j                  | j                         t
        d      }t        t        |      t        |      k(         t        t        |      dk(         t        t        t         j                  | j                         t
        t        |      dz          y )N   rD   )
r%   r&   rG  r  r  r   r   r  r
   rN   r)   r   r=   a20s       r.   test_lengthszTestFromiter.test_lengths  s    88D01KK,kk$,,.#r2A#h-'(CBj"++,,.#s8}r/A	Cr0   c                    t        j                  t        | j                                     }t        j                  | j                         t
              }t        j                  | j                         t
        d      }t        t        j                  ||k(  d             t        t        j                  ||d d k(  d             y )Nr  r   rx   )r%   r&   rG  r  r  r   r   r   r  s       r.   test_valueszTestFromiter.test_values  s~    88D01KK,kk$,,.#r2qH}1-.shsm+!45r0   c              #   Z   K   t        |      D ]  }||k(  rt        d|z        |  y w)Nzerror at index %s)rF  r  )r)   neindexrI  s       r.   	load_datazTestFromiter.load_data  s3      qAF{ !4v!=>>G s   )+r7   counterror_index)rD   rZ   )rD   rw   c                     | j                  ||      }t        j                  t              5  t	        j
                  |||       d d d        y # 1 sw Y   y xY w)N)r7   r  )r  rL   rM   r  r%   r  )r)   r  r  r7   iterables        r.   	test_2592zTestFromiter.test_2592  s<    
 >>%5]]:&KKU; '&&s   AA)r$  S0V0U0c                     t        j                  t        d      5  t        j                  g |       d d d        y # 1 sw Y   y xY w)NzMust specify lengthrH   r>   )rL   rM   rN   r%   r  )r)   r7   s     r.   test_empty_not_structuredz&TestFromiter.test_empty_not_structured  s.     ]]:-BCKK%( DCCs	   =AdatarH  )	r   r   r   r   rZ   rf   rg   rv   rw   r8  zi,O)r   r   )rZ   r   r   r   )rw   rv   rf   rg   2i)r8  r  )r!   rd   ))r   r   r   )rZ   r   r   length_hintr   r   c                     t        j                  |      }dz   G fdd      }t        j                   |       |      }t        j                  |      }t	        ||       y )Nd   c                   "    e Zd ZfdZ fdZy)?TestFromiter.test_growth_and_complicated_dtypes.<locals>.MyIterc                     S r   rX   )r)   r  s    r.   __length_hint__zOTestFromiter.test_growth_and_complicated_dtypes.<locals>.MyIter.__length_hint__  s	    ""r0   c                     t              S r   iter)r)   r  s    r.   __iter__zHTestFromiter.test_growth_and_complicated_dtypes.<locals>.MyIter.__iter__  s    Dz!r0   NrT   rU   rV   r  r  )r  r  s   r.   MyIterr    s    #"r0   r  r>   )r%   r7   r  r&   r   )r)   r7   r  r  r  rR  r   s     ``   r.   "test_growth_and_complicated_dtypesz/TestFromiter.test_growth_and_complicated_dtypes  sS     cz	" 	" kk&(%088D.3)r0   c                      G d d      }t        j                   |       d      }|j                  dk(  sJ |j                  dk(  sJ y )Nc                       e Zd Zd Zd Zy).TestFromiter.test_empty_result.<locals>.MyIterc                      yNrD   rX   r>  s    r.   r  z>TestFromiter.test_empty_result.<locals>.MyIter.__length_hint__  s    r0   c                     t        g       S r   r  r>  s    r.   r  z7TestFromiter.test_empty_result.<locals>.MyIter.__iter__  s    Bxr0   Nr  rX   r0   r.   r  r    s     r0   r  rH  r>   r4   )r%   r  r8   r7   )r)   r  rR  s      r.   test_empty_resultzTestFromiter.test_empty_result  sD    	  	  kk&(#.yyD   yyCr0   c                     d}t        j                  t        |      5  t        j                  g ddt
               d d d        y # 1 sw Y   y xY w)Nz>iterator too short: Expected 10 but iterator had only 3 items.rH   r!   rD   )r  r7   )rL   rM   rN   r%   r  r   )r)   rD  s     r.   test_too_few_itemszTestFromiter.test_too_few_items  s1    N]]:S1KK	37 211s   AAc                 z   t        j                  t              5  t        j                  g dt
               d d d        d t        d      D        }t        j                  t              5  t        j                  |t        j                  t
        df             d d d        y # 1 sw Y   nxY w# 1 sw Y   y xY w)N)r   Nr   r>   c              3       K   | ]  }d   yw)r"   NrX   )r  r   s     r.   r  z7TestFromiter.test_failed_itemsetting.<locals>.<genexpr>  s     0x!Ixs   rZ   r   )	rL   rM   r  r%   r  r   rF  rN   r7   )r)   r  s     r.   test_failed_itemsettingz$TestFromiter.test_failed_itemsetting  sr    ]]9%KKC0 & 1uQx0]]:&KK#q(:; '& &%
 '&s   B%+1B1%B.1B:N)rT   rU   rV   r  r  r  r  r  rL   r
  r  r   objectr  r  r%   r7   r  r  r  r  rX   r0   r.   r  r    s2   )-C6 [[WsFm4[[g}57IJ< K 5< [[W&=>) ?) [[gv.././=> <=bhh}%%'=>@AB [[]QF3* 4B*&
 8
<r0   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej(                  j+                  ed      d        Zy)TestNonzeroc                    t        t        j                  t        j                  g             d       t        t        j                  t        j                  g d            d       t        t        j                  t        j                  g             g f       t        t        j                  t        j                  dg            d       t        t        j                  t        j                  dgd            d       t        t        j                  t        j                  dg            g f       t        t        j                  t        j                  dg            d       t        t        j                  t        j                  dgd            d       t        t        j                  t        j                  dg            dgf       y Nr   ?r>   r   )r	   r%   r   r&   nonzeror>  s    r.   test_nonzero_trivialz TestNonzero.test_nonzero_trivial  s   R%%bhhrl3Q7R%%bhhr&=>BRZZ-u5R%%bhhsm4a8R%%bhhs#&>?CRZZ!.6R%%bhhsm4a8R%%bhhs#&>?CRZZ!.!7r0   c                    t        t        j                  t        j                  d            d       t        t        j                  t        j                  dd            d       t	        t
              5  t        t        j                  t        j                  d            g f       d d d        t        t        j                  t        j                  d            d       t        t        j                  t        j                  dd            d       t	        t
              5  t        t        j                  t        j                  d            dgf       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wr  )r	   r%   r   r&   r   r   r  r>  s    r.   test_nonzero_zerodzTestNonzero.test_nonzero_zerod  s    R%%bhhqk2A6R%%bhhq&<=qA,-BHHQK02%8 . 	R%%bhhqk2A6R%%bhhq&<=qA,-BHHQK0A3&9 .- .-
 .-s   64E%'5E1%E.1E:c                    t        j                  g d      }t        t        j                  |      d       t        t        j                  |      d       t        t        j                  |      g df       t        j                  g dg d      }t        t        j                  |d         d       t        t        j                  |d	         d       t        t        j                  |d
         d       t        t        j                  |d         d       t        t        j                  |d         g df       t        t        j                  |d	         g df       y )N)r   r   r   rF   r   r   rv   r   )r   r   r   rf   ))r   r   r   r   )r   r   r   rg   )r   r   r   r   )rF   r   r   r   )r   rg   r   r   ))r=   r3  )r  r1  )r   r0  )rH  r  r>   r=   r   r  r   rH  )r   r   r   )r   r   r   r   )r%   r&   r	   r   r  r)   ri  s     r.   test_nonzero_onedimzTestNonzero.test_nonzero_onedim  s    HH+,R%%a(!,R%%a(!,RZZ]\O4 HH^OQR%%af-q1R%%af-q1R%%af-q1R%%af-q1RZZ#')6RZZ#',9r0   c                    t        j                  g dg dg      }t        t        j                  |j	                  d            d       t        t        j                  |j	                  d            d       t        t        j                  |j	                  d            d       t        t        j                  |j	                  d            d       t        t        j
                  |      g dg d	f       t        j                  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       t        t        j
                  |      g d
g d
f       t        j                  g dg dg dgddg      }t        t        j                  |d         d       t        t        j                  |d         d       t        t        j
                  |d         g dg df       t        t        j
                  |d         g dg df       t        |d   j                  j                  j                          t        t        j                  |d   j                        d       t        t        j                  |d   j                        d       t        t        j
                  |d   j                        g dg df       t        t        j
                  |d   j                        g dg df       y )N)r   r   r   )r   r   r   r0  r   r1  r3  r  r   r   r   )r   r   r   rc   )r   r   r   r   )r   r   )r   r   r  r  )r  )r   rZ   r  )r=   r  )r  r*  r>   r=   r   r  rZ   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   )r%   r&   r	   r   rl  r  eyer   Tflagsalignedr  s     r.   test_nonzero_twodimzTestNonzero.test_nonzero_twodim*  s`   HHi+,R%%ahhtn5q9R%%ahhtn5q9R%%ahhtn5q9R%%ahhtn5q9RZZ]Y	$:;FF1IR%%ahhtn5q9R%%ahhtn5q9R%%ahhtn5q9R%%ahhtn5q9RZZ]Y	$:;HH/++-5@+4NP 	R%%af-q1R%%af-q1RZZ#',)EFRZZ#'/?)KLAcFHHNN***+R%%afhh/3R%%afhh/3RZZ#)L,+GHRZZ#)O_+MNr0   c                    t        d      D ]  }t        j                  dt              }d||d d<   t	        t        j
                  |      d   t        j                  |d|z   d             t        j                  dt              }d|d|z   d|z    d|d|dz  z   <   t	        t        j
                  |      d   t        j                  t        j                  d|z   d|z         d|dz  z   gf              y )	Nr     r>   Tr   i  rD   r   )rF  r%   r@   r9  r	   r  rK   concatenate)r)   r   r   s      r.   test_sparsezTestNonzero.test_sparseG  s    rAD)AAaeeHAq)299Qa+DED)A#Ab1fR!VAb1Q3hKAq)2626)BR!A#XJ(OPR r0   c           	      *    G d dt         j                        }|t         j                  fD ]  }t        dd      D ]  }t        t        dd|z               }t        j                  t        j
                  |            j                  |      j                  |      }t        j                  |      |j                         fD ]L  }|D ]E  }t        t        |      t         j                  u        t        |j                  j                         G N   y )Nc                       e Zd Zy)'TestNonzero.test_return_type.<locals>.CNr  rX   r0   r.   Cr  U      r0   r  r   r   r   )r%   r[   rF  tuplerK   r   r   r\   r  r   r]   r  	writeable)r)   r  r\   r`  r8   ri  nzxnzx_is           r.   test_return_typezTestNonzero.test_return_typeT  s    	

 	 

ODAqkeAqtn-IIbggen-55e<AA$GJJqM199;7C!$Urzz 9: 5 56 "% 8 " $r0   c           	      d   t        j                  g dg dg      }t        j                  g d      }t        t        j                  |d      |       t        j                  ddg      }t        t        j                  |d      |       t	        t
        t         j                  |d	       t	        t        t         j                  |d
       t	        t         j                  t         j                  |d       t	        t        t         j                  |t        j                  dgdgg             y )Nr~   r   )r   r   r   r   r   r   rx   r   r   r   r  foo)r%   r&   r	   r   r
   rN   r  	AxisError)r)   r   r   s      r.   test_count_nonzero_axisz#TestNonzero.test_count_nonzero_axisa  s    HHo'78988O,R%%aa0(;88QF#R%%aa0(;j""2"2AFCi!1!115AbllB$4$4aa@i!1!1bhhaSz2	4r0   c                 R   d}d }t         j                  d   D ]  }|t        j                  |      j                  fz  }|dk7  r|dk7  r?t        j                  d|      }t        j
                  d|      }|d	   |d
<   |d	   |d<   nEt        j                  dgdz        }|j                  d      }d|d
<   d|d<   |j                  |      }t        j                  g dt         j                        } |t        j                  |d	      ||       t        j                  g dt         j                        } |t        j                  |d      ||       t        j                  d      }t        t        j                  |d      ||       t        t        j                  |d       ||       t        t        j                  |      ||       |dk(  st        j                  t        j                  d      gdz        j                  d      }t        j                  g dt         j                        } |t        j                  |d	      ||       t        j                  d	d	gt         j                        } |t        j                  |d      ||       t        j                  d	      }t        t        j                  |d      ||       t        t        j                  |d       ||       t        t        j                  |      ||        y )NzMismatch for dtype: %sc                 d    t        | j                  |j                  |       t        | ||       y )Nerr_msg)r	   r7   )r=   r  r  s      r.   assert_equal_w_dtzITestNonzero.test_count_nonzero_axis_all_dtypes.<locals>.assert_equal_w_dtw  s"    !''7;Aw/r0   rF  VMr   r>   r   r   r  r  z
1970-01-01rw   z
1970-01-12)r   r   r   rx   r  )r   r   r   r   r  rf   r  r   r   r   )r%   r  r7   namer@   r\  r&   r   rl  intpr   r	   void)r)   rD  r   r  r  r   r  r   s           r.   "test_count_nonzero_axis_all_dtypesz.TestNonzero.test_count_nonzero_axis_all_dtypesq  s    '	0 ,,u%BRXXb\..00GSy9r2A,AdAdGdAdG ,!!34A		&)A*AdG*AdGA88IRWW=!""2"211"="*G= 88IRWW=!""2"211"="*G= 88A;R--af=%w8R--ad;%w8R--a0%w8 Sy HHbggaj\A-.66v>88IRWW=!""2"211"="*G= 88QF"'':!""2"211"="*G= 88A;R--af=%w8R--ad;%w8R--a0%w8k &r0   c           
         ddl m}m} d}d}d}t        j                  j                  d      }|j                  dd|	      }|j                  t              }t        t        |            D ]Y  }	 |||	      D ]K  }
 ||
      D ]>  }t        t        j                  ||
      t        j                  ||
      ||fz         @ M [ y )Nr   )combinationspermutationsr   )rZ   rZ   rZ   rZ   zMismatch for axis: %si  ir  r   rx   r  )r  r	  r
  r%   randomRandomStater   rl  r  rF  r  r	   r   )r)   r	  r
  ry   r   rD  rngr   r  lengthcomboperms               r.   "test_count_nonzero_axis_consistentz.TestNonzero.test_count_nonzero_axis_consistent  s    
 	9%ii##D)KKcK-HHVCI&F%dF3(/D ((6((6 #tg/ 0 4 'r0   c                     t        j                  g dg dg      }t        t        j                  |d      |j	                  t
                     y )N)r   r   r   )r   r   r   rX   rx   )r%   r&   r	   r   rl  r9  r   s     r.   test_countnonzero_axis_emptyz(TestNonzero.test_countnonzero_axis_empty  s4    HHi+,R%%ab1188D>Br0   c                     t        j                  g dg dg dg      }t        t        j                  |dd      g dg       t        t        j                  |dd      dgd	gd
gg       t        t        j                  |d      dgg       y )N)r   r   r   r   )r   r   rZ   r   )rg   rw   r   r   r   Tr   )r   r   r   r   r   r   r   r   rf   )r%   r&   r	   r   r   s     r.   test_countnonzero_keepdimsz&TestNonzero.test_countnonzero_keepdims  s    HHl""$ % 	R%%aa$?"^	%R%%aa$?cA3_	&R%%a$7cU	r0   c                 ~    t        j                  g dg dg      }g dg dg}t        |j                         |       y )N)r   r   r   )r   r   rf   r  )r   r   r   )r%   r&   r	   r  )r)   r   rj   s      r.   test_array_methodzTestNonzero.test_array_method  s1     HHi+,)$QYY[#&r0   c                 *   t        j                  t        j                  ddg      dgt              }t        t        t         j
                  |        G d d      }t        t        t         j
                  t        j                   |       g             y )Nr   r   r   r>   c                       e Zd Zd Zy);TestNonzero.test_nonzero_invalid_object.<locals>.BoolErrorsc                     t        d      )NzNot allowed)rN   r>  s    r.   __bool__zDTestNonzero.test_nonzero_invalid_object.<locals>.BoolErrors.__bool__  s     //r0   N)rT   rU   rV   r  rX   r0   r.   
BoolErrorsr    s    0r0   r  )r%   r&   r  r
   rN   r  )r)   r=   r  s      r.   test_nonzero_invalid_objectz'TestNonzero.test_nonzero_invalid_object  s]    HHbhh1v&*&9j"**a0	0 	0 	j"**bhh
~.FGr0   c                     G d d      } G d d      }t        j                  d |       g      }t        t        t         j                  |       t        j                  dg |       gg      }t        t        t         j                  |       t        j                  d |       g      }t        t        t         j                  |       t        j                  dg |       gg      }t        t        t         j                  |       y )Nc                       e Zd ZdZd Zy)ATestNonzero.test_nonzero_sideeffect_safety.<locals>.FalseThenTrueFc                 B    	 | j                   d| _         S # d| _         w xY w)NT_valr>  s    r.   r  zJTestNonzero.test_nonzero_sideeffect_safety.<locals>.FalseThenTrue.__bool__  s    %99 $DIDI    	NrT   rU   rV   r&  r  rX   r0   r.   FalseThenTruer#    s    D%r0   r)  c                       e Zd ZdZd Zy)ATestNonzero.test_nonzero_sideeffect_safety.<locals>.TrueThenFalseTc                 B    	 | j                   d| _         S # d| _         w xY w)NFr%  r>  s    r.   r  zJTestNonzero.test_nonzero_sideeffect_safety.<locals>.TrueThenFalse.__bool__  s    &99 %DIDIr'  Nr(  rX   r0   r.   TrueThenFalser+    s    D&r0   r-  TF)r%   r&   r
   RuntimeErrorr  )r)   r)  r-  r=   s       r.   test_nonzero_sideeffect_safetyz*TestNonzero.test_nonzero_sideeffect_safety  s    	% 	%	& 	& HHdMO,-lBJJ2HHtf}/01lBJJ2 HHe]_-.lBJJ2HHug012lBJJ2r0   c                 L   t        j                  dd      }|j                  j                  sJ |d   j                  j                  rJ t        j                  |       |j                  j                  sJ t        j
                  |       |j                  j                  sJ y )NrZ   zi1,i8,i8r>   r  )r%   r@   r  r  r  r   r)   rq   s     r.   'test_nonzero_sideffects_structured_voidz3TestNonzero.test_nonzero_sideffects_structured_void  s}     hhq
+yy    t9??****


3yy    
yy    r0   c                     G d d      }	 t        j                   |d      gdz        }t        t        t         j                  |       t        j                   |d      gdz        }t        t        t         j                  |       t        j                   |d      ggdz        }t        t        t         j                  |       y )Nc                       e Zd Zd Zd Zy)<TestNonzero.test_nonzero_exception_safe.<locals>.ThrowsAfterc                     || _         y r   )
iters_left)r)   iterss     r.   __init__zETestNonzero.test_nonzero_exception_safe.<locals>.ThrowsAfter.__init__  s	    "'r0   c                 b    | j                   dk(  rt        d      | xj                   dz  c_         y)Nr   zcalled `iters` timesr   T)r7  rN   r>  s    r.   r  zETestNonzero.test_nonzero_exception_safe.<locals>.ThrowsAfter.__bool__  s+    ??a'$%;<<1$r0   N)rT   rU   rV   r9  r  rX   r0   r.   ThrowsAfterr5    s    (r0   r;  rZ   rD   r   )r%   r&   r
   rN   r  )r)   r;  r=   s      r.   test_nonzero_exception_safez'TestNonzero.test_nonzero_exception_safe  s    		 			 HHk!n%b()j"**a0 HHk"o&r)*j"**a0 HH{2'(+,j"**a0r0   zwasm doesn't have threadsr   c                    ddl m} t        j                  dg      }t        j                  d|fg      }t        j                  d|fgdz        }t        j                  j                  d      j                  |      d d df   }d } |d	
      }t        d      D cg c]  }|j                  ||       }}|D ]  }|j                           |j                  |u sJ y c c}w )Nr   )ThreadPoolExecutor)r   r  r   r   )i  r   r  c                 $    | j                          y r   )r  )rq   s    r.   funcz6TestNonzero.test_structured_threadsafety.<locals>.funcE  s    KKMr0   rv   )max_workersrD   )
concurrent.futuresr>  r%   r7   r  uniformr\   rF  submitresult)	r)   r>  r  rq   r@  tpe_futuresr   s	            r.   test_structured_threadsafetyz(TestNonzero.test_structured_threadsafety9  s     	: XXzl#XXBxj!XXBxj1n%iiY/44R8A>	 !Q/27)<)Q3::dC()<AHHJ  yyB	 =s   C"N)rT   rU   rV   r  r  r  r  r  r  r  r  r  r  r  r  r   r/  r2  r<  rL   r
  r  r   rI  rX   r0   r.   r  r     s    8	::"O:R74 @8D/.C	'	H3@
!1B [[(CD Er0   r  c                       e Zd Zd Zd Zy)	TestIndexc           	      6   t        ddd      }t        dd      }t        ddd      }t        ddd      }|||f    |||f<   t        t        j                  |d   |dkD     |d   |dkD     |d   |dkD     g      |d d |dkD  f   k(  j                                y )	Nr   rZ   rv   r   r   r  r   r   )r   r   r   r%   r&   r   )r)   r=   r  g1g2s        r.   test_booleanzTestIndex.test_booleanQ  s    AqMAJQ#Q#r2vYJ"b&	1Q4A;!QUQqT!a%[ABa1q5kQVVXYr0   c                     t        j                  g d      }t        j                  g d      }||   }t        |g        t        |j                  t        j                  d             y )Nr   r>   r9  )r%   r&   r	   r7   )r)   r=   r  r   s       r.   test_boolean_edgecasezTestIndex.test_boolean_edgecaseY  sL    HHRw'HHRv&aDQQWWbhhw/0r0   N)rT   rU   rV   rO  rQ  rX   r0   r.   rK  rK  P  s    Z1r0   rK  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestBinaryReprc                 B    t        t        j                  d      d       y )Nr   0r	   r%   binary_reprr>  s    r.   	test_zerozTestBinaryRepr.test_zerob  s    R^^A&,r0   c                     t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d      d       y )NrD   1010i0  11000011101010iԣ 101000111101010011010000rV  r>  s    r.   test_positivezTestBinaryRepr.test_positivee  sA    R^^B'0R^^E*%	'R^^H-/	1r0   c                     t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d      d       y )	NrF   z-1rE   z-1010iz-11000011101010i0+\z-101000111101010011010000rV  r>  s    r.   test_negativezTestBinaryRepr.test_negativel  sT    R^^B'.R^^C('2R^^F+&	(R^^I.0	2r0   c                     t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d	       y )
Nr   rZ   width00000rD   rg   0001010r   1111011rV  r>  s    r.   test_sufficient_widthz$TestBinaryRepr.test_sufficient_widtht  sA    R^^AQ/9R^^Ba0)<R^^Ba0)<r0   c                     t        t        j                  dd      d       t        dd      D ]7  }d|dz
  z   }d|dz
  d	z  z   }t        t        j                  ||      |       9 y )
Nirv   ra  10000000r   r   r   r6  rU  )r	   r%   rW  rF  )r)   rb  numexps       r.   test_neg_width_boundariesz(TestBinaryRepr.test_neg_width_boundariesy  s`    
 	R^^D2J?1b\Euqy>/Cc))C593? "r0   c                 l    t        t        j                  t        j                  d      d      d       y )Nl         @   ra  @1100000000000000000000000000000000000000000000000000000000000000)r	   r%   rW  r   r>  s    r.   test_large_neg_int64z#TestBinaryRepr.test_large_neg_int64  s#    R^^BHHV$4B?"	$r0   N)	rT   rU   rV   rX  r]  r_  rf  rk  ro  rX   r0   r.   rS  rS  a  s!    -12=

@$r0   rS  c                   $    e Zd Zd Zd Zd Zd Zy)TestBaseReprc                 D    t        t        j                  dd      d       y )N   r   100000r	   r%   	base_reprr>  s    r.   
test_base3zTestBaseRepr.test_base3  s    R\\$*H5r0   c                    t        t        j                  dd      d       t        t        j                  ddd      d       t        t        j                  dd      d       t        t        j                  dd      d	       y )
Nr   rD   12r   000012r7  l   5j $   10QR0ROFCEWru  r>  s    r.   r]  zTestBaseRepr.test_positive  sY    R\\"b)40R\\"b!,h7R\\"a($/R\\"2B7Gr0   c                     t        t        j                  dd      d       t        t        j                  ddd      d       t        t        j                  dd      d       y )NrD   z-12r   z-000012z-30ru  r>  s    r.   r_  zTestBaseRepr.test_negative  sC    R\\#r*E2R\\#r1-y9R\\#q)51r0   c                     t        t              5  t        j                  dd       d d d        t        t              5  t        j                  dd       d d d        y # 1 sw Y   8xY w# 1 sw Y   y xY w)Nr   %   )r
   rN   r%   rv  r>  s    r.   test_base_rangezTestBaseRepr.test_base_range  sK    :&LLA ':&LLB '& '&&&s   AA*A'*A3N)rT   rU   rV   rw  r]  r_  r  rX   r0   r.   rq  rq    s    6H2
 r0   rq  c                   l    e Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Z
y)	TestArrayComparisonsc                    t        j                  t        j                  ddg      t        j                  ddg            }t        |       t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  g d            }t        |        t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  ddg            }t        |        t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  ddg            }t        |        t        t	        |      t
        u        t        j                  t        j                  dgd      t        j                  dgd            }t        |       t        t	        |      t
        u        t        j                  t        j                  d	gd
      t        j                  d	gd
            }t        |       t        t	        |      t
        u        y )Nr   r   r!   r   r   r=   S1r>   )r=   r   zS1,u4)r%   array_equalr&   r   r]   r9  r)   rR  s     r.   test_array_equalz%TestArrayComparisons.test_array_equal  s   nnRXXq!f-rxxA/?@S	T!"nnRXXq!f-rxx	/BCCS	T!"nnRXXq!f-rxxA/?@CS	T!"nnRXXq!f-rxxA/?@CS	T!"nnRXXse48"((C5PT:UVS	T!"nnRXXxj@XXxj@BS	T!"r0   c                 ^   t        j                  ddt         j                  g      }t        j                  dt         j                  dg      }t        j                  ddt         j                  g      }t	        t        j
                  ||              t	        t        j
                  ||d             t	        t        j
                  ||d              t	        t        j
                  ||d              t        j                  t         j                        }t	        t        j
                  ||              t	        t        j
                  ||d             t        j                  g dt              }t	        t        j
                  ||             t	        t        j
                  ||d             t        j                  ddgt         j                  dgg      }t	        t        j
                  ||              t	        t        j
                  ||d             t        j                  dg      gdz  \  }}t         j                  t         j                  c|_        |_        t	        t        j
                  ||d	              t	        t        j
                  ||d             y )
Nr   r   T	equal_nanr!   r>   r   y      ?      ?F)	r%   r&   ra  rd  r   r  r   r  imag)r)   a1a2a3r=   r  s         r.   test_array_equal_equal_nanz/TestArrayComparisons.test_array_equal_equal_nan  s   XXq!RVVn%XXq"&&!n%XXq!RVVn% 	BNN2r**+r267BNN2rT::;BNN2rT::;HHRVVBNN1a(()q!t45HHYc*q!$%q!t45HHq!frvvqk*+BNN1a(()q!t45&"#A%1BNN1a599:q!t45r0   c                     t        j                  g dt              }t        |d k(  g d       t        |d k7  g d       t        j                  d      }t        |d k(  g d       t        |d k7  g d       y )N)Nr   Nr>   )TFT)FTFr   FFF)TTT)r%   r&   r  r	   r\  r   s     r.   test_none_compares_elementwisez3TestArrayComparisons.test_none_compares_elementwise  s[    HH_F3Q$Y 34Q$Y 45GGAJQ$Y 56Q$Y 23r0   c           	      <   t        j                  t        j                  ddg      t        j                  ddg            }t        |       t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  g d            }t        |        t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  ddg            }t        |        t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  ddg            }t        |        t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  dg            }t        |       t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  dgdgg            }t        |       t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  dg            }t        |        t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  dgdgg            }t        |        t        t	        |      t
        u        t        j                  t        j                  ddg      t        j                  g dg dg dg            }t        |        t        t	        |      t
        u        y )Nr   r   r!   r   r   r   r   )r%   array_equivr&   r   r]   r9  r  s     r.   test_array_equivz%TestArrayComparisons.test_array_equiv  sg   nnRXXq!f-rxxA/?@S	T!"nnRXXq!f-rxx	/BCCS	T!"nnRXXq!f-rxxA/?@CS	T!"nnRXXq!f-rxxA/?@CS	T!"nnRXXq!f-rxx}=S	T!"nnRXXq!f-rxx!qc
/CDS	T!"nnRXXq!f-rxx}=CS	T!"nnRXXq!f-rxx!qc
/CDCS	T!"nnRXXq!f-rxxIy8Y/Z[CS	T!"r0   r7   )r  V3r=  c                    t        j                  d|      }t        ||       ||k7  j                         rJ |dk(  ry t        j                  g d|      }||k(  j                         rJ ||k7  j                         sJ y )Nr   r>   r  )   1   2   3)r%   r@   r   rE  r&   r   )r)   r7   r@   nonzeross       r.   test_compare_unstructured_voidsz4TestArrayComparisons.test_compare_unstructured_voids  s{    %(5%(UN'')))D=88.e<X%**,,,!&&(((r0   N)rT   rU   rV   r  r  r  r  rL   r
  r  r  rX   r0   r.   r  r    s<    #*6<4#< [[W&9:) ;)r0   r  c                    t        | |       | j                  j                  dk  s+t        j                         j                  j
                  dk7  r7t        j                  dk7  r$t        | j                  |j                  k(         nt        | j                  j                  |j                  j                  k(         t        | j                  j                  |j                  j                  k(         t        | j                  j                  |j                  j                  k(         t        | j                  j                  |j                  j                  k(         t        | j                  j                  |j                  j                  k(         t        | j                  j                  |j                  j                  k(         y )Nrv   r   win32)r   r7   	alignmentr%   r  itemsizesysr  r   r  owndatar  c_contiguousf_contiguouswritebackifcopyrP  )ri  r  s     r.   assert_array_strict_equalr    s   q!	
		a	GGIOO$$)LLG#177"#177??23!!QWW%6%667$$(<(<<=$$(<(<<=''177+B+BBCAGG 0 001r0   c                   z   e Zd Zd ZdOdZdOdZd Zd Zd Zd Z	d	 Z
d
 Zd Zej                  j                  dd      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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/d0 Z0d1 Z1d2 Z2d3 Z3d4 Z4d5 Z5d6 Z6d7 Z7d8 Z8d9 Z9ej                  j                  d:d;d< e:jv                  d=      f e:jx                  d=       e:jv                  d=      fg      d>        Z=ej                  j                  d? e:jv                  d=e:j|                  @      dAdB e:j~                  d=dBe@@      f e:jv                  d=dC@      d<z
  dAdA e:jv                  d=dC@      fg      dD        ZAej                  j                  dE e:jv                  d=e:j|                  @       e:j                  e:j                         e:jv                  d=e:j                  @      fg      dF        ZEej                  j                  dGH      ej                  j                  dE e:j                  d<gd=z  dC@       e:j                  dI       e:jv                  d=e:j                  @      fg      ej                  j                  dJ      dK                      ZI eJ eKj                          eMj                   eMj                          eMj                         z   eMj                         L      M      dN        ZRy)PTestClipc                      d| _         d| _        y )NrZ   r   )nrncr>  s    r.   r?  zTestClip.setup_method  s    r0   Nc                 .     |j                   ||fd|i|S )Nrk   )rp   )r)   r=   r   r  rk   kwargss         r.   fastclipzTestClip.fastclip#  s    qvva..v..r0   c                     t        j                  ||      dt        j                  ||      z  z   }|j                  |||f|      S )Nr   rL  )r%   lessgreaterrh   )r)   r=   r   r  rk   selectors         r.   rp   zTestClip.clip&  s?    771a=1RZZ1%5#551ayc22r0   c                     t        ||      S r   )r   r)   r  r   s      r.   _generate_datazTestClip._generate_data,  s    Q{r0   c                 :    t        ||      dt        ||      z  z   S )Nr  )r   r   r  s      r.   _generate_data_complexzTestClip._generate_data_complex/  s    Q{S41:---r0   c                 T    t        ||      j                  t        j                        S r   )r   rl  r%   rA   r  s      r.   _generate_flt_datazTestClip._generate_flt_data2  s    a##BJJ//r0   c                    t        j                  |      }t        j                  dk(  r,|j	                  |j
                  j                  d            }|S |j	                  |j
                  j                  d            }|S )Nlittle><)r%   asarrayr  	byteorderrl  r7   rO  r   s     r.   _neg_byteorderzTestClip._neg_byteorder5  sc    JJqM==H$--c23A  --c23Ar0   c                     t        ||      }| j                  |      }t        |j                  j                          |S r   )r   r  r   r7   rP  )r)   r  r   r  s       r.   _generate_non_native_dataz"TestClip._generate_non_native_data=  s7    Q{""4(DJJ'''(r0   c                 Z    dt        ||      z  j                  t        j                        S r  )r   rl  r%   r   r  s      r.   _generate_int_datazTestClip._generate_int_dataC  !    T!QZ''11r0   c                 Z    dt        ||      z  j                  t        j                        S r  )r   rl  r%   r   r  s      r.   _generate_int32_datazTestClip._generate_int32_dataF  r  r0   r7   z?bhilqpBHILQPefdgFDGOc                     t        j                  d|      }t        j                  d|      }t        j                  |dd      }|dk(  r$|j	                         |j	                         k(  sJ y t        ||       y )NrD   r>   r   r   r8  )r%   r\  r@   rp   tolistr	   )r)   r7   rq   r   actuals        r.   test_ones_pathologicalzTestClip.test_ones_pathologicalK  sb    
 ggb&88Be,a#C<==?hoo&7777*r0   c                     | j                  | j                  | j                        }d}d}| j                  |||      }| j	                  |||      }t        ||       y )Ng?333333?r  r  r  r  rp   r  r)   r=   r   r  acacts         r.   test_simple_doublezTestClip.test_simple_doubleX  sT    1]]1a#ii1a !"c*r0   c                     | j                  | j                  | j                        }|j                  t              }d}d}| j                  |||      }| j                  |||      }t        ||       y Nr   r   )r  r  r  rl  r   r  rp   r  r  s         r.   test_simple_intzTestClip.test_simple_inta  sa    ##DGGTWW5HHSM]]1a#ii1a !"c*r0   c                     | j                  | j                  | j                        }t        j                  |j
                        }|dz   }| j                  |||      }| j                  |||      }t        ||       y )Nr  	r  r  r  r%   r@   r8   r  rp   r  r  s         r.   test_array_doublezTestClip.test_array_doublek  se    1HHQWWG]]1a#ii1a !"c*r0   c                    | j                  | j                  | j                        }d}d}| j                  |||      }| j	                  |||      }t        ||       | j                  | j                  | j                        }d}| j                  d      }t        |j                  j                          | j                  |||      }| j	                  |||      }t        ||       y N      r  )r  r  r  r  rp   r   r  r  r   r7   rP  r  s         r.   test_simple_nonnativezTestClip.test_simple_nonnativet  s     **477DGG<]]1a#ii1a 2s# 1$AGG$$$%]]1a#ii1a 2s#r0   c                    d| j                  | j                  | j                        z  }d}d}| j                  |||      }| j	                  |||      }t        ||       d| j                  | j                  | j                        z  }d}d}| j                  |||      }| j	                  |||      }t        ||       y )Nr   r  rS   y            ?y      ?       @)r  r  r  r  rp   r  r  r  s         r.   test_simple_complexzTestClip.test_simple_complex  s     ++DGGTWW==]]1a#ii1a !"c* ##DGGTWW55]]1a#ii1a !"c*r0   c                     t        j                  dt              }|j                         }|j	                         }| j                  ||d       }| j                  |d |      }t        ||       t        ||       y NrD   r>   )r%   r\  rv  r  r  r  r  )r)   r=   r   r  amaMs         r.   test_clip_complexzTestClip.test_clip_complex  sb     GGBg&EEGEEG]]1a&]]1dA&!"a(!"a(r0   c                 >   | j                  | j                  dz  | j                  dz        }|d d dd d df   }t        |j                  d           t        |j                  d           | j                  |dd      }| j                  |dd      }t        ||       y )Nr   r   F_CONTIGUOUSC_CONTIGUOUSgg333333?)r  r  r  r   r  r  rp   r  )r)   r=   r  r  s       r.   test_clip_non_contigzTestClip.test_clip_non_contig  s    !TWWq[9cc3Q3hKAGGN++,AGGN++,]]1dC(ii4%!"c*r0   c                 <   | j                  | j                  | j                        }d}d}t        j                  |j
                        }t        j                  |j
                        }| j                  ||||       | j                  ||||       t        ||       y r  r  r  s         r.   test_simple_outzTestClip.test_simple_out  x    1XXagghhqwwaAr"		!Q3!"c*r0   r{  ra  c                    | j                  | j                  | j                        }t        j                  d      }t        j                  d      }t        j
                  |j                  t        j                        }|j                         }|9t        j                  t              5  | j                  |||||       d d d        y | j                  |||||       | j                  ||||       t        ||       y # 1 sw Y   y xY w)Nr   r   r>   rz  )r  r  r  r%   r   r@   r8   r   r;  rL   rM   r  r  rp   r  )r)   r{  r=   r   r  r  r  s          r.   test_simple_int32_inoutz TestClip.test_simple_int32_inout  s     %%dggtww7JJqMJJqMXXaggRXX.ggi?y)aAr7; *) MM!Q2wM7IIaAs#%b#. *)s   +DDc                    | j                  | j                  | j                        }t        j                  d      }t        j                  d      }t        j
                  |j                  t        j                        }|j                         }| j                  ||||       | j                  ||||       t        ||       y NrF   r   r>   r  r  r  r%   r   r@   r8   r   r;  r  rp   r  r  s         r.   test_simple_int64_outzTestClip.test_simple_int64_out      %%dggtww7HHRLHHQKXXaggRXX.ggiaAr"		!Q3!"c*r0   c                    | j                  | j                  | j                        }t        j                  |j
                  t        j                        }t        j                  d      }t        j                  |j
                  t        j                        }|j                         }| j                  ||||d       | j                  ||||       t        ||       y Nr   r>   ra  rk   r{  r  r  r  r%   r@   r8   r   r   r;  r  rp   r  r  s         r.   test_simple_int64_inoutz TestClip.test_simple_int64_inout      %%dggtww7HHQWWbjj)JJqMXXaggRXX.ggiaA2x8		!Q3!"c*r0   c                 B   | j                  | j                  | j                        }d}d}t        j                  |j
                  t        j                        }|j                         }| j                  ||||d       | j                  ||||       t        ||       y Nr[  r   r>   ra  r  r  r  r  r%   r@   r8   r   r;  r  rp   r  r  s         r.   test_simple_int32_outzTestClip.test_simple_int32_out  {    1XXaggRXX.ggiaA2x8		!Q3!"c*r0   c                    | j                  | j                  | j                        }|j                         }t	        j
                  |j                        }d}| j                  ||||       | j                  ||||       t        ||       y NrS   
r  r  r  r;  r%   r@   r8   r  rp   r  r)   r=   r  r   r  s        r.   test_simple_inplace_01zTestClip.test_simple_inplace_01  l    1VVXHHQWWaAq!		!Q2!!R(r0   c                     | j                  | j                  | j                        }|j                         }d}d}| j	                  ||||       | j                  ||||       t        ||       y r  r  r  r  r;  r  rp   r  r  s        r.   test_simple_inplace_02zTestClip.test_simple_inplace_02  s_    1VVXaAq!		"aB!!R(r0   c                 j   | j                  | j                  dz  | j                  dz        }|d d dd d df   }t        |j                  d           t        |j                  d           |j                         }d}d}| j                  ||||       | j                  ||||       t        ||       y )Nr   r   r  r  r  r  )	r  r  r  r   r  r;  r  rp   r   r  s        r.   test_noncontig_inplacezTestClip.test_noncontig_inplace   s    !TWWq[9cc3Q3hKAGGN++,AGGN++,VVXaAq!		"aB1b!r0   c                     | j                  | j                  | j                        }d}d}| j                  |||      }| j	                  |||      }t        ||       y r  r  r  s         r.   test_type_cast_01zTestClip.test_type_cast_01  sT    1]]1a#ii1a !"c*r0   c                     | j                  | j                  | j                        }|j                  t        j
                        }d}d}| j                  |||      }| j                  |||      }t        ||       y r  )	r  r  r  rl  r%   r   r  rp   r  r  s         r.   test_type_cast_02zTestClip.test_type_cast_02  sf    ##DGGTWW5HHRXX]]1a#ii1a !"c*r0   c                 T   | j                  | j                  | j                        }d}d}| j                  |t	        j
                  |      t	        j
                  |            }| j                  |t	        j
                  |      t	        j
                  |            }t        ||       y r  )r  r  r  r  r%   r   rp   r  r  s         r.   test_type_cast_03zTestClip.test_type_cast_03   st    %%dggtww7]]1bjjmRZZ];ii2::a="**Q-8!"c*r0   c                    | j                  | j                  | j                        }t        j                  d      }t        j                  d      }| j                  |||      }| j                  |||      }t        ||       y r  )r  r  r  r%   rA   r  rp   r  )r)   r=   r   r  r  r  s         r.   test_type_cast_04zTestClip.test_type_cast_04)  sd    %%dggtww7JJrNJJqMmmAq!$YYq!Q!"c*r0   c                 <   | j                  | j                  | j                        }d}d}| j                  ||t	        j
                  |j                        z  |      }| j                  ||t	        j
                  |j                        z  |      }t        ||       y Nr  rS   )	r  r  r  r  r%   r@   r8   rp   r  r  s         r.   test_type_cast_05zTestClip.test_type_cast_052  sx    ##DGGTWW5]]1a"((177"33Q7ii1rxx00!4!"c*r0   c                     | j                  | j                  | j                        }d}| j                  |      }d}| j	                  |||      }| j                  |||      }t        ||       y )Nr  rS   )r  r  r  r  rp   r  r  )r)   r=   r   m_sr  r  r  s          r.   test_type_cast_06zTestClip.test_type_cast_06;  sd    1!!!$ii3"]]1c1%!"c*r0   c                 \   | j                  | j                  | j                        }dt        j                  |j
                        z  }d}| j                  |      }t        |j                  j                          |j                  ||      }| j                  |||      }t        ||       y r  )r  r  r  r%   r\  r8   r  r   r7   rP  rp   r  r  )r)   r=   r   r  a_sr  r  s          r.   test_type_cast_07zTestClip.test_type_cast_07E  s    1277177##!!!$CII&&&'hhq!n]]31%!"c*r0   c                    | j                  | j                  | j                        }d}d}| j                  |      }t	        |j
                  j                          | j                  |||      }|j                  ||      }t        ||       y r  )
r  r  r  r  r   r7   rP  r  rp   r  )r)   r=   r   r  r  r  r  s          r.   test_type_cast_08zTestClip.test_type_cast_08P  sv    1!!!$CII&&&']]31%hhq!n!"c*r0   c                 ^   | j                  | j                  | j                        }dt        j                  |j
                        z  }d}| j                  |      }t        |j                  j                          | j                  |||      }| j                  |||      }t        ||       y r  )r  r  r  r%   r\  r8   r  r   r7   rP  r  rp   r  )r)   r=   r   r  r  r  r  s          r.   test_type_cast_09zTestClip.test_type_cast_09[  s    1277177##!!!$CII&&&']]1c1%ii3"!"c*r0   c                 n   | j                  | j                  | j                        }t        j                  |j
                  t        j                        }t        j                  d      }t        j                  d      }| j                  ||||      }| j                  ||||      }t        ||       y )Nr>   r  r   rL  )
r  r  r  r%   r@   r8   rA   rp   r  r  r)   r=   r  r   r  r  r  s          r.   test_type_cast_10zTestClip.test_type_cast_10f  s    ##DGGTWW5HHQWWBJJ/JJtJJqMii1aQi']]1a]*!"c*r0   c                 X   | j                  | j                  | j                        }|j                         }|j	                  |j
                  j                  d            }|j                         }d}d}| j                  ||||       | j                  ||||       t        ||       y )Nr  r  rS   rL  )
r  r  r  r;  rl  r7   rO  r  rp   r  )r)   r=   r  btr   r  s         r.   test_type_cast_11zTestClip.test_type_cast_11p  s    **477DGG<FFHHHQWW))#./VVXaA1%		!Qr	"!!R(r0   c                 n   | j                  | j                  | j                        }t        j                  |j
                  t        j                        }t        j                  d      }t        j                  d      }| j                  ||||      }| j                  ||||      }t        ||       y )Nr>   r   r   rL  )r  r  r  r%   r@   r8   rA   r   rp   r  r  r  s          r.   test_type_cast_12zTestClip.test_type_cast_12|  s    ##DGGTWW5HHQWWBJJ/HHQKHHQKii1aQi']]1a]*!"c*r0   c                 <   | j                  | j                  | j                        }d}d}t        j                  |j
                        }t        j                  |j
                        }| j                  ||||       | j                  ||||       t        ||       y r  r  r  s         r.   test_clip_with_out_simplez"TestClip.test_clip_with_out_simple  r  r0   c                    | j                  | j                  | j                        }t        j                  d      }t        j                  d      }t        j
                  |j                  t        j                        }|j                         }| j                  ||||d       | j                  ||||       t        ||       y )Nr   r   r>   ra  r  )r  r  r  r%   r   r@   r8   r   r;  r  rp   r  r  s         r.   test_clip_with_out_simple2z#TestClip.test_clip_with_out_simple2  s    %%dggtww7JJqMJJqMXXaggRXX.ggiaA2x8		!Q3!"c*r0   c                    | j                  | j                  | j                        }t        j                  d      }t        j                  d      }t        j
                  |j                  t        j                        }|j                         }| j                  ||||       | j                  ||||       t        ||       y r  r  r  s         r.   test_clip_with_out_simple_int32z(TestClip.test_clip_with_out_simple_int32  r  r0   c                    | j                  | j                  | j                        }t        j                  |j
                  t        j                        }t        j                  d      }t        j                  |j
                  t        j                        }|j                         }| j                  ||||d       | j                  ||||       t        ||       y r  r  r  s         r.   test_clip_with_out_array_int32z'TestClip.test_clip_with_out_array_int32  r  r0   c                 B   | j                  | j                  | j                        }d}d}t        j                  |j
                  t        j                        }|j                         }| j                  ||||d       | j                  ||||       t        ||       y r  r  r  s         r.   !test_clip_with_out_array_outint32z*TestClip.test_clip_with_out_array_outint32  r  r0   c                     t        j                  d      j                  dd      }t        j                  |      j                  }|j                  dd|       | j                  |dd      }t        ||       y )NrZ  r   rD   rL  )r%   rK   r   
empty_liker  rp   r   )r)   r=   rk   r   s       r.   test_clip_with_out_transposedz&TestClip.test_clip_with_out_transposed  s^    IIbM!!!Q'mmA  	q"#99Q2&3)r0   c                     t        j                  d      j                  dd      }|j                         }|d d j	                  dd|dd         | j	                  |d d dd      }t        |dd  |       y )NrZ  r   rF   rD   r   rL  )r%   rK   r   r;  rp   r   )r)   r=   r  r   s       r.   !test_clip_with_out_memory_overlapz*TestClip.test_clip_with_out_memory_overlap  sm    IIbM!!!Q'VVX	#2Arqu%99RWa,1QR5(+r0   c                    | j                  | j                  | j                        }|j                         }t	        j
                  |j                        }d}| j                  ||||       | j                  ||||       t        ||       y r  r   r  s        r.   test_clip_inplace_arrayz TestClip.test_clip_inplace_array  r  r0   c                     | j                  | j                  | j                        }|j                         }d}d}| j	                  ||||       | j                  ||||       t        ||       y r  r  r  s        r.   test_clip_inplace_simplez!TestClip.test_clip_inplace_simple  s_    1VVXaAq!		!Q2!!R(r0   c                    | j                  | j                  | j                        }|j                         }d}d}t	        j
                  ||||      }| j                  ||||       t        ||       t        ||u        y )Nr  r  rL  )r  r  r  r;  r%   rp   r  r   )r)   r=   r  r   r  r  s         r.   test_clip_func_takes_outz!TestClip.test_clip_func_takes_out  sm    1VVXWWQ1!$		!Q2!"b)ar0   c                    t        j                  d      }t        |j                  t         j                        t         j                         t        |j                  t         j                        t         j                         t        |j                  t         j                  t         j                        t         j                         t        |j                  dt         j                        t         j                         t        |j                  t         j                  d      t         j                         y )Ng      @)r  )r  )r  r  r   rD   )r%   rK   r	   rp   ra  )r)   rH  s     r.   test_clip_nanzTestClip.test_clip_nan  s    IIbMQVVV'0QVVV'0QVVBFFV3RVV<QVVV/8QVVBV/8r0   c                     t        j                  dt              }t        j                  |dd      }t        j                  g d      }|j                         |j                         k(  sJ y )NrD   r>   r   rZ   )
r   r   r   r   r   rZ   rZ   rZ   rZ   rZ   )r%   rK   r  rp   r&   r  )r)   r=   r  r   s       r.   test_object_clipzTestClip.test_object_clip  sN    IIb'Aq!88:;}}(//"3333r0   c                     t        j                  dt              }t        t        d      5  t        j
                  |d d        d d d        y # 1 sw Y   y xY w)NrD   r>   z
max or min)r%   rK   r  r   rN   rp   r   s     r.   test_clip_all_nonezTestClip.test_clip_all_none  s8    IIb' \:GGAtT" ;::s   AAc                     t        j                  dt              }t        t        d      5  | j                  |ddd       d d d        y # 1 sw Y   y xY w)NrD   r>   zcasting must be one ofr   rv   garbagerz  )r%   rK   r  r   rN   r  r   s     r.   test_clip_invalid_castingz"TestClip.test_clip_invalid_casting  sC    IIb' !9;MM!Q9M5; ; ;s   AAz
amin, amaxr  r   rD   c                     t        j                  dt         j                        }t        j                  t        j                  ||      |      }t        j
                  |||      }t        ||       y r  )r%   rK   r   minimummaximumrp   r	   )r)   aminamaxr=   r   r  s         r.   test_clip_value_min_max_flipz%TestClip.test_clip_value_min_max_flip	  sO     IIb)::bjjD148D$'VX&r0   zarr, amin, amax, expr>   r   l r  c                 J    t        j                  |||      }t        ||       y r   ro   )r)   rq   rG  rH  rj  r  s         r.   test_clip_problem_casesz TestClip.test_clip_problem_cases	  s      dD)VS!r0   zarr, amin, amaxc                     t        j                  t        j                  ||      |      }t        j                  |||      }t	        ||       y r   r%   rE  rF  rp   r	   r)   rq   rG  rH  r   r  s         r.    test_clip_scalar_nan_propagationz)TestClip.test_clip_scalar_nan_propagation&	  s;     ::bjjd3T:dD)VX&r0   zpropagation doesn't match specr   NaTzignore::DeprecationWarningc                     t        j                  t        j                  ||      |      }t        j                  |||      }t	        ||       y r   rM  rN  s         r.   test_NaT_propagationzTestClip.test_NaT_propagation3	  s;     ::bjjd3T:dD)VX&r0   )r7   r8   )r  rq   c           	         t        j                         t        j                         z  }|j                  t        j                  d|j
                              \  }}|j                  d       }|j                  |t        j                  ||d   ddi      z        }|j                  |t        j                  ||d   ddi      z        }t        j                  |||      }	t        j                  |||      }
t        j                  |t        j                  |||
	      |
	      }|	j                  |
k(  sJ t        |	|       y
)a  A property-based test using Hypothesis.

        This aims for maximum generality: it could in principle generate *any*
        valid inputs to np.clip, and in practice generates much more varied
        inputs than human testers come up with.

        Because many of the inputs have tricky dependencies - compatible dtypes
        and mutually-broadcastable shapes - we use `st.data()` strategy draw
        values *inside* the test function, from strategies we construct based
        on previous values.  An alternative would be to define a custom strategy
        with `@st.composite`, but until we have duplicated code inline is fine.

        That accounts for most of the function; the actual test is just three
        lines to calculate and compare actual vs expected results!
        r   )
num_shapes
base_shapec                 0    t        j                  | d      S )NF)	allow_nan)hynp
from_dtyperi  s    r.   r  z-TestClip.test_clip_property.<locals>.<lambda>c	  s    dooa59r0   r   rW  F)r7   r8   elementsr   r>   N)rX  integer_dtypesfloating_dtypesdrawmutually_broadcastable_shapesr8   flatmaparraysr%   rp   r  rE  rF  r7   r   )r)   r  rq   numeric_dtypes	in_shapesresult_shaper   rG  rH  rE  r*  r   s               r.   test_clip_propertyzTestClip.test_clip_propertyA	  s$   . ,,.1E1E1GG #'))..#
	< ""9;yyT[[~A,+u)=? ? @yyT[[~A,+u)=? ? @ dD)NN3d+::dBJJsD$B!L||q   68,r0   r   )SrT   rU   rV   r?  r  rp   r  r  r  r  r  r  r  rL   r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r  r  r   r#  r%  r'  r)  r+  r-  r/  r2  r4  r6  r8  r:  r<  r>  r@  rC  r%   r@   r\  rI  r   fullr  rK  r&   ra  r   rO  r  timedelta64r   rR  r   str  rX  ra  r\  r]  array_shapesre  rX   r0   r.   r  r    s   /3.022
 [[W&=>
+ ?
++++$&+$
)+	+ [[Yx(89/ :/ 	+	+	+))"++++++	+	+	++
)+	+	+	+	+	+*,))	94#
6 [[\	
HBHHRL	hbhhrl#,
 '' [[3 
"BHH	%	
		XV	,	. 
"D	!A	%	
	
	"D	!	#6 "" [[.	"BHH	%	"&&		"BHH	%	'1 '' [[>?[[.	1#($	'			"BHH	%	'1 
 [[ <=' > @' RWWYDKK%$%%'*>$*>*>*@@#$##%
(-(-r0   r  c                   P    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y)TestAllcloseh㈵>:0yE>c                 :    t        j                  d      | _        y )Nr|  r~  r%   r  olderrr>  s    r.   r?  zTestAllclose.setup_methodw	  s    ii1r0   c                 B    t        j                  di | j                   y r  rp  r>  s    r.   teardown_methodzTestAllclose.teardown_methodz	  s    
		 DKK r0   c                 P    t        t        j                  ||      |d|d       y N and z
 not closer   r%   allcloser)   ri  r  s      r.   tst_allclosezTestAllclose.tst_allclose}	  s    Aq!Aq#ABr0   c                 R    t        t        j                  ||       |d|d       y )Nrv  z shouldn't be closerw  ry  s      r.   tst_not_allclosezTestAllclose.tst_not_allclose	  s    BKK1%%A'NOr0   c           	         t        j                  ddg      }t        j                  d      j                  d      }| j                  }| j
                  }ddgddgf|gdgfdgd|z   |z   gf||||z  z   f||||z  z   |dz  z   f||||z  z   ft         j                  t         j                  ft         j                  t         j                  gfg}|D ]  \  }}| j                  ||        y )Nr    }   rZ   rZ   rZ   r   r   r   )r%   r&   rK   r   atolrtolrd  rz  )r)   rq   aranr  r  r  ri  r  s           r.   test_ip_allclosezTestAllclose.test_ip_allclose	  s    hhT{#yy~%%i0yyyyQ!Q !qvd{m$cCHn%cCHntAv-.td4i'( "&&"$ FQa# r0   c                 :   t        j                  d      j                  d      }| j                  }| j                  }t         j
                  dgdt         j
                  gft         j
                  dgddgft         j
                  t         j
                  gdt         j
                  gft         j
                  t         j
                  gddgft         j
                   dgt         j
                  dgft         j                  dgt         j                  dgf|dz  gdgfdgd|z   |dz  z   gf||||z  z   |dz  z   ft        j                  t         j
                  dg      t        j                  dt         j
                  g      fg
}|D ]  \  }}| j                  ||        y )Nr  r  r   r   r   )	r%   rK   r   r  r  rd  ra  r&   r|  )r)   r  r  r  r  ri  r  s          r.   test_ip_not_allclosez!TestAllclose.test_ip_not_allclose	  sS   yy~%%i0yyyy&&!q"&&k*&&!q!f%&&"&&!Arvv;/&&"&&!Aq6*66'1{+&&!rvvqk*q&A3qvd1f}o&td4i'$q&012661+&!RVV(=>	@ FQ!!!Q' r0   c                    t        j                  t         j                  dg      }t        j                  dt         j                  g      }t        j                  ||       t	        |t        j                  t         j                  dg             t	        |t        j                  dt         j                  g             y Nr   r   )r%   r&   rd  rx  r   ry  s      r.   test_no_parameter_modificationz+TestAllclose.test_no_parameter_modification	  sr    HHbffa[!HHa[!
Aq1bhh{341bhh266{34r0   c                     t        j                  t         j                        j                  }t        j                  |gt         j                        }t        t        j                  ||             y )Nr>   )r%   r  int_r  r&   r   rx  )r)   min_intr=   s      r.   test_min_intzTestAllclose.test_min_int	  sC    ((277#''HHgYbgg.Aq!"r0   c                     t        j                  dt         j                  g      }t        t        j                  ||d             y )NrS   Tr  )r%   r&   ra  r   rx  r  s     r.   test_equalnanzTestAllclose.test_equalnan	  s-    HHc266]#AqD12r0   c                      G d dt         j                        } |dg      }t        t        t        j                  ||            t
        u        y )Nc                       e Zd Zd Zy)6TestAllclose.test_return_class_is_ndarray.<locals>.Fooc                 J    t        j                  |i |j                  |       S r   )r%   r&   r\   )clsr  r  s      r.   __new__z>TestAllclose.test_return_class_is_ndarray.<locals>.Foo.__new__	  s!    xx0055c::r0   N)rT   rU   rV   r  rX   r0   r.   Foor  	  s    ;r0   r  r   )r%   r[   r   r]   rx  r9  )r)   r  r=   s      r.   test_return_class_is_ndarrayz)TestAllclose.test_return_class_is_ndarray	  s<    	;"** 	; HR[[A&'4/0r0   N)rT   rU   rV   r  r  r?  rs  rz  r|  r  r  r  r  r  r  rX   r0   r.   rk  rk  s	  s@    DD2!CP$((*5#31r0   rk  c                   h    e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zy)TestIscloserl  rm  c                    | j                   }| j                  }t        j                  ddg      }t        j                  d      j                  d      }ddgddgf|gdgfdgd|z   |z   gf||||z  z   f||||z  z   |z   f||||z  z   ft        j                  t        j                  ft        j                  t        j                  gft        j                  t        j                   gt        j                  t        j                   gfg	| _        t        j                  dgdt        j                  gft        j                  t        j                   gddgft        j                  t        j                  gdt        j                   gft        j                  t        j                  gddgft        j                  dgt        j                  t        j                   gf|dz  gdgfdgd|z   |dz  z   gf|||dz  |z  z   |dz  z   ft        j                  t        j                  dg      t        j                  dt        j                  g      fg	| _	        t        j                  dgt        j                  |dz  gf|dd	dd|z  z   z  |z   gdt        j                  d	gft        j                  d
      g dft        j                  t        j                  t        j                  t        j                  gfdg|t        j                  t        j                   t        j                  gfd|t        j                  t        j                   t        j                  gfg| _
        ddgg dg dg dg dg dg| _        y )Nr  r~  r  r  r   r   r   g?g    .Ar   )r   r   g @TF)TFFTTFr  )TFFF)r  r  r%   r&   rK   r   rd  all_close_testsra  none_close_testssome_close_testssome_close_results)r)   r  r  rq   r  s        r.   _setupzTestIsclose._setup	  s   yyyyhhT{#yy~%%i0 Q!Q !q4x$'(cCHn%cCHnt+,td4i'( "&&"&&266'"RVVbffW$56
  &&!q"&&k*&&266'"QF+&&"&&!Aw<0&&"&&!Aq6*&&!rvvw/0q&A3q4x$q&()*td3htm+d3h672661+&!RVV(=>
! &&!rvvtAv./3AdF
+d23a5EF1{+"&&"&&"&&12tRVVbffWbff56T266BFF7BFF34! u$#%++#r0   c                     | j                          | j                  }| j                  }t        ||      D ](  \  \  }}}t	        t        j                  ||      |       * y r   )r  r  r  zipr   r%   isclose)r)   testsresultsri  r  rE  s         r.   test_ip_isclosezTestIsclose.test_ip_isclose	  sO    %%))!%1NFQFrzz!Q/8 2r0   c                 v    t        t        j                  t        j                  ||            |d|d       y ru  )r   r%   r   r  ry  s      r.   tst_all_isclosezTestIsclose.tst_all_isclose 
  s%    rzz!Q'(1a*HIr0   c                 z    d}t        t        j                  t        j                  ||             |||fz         y )Nz%s and %s shouldn't be close)r   r%   rE  r  )r)   ri  r  rD  s       r.   tst_none_isclosezTestIsclose.tst_none_isclose
  s0    ,BFF2::a+,,cQFl;r0   c                 l   d}d}t        j                  |      rSt        j                  |      r>t        t        j                  ||      t        j                  ||      k(  |||fz         y t        t        j                  ||      j                         t        j                  ||      |||fz         y )Nz4isclose.all() and allclose aren't same for %s and %sz.isclose and allclose aren't same for %s and %srC  )r%   r  r   r  rx  r   r   )r)   ri  r  rD  msg2s        r.   tst_isclose_allclosez TestIsclose.tst_isclose_allclose
  s    D?;;q>bkk!nBJJq!$Aq(99tq!f}Mrzz!Q/335r{{1a7H#QRTUPV,Wr0   c                 p    | j                          | j                  D ]  \  }}| j                  ||        y r   )r  r  r  ry  s      r.   test_ip_all_isclosezTestIsclose.test_ip_all_isclose
  s/    **FQ  A& +r0   c                 p    | j                          | j                  D ]  \  }}| j                  ||        y r   )r  r  r  ry  s      r.   test_ip_none_isclosez TestIsclose.test_ip_none_isclose
  s/    ++FQ!!!Q' ,r0   c                     | j                          | j                  | j                  z   | j                  z   }|D ]  \  }}| j	                  ||        y r   )r  r  r  r  r  )r)   r  ri  r  s       r.   test_ip_isclose_allclosez$TestIsclose.test_ip_isclose_allclose
  sM    %%(=(==&&'FQ%%a+ r0   c                    t        t        j                  t        j                  t        j                  d      dg       t        j                  dt        j                  g      }t        t        j                  ||d      ddg       y )NTr  rS   )r   r%   r  ra  r&   r1  s     r.   test_equal_nanzTestIsclose.test_equal_nan 
  sT    2::bffbffEvNhhRVV}%2::c3$?$Nr0   c           	      *   t         j                  j                  g dt        j                  d            }t	        t        |      t        t        j                  d|            u        t	        t        |      t        t        j                  |d            u        t         j                  j                  g dt         j                  t         j                  t         j                  g      }t	        t        |      t        t        j                  t         j                  |            u        t	        t        |      t        t        j                  |t         j                              u        t         j                  j                  g dt         j                  t         j                  t         j                  g      }t        j                  t         j                  |d      }t	        t        |      t        |      u        t        g d|j                         t        j                  |t         j                  d      }t	        t        |      t        |      u        t        g d|j                         t         j                  j                  g dt         j                  t         j                  t         j                  g      }t        j                  ||d      }t	        t        |      t        |      u        t        g d|j                         y )Nr  r   r   Tr  )r%   mamasked_whererK   r   r]   r  ra  rd  r   maskry  s      r.   test_masked_arrayszTestIsclose.test_masked_arrays%
  s    EE2BIIaLAQ4

1a 0112Q4

1a 0112EE2RVVRVVRVV4LMQ4

2661 5667Q4

1bff 5667EE2RVVRVVRVV4LMJJrvvqD1Q47"#.7JJq"&&D1Q47"#.7EE2RVVRVVRVV4LMJJq!t,Q47"#.7r0   c                 h    t        t        j                  t        j                  dd                   y Nr   )r   r%   r  r  r>  s    r.   test_scalar_returnzTestIsclose.test_scalar_return@
  s    BJJq!,-.r0   c                    t        j                  t         j                  dg      }t        j                  dt         j                  g      }t        j                  ||       t	        |t        j                  t         j                  dg             t	        |t        j                  dt         j                  g             y r  )r%   r&   rd  r  r   ry  s      r.   r  z*TestIsclose.test_no_parameter_modificationC
  sr    HHbffa[!HHa[!


1a1bhh{341bhh266{34r0   c                    t        t        j                  t        j                  t        j                         t        j                  u        t        t        j                  dt        j                        t        j                  u        t        t        t        j                  dt        j                              t        j                  u        y Nr   )r   r%   r  rd  r(  r]   r  r>  s    r.   test_non_finite_scalarz"TestIsclose.test_non_finite_scalarJ
  so     	

266BFF7+ryy89

1bff%23RZZ266*+rxx78r0   c                    t        j                  g dgd      }t        j                  ||dd      j                         sJ t        j                  ||t        j                  dd      d      j                         sJ t        j
                  ||dd      sJ t        j
                  ||t        j                  dd      d      sJ y )	N)r   r   r   rP  zm8[ns]r>   r   T)r  r  r   ns)r%   r&   r  r   rg  rx  r   s     r.   test_timedeltazTestIsclose.test_timedeltaQ
  s     HH&'x8zz!QQ$7;;===zz!QR^^At%<MQQSSS{{1aa4888{{1abnnQ&=NNNr0   N)rT   rU   rV   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rX   r0   r.   r  r  	  sW    DD+Z9J<X'
(
,O
86/59Or0   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)
TestStdVarc                 J    t        j                  g d      | _        d| _        y )N)r   rF   r   rF   r   )r%   r&   r*   real_varr>  s    r.   r?  zTestStdVar.setup_method\
  s    .)r0   c                     t        t        j                  | j                        | j                         t        t        j
                  | j                        dz  | j                         y )Nr   )r   r%   r  r*   r  r   r>  s    r.   
test_basiczTestStdVar.test_basic`
  s;    BFF466NDMM:BFF466NA-t}}=r0   c                     t        t        j                  d      d       t        t        j                  d      d       y r  r	   r%   r  r   r>  s    r.   test_scalarszTestStdVar.test_scalarsd
  s&    RVVAY"RVVAY"r0   c                    t        t        j                  | j                  d      | j                  t        | j                        z  t        | j                        dz
  z         t        t        j                  | j                  d      dz  | j                  t        | j                        z  t        | j                        dz
  z         y )Nr   ddofr   r   r%   r  r*   r  r  r   r>  s    r.   
test_ddof1zTestStdVar.test_ddof1h
  s    BFF4662 MMCK73tvv;?K	MBFF4662A5 MM#dff+5TVVqI	Kr0   c                    t        t        j                  | j                  d      | j                  t        | j                        z  t        | j                        dz
  z         t        t        j                  | j                  d      dz  | j                  t        | j                        z  t        | j                        dz
  z         y )Nr   r  r  r>  s    r.   
test_ddof2zTestStdVar.test_ddof2n
  s    BFF4662 MMCK73tvv;?K	MBFF4662A5 MMCK73tvv;?K	Mr0   c                 x   t        j                  d      }t        j                  d      }t        j                  ||      }t	        ||u        t        ||       t        j                  ||      }t	        ||u        t        ||       t        j                  ||      }t	        ||u        t        ||       y )NrD   r  rL  )r%   rK   r&   r   r   r   r  r   )r)   rH  rk   rq  s       r.   test_out_scalarzTestStdVar.test_out_scalart
  s    IIbMhhrlFF1#S1c"FF1#S1c"GGA3S1c"r0   N)	rT   rU   rV   r?  r  r  r  r  r  rX   r0   r.   r  r  [
  s"    >#KM#r0   r  c                       e Zd Zd Zd Zy)TestStdVarComplexc                     t        j                  g d      }d}t        t        j                  |      |       t        t        j                  |      dz  |       y )N)r   r  rF   y             r   r   )r%   r&   r   r  r   )r)   r*   r  s      r.   r  zTestStdVarComplex.test_basic
  s>    HH'(BFF1Ix0BFF1IqL(3r0   c                     t        t        j                  d      d       t        t        j                  d      d       y )Nr  r   r  r>  s    r.   r  zTestStdVarComplex.test_scalars
  s&    RVVBZ#RVVBZ#r0   N)rT   rU   rV   r  r  rX   r0   r.   r  r  
  s    4$r0   r  c                   z    e Zd Zd ZddZd Zd Zd Zd Ze	j                  j                  e d	      d
        Zy)TestCreationFuncsc                    t        j                  t        j                  j	                          D ch c]  }t        j
                  |       }}|D ch c]   }|j                  j                  d      s|" }}t        ||z
  |D ch c]K  }t        dd      D ]:  }t        j
                  |j                  j                  dt        |                  < M c}}z  d       | _        ddd| _        d| _        y c c}w c c}w c c}}w )	NrU  r   rD   c                     | j                   S r   )r  r>   s    r.   r  z0TestCreationFuncs.setup_method.<locals>.<lambda>
  s    uyyr0   )keyr  r  )r  F)r  chainr%   r  valuesr7   r  endswithsortedrF  replacedtypesordersndims)r)   tpr  variable_sizedr   s        r.   r?  zTestCreationFuncs.setup_method
  s    )2"**:K:K:M)NO)N2"((2,)NO'-Fv1E"vFVn4(6N(6"a1 !hhrvv~~c3q6'BC@L D(6NN "9: +@
 PFNs   C< D4DADNc                    dt        | j                        | j                  | j                  f}i }|d|i}t	        j
                  | D ]  \  }}}}||gz  }	|r|j                  j                  d      r, ||	f||d|}
t        |
j                  |       t        t        |
j                  | j                  |                |}|j                  j                  d      rt        |      }n|}t        |
|j                  |              y )Nrc   
fill_valuez|Vorderr7   z|S)rF  r  r  r  r  r  r  
startswithr	   r7   r   getattrr  r]   )r)   r@  r  par
fill_kwargr   r  r  r7   r8   rq   r   s               r.   check_functionz TestCreationFuncs.check_function
  s   TZZ {{{{ 
!&
3J)2):):C)@%D%TFNE eii2248u %E %#%C E*GCIIt{{5'9:;%99''-j/C$CS%**S/2% *Ar0   c                 B    | j                  t        j                         y r   )r  r%   r@   r>  s    r.   
test_zeroszTestCreationFuncs.test_zeros
      BHH%r0   c                 B    | j                  t        j                         y r   )r  r%   r\  r>  s    r.   	test_oneszTestCreationFuncs.test_ones
  s    BGG$r0   c                 B    | j                  t        j                         y r   )r  r%   emptyr>  s    r.   
test_emptyzTestCreationFuncs.test_empty
  r  r0   c                     | j                  t        j                  d       | j                  t        j                  d       y )Nr   r   )r  r%   rf  r>  s    r.   	test_fullzTestCreationFuncs.test_full
  s*    BGGQ'BGGQ'r0   zPython lacks refcountsr   c                    d}t        j                  |      }t        j                  |gdz         t	        t        j                  |      |k(         t        j
                  |gdz         t	        t        j                  |      |k(         t        j                  |gdz         t	        t        j                  |      |k(         t        j                  |gdz  d       t	        t        j                  |      |k(         y )Nr   rD   r   )r  getrefcountr%   r@   r   r\  r  rf  )r)   dimbegs      r.   test_for_reference_leakz)TestCreationFuncs.test_for_reference_leak
  s     ooc"
#r$+,
b$+,
#r$+,
b!$+,r0   r   )rT   rU   rV   r?  r  r  r  r  r  rL   r
  r  r   r  rX   r0   r.   r  r  
  sM    	3:&%&( [[L(1IJ- K-r0   r  c                      e Zd ZdZd Zd ZddZd Zd Zd Z	d Z
ej                  j                  d	ej                  ej                   ej"                  ej$                  g      ej                  j                  d
eeg      d               Zy)TestLikeFuncsz4Test ones_like, zeros_like, empty_like and full_likec                     t        j                  d      d ft        j                  d      dft        j                  dd      d ft        j                  d      dft        j                  d      j                  dd      d ft        j                  d      j                  dd      d	ft        j                  d      j                  d
d      d ft        j                  d      j                  dd      d	ft        j                  d      j                  ddd      d ft        j                  d      j                  ddd      dft        j                  d      j                  dd      d ft        j                  d      j                  dd      dft        j                  d      j                  ddd      j	                  dd      d ft        j                  d      j                  ddd      j	                  dd      dfg| _        g d| _        y )Ng      @r   r  rf   r  r>   r  r   r0  r  r  )r  r   r   r   r   r"   )r   r   r   r   r   r  )rX   rZ   )rZ   rf   re   )r%   r&   rK   r   r   r  shapesr>  s    r.   r?  zTestLikeFuncs.setup_method
  s    "t$!d#1D)401u%1%%a+T21%%a+T21%%fC%8$?1%%fC%8$?2&&q!Q/62&&q!Q/62&&y&<dC2&&y&<dC2&&q!Q/88A>E2&&q!Q/88A>D+	. 3r0   c                     |t|rPt        j                  |      j                  |j                        }t	        t        j
                  ||k(               y t	        t        j
                  ||k(               y y r   )r%   r&   rl  r7   r   r   )r)   dzvaluer  zs        r.   compare_array_valuez!TestLikeFuncs.compare_array_value
  sW     HHUO**2884rQw(rU{+, r0   c                 Z   |rd|i}ni }| j                   D ]  \  }} ||fd|i|}t        |j                  |j                         t        t        j                  |j
                        |j                  j                  z  t        j                  |j
                        |j                  j                  z         t        |j                  j                  |j                  j                         t        |j                  j                  |j                  j                         |!t        |j                  |j                         n)t        |j                  t        j                  |             | j                  |||        ||fd|d|}t        |j                  |j                         t        |j                  j                         |!t        |j                  |j                         n)t        |j                  t        j                  |             | j                  |||        ||fd|d|}t        |j                  |j                         t        |j                  j                         |!t        |j                  |j                         n)t        |j                  t        j                  |             | j                  |||        ||fd|d|}t        |j                  |j                         |j                  j                  r t        |j                  j                         nt        |j                  j                         |!t        |j                  |j                         n)t        |j                  t        j                  |             | j                  |||       | j                  D ]  }dD ]  }	 ||f|||	d|}
t        |
j                  |       |!t        |
j                  |j                         n)t        |
j                  t        j                  |             |	dk(  s|	dk(  r6|j                  j                  r t        |
j                  j                         n?|	dk(  s|	dk(  r5|j                  j                  rt        |
j                  j                         | j                  |
||        |j                  t        |      k7  rit        t        j                    ||f||d	d|j
                        t        j                   t        j"                  ||d
      j
                               t        t        j                    ||f||d	d|j
                        t        j                   |j
                                  G d dt        j$                        }t        j                  ddgddgg      j'                  |      } ||fi |}t        t)        |      |u         ||fddi|}t        t)        |      |u       y )Nr  r7   r  r  r  r*   CFA)r7   r8   r  K)r7   r  c                       e Zd Zy)4TestLikeFuncs.check_like_function.<locals>.MyNDArrayNr  rX   r0   r.   	MyNDArrayr  N  r  r0   r  r   r   r   r   subokF)r  r	   r8   r%   r&   stridesr7   r  r  r  r  r  r   r  ndimr  argsortr  r[   r\   r]   )r)   like_functionr  r  r  rH  r7   r
  r   r:  szr  r=   r  s                 r.   check_like_functionz!TestLikeFuncs.check_like_function
  s   &.JJ		HAuq<<<B177+"**-agg.>.>>!)),RXX->->>@--rxx/D/DE--rxx/D/DE}RXXqww/RXXrxx7$$R
; qG5GJGB177+BHH))*}RXXqww/RXXrxx7$$R
; qG5GJGB177+BHH))*}RXXqww/RXXrxx7$$R
; qG5GJGB177+ww##--.--.}RXXqww/RXXrxx7$$R
; [[A&q 5Qa 5)35B 1-}$RXXqww7$RXXrxx?CxAH1E1E 5 56ca3h1773G3G 5 56,,R
C  FFc!f$ M! -H5@A-H<F-HHO"Q "$BHHQe;>-@@G"IJ !M! -H5@A-H<F-HHO"Q "$AII!68- !a "X	

 	 HHq!fq!f%&++I6!*z*Q9$%!757J7Qy()r0   c                 D    | j                  t        j                  d       y r  )r  r%   	ones_liker>  s    r.   test_ones_likezTestLikeFuncs.test_ones_likeY  s      q1r0   c                 D    | j                  t        j                  d       y r  )r  r%   rk  r>  s    r.   test_zeros_likezTestLikeFuncs.test_zeros_like\  s      2r0   c                 D    | j                  t        j                  d        y r   )r  r%   r1  r>  s    r.   test_empty_likezTestLikeFuncs.test_empty_like_  s      5r0   c                    | j                  t        j                  dd       | j                  t        j                  dd       | j                  t        j                  dd       | j                  t        j                  dd       t        j                  d      5  | j                  t        j                  t        j                  d       d d d        y # 1 sw Y   y xY w)Nr   Tr   r~  gw/^@r|  ro  )r  r%   	full_liker  rd  r>  s    r.   test_filled_likezTestLikeFuncs.test_filled_likeb  s      q$7  q$7  tT:  w=[[*$$R\\2664@ +**s   0CClikefuncr7   c                    t        j                  d      j                  dd      }|d d d d df   }|t         j                  k(  rddini } ||fd|i|}|t        k(  r|j
                  dk(  sJ y |j
                  dk(  sJ y )	NrZ  r   rv   r  r   r7   )rZ  r   )r   r   )r%   rK   r   r#  r  r  )r)   r%  r7   r=   r  r  rE  s          r.   test_dtype_str_bytesz"TestLikeFuncs.test_dtype_str_bytesk  s    
 IIbM!!!Q'a1fI'/2<<'?,#R!353F3C<>>W,,, >>V+++r0   N)F)rT   rU   rV   __doc__r?  r  r  r  r  r!  r$  rL   r
  r  r%   r1  r#  rk  r  r  bytesr'  rX   r0   r.   r  r  
  s    >34	-Z*x236A [[Z"--*,--*G H[[WsEl3
, 4H
,r0   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestCorrelatec                 &   t        j                  g d|      | _        t        j                  dd      d d d   | _        t        j                  g d|      | _        t        j                  g d|      | _        t        j                  g d|      | _        t        j                  g d	|      | _        t        j                  g d
|      | _	        t        j                  g d|      | _
        t        j                  g d|      | _        y )Nr   r>   r   r  r   )rF   r   r   )                   ,      4      :r/        )g       r2  r.  g      &r/  r2  )      .      6r4        0      $      r[  )r2  r/  r1  r0  r/  r.  r-  )r[  r7  r6  r5  r4  r4  r3  )	r-  r/  g      >g      Hg     Pg      Ug     Yg      Kg      3)r%   r&   ri  rK   xsr  z1z1_4z1rz2z2rzs)r)   r  s     r.   r  zTestCorrelate._setup|  s    /4))Ar"3Q3',b1((B"MHH=RH	88DBO((B"M88DBO(( .579r0   c                 X   | j                  t               t        j                  | j                  | j
                  d      }t        || j                         t        j                  | j                  | j
                  d d d      }t        || j                         t        j                  | j
                  | j                  d      }t        || j                         t        j                  | j                  d d d   | j
                  d      }t        || j                         t        j                  | j
                  | j                  d d d   d      }t        || j                         t        j                  | j                  | j
                  d      }t        || j                         y )Nrf  rF   )r  rw  r%   	correlateri  r  r   r9  r:  r<  r;  r=  r8  r>  r)   r  s     r.   rt  zTestCorrelate.test_float  s   ELL0!!TWW-LLf5!!TYY/LL0!!TWW-LL"tvvv6!!TXX.LL"v6!!TXX.LL$&&&1!!TWW-r0   c                 2   | j                  t               t        j                  | j                  | j
                  d      }t        || j                         t        j                  | j
                  | j                  d      }t        || j                         y )Nrf  )	r  r   r%   r@  ri  r  r   r9  r<  rA  s     r.   test_objectzTestCorrelate.test_object  s^    GLL0!!TWW-LL0!!TWW-r0   c                     t        j                  d      }t        j                  d      }t        j                  ||       t        |t        j                  d             t        |t        j                  d             y Nr  r   )r%   r\  r@  r   r)   rH  ks      r.   test_no_overwritezTestCorrelate.test_no_overwrite  sN    GGCLGGAJ
Q1bggcl+1bggaj)r0   c                 &   t        j                  g dt              }t        j                  g dt              }t        j                  g dt              }|d d d   j                         }t        j                  ||d      }t        ||       y )N)r   r   r   y      @      ?r>   )rF   y              y      @      ?)y      @      rf   y       @      ?y      &@      @y             @y            rF   rf  mode)r%   r&   rv  	conjugater@  r   )r)   ri  r  r_zr  s        r.   test_complexzTestCorrelate.test_complex  se    HH_G4HH_G4hh;7K$B$i!!#LLAF+!!S)r0   c                    t        j                  t              5  t        j                  t        j
                  g       t        j                  d      d       d d d        t        j                  t              5  t        j                  t        j                  d      t        j
                  g       d       d d d        y # 1 sw Y   jxY w# 1 sw Y   y xY w)Nr~  rf  rJ  )rL   rM   rN   r%   r@  r&   r\  r>  s    r.   test_zero_sizezTestCorrelate.test_zero_size  sw    ]]:&LL"rwwt}6B ']]:&LL6B '& '&&&s   ?C:?CCCc                 L   t        j                  d      }t        j                  d      }t        j                  ||d      }t        t              5  t        j                  ||d      }d d d        t        |       t        t              5  t        j                  ||d       d d d        t        t        j                  ||d      |       t        t              5  t        j                  ||d        d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   y xY w)Nr  r   validrJ  vrF   r   )	r%   r\  r@  r   r   r   r
   rN   r  )r)   rH  rG  default_mode
valid_modes        r.   	test_modezTestCorrelate.test_mode  s    GGCLGGAJ||Aqw7,-a5J .:|4:&LLAB' '2<<115zB9%LLAD) &% .- '& &%$   DD DDDD#N)
rT   rU   rV   r  rt  rC  rH  rN  rP  rV  rX   r0   r.   r+  r+  {  s&    
9..**C*r0   r+  c                       e Zd Zd Zd Zd Zy)TestConvolvec                     dgdz  }dgdz  }t        t        j                  ||      dd t        j                  dd             y )NrS   r  r   r   r   b   )r   r%   convolverf  rF  s      r.   rC  zTestConvolve.test_object  s>    D3JD1H!"++a"3Ab"92772q>Jr0   c                     t        j                  d      }t        j                  d      }t        j                  ||       t        |t        j                  d             t        |t        j                  d             y rE  )r%   r\  r\  r   rF  s      r.   rH  zTestConvolve.test_no_overwrite  sN    GGCLGGAJ
Aq1bggcl+1bggaj)r0   c                 L   t        j                  d      }t        j                  d      }t        j                  ||d      }t        t              5  t        j                  ||d      }d d d        t        |       t        t              5  t        j                  ||d       d d d        t        t        j                  ||d      |       t        t              5  t        j                  ||d        d d d        y # 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   y xY w)Nr  r   rf  rJ  r   rF   r   )	r%   r\  r\  r   r   r   r
   rN   r  )r)   rH  rG  rT  	full_modes        r.   rV  zTestConvolve.test_mode  s    GGCLGGAJ{{1af5,-Aqs3I .9l3:&KK12& '2;;q!!4i@9%KK14( &% .- '& &%rW  N)rT   rU   rV   rC  rH  rV  rX   r0   r.   rY  rY    s    K
*)r0   rY  c                   `    e Zd Zej                  j                  dg d      d        Zd Zd Zy)TestArgwherer`  rc   c                 (   t        j                  d|z  t              }d|d<   t        t        j                  |      j
                  d|f       d|d<   d|j                  d<   t        t        j                  |      j
                  d|f       d|d<   d|j                  d<   t        t        j                  |      j
                  |j                  dz
  |f       d|d<   t        t        j                  |      j
                  |j                  |f       y )Nr  F.r   Tr   )r%   r  r9  r	   argwherer8   flatr   )r)   r`  ri  s      r.   test_ndzTestArgwhere.test_nd  s     HHT"Wd# #R[[^))Ar73 #q	R[[^))Ar73 #q	R[[^))AFFQJ+;< #R[[^))AFFB<8r0   c                     t        j                  d      j                  d      }t        t        j                  |dkD        ddgddgddgddgg       y )Nrf   r  r   r   r   )r%   rK   r   r   rc  r  s     r.   test_2DzTestArgwhere.test_2D  sR    IIaL  (2;;q1u-FFFF$	%r0   c                 V    t        t        j                  g d      dgdgdgdgg       y )N)r   r   r   r   r   r   r   r   r   )r	   r%   rc  r>  s    r.   	test_listzTestArgwhere.test_list  s&    R[[1QC!qcA33GHr0   N)	rT   rU   rV   rL   r
  r  re  rg  ri  rX   r0   r.   ra  ra    s0    [[T9-9 .9,%Ir0   ra  c                       e Zd Zd Zy)TestStringFunctionc                    t        j                  dg      }t        j                  d d       t        t	        |      d       t        j                  d d       t        t	        |      d       t        j                  d d       t        t        |      d       t        j                  d d       t        t        |      d	       y )
Nr   c                      yNFOOrX   rZ  s    r.   r  z=TestStringFunction.test_set_string_function.<locals>.<lambda>	      r0   T)reprro  z
array([1])c                      yrn  rX   rZ  s    r.   r  z=TestStringFunction.test_set_string_function.<locals>.<lambda>  rp  r0   Fz[1])r%   r&   set_string_functionr	   rq  r  r   s     r.   test_set_string_functionz+TestStringFunction.test_set_string_function  s    HHaSM
T:T!We$
t$/T!Wl+
U;SVU#
t%0SVU#r0   N)rT   rU   rV   rt  rX   r0   r.   rk  rk    s    
$r0   rk  c                       e Zd Zd Zd Zd Zy)TestRollc                     t        j                  d      }t        j                  |d      }t        |t        j                  g d             y )NrD   r   )
rv   rw   r   r   r   r   r   rZ   rf   rg   )r%   rK   rollr	   r&   )r)   ri  xrs      r.   test_roll1dzTestRoll.test_roll1d  s2    IIbMWWQ]R"@ABr0   c                    t        j                  t        j                  d      d      }t        j                  |d      }t	        |t        j
                  g dg dg             t        j                  |dd      }t	        |t        j
                  g dg d	g             t        j                  |dd      }t	        |t        j
                  g d
g dg             t        j                  |dd      }t	        |t        j
                  g dg d
g             t        j                  |dd      }t	        |t        j
                  g dg d	g             t        j                  |dd      }t	        |t        j
                  g dg d	g             t        j                  |dd      }t	        |t        j
                  g d
g dg             t        j                  |dd      }t	        |t        j
                  g dg dg             t        j                  |dd      }t	        |t        j
                  g dg d
g             t        j                  |dd      }t	        |t        j
                  g dg dg             t        j                  |dd      }t	        |t        j
                  g d	g dg             t        j                  |dd      }t	        |t        j
                  g dg dg             t        j                  |dd      }t	        |t        j
                  g d
g dg             t        j                  |dd      }t	        |t        j
                  g d
g dg             y )NrD   r   rZ   r   )rw   r   r   r   r   )r   rZ   rf   rg   rv   r   rx   ru   rt   )r   r   r   r   r   )rw   rZ   rf   rg   rv   r  r  )rF   r   )r   rF   )r   r   r   r   r   )rf   rg   rv   rw   rZ   r  )rF   rF   r  )r   r   r   r   r   )rv   rw   rZ   rf   rg   rf   rn   )r%   r   rK   rx  r	   r&   )r)   x2x2rs      r.   test_roll2dzTestRoll.test_roll2d  si   ZZ		"v.ggb!nS"((O_#EFGggb!!$S"((O_#EFGggb!!$S"((O_#EFG ggb!&)S"((O_#EFGggb&v.S"((O_#EFGggb'/S"((O_#EFGggb&v.S"((O_#EFGggb'/S"((O_#EFGggb&v.S"((O_#EFGggb(0S"((O_#EFG ggb!&)S"((O_#EFGggb!&)S"((O_#EFG ggb!!$S"((O_#EFGggb"1%S"((O_#EFGr0   c                     t        j                  g       }t        t        j                  |d      t        j                  g              y r  )r%   r&   r	   rx  r  s     r.   test_roll_emptyzTestRoll.test_roll_emptyI  s+    HHRLRWWQ]BHHRL1r0   N)rT   rU   rV   rz  r  r  rX   r0   r.   rv  rv    s    C
-H^2r0   rv  c                       e Zd Zi dddddddddd	d
dddddddddddddddddddddddddddZd Zd Zy) TestRollaxisr  r   r  r5   r   r   r   r   )r   r   )r   r   r   r   r   r   )r   r   r   r   r  r  r  r   r   r   r   r   )r   r   r   r   r   r   r6   )r   r   r   r   r?   r   r   r  r   )r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   )r  r   r   r   c                    t        j                  d      j                  dddd      }t        t         j                  t         j
                  |dd       t        t         j                  t         j
                  |dd       t        t         j                  t         j
                  |dd       t        t         j                  t         j
                  |dd       y )	Nr   r   r   r   r   r   r   rZ   )r%   rK   r   r
   r  rollaxisr   s     r.   test_exceptionszTestRollaxis.test_exceptions_  s    IIg&&q!Q2bllBKKB:bllBKKAr:bllBKKAq9bllBKKAq9r0   c           
         t        j                  d      j                  dddd      j                         }t        j                  |j
                        }t        |j                  d          | j                  D ]  \  }}t        j                  |||      }|t        j                  |j
                        dz
     \  }}}}	t        t        j                  |||||	f   |k(               t        |j
                  | j                  ||f   k(  t        ||f             t        |j                  d           |dz   }
t        j                  ||
 |      }|t        j                  |j
                        dz
     \  }}}}	t        t        j                  |||||	f   |k(               t        |j
                  | j                  d|
z
  |f   k(         t        |j                  d           |dk  r|dz   n|}t        j                  |||       }|t        j                  |j
                        dz
     \  }}}}	t        t        j                  |||||	f   |k(               t        |j
                  | j                  |d|z
  f   k(         t        |j                  d           |dz   }
|dk  r|dz   n|}t        j                  ||
 |       }|t        j                  |j
                        dz
     \  }}}}	t        t        j                  |||||	f   |k(               t        |j
                  | j                  d|
z
  d|z
  f   k(         t        |j                  d            y )Nr   r   r   r   r   OWNDATA)ry   start)r%   rK   r   r;  r   r8   r   r  tgtshaper  r&   r   r  )r)   r=   aindr   jrR  i0r0  r1  i3ipjps               r.   test_resultszTestRollaxis.test_resultsf  s   IIg&&q!Q2779zz!''"	"#mmFQ++aaq1C!"((399"5"9:NBBBFF3r2r2~.!345CII1v!66QqE
C		),,- QB++arc3C!"((399"5"9:NBBBFF3r2r2~.!345CIIB{!;;<		),,- a%QQB++aas3C!"((399"5"9:NBBBFF3r2r2~.!345CII1r6{!;;<		),,- QBa%QQB++arc"5C!"((399"5"9:NBBBFF3r2r2~.!345CIIBB/?!@@A		),,-? $r0   N)rT   rU   rV   r  r  r  rX   r0   r.   r  r  N  s    & &fl &&&,l&& & '-l& 	& '-l	&
 & & '-l& & '-l& & & '-l& %l$&H:#.r0   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestMoveaxisc                     t         j                  j                  ddd      }dD ]2  \  }}t        j                  ||d      j                  }t        ||       4 y )NrZ   rf   rg   ))r   )rf   rg   rZ   )r   )rZ   rg   rf   )r   re   )rF   re   rF   r%   r  r   moveaxisr8   r   )r)   ri  sourcer   r  s        r.   test_move_to_endzTestMoveaxis.test_move_to_end  sM    IIOOAq!$!2FH [[FB/55FFH%!2r0   c                     t         j                  j                  dddd      }dD ]3  \  }}}t        j                  |||      j                  }t        ||       5 y )Nr   r   r   r   ))r   r   r  )r   r   r  )r   rF   r  r  r)   ri  r  destinationr   r  s         r.   test_move_new_positionz#TestMoveaxis.test_move_new_position  sQ    IIOOAq!Q'.)FK
 [[FK8>>FFH%.r0   c           	          t        j                  d      }dddddgddgfddgddgft        d      t        d      ffD ]2  \  }}t        j                  |||      j                  }t        |d       4 y )	Nr   r  )r   rF   )rF   r   r   rF   r   r   )r%   r@   rF  r  r8   r   )r)   ri  r  r  r  s        r.   test_preserve_orderz TestMoveaxis.test_preserve_order  s~    HH\"R1b'"Q!Q q58$$FK [[FK8>>FFL)$r0   c                     t        j                  d      }ddgddgdfddgddgdfg dg ddfddgddgd	fddgddgd	ffD ]3  \  }}}t        j                  |||      j                  }t	        ||       5 y )
Nr   r   r   r   r   )r   r   r   r   rc   )r   r   r   )r   r   r   r   )r%   r@   r  r8   r   r  s         r.   test_move_multiplesz TestMoveaxis.test_move_multiples  s    HH\"Q!Q.Q!Q.I|4Q!Q.Q!Q..)FK [[FK8>>FFH%.r0   c           	      x   t         j                  j                  ddd      }t        t         j                  dt         j
                  |dd       t        t         j                  dt         j
                  |dd       t        t         j                  dt         j
                  |dd       t        t        d	t         j
                  |ddgddg       t        t        d
t         j
                  |ddgddg       t        t        dt         j
                  |dddg       t        t        dt         j
                  |ddgdg       y )Nr   r   r   zsource.*out of boundsr   rn   zdestination.*out of boundsrZ   zrepeated axis in `source`zrepeated axis in `destination`zmust have the same number)r%   r  r   r   r  r  rN   r  s     r.   test_errorszTestMoveaxis.test_errors  s    IIOOAq!$BLL*AKKAq	2BLL*AKKB	3BLL*FKKAq	2J(CKKQFQF	<J(HKKQFQF	<J(CKKA1v	7J(CKKQFQC	9r0   c                    t         j                  j                  d      }t        j                  |dd      }t	        |j
                  |j
                         t	        t        |t         j                  j                               g d}t        j                  |dd      }t	        |t        |             t	        t        |t         j                               y )Nr!   r   )
r%   r  r@   r  r   r8   r   MaskedArrayrG  r[   )r)   ri  rE  s      r.   test_array_likeszTestMoveaxis.test_array_likes  s    EEKK	"Q1%&
6255#4#456Q1%4< 
62::./r0   N)	rT   rU   rV   r  r  r  r  r  r  rX   r0   r.   r  r    s     &&*
&9"	0r0   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)	TestCrossc                     ddg}ddg}d}t        j                  ||      }t        ||       t        j                  ||      }t        ||        y )Nr   r   r   r   r   )r%   crossr	   r)   urS  r  cps        r.   test_2x2zTestCross.test_2x2  sM    FFXXa^RXXa^R!r0   c                     ddg}g d}t        j                  g d      }t        j                  ||      }t        ||       t        j                  ||      }t        ||        y )Nr   r   rd   rD   r   r   r%   r&   r  r	   r  s        r.   test_2x3zTestCross.test_2x3  sR    FHH\"XXa^RXXa^R!r0   c                     g d}g d}t        j                  g d      }t        j                  ||      }t        ||       t        j                  ||      }t        ||        y )Nr!   r   r   rf   r   r  r  s        r.   test_3x3zTestCross.test_3x3  sN    HH[!XXa^RXXa^R!r0   c                    t        j                  ddgd      }t        j                  ddgd      }d}t        t        j                  ||      |       t        t        j                  ||      |        t        t        j                  ||      d       t        j                  ddgd      j                  }t        j                  g dd      }t        j                  g d	d      }t        t        j                  ||d
      |       t        t        j                  ||j                        |        t        t        j                  ||      d       t        j                  g dd      j                  }t        j                  ddgd      j                  }t        j                  g dd      }t        t        j                  ||dd      |       t        t        j                  |j                  |j                        |        t        t        j                  |j                  |j                        d       t        j                  g dd      }t        j                  g dd      j                  }t        j                  g dd      }t        t        j                  ||d      |       t        t        j                  |j                  |      |        t        t        j                  ||      d       y )Nr   r   )r   r   r   r   r   r   rd   r  )axisar!   )r~  rw   r   r  axisb)rZ   r   r   r  )r  )r%   tiler	   r  r  r)   r  rS  r  s       r.   test_broadcastingzTestCross.test_broadcasting  s   GGQFG$GGQFG$RXXa^Q'RXXa^aR(RXXa^Q'GGQFG$&&GGIw'GGL'*RXXa!,a0RXXa%r*RXXa^Q'GGIw'))GGQFG$&&GGL'*RXXa!15q9RXXacc133'!,RXXacc133'+GGIv&GGIv&((GGK(RXXa!,a0RXXacc1%r*RXXa^Q'r0   c                    t        j                  d      }t        j                  d      }t        t        j                  ||      j                  d       t        j                  d      }t        j                  d      }t        t        j                  ||dd      j                  d	       t        t         j                  t         j                  ||dd
       t        t         j                  t         j                  ||dd       t        j                  d      }t        j                  d      }t        t        j                  ||dd
      j                  d       t        t         j                  t         j                  ||dd
       t        t         j                  t         j                  ||dd       t        j                  d      }t        dd
      D ].  }t        t        j                  |||      j                  d       0 y )N)r   r   r   )rZ   r   )r   rZ   r   )rD   r   rZ   r|  r   r   r  )rD   rZ   r   r   r   )rD   r   rZ   rg   )rZ   rg   r   )r  axisc)rD   rZ   r   rg   r   rn   )r   r   r   r   )r  r  )r%   r\  r	   r  r8   r
   r  rF  )r)   r  rS  r  s       r.   test_broadcasting_shapesz"TestCross.test_broadcasting_shapes  sO   GGIGGFORXXa^))95GGJGGFORXXa!15;;ZHbllBHHa!1EbllBHHa!1EGGM"GGIRXXa!15;;]KbllBHHa"AFbllBHHa!2FGGI2q\E!Qe4::FC "r0   c                 p   t        j                  g dgt         j                        }t        j                  g dt         j                        }t        j                  g dgt         j                        }t	        t        j
                  ||      |       t	        t        j
                  ||      |        y )N)   rv   rw   )      D   )i  i+  i^r>   )r%   r&   r  r   r	   r  r  s       r.   test_uint8_int32_mixed_dtypesz'TestCross.test_uint8_int32_mixed_dtypes#  sn    HHk]BHH-HH^RXX.HH*+288<RXXa^Q'RXXa^aR(r0   N)	rT   rU   rV   r  r  r  r  r  r  rX   r0   r.   r  r    s!    (<D&)r0   r  c                  f   t        j                  d      } t        j                  d      }t        j                  ddd      }t        j                  d      }t        j                  d      }t        j                  | ||      }t        ||       t        t        j                  |||      |       y )	Nr  r  r   r   rZ   )rZ   rZ   )r8   r|  )r%   r\  linspacer[   outerr	   )arr1arr2arr3out1out2res1s         r.   test_outer_out_paramr  ,  s}    774=D774=D;;r1a D::E"D::F#D88D$%Dt$d+T2r0   c                      e Zd Zd Zd Zd Zd Zej                  j                  de
j                  e
j                  e
j                  e
j                  g      ej                  j                  dg d      d               Zy	)
TestIndicesc           
          t        j                  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#   r  r   r   r   rc   r%   r   r   r&   ry  s      r.   test_simplezTestIndices.test_simple9  s`    F#A1bhh	(1(1(1(3 4 	5 	1bhh	(1(1(1(3 4 	5r0   c                     t        j                  d      \  }t        |t        j                  g d             t        j                  dd      \  }t        |t        j                  g d             y )N)r   r   Tsparser  r  s     r.   test_single_inputzTestIndices.test_single_inputD  sJ    jj1bhh|45jjd+1bhh|45r0   c                    t        g t        j                  d             t        g t        j                  dd             t        g gt        j                  d             t        g gt        j                  dd             y )NrX   Tr  r4   )r   r%   r   r>  s    r.   test_scalar_inputzTestIndices.test_scalar_inputK  sU    2rzz"~.2rzz"T:;B4D!12B4D!>?r0   c           	          t        j                  dd      \  }}t        |t        j                  dgdgdgdgg             t        |t        j                  g dg             y )	Nr#   Tr  r   r   r   r   rc   r  ry  s      r.   r  zTestIndices.test_sparseQ  sO    E$/A1bhhaS1#s';<=1bhh	{34r0   r7   dims)rX   r4   r#   c                     t        j                  ||      }t        |j                  |k(         t        j                  ||d      D ]  }t        |j                  |k(          y )Nr>   T)r7   r  )r%   r   r   r7   )r)   r7   r  indsrq   s        r.   r  zTestIndices.test_return_typeV  sM     zz$e,

e#$::d%=CCII&' >r0   N)rT   rU   rV   r  r  r  r  rL   r
  r  r%   r   r   rA   r   r  rX   r0   r.   r  r  7  sp    	56@5
 [[Wrxx2::rzz&RS[[V%78( 9 T(r0   r  c                   D    e Zd Zg dZd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestRequire)r  r  
CONTIGUOUSr  r  FORTRANr*   ALIGNEDW	WRITEABLEr8  r  c                 b   t        j                  ddd|fg      }|j                  d       |d   }t        |j                  d           t        |j                  d           t        |j                  d           t        |j                  d	           t        |j                  d
           |S )Nr  )junkr0  r=   F)writer  r  r8  r  r*   )r%   r@   setflagsr   r  )r)   r7   rq   r=   s       r.   generate_all_falsezTestRequire.generate_all_falseg  s    hhve=>5!HAGGCL !AGGCL !AGGCL !AGGCL !AGGCL !r0   c                 <   ||j                   }t        j                  |||g      }t        |j                  |          t        |j                   |k(         t        j                  |d |g      }|d   dk7  rt        ||u        y t        |j                  |          y )Nr   r8  )r7   r%   requirer   r  )r)   flagr7   rq   r  r   s         r.   set_and_check_flagzTestRequire.set_and_check_flagr  s    =IIEJJsED6*5 ! JJq$'7c>AFOAGGDM"r0   c                     ddg}g d}t        j                  ||| j                        D ]*  \  }}}| j                  |      }| j	                  |||       , y )Nr  r3  )Nr  r  )r  r  
flag_namesr  r  )r)   idfdidtypefdtyper  r=   s          r.   test_require_eachzTestRequire.test_require_each  sW    D\ $-$5$5b"doo$N FFD''/A##D&15 %Or0   c                 h    | j                  d      }t        t        t        j                  |d d       y )Nr  Q)r  r
   KeyErrorr%   r  r   s     r.   test_unknown_requirementz$TestRequire.test_unknown_requirement  s&    ##D)h

AtS9r0   c                    t        j                  g ddg d      }t        |j                  d          t        |j                  d          t        |j                  d          t        |j                  dk(         t        |g d       y )Nr   r3  )r  r*   r8  r8  r  r*   )r%   r  r   r  r7   r	   r   s     r.   test_non_array_inputz TestRequire.test_non_array_input  s^    JJ|T?;4 Q%r0   c                 l    | j                  d      }t        t        t        j                  |d ddg       y )Nr  r  r  )r  r
   rN   r%   r  r   s     r.   test_C_and_F_simulzTestRequire.test_C_and_F_simul  s*    ##D)j"**aSzBr0   c                      G d dt         j                        } |d      }t        j                  |d dg      }t        t	        |      t         j                  u        y )Nc                       e Zd Zy)4TestRequire.test_ensure_array.<locals>.ArraySubclassNr  rX   r0   r.   ArraySubclassr    r  r0   r  r  E)r%   r[   r  r   r]   )r)   r  r=   r  s       r.   test_ensure_arrayzTestRequire.test_ensure_array  sG    	BJJ 	 &!JJq$&Q2::%&r0   c                      G d dt         j                        }| j                  D ]  } |d      }| j                  |d |        y )Nc                       e Zd Zy)8TestRequire.test_preserve_subtype.<locals>.ArraySubclassNr  rX   r0   r.   r  r    r  r0   r  r  )r%   r[   r  r  )r)   r  r  r=   s       r.   test_preserve_subtypez!TestRequire.test_preserve_subtype  s>    	BJJ 	 OODf%A##D$2 $r0   N)rT   rU   rV   r  r  r  r  r  r  r  r	  r  rX   r0   r.   r  r  `  s2    "J	#6:&C'3r0   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestBroadcastc                    t        j                  d      t        j                  d      t        j                  d      t        j                  d      g}t        j                  | t        j                  t        j                  |d d  t        j                  |dd         t        j                  t        j                  |d d  t        j                  |dd         t        j                  t        j                  |d d  t        j                  |dd         t        j                  |d   t        j                  |dd  |d         g}|D ]  }t        |j                  d	       t        |j
                  d
       t        |j                  d
       t        |j                  d       t        ||j                        D ]  \  }}t        ||j                  u          y )Nr  )rZ   rf   r   )rg   )rZ   r   rg   r   r   r   rF   re   r   r   )r%   r  	broadcastr	   r8   r  r`  numiterr  r8  r   base)r)   arrsmitsmitr=   ias         r.   test_broadcast_in_argsz$TestBroadcast.test_broadcast_in_args  sb    "((9"5rxx~#%d#R\\484bllDH6MNR\\484bllDH6MNR\\484bllDH6MNT!WbllD2J&?bJ	L
 CI.1%#a(T399-2RWW% . r0   c                 R   t        j                  d      g}t        j                  | }t        |j                  d       t        |j
                  d       t        |j                  d       t        |j                  d       t        |d   |j                  d   j                  u        y )Nre   r   r   r   )r%   r  r  r	   r8   r  r`  r  r   r8  r  )r)   r  r  s      r.   test_broadcast_single_argz'TestBroadcast.test_broadcast_single_arg  sx    #$llD!SYY	*SXXq!SVVQS[[!$Q399Q<,,,-r0   c                     t        j                  d      }t        d      D ]U  }|g|z  }|dkD  r t        t        t         j
                  g|  .t        j
                  | }t        |j                  |       W y )Nr  #   rY  )r%   r  rF  r
   rN   r  r	   r  )r)   rq   r  r  r  s        r.   test_number_of_argumentsz&TestBroadcast.test_number_of_arguments  s^    hhtnrA519D2vj",,>>llD)S[[!, r0   c                 8   t        j                  d      g}t        j                  | }t        j                  |i i }t        |j                  |j                         t        |j
                  |j
                         t        |j                  |j                         t        |j                  |j                         t        |j                  d   j                  |j                  d   j                  u        t        t        t         j                  dfi ddi y )Nre   r   r   ri  )r%   r  r  r	   r8   r  r`  r  r   r8  r  r
   rN   )r)   r  r  mit2s       r.   test_broadcast_error_kwargsz)TestBroadcast.test_broadcast_error_kwargs  s    #$||T"||T(R(SYY

+SXXtyy)SVVTWW%S[[$,,/		!!!TZZ]%7%778j",,>c1X>r0   c                     t        j                  t        d      5  t        j                  g dgdgdggddg       d d d        y # 1 sw Y   y xY w)Nz5arg 0 with shape \(1, 3\) and arg 2 with shape \(2,\)rH   r!   r   rZ   rf   rg   )rL   rM   rN   r%   r  r>  s    r.   !test_shape_mismatch_error_messagez/TestBroadcast.test_shape_mismatch_error_message  sH    ]]: .H ILL)sQCj1a&9I I Is   !AAN)rT   rU   rV   r  r  r  r   r"  rX   r0   r.   r  r    s    &".-?:r0   r  c                   <    e Zd Z G d dej                        Zd Zy)TestKeepdimsc                       e Zd ZddZy)TestKeepdims.sub_arrayNc                 J    t         j                  j                  | |||d      S )NTr  )r%   r[   r   )r)   ry   r7   rk   s       r.   r   zTestKeepdims.sub_array.sum  s    ::>>$eS4>HHr0   )NNN)rT   rU   rV   r   rX   r0   r.   	sub_arrayr&    s    	Ir0   r(  c                     | j                   }t        j                  d      j                  |      }t	        t
        t        j                  |d       y )N   Tr  )r(  r%   rK   r\   r
   r  r   )r)   	sub_classri  s      r.   
test_raisezTestKeepdims.test_raise  s5    NN	IIbMy)iT:r0   N)rT   rU   rV   r%   r[   r(  r,  rX   r0   r.   r$  r$    s    IBJJ I;r0   r$  c                       e Zd Zd Zd Zy)TestTensordotc                    t        j                  d      }t        j                  d      }t        j                  ||d      }t        |t        j                  ||             t        |t        j
                  d||             y )Nr  r  r  zij,jk)r%   r[   	tensordotr   doteinsum)r)   r=   r  tds       r.   test_zero_dimensionz!TestTensordot.test_zero_dimension  s[    JJuJJu\\!Q'2rvva|,2ryy!Q78r0   c                 x    t        j                  d      }t        j                  ||g g f      }t        ||       y r  )r%   r&   r0  r   )r)   arr_0drets      r.   test_zero_dimensionalz#TestTensordot.test_zero_dimensional  s/    !ll66B843'r0   N)rT   rU   rV   r4  r8  rX   r0   r.   r.  r.    s    9(r0   r.  )Kr  r   r  r  rL   r  decimalr   r   r%   
numpy.corer   numpy.randomr   r   r   numpy.testingr   r	   r
   r   r   r   r   r   r   r   r   numpy.core._rational_testsr   
hypothesisr   r   rh  hypothesis.extrarX  r   ra   r  r$  r5  rV  ry  r  r  	Exceptionr  r  r  rK  rS  rq  r  r  r  rk  r  r  r  r  r  r+  rY  ra  rk  rv  r  r  r  r  r  r  r  r$  r.  rX   r0   r.   <module>rA     s   
         - -   
 0 . *95 95xX- X-v' '  BT5 T5naH aHHP$ P$fe; e;Px- x-x	 	i< i<VM M`
1 1"'$ '$T   ,i) i)X2"R	- R	-jR1 R1jPO POf$# $#N	$ 	$D- D-Nc, c,LE* E*P) ):"I "IJ$ $72 72t;. ;.|G0 G0TS) S)l3&( &(RG3 G3T6: 6:r	; 	;( (r0   