
    Ph             	         d dl mZ 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	Z	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Zd dlmZ d dlmZ d dlZd dlZd dlmZ d dlZd dlZd dlmc mZ d dlm Z  d dl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6 d d	l7m8Z8 d d
l9m:Z: d dl;m<Z< d dl=m>Z>m=Z= d Z?e@ddfdZA G d d      ZB G d d      ZC G d d      ZD G d d      ZE G d d      ZF G d d      ZG G d d      ZH G d d      ZI G d  d!      ZJ G d" d#      ZK G d$ d%      ZL G d& d'      ZM G d( d)      ZN G d* d+      ZO G d, d-      ZP G d. d/      ZQ G d0 d1      ZR G d2 d3      ZS G d4 d5      ZT G d6 d7      ZU G d8 d9      ZV G d: d;      ZW G d< d=      ZX G d> d?      ZY G d@ dA      ZZ G dB dC      Z[ G dD dE      Z\ G dF dG      Z] G dH dI      Z^ G dJ dK      Z_ G dL dM      Z` G dN dO      Za G dP dQ      Zb G dR dS      Zc G dT dU      Zd G dV dW      Ze G dX dY      ZfdZ Zgd[ Zhd\ Zi G d] d^      Zj G d_ d`      Zk G da db      Zl G dc dd      Zm G de dfem      Zn G dg dhem      Zo G di dj      Zpdk Zq G dl dm      Zr G dn do      Zs G dp dq      Ztd drdsdtdudvZuej                  j                  dwe@egdxdygz       G d{ d|             Zx G d} d~      Zy G d d      Zz G d d      Z{d dl|m}Z}  G d d      Z~ G d d      Z G d de      Z G d d      Z G d d      Zd Zd Zd Zd Zd Zd Zd Z G d d      Z G d d      Z G d d      Z G d d      Ze+s
 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      Zd dl!m+Z+  G d d      Z G d d      Z G d d      Z G d d      Zd Zd Zej                  j                  dej8                  ej:                  g      ej                  j                  ddgdgdgfddg      d               Zej                  j                  ddgg d      d        Zej                  j                  dej8                  ej:                  ej@                  ejB                  ejD                  ejF                  g      d        Zd Zej                  j                  dej8                  ej:                  ej@                  ejB                  ejD                  ejF                  g      d        Zej                  j                  ddgejN                  ejP                  fejR                  ejT                  fg      ej                  j                  ddrejV                  ejV                   ejX                  g      ej                  j                  ddrejV                  ejV                   ejX                  g      ej                  j                  dejZ                  j]                               dǄ                             ZdȄ ZdɄ Z G dʄ d˫      Zd̄ Z G d̈́ dΫ      Zej                  jk                  e3dϬЫ      ej                  j                  d ejl                  drdҫ            ej                  j                  dg dԢ      dՄ                      Zdք Zej                  j                  d ejl                  drdҫ            ej                  j                  dg dע      d؄               Zdل Zdڄ Zej                  j                  d ejl                  drdҫ            ej                  j                  dejx                  ejz                  g      dۄ               Zej                  j                  d ejl                  dsdҫ            ej                  j                  dej~                  ej                  ej                  ej                  g      d܄               Zej                  j                  e- dݬЫ      dބ        Zd߄ Zy)    )annotationsN)contextmanager)pickle)Decimal)rational)assert_assert_raisesassert_warnsassert_equalassert_almost_equalassert_array_equalassert_raises_regexassert_array_almost_equalassert_allcloseIS_PYPY	IS_PYSTONHAS_REFCOUNTassert_array_less	runstringtemppathsuppress_warningsbreak_cycles_SUPPORTS_SVE)requires_memory_no_tracing)CommaDecimalPointLocale)repack_fields)_get_ndarray_c_version)	timedeltadatetimec                    t        | |   t        j                  |              t        t        j                  |      t        j                  t	        |                   y N)r   npsortarangelen)arrargs     kC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\numpy/core/tests/test_multiarray.pyassert_arg_sortedr*   ,   s7    S2773<(ryyS23    Cc                z   t        j                  |      }|t        j                  t              k(  r%|t        d      t        j                  | ||      S ||j
                  }t        | d      s| f} t        j                  t        j                  |       |j                  z  }t        j                  |d|z  z   dz   t         j                        }|j                  d   d   }||z  }|dk7  r||z
  }|d|z  z  dk(  r||z  }||||z   dz    dd	 }|j                  d       t        j                   | |||
      }|S )z
    Allocate a new ndarray with aligned memory.

    The ndarray is guaranteed *not* aligned to twice the requested alignment.
    Eg, if align=4, guarantees it is not aligned to 8. If align=None uses
    dtype.alignment.Nz$object array alignment not supporteddtypeorder__len__      datar   r0   )r#   r/   object
ValueErrorzeros	alignmenthasattr	functoolsreduceoperatormulitemsizeemptyuint8__array_interface__fillndarray)	shaper/   r0   alignsizebufptroffsetr4   s	            r)   _aligned_zerosrL   2   s0    HHUOE   CDDxxU%88}5)$HLL%05>>AD
((4!E'>A%rxx
0C

!
!&
)!
,C5[F{qwA% fVD[]
#CR
(CHHQK::eUCu5DKr+   c                      e Zd Zd Zd Zd Zd Zd Zej                  j                  ed      d        Zd	 Zd
 Zej                  j                  g dg d      d        Zd Zd Zd Zy)	TestFlagsc                8    t        j                  d      | _        y N
   )r#   r%   aselfs    r)   setup_methodzTestFlags.setup_methodW   s    2r+   c                   t               }d| j                  j                  _        t	        t
        t        d|       t	        t
        t        d|       d| j                  j                  _        d| j                  d<   d| j                  d<   y )NFzself.a[0] = 3zself.a[0:1].itemset(3)T   r   )localsrR   flags	writeabler	   r8   r   )rT   mydicts     r)   test_writeablezTestFlags.test_writeableZ   s`    !&j)_fEj)-EvN!%q	q	r+   c                V   t        j                  d      } G d dt         j                        }|j                  |      }|d   }d|j                  _        d|j                  _        d|j                  _        t        j                  d      } G d d      }t        j                  |      }|d   }d|j                  _        d|j                  _        d|j                  _        d|j                  _        t        t              5  d|j                  _        d d d        y # 1 sw Y   y xY w)	NrQ   c                      e Zd Zy)3TestFlags.test_writeable_any_base.<locals>.subclassN__name__
__module____qualname__ r+   r)   subclassr_   h       r+   re   .FTc                      e Zd Zd Zy)8TestFlags.test_writeable_any_base.<locals>.frominterfacec                4    || _         |j                  | _        y r"   )r'   rC   rT   r'   s     r)   __init__zATestFlags.test_writeable_any_base.<locals>.frominterface.__init__u   s    +.+B+B(r+   N)ra   rb   rc   rk   rd   r+   r)   frominterfacerh   t   s    Cr+   rl   )	r#   r%   rE   viewrY   rZ   asarrayr	   r8   )rT   r'   re   view1view2rl   s         r)   test_writeable_any_basez!TestFlags.test_writeable_any_basec   s     iim	rzz 	 "c
#		 % $iim	C 	C
 

=)c
 % $ % %:&$(EKK! '&&s   DD(c                0   d}t        j                  |d      }t        t        |j                  d       t        j
                  ddg      }t         j                  j                  j                  ||      }|d   }t        t        |j                  d       y )Nd                                                                                                       BTwritevalsu1res3S4rx   )	r#   
frombufferr	   r8   setflagsr/   corerecords
fromstringrT   r4   rx   typesvaluess        r)   test_writeable_from_readonlyz&TestFlags.test_writeable_from_readonly   so     }}T3'j$--t<>>:<++D%8f~j$--t<r+   c                   t        d      }t        j                  |d      }t        |j                  j
                         |j                  d       t        |j                  j
                  du        |j                  d       t        |j                  j
                         t        j                  ddg      }t        j                  j                  j                  ||      }|d   }t        |j                  j
                         |j                  d       t        |j                  j
                  du        |j                  d       t        |j                  j
                         y )	Nrs   rt   Fru   Trw   rz   rx   )	bytearrayr#   r}   r   rY   rZ   r~   r/   r   r   r   r   s        r)   test_writeable_from_bufferz$TestFlags.test_writeable_from_buffer   s    '}}T3'

$$%E"

$$-.D!

$$%>>:<++D%8f~

$$%E"

$$-.D!

$$%r+   zPyPy always copiesreasonc                4   dd l }t        j                  d      }t        |j                        D ]g  } |j
                   |j                  ||            }t        |j                  j                         t        t        |j                  t                     i y )Nr     )r   r#   r%   rangeHIGHEST_PROTOCOLloadsdumpsr   rY   rZ   
isinstancebasebytes)rT   r   rR   vrx   s        r)   test_writeable_picklezTestFlags.test_writeable_pickle   sk     IIdOv../A6<<Q 23DDJJ(()Jtyy%01 0r+   c                   ddl m}  |d      }|j                  j                  rJ |j                  j                  sJ |d   }d|j                  _        |j                  j                  rJ d|j                  _        |j                  j                  sJ d|j                  _         |d      }|j                  j                  rJ |j                  j                  rJ ||fD ]  }|d   }d|j                  _        d|j                  _        |j                  j                  rJ t        t              5  d|j                  _        d d d        t        j                         5  t        j                  dt               t        t              5  d|j                  _        d d d        d d d        t        t              5  d|j                  _        d d d         y # 1 sw Y   xY w# 1 sw Y   IxY w# 1 sw Y   MxY w# 1 sw Y   %xY w)Nr   )get_c_wrapping_arrayT.Ferror)numpy.core._multiarray_testsr   rY   owndatarZ   r	   r8   warningscatch_warningssimplefilterDeprecationWarningr
   )rT   r   arr_writeablerm   arr_readonlyr'   s         r)   test_writeable_from_c_dataz$TestFlags.test_writeable_from_c_data   s    	F,T2 &&...."",,,,S!  %

::''''#

zz####(-%+E2%%----%%////!<0Cs8D#(DJJ "'CIIyy****z*'+

$ + ((*%%g/AB"#56*.CII' 7 +
 01&*		# 21 1 +*
 76 +*
 21s<   4G"*G2G&G2=G>G#	&G/+G22G;	>H	c                   t        j                  d      }d|j                  _        t	        j
                  d      5 }t	        j                  d       d|d<   d|d<   t        t        |      dk(         d d d        y # 1 sw Y   y xY w)NrQ   Trecordalwaysr3   r2   )	r#   r%   rY   _warn_on_writer   r   filterwarningsr   r&   )rT   rR   ws      r)   test_warnonwritezTestFlags.test_warnonwrite   sg    IIbM!%$$D1Q##H-AaDAaDCFaK  211s   7A==B)flag
flag_valuerZ   ))rZ   TT)r   TF)rZ   FFc                8   t        j                  d      t        j                  ||        G fdd      }t	              j
                  |usJ j                  d   d   |usJ t        j                   |             j                  j                  |u sJ y )NrQ   c                  (    e Zd ZW  j                  Zy)5TestFlags.test_readonly_flag_protocols.<locals>.MyArrN)ra   rb   rc   __array_struct__rR   s   r)   MyArrr      s     11r+   r   r4   r3   )	r#   r%   setattrrY   
memoryviewreadonlyrC   rn   rZ   )rT   r   r   rZ   r   rR   s        @r)   test_readonly_flag_protocolsz&TestFlags.test_readonly_flag_protocols   s     IIbMz*	2 	2 !}%%Y666$$V,Q/y@@@zz%'"((22i???r+   c                   t        | j                  j                  j                  d       t        | j                  j                  d   d       t        | j                  j                  j                  d       t        | j                  j                  j
                  d       t        | j                  j                  j                  d       t        | j                  j                  j                  d       t        | j                  j                  j                  d       t        | j                  j                  j                  d       t        | j                  j                  j                  d       t        | j                  j                  j                  d       t        | j                  j                  d   d       t        | j                  j                  d   d       y )NTr,   FXWRITEBACKIFCOPY)r   rR   rY   carrayfarraybehavedfncforcr   rZ   alignedwritebackifcopyrS   s    r)   test_otherflagszTestFlags.test_otherflags   s    TVV\\(($/TVV\\#&-TVV\\((%0TVV\\))40TVV\\%%u-TVV\\&&-TVV\\))40TVV\\++T2TVV\\))40TVV\\1159TVV\\#&.TVV\\"34e<r+   c                (   t        j                  dt        j                  d            }t        |j                  j
                         t        j                  dt        j                  d            }t        |j                  j
                         y )N   z|S4r/   rW   r#   r9   r/   r   rY   r   rT   rR   s     r)   test_string_alignzTestFlags.test_string_align   sR    HHQbhhuo. HHQbhhuo. r+   c                    t        j                  dt        j                  ddg            }t        |j                  j
                         y )Nr   rR   i4br   r   r   r   s     r)   test_void_alignzTestFlags.test_void_align  s0    HHQbhh['ABC r+   N)ra   rb   rc   rU   r\   rq   r   r   pytestmarkskipifr   r   r   r   parametrizer   r   r   r   rd   r+   r)   rN   rN   V   s    )B	=&" [[(<=	2 >	2&+P! [[@*+	@+	@=!!r+   rN   c                      e Zd Zd Zy)TestHashc                   t         j                  t         j                  dft         j                  t         j                  dft         j
                  t         j                  dft         j                  t         j                  dffD ]>  \  }}}t        d|      D ]'  }t        t         |d|z               t        d|z         d||fz         t        t         |d|dz
  z              t        d|dz
  z        d	||dz
  fz         t        t         |d|z  dz
              t        d|z  dz
        d
||fz         t        |dz
  d      }t        t         |d|dz
  z              t        d|dz
  z        d	||dz
  fz         t        t         |d|z  dz
              t        d|z  dz
        d
||fz         * A y )N          @   r3   r2   z
%r: -2**%derr_msgz	%r: 2**%dz%r: 2**%d - 1)r#   int8rB   int16uint16int32uint32int64uint64r   r   hashmax)rT   stutsis        r)   test_intzTestHash.test_int  s   77BHHa088RYY388RYY388RYY35IBA 1a[T"adU)_dAqD5k%1RG%;=T"QQZ.14AE
3C%0BA;%>@T"QTAX,/adQh%4Aw%>@ AqMT"QQZ.14AE
3C%0BA;%>@T"QTAX,/adQh%4Aw%>@ !	5r+   N)ra   rb   rc   r   rd   r+   r)   r   r   	  s    @r+   r   c                  H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestAttributesc                   t        j                  d      | _        t        j                  d      j                  dd      | _        t        j                  dt         j
                        j                  ddd      | _        y )	NrQ      r   rW   <   r   r2      )r#   r%   onereshapetwofloat64threerS   s    r)   rU   zTestAttributes.setup_method   sR    99R=99R=((A.YYr4<<Q1E
r+   c                   t        | j                  j                  d       t        | j                  j                  d       t        | j                  j                  d       d| j                  _        t        | j                  j                  d       d| j                  _        t        | j                  j
                  | j                  j                  f       | j                  j                  }t        | j                  j
                  d|z  |f       | j                  j                  }t        | j                  j
                  d|z  d|z  |f       t        | j                  j                  d       t        | j                  j                  d	       t        | j                  j                  d
       | j                  j                  }t        | j                  j                  d       t        | j                  j                  d|z         t        | j                  j                  | j                  j                  j                         t        | j                  j                  t        j                  d             y )NrQ   r   rW   )r2   rW   r   )rQ      r2   rW      r   r3   r2   r   r   )r   r   rF   r   r   stridesr@   ndimrH   nbytesr/   r   r#   r%   rT   nums     r)   test_attributeszTestAttributes.test_attributes%  s   TXX^^U+TXX^^V,TZZ%%y1%

TZZ%%z2$

TXX%%(9(9';<hhTXX%%#s|4jj!!TZZ''"S&!C%)=>TXX]]A&TXX]]A&TZZ__a(hhTXX]]B'TXX__bf-TXX&&(?(?@TXX]]BIIbM2r+   c                   t        | j                  j                  t        j                  t        j                               t        | j
                  j                  t        j                  t        j                               t        | j                  j                  j                  d       t        | j
                  j                  j                  d       t        | j
                  j                  j                  d   dv        t        | j                  j                  j                  d   d       t        | j
                  j                  j                  d   d       y )Nldr   <>r3   r   f)
r   r   r/   r#   int_r   float_charr   strrS   s    r)   test_dtypeattrzTestAttributes.test_dtypeattr:  s    TXX^^RXXbgg%67TZZ%%rxx		':;TXX^^((#.TZZ%%**C0

  $$Q'4/0TXX^^''*C0TZZ%%))!,c2r+   c                b    t        j                  d      }t        t        |t                      y Nr   )r#   r  r   r   int)rT   	numpy_ints     r)   test_int_subclassingz#TestAttributes.test_int_subclassingC  s%     GGAJ	 	Jy#../r+   c           
        | j                   fd}t         |ddd      t        j                  g d             t	        t
        |ddd       t	        t
        |ddd       t	        t
        |ddd	       t         |ddd
      t        j                  dgdz               t	        t
        |ddt        j                  ddg              |d
d
d       y )Nc                t    t        j                  | t        |j                  z  |j                  z        S )N)bufferr/   rK   r   )r#   rE   r
  r@   )rH   rK   r   xs      r)   
make_arrayz3TestAttributes.test_stridesattr.<locals>.make_arrayN  s2    ::d1C%+AJJ%6&-ajj&8: :r+   r   r5   r   r   r2   r3   r2   r   r   r3   r   r2   r   rW   rQ   )r   r   r#   arrayr	   r8   )rT   r  r  s     @r)   test_stridesattrzTestAttributes.test_stridesattrK  s    HH	:
 	Z1b)288L+ABj*aB7j*aB7j*aA6Z1a("((A3q5/:j*fa2r(9KL1ar+   c                ~   | j                   fd}t         |ddd      t        j                  g d             t         |ddd      t        j                  g d             t	        t
        |ddd	       t	        t
        |dd
d       t	        t        |ddd       t        j                  j                  j                  t        j                  d      dd      d }t	        t
        |dj                  z  j                  f       t        j                  j                  j                  t        j                  dt        j                        d   dd      t	        t
        |d d d   d       d d d   }d|_        d
|d d d
   _        t        j                  d      }d|_        t	        t        ||d        y )Nc                    	 t        j                  | gt        |j                  z        }|j                  z  x|_        }|S # t        $ r}t        |      d }~ww xY w)N)r/   r  rK   )r#   rE   r
  r@   	ExceptionRuntimeErrorr   )rH   rK   r   rer  s        r)   r  z7TestAttributes.test_set_stridesattr.<locals>.make_array_  sb    &JJvS&,QZZ&79 #*!**"44AIH  &"1o%&s   +A 	AAAr   r5   r     r   r3   )r   r   rW   r   r  r   	   r  r2   r   rQ   rQ   r   r   c                    || _         y r"   r   )r'   r   s     r)   set_stridesz8TestAttributes.test_set_stridesattr.<locals>.set_stridesq  s	    !CKr+   rQ   r   r   r5   )rF   r   r   rd   )r   r   r#   r  r	   r8   r  libstride_tricks
as_stridedr%   r@   r   r   	TypeError)rT   r  r$  rR   arr_0dr  s        @r)   test_set_stridesattrz#TestAttributes.test_set_stridesattr\  sd   HH	 	Z1b)288L+ABZ1a("((3H*IJj*aB7j*aB7lJ1a8 FF  ++BIIaL(FK	" 	j+q2ajj=!**2MN FF  ++BIIb,H,L:? , Pj+q2w;ddG	#A# !ifd;r+   c                    dD ]P  }t        j                  d|      }t        j                  d|      }|j                  d       d|d<   t        ||       R y )Nz?bhilqpBHILQPfdgFDGOr   r2   r3   r3   .)r#   rA   rD   r   )rT   tr  ys       r)   	test_fillzTestAttributes.test_fill  sJ    'AA&AA&AFF1IAcFA (r+   c                    t        j                  dt         j                        }t        j                  dt         j                        }d}||d<   |j                  |       t	        ||       y )Nr-  r   l    .)r#   rA   r   rD   r   )rT   r  r/  values       r)   test_fill_max_uint64z#TestAttributes.test_fill_max_uint64  sM    HHYbii0HHYbii0#	u1a r+   c                &   t        j                  ddgd      }|j                  |d          t        |d   d   |d   d          t        j                  dd	d
g      }|j                  d       t        |d   ddg       t        |d   ddg       y )N)r           )r3         ?i4,f8r   r   f1r3   r2   rR   f8r   )      @r  rR   r;  r   r  )r#   r  rD   r   r9   r   rT   r  s     r)   test_fill_struct_arrayz%TestAttributes.test_fill_struct_array  s    HHh)9	qtQtWQZ4, HHQ{K89	y1S6C:.1S6B8,r+   c                    t        j                  d      }|j                  d       t        j                  t
        d      5  |j                  d       d d d        y # 1 sw Y   y xY w)N   Fru   z.*read-onlymatchr   )r#   r9   r~   r   raisesr8   rD   r   s     r)   test_fill_readonlyz!TestAttributes.test_fill_readonly  sB    HHRL	


]]:];FF1I <;;   AA'N)ra   rb   rc   rU   r   r  r  r  r+  r0  r3  r=  rC  rd   r+   r)   r   r     s6    F
3*30"%<N!
-r+   r   c                     e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  dej                  ej                  ej                  ej                   ej"                  g      d        Ze	j                  j                  dej                  ej                  ej                  ej                   ej"                  g      d	        Zy
)TestArrayConstructionc                H   t        j                  d      }t        j                  ||g      }t        |t        j                  d             t        j                  d      }t        j                  d      }t        j                  ||g      }t        ||       d|d<   t        j                  ||dz   g      }t        ||       t        j                  d      }t        j                  ||gg      }t        |t        j                  d             t        j                  d      }t        j                  ||g||gg      }t        |t        j                  d             t        j                  d      }t        j                  ||g      }t        |t        j                  d             t        j                  d	      }t        j                  ||dz   g|dz   gt        
      }t        t        |      d       t        |d   ||dz   g       t        |d   |dz          t        j                  dt        
      }d|d<   d|dddf<   t        j                  g dg dg      }t        ||       t        j                  ddgddgddgg      }t        ||j                         y )Nr   )r2   r   r2   r3   )r3   r2   r   )r2   r2   r   )r   r   )r2   r   r   )r   r   r   r  Fr   r2   TTFFFTT)r#   onesr  r   r7   r&   boolT)rT   r   r  tgts       r)   
test_arrayz TestArrayConstruction.test_array  s   GGAJHHaVQ(GGAJggfoHHaVQAHHaQZ QGGAJHHq!fXQ	*+GGAJHHq!fq!f%&Q	*+GGFOHHaVQ	*+GGENHHq!a%j!a%(7SVQQqTAq1u:&QqT1q5!ggfD)D	AqsFHH)+?@AQHHtUmdE]UDMBCQr+   c                @    t        t        t        j                         y r"   )r	   r)  r#   r  rS   s    r)   test_array_emptyz&TestArrayConstruction.test_array_empty  s    i*r+   c                r    t        j                  t        j                  d            j                  dk(  sJ y )Nr   r   )r#   rK  r  rF   rS   s    r)   test_0d_array_shapez)TestArrayConstruction.test_0d_array_shape  s'    wwrxx{#))T111r+   c                   t        j                  g d      }t        j                  |d      }d|d<   t        |g d       t        j                  |dd      }d	|d<   t        |g d
       d|d<   t        |g d       y )Nr3   r2   r   Fcopyr   r3   r3   r   r   FrX  r0   r   )r3   r   r   r  r2   )r3   r   r  r#   r  r   rT   r   r  s      r)   test_array_copy_falsez+TestArrayConstruction.test_array_copy_false  sk    HHYHHQU#!1i(HHQU#.!1i(!1i(r+   c                P   t        j                  g dg dg      }t        j                  |d      }d|d<   d|d<   t        |g dg dg       t        |g d	g dg       t        j                  |dd
      }d|d<   d|d<   t        |g dg dg       t        |g dg dg       y )NrV  TrW  r   r   r3   rH  )r3   r2   ra  rY  rZ  r[  rW   r  )r3   r   r  )r3   rW   r   r\  r]  s      r)   test_array_copy_truez*TestArrayConstruction.test_array_copy_true  s    HHgy)*HHQT"$$1z9561y)45HHQT-$$1y)451y'23r+   c                   t        j                  d      d d d   }t        t        j                  |      j                  j
                         t        t        j                  |      j                  j                         t        t        j                  |      j                  j
                         t        t        j                  |      j                  j                         t        j                  d      d d dd d df   }t        t        j                  |      j                  j
                         t        t        j                  |      j                  j                         y )NrQ   r2   r   )r#   rK  r   ascontiguousarrayrY   c_contiguousf_contiguousasfortranarrayrT   r   s     r)   test_array_contz%TestArrayConstruction.test_array_cont  s    GGBK!$$Q'--::;$$Q'--::;!!!$**778!!!$**778GGHcc#A#g&$$Q'--::;!!!$**778r+   funcc                X   t        j                  t              5   |dd       d d d        t        j                  t              5   |        d d d        t        j                  t              5   |ddddddd	d
       d d d        y # 1 sw Y   dxY w# 1 sw Y   GxY w# 1 sw Y   y xY w)Nr   z	bad dtyper   r3   r2   r   rW   r   r  r   )r   rB  r)  rT   rj  s     r)   test_bad_arguments_errorz.TestArrayConstruction.test_bad_arguments_error  sv     ]]9%+& &]]9%F &]]9%Aq!Q1a( &%	 &%%%%%s#   BB/B BB B)c                N    |t         j                  u r
 |d       y  |d       y )Nr   )r7   r   r#   r  rl  s     r)   test_array_as_keywordz+TestArrayConstruction.test_array_as_keyword  s     288N1Ir+   N)ra   rb   rc   rO  rQ  rT  r^  rb  ri  r   r   r   r#   r  rn   
asanyarrayrd  rg  rm  rp  rd   r+   r)   rF  rF    s    %N+2	)49 [[VXXZZ]]!!	 !)!) [[VXXZZ]]!!	 !!r+   rF  c                  0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestAssignmentc           
     
   t        j                  d      j                  dd      }t        j                  d      |d<   t        |g dg dg       t        j                  d      j                  dd      |d<   t        |g dg dg       t        j                  d      d d d	   j                  ddd      |d<   t        |g d
g dg       d }t	        t
        ||t        j                  d      j                  ddd             y )Nr   r2   r   .r   r3   r2   r3   r   r   r   r3   r3   r3   r5   rW   r   r   r2   r3   r   c                    || d<   y )N.rd   rR   r   s     r)   assignz;TestAssignment.test_assignment_broadcasting.<locals>.assign*  s    AcFr+      )r#   r%   r   r   r	   r8   rT   rR   r|  s      r)   test_assignment_broadcastingz+TestAssignment.test_assignment_broadcasting  s    IIaL  A& 1#QI./1%%a+#QI./ 1dd#++Aq!4#QI./	 	j&!RYYr]-B-B1a-KLr+   c                     G d d      }t        j                  d      fd}t        t        t        f| |              t        t
        |dg       y )Nc                      e Zd Zy)0TestAssignment.test_assignment_errors.<locals>.CNr`   rd   r+   r)   r,   r  1  rf   r+   r,   r3   c                    | d<   y r	  rd   )r   rR   s    r)   r|  z5TestAssignment.test_assignment_errors.<locals>.assign5  s    AaDr+   )r#   r9   r	   AttributeErrorr)  r8   )rT   r,   r|  rR   s      @r)   test_assignment_errorsz%TestAssignment.test_assignment_errors/  sB    	 	HHQK	 	~y1613?j&1#.r+   c                8   ddl m t        fd       }t        j                  dg      }t        j                  d      } |d      5  ||d<   d d d        t        |d   d       t        j                  t        j                  d      g       y # 1 sw Y   BxY w)Nr   )set_string_functionc              3  f    K     fdd       	 d  dd       y#  dd       w xY ww)z% replace ndarray.__str__ temporarily c                    S r"   rd   )r  r   s    r)   <lambda>zLTestAssignment.test_unicode_assignment.<locals>.inject_str.<locals>.<lambda>B  s    !r+   F)reprNrd   )r   r  s   `r)   
inject_strz:TestAssignment.test_unicode_assignment.<locals>.inject_str?  s0       %86#Du5#Du5s   1" 1.1testdonebadu   åäö)numpy.core.numericr  r   r#   r  r   )rT   r  a1da0dr  s       @r)   test_unicode_assignmentz&TestAssignment.test_unicode_assignment;  s    :		6 
	6 hhx hhvCF SVV$ 	"((>*+, s   	BBc                   t        j                  dg      }t        j                  dg      } G d d      }t        t        t        j
                  |dg        t        t        t        j
                  |dg        t        t        t        j
                  |d |              t        t        t        j
                  |d |              y )Nr  s   donec                      e Zd Zd Zd Zy)?TestAssignment.test_stringlike_empty_list.<locals>.bad_sequencec                     y r"   rd   rS   s    r)   __getitem__zKTestAssignment.test_stringlike_empty_list.<locals>.bad_sequence.__getitem__W  s    4r+   c                    t         r"   r  rS   s    r)   r1   zGTestAssignment.test_stringlike_empty_list.<locals>.bad_sequence.__len__X  s    \1r+   Nra   rb   rc   r  r1   rd   r+   r)   bad_sequencer  V  s    '1r+   r  r   )r#   r  r	   r8   r>   setitem)rT   ur   r  s       r)   test_stringlike_empty_listz)TestAssignment.test_stringlike_empty_listQ  s    HHfXHHgY	2 	2 	j("2"2Aq"=j("2"2Aq"=j("2"2Aq,.Ij("2"2Aq,.Ir+   c                   t         j                  t         j                  fD ]&  }t        j                  t        j                  d      d      j	                  |      }t        j                  t        j                  d      d      j	                  |      }t        j
                  |g      }t        |d   |       ||d<   t        |d   |       ||d<   t        |d   |       |d   |d<   t        |d   |       |d   |d<   t        |d   |       t        j
                  t        j
                  |      g      }t        |d   |       ) y )Nr   r3   r5   r   ..)r#   
longdoublelongcomplex	nextafterastyper  r   )rT   r/   tinybtinyatiny1dr'   s         r)   test_longdouble_assignmentz)TestAssignment.test_longdouble_assignment`  s    mmR^^4ELLq!115<<UCELLq!126==eDE XXug&FE* F1IE* #F6NE* #3ZF6NE* c
F1IE*((BHHUO,-CQ'5 5r+   c                    t        j                  dd      }t        j                  dgd      |d d  t        |d   d       y )Nr3   S20r   z1.12345678901234567890r:  r   s   1.1234567890123457)r#   r9   r  r   r   s     r)   test_cast_to_stringz"TestAssignment.test_cast_to_string  s;     HHQe$xx12$?!QqT01r+   N)	ra   rb   rc   r  r  r  r  r  r  rd   r+   r)   rs  rs    s#    M4
/-,J(@2r+   rs  c                      e Zd Zd Zd Zd Zy)TestDtypedescrc                   t        j                  d      }t        |t        j                  t         j                               t        j                  d      }t        |t        j                  t         j                               y )Nr   r:  )r#   r/   r   r   r   )rT   d1d2s      r)   test_constructionz TestDtypedescr.test_construction  sJ    XXd^R"((+,XXd^R"**-.r+   c                    t        t        j                  d      t        j                  d      k7         t        t        j                  dg      t        j                  dg      k7         y )N<i4>i4rR   r  rR   r  )r   r#   r/   rS   s    r)   test_byteorderszTestDtypedescr.test_byteorders  sB    288E?23,(BHHl^,DDEr+   c                    ddg}t        j                  d|f      }t        t        |      d       t        j                  d|      }t        t        |      d       y )N)rR   <i2r   r  r   z+(numpy.int32, [('a', '<i2'), ('b', '<i2')])r   zFarray([0, 0, 0, 0], dtype=(numpy.int32, [('a', '<i2'), ('b', '<i2')])))r#   r/   r   r  r9   r  )rT   fieldsdt_intarr_ints       r)   test_structured_non_voidz'TestDtypedescr.test_structured_non_void  sQ    -4.)S["OP ((1f%T']T	Vr+   N)ra   rb   rc   r  r  r  rd   r+   r)   r  r    s    /FVr+   r  c                  T    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)TestZeroRankc                l    t        j                  d      t        j                  dt              f| _        y )Nr   r  )r#   r  r7   r   rS   s    r)   rU   zTestZeroRank.setup_method  s!    !bhhsF33r+   c                    | j                   \  }}t        |d   d       t        |d   d       t        |d   j                  |u        t        |d   j                  |u        y )N.r   r  )r   r   r   r   rT   rR   r   s      r)   test_ellipsis_subscriptz$TestZeroRank.test_ellipsis_subscript  sU    vv1QsVQQsVS!#q !#q !r+   c                    | j                   \  }}t        |d   d       t        |d   d       t        t        |d         |j                  j                  u        t        t        |d         t
        u        y )Nrd   r   r  )r   r   r   typer/   r  r  s      r)   test_empty_subscriptz!TestZeroRank.test_empty_subscript  s]    vv1QrUAQrUC QrUqww||+,QrUs"#r+   c                    | j                   \  }}t        t        d |       t        t        d |       t        t        d |       t        t        d |       y )Nc                    | d   S r	  rd   r  s    r)   r  z5TestZeroRank.test_invalid_subscript.<locals>.<lambda>      AaDr+   c                    | d   S r	  rd   r  s    r)   r  z5TestZeroRank.test_invalid_subscript.<locals>.<lambda>  r  r+   c                <    | t        j                  g t                 S r"   r#   r  r
  r  s    r)   r  z5TestZeroRank.test_invalid_subscript.<locals>.<lambda>      Abhhr3.?,@r+   c                <    | t        j                  g t                 S r"   r  r  s    r)   r  z5TestZeroRank.test_invalid_subscript.<locals>.<lambda>  r  r+   r   r	   
IndexErrorr  s      r)   test_invalid_subscriptz#TestZeroRank.test_invalid_subscript  sA    vv1j.!4j.!4j"@!Dj"@!Dr+   c                    | j                   \  }}d|d<   t        |d       d|d<   t        |j                         d       y )N*   . r   r   itemr  s      r)   "test_ellipsis_subscript_assignmentz/TestZeroRank.test_ellipsis_subscript_assignment  s;    vv1#Q#QVVXr"r+   c                    | j                   \  }}d|d<   t        |d       d|d<   t        |j                         d       y )Nr  rd   r  r  r  s      r)   test_empty_subscript_assignmentz,TestZeroRank.test_empty_subscript_assignment  s;    vv1"Q"QVVXr"r+   c                    | j                   \  }}d }t        t        ||dd       t        t        ||dd       t        t        ||dd       y )Nc                    || |<   y r"   rd   r  r   r   s      r)   r|  z>TestZeroRank.test_invalid_subscript_assignment.<locals>.assign      AaDr+   r   r  r  rd   )r   r	   r  r8   )rT   rR   r   r|  s       r)   !test_invalid_subscript_assignmentz.TestZeroRank.test_invalid_subscript_assignment  sF    vv1	 	j&!Q3j&!Q3j&!R4r+   c                   | j                   \  }}t        |t        j                     j                  d       t        |dt        j                  f   j                  d       t        |t        j                  df   j                  d       t        |dt        j                  f   j                  d       t        |t        j                  dt        j                  f   j                  d       t        |dt        j                  t        j                  f   j                  d       t        |t        j                  t        j                  df   j                  d       t        |t        j                  fdz     j                  d       y Nr3   .r3   r3   rQ   )
r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r   r   r#   newaxisrF   r  s      r)   test_newaxiszTestZeroRank.test_newaxis  s
   vv1Qrzz](($/QsBJJ'--t4Qrzz3'--t4QsBJJ'--t4Qrzz3

23996BQsBJJ

23996BQrzz2::s23996BQ

}R'(..8r+   c                    | j                   \  }}d }t        t        ||t        j                  df       t        t        ||t        j                  fdz         y )Nc                    | |    y r"   rd   r  r   s     r)   	subscriptz4TestZeroRank.test_invalid_newaxis.<locals>.subscript  	    aDr+   r   2   r   r	   r  r#   r  )rT   rR   r   r  s       r)   test_invalid_newaxisz!TestZeroRank.test_invalid_newaxis  sE    vv1	 	j)QQ@j)Qb0@Ar+   c                   t        j                  d      }d|d<   t        |d   d       t        j                  d|      }d|d<   t        |d   d       t        j                  t
              5  t        j                  dd       d d d        t        j                  t
              5  t        j                  dd       d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)Nrd   rW   )r  r   r2   r#  )r#   rE   r   r   rB  r8   rT   r  r/  s      r)   test_constructorzTestZeroRank.test_constructor  s    JJrN"QrUAJJr!$"QrUA ]]:&JJtR( ']]:&JJr4( '& '&&&s   .C'CCCc                r    t        j                  d      }t        t        t         j                  |dg|       y )Nr2   r3   )r#   r  r	   r8   addr<  s     r)   test_outputzTestZeroRank.test_output  s%    HHQKj"&&!aS!4r+   c                j   t        j                  d      }|j                  }|j                  }t	        |t        j                  d             t        t        |      t         j                  u        t	        |j                  j                  d       t	        |j                  j                  d       t	        |t        j                  d             t        t        |      t         j                  u        t	        |j                  j                  d       t	        |j                  j                  d       y )N              ?r   Tr3   )r#   r  realimagr   r   r  rE   rY   
contiguousrf  )rT   r  xrxis       r)   test_real_imagzTestZeroRank.test_real_imag  s    HHRLVVVVR!%RBJJ&'RXX(($/RXX**D1R!%RBJJ&'RXX(($/RXX**D1r+   N)ra   rb   rc   rU   r  r  r  r  r  r  r  r  r  r  r  rd   r+   r)   r  r    s@    4"$E##5	9B)52r+   r  c                  <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestScalarIndexingc                B    t        j                  ddg      d   | _        y Nr   r3   )r#   r  r   rS   s    r)   rU   zTestScalarIndexing.setup_method  s    1a&!!$r+   c                l    | j                   }t        |d   d       t        |d   j                  d       y )N.r   rd   r   r   rF   r   s     r)   r  z*TestScalarIndexing.test_ellipsis_subscript  s+    FFQsVQQsV\\2&r+   c                l    | j                   }t        |d   d       t        |d   j                  d       y )Nrd   r   r  r   s     r)   r  z'TestScalarIndexing.test_empty_subscript  s+    FFQrUAQrU[["%r+   c                d    | j                   }t        t        d |       t        t        d |       y )Nc                    | d   S r	  rd   r  s    r)   r  z;TestScalarIndexing.test_invalid_subscript.<locals>.<lambda>  r  r+   c                <    | t        j                  g t                 S r"   r  r  s    r)   r  z;TestScalarIndexing.test_invalid_subscript.<locals>.<lambda>  r  r+   r  r   s     r)   r  z)TestScalarIndexing.test_invalid_subscript  s$    FFj.!4j"@!Dr+   c                H    | j                   }d }t        t        ||dd       y )Nc                    || |<   y r"   rd   r  s      r)   r|  zDTestScalarIndexing.test_invalid_subscript_assignment.<locals>.assign  r  r+   r   r  )r   r	   r)  r~  s      r)   r  z4TestScalarIndexing.test_invalid_subscript_assignment  s"    FF	 	iAr2r+   c                   | j                   }t        |t        j                     j                  d       t        |dt        j                  f   j                  d       t        |t        j                  df   j                  d       t        |dt        j                  f   j                  d       t        |t        j                  dt        j                  f   j                  d       t        |dt        j                  t        j                  f   j                  d       t        |t        j                  t        j                  df   j                  d       t        |t        j                  fdz     j                  d       y r  r  r   s     r)   r  zTestScalarIndexing.test_newaxis"  s   FFQrzz](($/QsBJJ'--t4Qrzz3'--t4QsBJJ'--t4Qrzz3

23996BQsBJJ

23996BQrzz2::s23996BQ

}R'(..8r+   c                    | j                   }d }t        t        ||t        j                  df       t        t        ||t        j                  fdz         y )Nc                    | |    y r"   rd   r  s     r)   r  z:TestScalarIndexing.test_invalid_newaxis.<locals>.subscript0  r  r+   r   r  r  )rT   rR   r  s      r)   r  z'TestScalarIndexing.test_invalid_newaxis-  sA    FF	 	j)QQ@j)Qb0@Ar+   c                j   t        j                  d      }|dd  |d d t        |g d       t        j                  d      }|d d |dd  t        |g d       t        j                  d      }|d d d   |d d  t        |g d       t        j                  d      j                  dd	      }|d d d d df   |d d dd d f<   t        |g d
g dg       t        j                  d      j                  dd	      }|d d d d df   |d d dd d df<   t        |g dg dg       t        j                  d      }|dd  |d d	 t        |g d       t        j                  d      }|d d	 |dd  t        |g d       t        j                  d      }|dd  |dd d<   t        |g d       t        j                  d      }|dd d   |dd  t        |g d       t        j                  d      }|d dd   |dd d<   t        |g d       t        j                  d      }|dd d   |d dd<   t        |g d       y )Nr   r3   r5   r3   r2   r   r   )r   r   r3   r2   r   r2   r3   r   r   r2   r   rx  ry  r   r   rW   ru  rW   )r2   r   r   r   r   )r   r3   r   r3   r2   )r   r   r2   r   r   )r   r3   r2   r3   r   )r#   r%   r   r   r   s     r)   test_overlapping_assignmentz.TestScalarIndexing.test_overlapping_assignment6  s   IIaL12#2Q%IIaL#2!"Q% IIaL2w!Q%IIaL  A&a2gJ$B$q&	QI./IIaL  A&!TrT'
$B$"*QI./ IIaL!""1Q(IIaL"1!"Q(IIaLQR5!%R%Q(IIaL!%R%!"Q(IIaLUaU8!%R%Q(IIaLQUU8%1R%Q(r+   N)ra   rb   rc   rU   r  r  r  r  r  r  r  rd   r+   r)   r  r    s,    %'
&
E
3	9B.)r+   r  c                  V   e Zd ZdZd Zd Zd Zej                  j                  d ej                  ed       ej                  dd	      g      d
        Zd Zej                  j                   ej                   ej"                        j$                  dk7  d      d        Zd Zej                  j*                  d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d  Z%d! Z&ej                  j                  d"e'd#d$d%g      ej                  j                  d&ejP                  ejR                  d' g      d(               Z*ej                  j                  d)ejV                  ejX                  ejZ                  ej\                  ej^                  g      d*        Z0y+),TestCreationz'
    Test the np.array constructor
    c                `     G d d      }t        t        t        j                   |              y )Nc                      e Zd ZddZy)+TestCreation.test_from_attribute.<locals>.xNc                     y r"   rd   )rT   r/   s     r)   	__array__z5TestCreation.test_from_attribute.<locals>.x.__array__m      r+   r"   ra   rb   rc   r  rd   r+   r)   r  r  l  s    r+   r  )r	   r8   r#   r  r<  s     r)   test_from_attributez TestCreation.test_from_attributek  s     	 	 	j"((AC0r+   c                    t         j                  d   t         j                  d   z   }ddg}t        j                  ddgt              }|D ]*  }d|z  }t	        t        j                  ||      ||       , y )N
AllIntegerFloat123{   r   zString conversion for %sr   )r#   	typecodesr  r
  r   )rT   r   nstrresultr  msgs         r)   test_from_stringzTestCreation.test_from_stringr  sf    \*R\\'-BBu~3*C0D,t3C$d3VSI r+   c                   t        j                  g d      }|j                  dk(  sJ t        j                  ddgd      }|j                  dk(  sJ t        j                  t
              5  t        j                  ddgd       d d d        t        j                  t
              5  t        j                  ddgd       d d d        t        j                  ddgd      j                  d      }|j                  dk(  sJ t        j                  t
              5  t        j                  ddgd      j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NVr   V8s   1234V4s   12345O)r#   r  r/   r   rB  r)  r  rj   s     r)   	test_voidzTestCreation.test_voidz  s   hhr%yyD   hh)5yyD    ]]9%HHgx(4 &]]9%HHh(4 & hh)5<<SAyyD   ]]9%HHgx(4;;C@ &% &%%% &%s$   ,E'E)E%EE"%E.idxr'   idrd   scalarc                   t        j                  t        j                  dd      |   t        j                  dd      |   gd      }t        |t        j                  ddgd             t        j                  t
              5  t        j                  t        j                  dd      |   t        j                  dd      |   gd       d d d        y # 1 sw Y   y xY w)	Nr3   i,ir   r2   r)  r  r2   r2   zi,i,i)r#   r  r   r   rB  r)  )rT   r.  r'   s      r)   test_structured_void_promotionz+TestCreation.test_structured_void_promotion  s     hhXXau%c*BHHQe,DS,IJ 	3&&)9 GH]]9%HH!5)#.'0J30OP &%%s   A
CC"c                   t        j                  d      j                  dk(  rd}n&t        j                  d      j                  dk(  rd}ny t        t        t         j
                  |t         j                         t        t        t         j                  |t         j                         t        t        t         j                  |t         j                         y )Nintp)  r9      )   4s	j r;  r   )	r#   iinfor   r	   r8   rA   r   r9   rK  )rT   rF   s     r)   test_too_big_errorzTestCreation.test_too_big_error  s    
 88F9,"EXXf!!Y.,Ej"((EAj"((EAj"''5@r+   r   z%malloc may not fail on 32 bit systemsr   c                (   t        t        j                  j                  j                        5  t        j
                  t        j                  t        j                        j                  t        j                         d d d        y # 1 sw Y   y xY wNr   )
r	   r#   r   _exceptions_ArrayMemoryErrorrA   r<  r7  r   rB   rS   s    r)   test_malloc_failszTestCreation.test_malloc_fails  sN     277..@@AHHRXXbgg&**"((; BAAs   ABBc                L   t         j                  d   t         j                  d   z   }|D ]w  }t        j                  d|      }t        t        j                  |      d       t        |j                         d       t        |j                                 t        j                  dd      }t        t        j                  |      d       t        |j                         d       t        |j                                 t        j                  dd      }t        t        j                  |      d       t        |j                         d       t        |j                                 t        j                  dd	      }t        t        j                  |      d       z y )
Nr  AllFloat   r   r   r2   z(2,4)i44i4z(2,4)i4, (2,4)i4)r#   r#  r9   r   count_nonzerosumr   anyrT   r   dtr   s       r)   
test_zeroszTestCreation.test_zeros  s   \*R\\*-EEBb)A))!,a0!$K ),A))!,a0!$K %(A))!,a0!$K "45A))!,a0% r+   c                    t         j                  d   t         j                  d   z   }|D ]4  }t        j                  d|      }t        |j	                                 ~6 y )Nr  rD  )i  r   )r#   r#  r9   r   rJ  rK  s       r)   test_zeros_bigzTestCreation.test_zeros_big  sO     \*R\\*-EEB3AK   r+   c                    t        j                  dt              }t        |dgdz         t	        t        j
                  |      d       y )NrE  r   r   rF  )r#   r9   r7   r   r   rH  rh  s     r)   test_zeros_objzTestCreation.test_zeros_obj  s7    HHU&)1qcBh'R%%a(!,r+   c                `    t        j                  ddt        dfg      }t        |d   d       y )NrQ   kr2   r   r   )r#   r9   r7   r   rh  s     r)   test_zeros_obj_objzTestCreation.test_zeros_obj_obj  s*    HHRfa 0121S61%r+   c                   t         j                  d   D ]q  }|dk(  r	t        j                  d|      }t        t        j                  |      |       t        t        j                  |      j                  |j                         s t        j                  dd      }t        t        j                  |      |       t        t        j                  |      j                  |j                         t        j                  dd      }t        t        j                  |      |       t        t        j                  |      j                  |j                         t        j                  dd      }t        t        j                  |      |       t        t        j                  |      j                  |j                         t        j                  dd      }t        t        j                  |      |       t        t        j                  |      j                  |j                         t        j                  dd	      }t        t        j                  |      |       t        t        j                  |      j                  |j                         t        j                  dd
      }t        t        j                  |      |       t        t        j                  |      j                  |j                         t        j                  dd      }t        t        j                  |      |       t        t        j                  |      j                  |j                         y )NAllr)  r   r   r   S5U5r  r  z<M8[s]z>M8[s]zf4,f4)r#   r#  r9   r   
zeros_liker   r/   )rT   cr   s      r)   test_zeros_like_like_zerosz'TestCreation.test_zeros_like_like_zeros  s!   e$ACxa(Ar}}Q/3q)//9 % HHU$'2==+Q/R]]1%++QWW5HHU$'2==+Q/R]]1%++QWW5HHU%(2==+Q/R]]1%++QWW5HHU%(2==+Q/R]]1%++QWW5HHU(+2==+Q/R]]1%++QWW5HHU(+2==+Q/R]]1%++QWW5HHU'*2==+Q/R]]1%++QWW5r+   c                l    t        ddd      D ]$  }t        j                  |d      }t        |       & y )NrW   d   Ur   )r   r#   rA   r  )rT   r   r   s      r)   test_empty_unicodezTestCreation.test_empty_unicode   s,    q#q!A#&AF "r+   c                   t        t        j                  dddz  g      j                  t               t        t        j                  dddz  dg      j                  t               t        t        j                  ddz  dg      j                  t               t        t        j                  ddz  gdz        j                  t               t        t        j                  ddgddgg      j                  t
               t        t        j                  ddgddgg      j                  t
               t        t        j                  g dg dg dg      j                  t
               y )	Nr   r2   P   r   r3   r  rw  )r3   r  r6  )r   r#   r  r/   r7   complexrS   s    r)   test_sequence_non_homogeneousz*TestCreation.test_sequence_non_homogeneous  s    RXXq!R%j)//8RXXq!R%m,22F;RXXq"uaj)//8RXXq"ugk*00&9RXX1vr2h/066@RXXBxA/066@RXXyi@AGGQr+   c                :    G d d      } G d d      }t        j                   |       g      }t        |j                  dk(         t        |j                  t        j                  t
              k(         t        t        t         j                   |       g       y)a)  Should not segfault.

        Class Fail breaks the sequence protocol for new style classes, i.e.,
        those derived from object. Class Map is a mapping type indicated by
        raising a ValueError. At some point we may raise a warning instead
        of an error in the Fail case.

        c                      e Zd Zd Zd Zy)5TestCreation.test_non_sequence_sequence.<locals>.Failc                     yNr3   rd   rS   s    r)   r1   z=TestCreation.test_non_sequence_sequence.<locals>.Fail.__len__      r+   c                    t               r"   r8   rT   indexs     r)   r  zATestCreation.test_non_sequence_sequence.<locals>.Fail.__getitem__  s
     l"r+   Nra   rb   rc   r1   r  rd   r+   r)   Failrg    s    #r+   rp  c                      e Zd Zd Zd Zy)4TestCreation.test_non_sequence_sequence.<locals>.Mapc                     yri  rd   rS   s    r)   r1   z<TestCreation.test_non_sequence_sequence.<locals>.Map.__len__   rj  r+   c                    t               r"   )KeyErrorrm  s     r)   r  z@TestCreation.test_non_sequence_sequence.<locals>.Map.__getitem__#  s
    j r+   Nro  rd   r+   r)   Maprr    s    !r+   rv  r  N)r#   r  r   rF   r/   r7   r	   r8   )rT   rp  rv  rR   s       r)   test_non_sequence_sequencez'TestCreation.test_non_sequence_sequence  sh    	# 	#	! 	! HHceW4 288F++,j"((TVH5r+   c                     G d d      }t        j                   |        |        |       g      }t        |j                  t        j                  t                     y )Nc                      e Zd Zd Zd Zy)4TestCreation.test_no_len_object_type.<locals>.Point2c                     y r"   rd   rS   s    r)   rk   z=TestCreation.test_no_len_object_type.<locals>.Point2.__init__.  r  r+   c                "    |dv r|S t               )Nr`  r  )rT   inds     r)   r  z@TestCreation.test_no_len_object_type.<locals>.Point2.__getitem__1  s    &=J$,&r+   N)ra   rb   rc   rk   r  rd   r+   r)   Point2rz  -  s    'r+   r  )r#   r  r   r/   r7   )rT   r  r   s      r)   test_no_len_object_typez$TestCreation.test_no_len_object_type+  s@    	' 	' HHfh&(34QWWbhhv./r+   c                v     G d d      }t        j                   |             }t        t        |      d       y )Nc                      e Zd Zd Zd Zy)/TestCreation.test_false_len_sequence.<locals>.Cc                    t         r"   r}  )rT   r   s     r)   r  z;TestCreation.test_false_len_sequence.<locals>.C.__getitem__<  s      r+   c                     y)Nr  rd   rS   s    r)   r1   z7TestCreation.test_false_len_sequence.<locals>.C.__len__>  s    r+   Nr  rd   r+   r)   r,   r  ;  s    !r+   r,   r   )r#   r  r   r&   rT   r,   rR   s      r)   test_false_len_sequencez$TestCreation.test_false_len_sequence9  s+    	 	 HHQSMSVQr+   c                     G d d      }t        j                  d      }t        t              5   |       |d d  d d d        t        j                   |             t         |             k(   y # 1 sw Y   5xY w)Nc                      e Zd Zd Zd Zd Zy)/TestCreation.test_false_len_iterable.<locals>.Cc                    t         r"   r  r<  s     r)   r  z;TestCreation.test_false_len_iterable.<locals>.C.__getitem__G  s    r+   c                    t        d      S Nrd   )iterrS   s    r)   __iter__z8TestCreation.test_false_len_iterable.<locals>.C.__iter__I  s    Bxr+   c                     y)Nr2   rd   rS   s    r)   r1   z7TestCreation.test_false_len_iterable.<locals>.C.__len__K  rj  r+   N)ra   rb   rc   r  r  r1   rd   r+   r)   r,   r  F  s      r+   r,   r2   )r#   rA   r	   r8   r  listr  s      r)   test_false_len_iterablez$TestCreation.test_false_len_iterableD  sV    	 	 HHQK:&3AaD ' 	ac" '&s   A..A7c                |     G d d      } |g d      }t        t        t        j                  |            d       y )Nc                      e Zd Zd Zd Zd Zy)0TestCreation.test_failed_len_sequence.<locals>.Ac                    || _         y r"   )_data)rT   r4   s     r)   rk   z9TestCreation.test_failed_len_sequence.<locals>.A.__init__W  s	    !
r+   c                >     t        |       | j                  |         S r"   )r  r  )rT   r  s     r)   r  z<TestCreation.test_failed_len_sequence.<locals>.A.__getitem__Y  s    !tDz$**T"233r+   c                ,    t        | j                        S r"   )r&   r  rS   s    r)   r1   z8TestCreation.test_failed_len_sequence.<locals>.A.__len__[  s    4::&r+   N)ra   rb   rc   rk   r  r1   rd   r+   r)   Ar  V  s    "4'r+   r  rV  r   )r   r&   r#   r  )rT   r  r   s      r)   test_failed_len_sequencez%TestCreation.test_failed_len_sequenceT  s.    	' 	' gJS!%q)r+   c           	     f   t        j                  d      }t        j                  t         j                        j                  }dD ]j  }t        j
                  |      }|j                  }t        j                  |d||z  f|       t        t        t         j                  |d||z  dz   f|       l y )Nr^  )r7  r  r   r   )r  r   rF   r/   r3   )
r#   r9   r<  r7  r   r/   r@   rE   r	   r8   )rT   rI   	max_bytesr/   r@   s        r)   test_array_too_bigzTestCreation.test_array_too_bigb  s     hhsmHHRWW%))	)EHHUOE~~HJJc4'135B*bjjd!*H!4q!8 :%I *r+   c                    t        j                  t        d      5  t        j                  |      }d d d        t        j                  |t
              S # 1 sw Y   $xY w)Nz.*detected shape wasr@  r   )r   rB  r8   r#   r  r7   )rT   seqrR   s      r)   _ragged_creationzTestCreation._ragged_creationq  sA    ]]:-CDA E xx6** EDs   AAc                   | j                  dgddg      }t        |j                  d       t        |j                  t               | j                  ddgdg      }t        |j                  d       t        |j                  t               | j                  dddgg      }t        |j                  d       t        |j                  t               y Nr3   r2   r   rS  r  r   rF   r/   r7   r   s     r)   test_ragged_ndim_objectz$TestCreation.test_ragged_ndim_objectx  s    !!A31+.QWWd#QWWf%!!1qc1+.QWWd#QWWf%!!1a!+.QWWd#QWWf%r+   c                   | j                  ddgdgdgg      }t        |j                  d       t        |j                  t               | j                  dgddgdgg      }t        |j                  d       t        |j                  t               | j                  dgdgddgg      }|j                  dk(  sJ |j                  t        k(  sJ y r  r  r   s     r)   test_ragged_shape_objectz%TestCreation.test_ragged_shape_object  s    !!Aq6A3"45QWWd#QWWf%!!A3A"45QWWd#QWWf%!!A3aV"45ww$ww&   r+   c                *   t        j                  d d g      }t        j                  g d      x|d<   |d<   t        j                  |      j                  dk(  sJ t        j                  |g      j                  dk(  sJ t        j                  d d g      }t        j                  g d      |d<   t        j                  g d      |d<   t        j                  |      j                  dk(  sJ t        j                  |g      j                  dk(  sJ y )NrV  r   r3   r  r3   r2   r3   r2   r   r   )r#   r  rF   )rT   outerouter_raggeds      r)   test_array_of_ragged_arrayz'TestCreation.test_array_of_ragged_array  s    $& hhy11a58xx$$,,,xx &&&000xxt-((9-Q((<0Qxx%++t333xx'--888r+   c                    t        j                  t        d      ggg      }t        j                  dt        d      g      }t        j                  dgt        d      gg      }y ri  )r#   r  r   r   s     r)   test_deep_nonragged_objectz'TestCreation.test_deep_nonragged_object  sL    HH
|n%&HHa_%HHqcGAJ<()r+   r/   zO,OzO,(3)Oz(2,3)Ofunctionc                V    t        j                  t        j                  | |            S r?  )r#   
empty_likerA   rF   r/   s     r)   r  zTestCreation.<lambda>  s    rxxU/K!Lr+   c                     |d|      }t        j                  d       j                         }||j                  t	        |      z  z  }|j                         |k(  sJ y )Nr   r   )r#   r  tobytesr   r&   )rT   r  r/   r'   expecteds        r)   test_object_initialized_to_Nonez,TestCreation.test_object_initialized_to_None  sQ     q&88D>))+szzS]:;{{}(((r+   rj  c                    t        j                  d      } |g d|      } |g dt        |            }t        ||       |j                  |k(  sJ y )Nr   rV  r   )r#   r/   r  r   )rT   rj  r/   arr1arr2s        r)   test_creation_from_dtypemetaz)TestCreation.test_creation_from_dtypemeta  sI     IU+IT%[14&zzU"""r+   N)1ra   rb   rc   __doc__r  r'  r-  r   r   r   paramEllipsisr5  r=  r   r#   r/   r7  r@   rB  rM  slowrO  rQ  rT  r\  r`  rd  rw  r  r  r  r  r  r  r  r  r  r  r7   rE   rA   r  r  rn   rq  rd  rg  r  rd   r+   r)   r  r  g  s   1JA( [[UV\\(u-|v||B8/LMO	O	A [[)22a7F  H<H<
1, [[	 	-& 6DR680	 # *I+&!9* [[Wvuh&IJ[[ZJJL*N O)O K) [[V
"**bmmR-A-A
& ##r+   r  c            
         e Zd Zd Zd Zd Zej                  j                  de	j                  e	j                  g      d        Zd Zej                  j                  de	j                  d e	j                  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ej                  j                  d eddgddgd       eddgddgddg      g      ej                  j                  dd d!g      d"               Zd# Zy$)%TestStructuredc           	        t        j                  ddg      }t        j                  d      j                  dddd      |d<   t	        |j
                  d   |d   j                  d	d
dd             |j                  d      }t        |d   j                  |d   j                         t        |j
                  d   j                  |j
                  j                         d   j                         y )N)r   rW   )rR   r   r4  r   r   r   rW   r2   rR   r3   r   rZ  r6   )
r#   r9   r%   r   r   rM  	transposerX  r   rF   r  s      r)   test_subarray_field_accessz)TestStructured.test_subarray_field_access  s    HHV$9#:;2&&q!Q2# 	133s8QsV%5%5aAq%AB FFFQsV\\1S6<<0QSSX^^QSSXXZ_%:%:;r+   c                   t         j                  j                  g ddddgddggfg ddd	d	gd	d	ggfgd
dt        fdg      }|j	                         }t        ||k(  ddg       t        ||k7  ddg       d|d   _        t        ||k(  ddg       t        ||k7  ddg       t        d      D ]M  }|d	   j                  |d	   _        d|d	   j                  |<   t        ||k(  ddg       t        ||k7  ddg       O t        d      D ]X  }t        d      D ]H  }|j	                         }d|d	   j                  ||f<   t        ||k(  ddg       t        ||k7  ddg       J Z t        j                  dgdggdg      }t        j                  g ddg      }t        ||k(  g dg dg       t        ||k(  g dg dg       t        j                  dgdggdg      }t        j                  g ddg      }t        ||k(  g dg dg       t        ||k(  g dg dg       t        j                  d	d	gfgddgfggdg      }t        j                  d	d	gfd	dgfddgfgdg      }t        ||k(  g dg dg       t        ||k(  g dg dg       t        j                  d	d	gfgddgfggdgd      }t        j                  d	d	gfd	dgfddgfgdg      }t        ||k(  g dg dg       t        ||k(  g dg dg       t        j                  dddg      }t        j                  dddg      }t        j                  t              5  ||k(   d d d        t        j                  dd dg      }t        j                  dddg      }t        j                  t              5  ||k(   d d d        y # 1 sw Y   cxY w# 1 sw Y   y xY w)!NrV  rR   r3   r2   r   r   r   r   r   r   r   )rR   )f4r   )r[  r  r   TFr[  rW   rQ   r  r  r9  )r  r  r  rI  rJ  )rR   r:  r  )rR   r:  r  )TFFrZ  r.   )rR   )r  r  r   i1)rR   )r  r  )rR   )r  r2   r3   )r#   recfromrecordsr7   rX  r   r   r   rR   r[  r  r9   r   rB  r)  )rT   rR   r   r   jr  r/  s          r)   test_subarray_comparisonz'TestStructured.test_subarray_comparison  s    FF1v1v./)SAq6Aq6BR1ST#c6]4IJ  L FFHQ!VdD\*Q!VeU^,!Q!VdE]+Q!VeT]+qAqTVVAaDFAaDFF1Ia%0a$.	 
 qA1XFFH!!q!tQ!VeT]3Q!VdE]3	   HHtftf%k];HH'}=Q!V13GHIQ!V13GHIHHtftf%.?-@AHH'0A/BCQ!V13GHIQ!V13GHIHHAykaVI;/8I7JKHH1vi1a&aVI6?P>QRQ!V24HIJQ!V24HIJ HHAykaVI;/8I7JRUVHH1vi1a&aVI6?P>QRQ!V24HIJQ!V24HIJ HHT"7!EFHHT"5{!CD]]9%F & HHT"7!EFHHT"5{!CD]]9%F &% &% &%s   N6'O6N?Oc                   t        j                  ddg      }t        ||       t        j                  ddg      }t        ||       t        j                  ddg      }t        ||       t        j                  ddg      }t        ||       y )Nr   )rR   <f8r  )rR   r  r  r!  r3   r   r3   )r#   r9   r   r   s     r)   &test_empty_structured_array_comparisonz5TestStructured.test_empty_structured_array_comparison	  s|     HHQ-./QHHQ+,-QHHV234QHHY!5 67Qr+   opc                    t        j                  dd      }t        j                  g d      }t        j                  t
              5   |||       d d d        y # 1 sw Y   y xY w)Nr   r3  r   )r#   r9   r  r   rB  r8   )rT   r  rR   r   s       r)   /test_structured_array_comparison_bad_broadcastsz>TestStructured.test_structured_array_comparison_bad_broadcasts  sC    HHQe$HHRu%]]:&q!H '&&s   
AA$c                   t        j                  ddgddg      }t        j                  ddgddg      }t        ||k(  d	d
g       t        ||k7  d
d	g       t        j                  ddgddg      }t        j                  ddgddg      }t        ||k(  d	d
g       t        ||k7  d
d	g       t        j                  ddgddg      }t        j                  ddgddg      }t        ||k(  d	d
g       t        ||k7  d
d	g       y )NrW   r  rQ   r3   rR   >i8r   r  r   )rW   +   rR   z<i8r   >f8FT)rR   r  r   r  )rR   z10>f8)r   z5<f8)rR   z10<i8)r   z5>i8r#   r  r   r  s      r)   *test_structured_comparisons_with_promotionz9TestStructured.test_structured_comparisons_with_promotion  s    HHgw'l/KLHHgw'l/KLQ!VeT]+Q!VdE]+HHgw'l/KLHHgw'l/KLQ!VeT]+Q!VdE]+ HHgw'/NOHHgw'/NOQ!VeT]+Q!VdE]+r+   c                .    t        j                  ||       S r"   )r>   eqr  r/  s     r)   r  zTestStructured.<lambda>1      hkk!Q&7r+   c                .    t        j                  ||       S r"   )r>   ner  s     r)   r  zTestStructured.<lambda>2  r  r+   c                   t        j                  ddg      }t        j                  d      }t        j                  t              5   |||       d d d        t        j                  ddg      }t        j
                  |j                  |j                        sJ t        j                  t              5   |||       d d d        t        j                  dd      }t        j                  dd      }t        j                  t              5   |||       d d d        y # 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   y xY w)Nr   )rR   r  r   ))titlerR   r  V7r*  )r#   r9   r   rB  r)  can_castr/   )rT   r  r  r/  s       r)   test_void_comparison_failuresz,TestStructured.test_void_comparison_failures0  s     HHQ{m,HHQK]]9%q!H & HHQ567{{177AGG,,,]]9%q!H & HHQd#HHQd#]]9%q!H &% &% &%
 &%s$   
D"6
D.
D:"D+.D7:Ec                   t        j                  dgdg      }t        t        j                  |j                  dgd             |j                  dg      }t        ||j                         j                                t        |d   d   |d   d          t        j                  d	d
gddg      }t        j                  d	d
gddg      }t        t        j                  |j                  |j                  d             t        ||k(  ddg       t        t        j                  |j                  |j                  d             |j                  |j                  d      }t        ||k(  ddg       ddg}t        t        j                  |j                  |d             |j                  |d      }t        |t        j                  d	d
g|      k(  ddg       ddg}t        t        j                  |j                  |d             |j                  |d      }t        |t        j                  d	d
g|      k(  ddg       ddg}t        t        j                  |j                  |d              t        t        |j
                  |d       ddg}t        t        j                  |j                  |d              t        t        |j
                  |d       ddg}t        t        j                  |j                  |d              t        t        |j
                  |d       t        t        j                  |j                  |j                  d              t        t        |j
                  |j                  d       dD ]a  }dg}t        t        j                  |j                  ||              g d}t        t        j                  |j                  ||              c y )Nr  r  r   r  unsafecastingrR   r   r  r  r  r  equivTr  safe)r   z>f4	same_kindr  )r   <f4)rR   >i2r  no)r  r  r  r  )r  r  )r[  r   )r#   r  r   r  r/   r  r   byteswapnewbyteorderr	   r)  )rT   rR   r   r[  r.  r  s         r)   test_castingzTestStructured.test_castingH  s    HHdVL>2AGGl^XFGHHl^$Q

1134QsVAY#q	* HHgw'l/KLHHgw'l/KLAGGQWWg>?Q!VdD\* 	AGGQWWg>?HHQWWgH.Q!VdD\* <(AGGQ78HHQH'a288Wg$6a@@D\	#
 <(AGGQ<=HHQH,a288Wg$6a@@D\	#
 <(BKKF;;<i1f=<(BKKG<<=i1g><(BKKK@@Ai1kBBKK$??@i177DA <GAAGGQ@@A9AAGGQ@@A	 <r+   c                    t        j                  g g d      }|ddg    t        j                  dddg      }|dd	g    y )
N)rR   r  r   r  )r[  r,  r   rR   r   r   )r  r   )rt   z|Ort   r  )r#   r  r9   )rT   rR   dat2s      r)   test_objviewzTestStructured.test_objview  sA    HHRCD	3* xxJ45c3Zr+   c                P   t        j                  dg      }t        j                  dd|fg      }t        j                  d|      }t        j                  dd      |d   d	<   t        j                  d|      |d   d<   t	        |d   d	   t        j                  dd             y )
N)elemr   rW   )fieldr   rQ   structr3   rQ   r   r   r   r  )r#   r/   r9   rK  r   )rT   	struct_dtrL  r  s       r)   test_setfieldzTestStructured.test_setfield  s    HH/12	XX*Hi+@ABHHQO$/!W)4!XQqT']BGGBd$;<r+   c                   t        j                  ddg      }t        j                  d      |d   d<   t        |d   d   t        j                  d             t        j                  ddg      fd}t	        t
        |       y )	Nr3   )r  r,  r   r   r   r  )r  r,  rW   c                 <    t        j                  d       d   d<   y )Nr   r   r  r#   r%   )r[  s   r)   
testassignz7TestStructured.test_setfield_object.<locals>.testassign  s    		!AaDIr+   )r#   r9   r%   r   r	   r8   )rT   r   r  r[  s      @r)   test_setfield_objectz#TestStructured.test_setfield_object  sk     HHQzl+IIaL!S	QqT#Y		!- HHQ}o.	% 	j*-r+   c                P   t        j                  dt        fdg      }t        j                  d|      }t	        |d   g d       t	        |d   j
                  d       g d|d<   t	        |d   g d       t	        |d   g d	       d
|d   |d   dk(  <   t	        |d   g d       t	        |d   g d	       d|d<   t	        |d   g d       t	        |d   g d	       t        j                  d|d   j                        }t	        |j
                  d       t	        |d   |       t	        t        j                  dddg      d   j
                  d       t	        t        j                  dd      j
                  d       t	        t        j                  dd      d   j
                  d       |d   j                  d      }t	        |j
                  d       t	        |ddgddgg       t	        |d d  j                  |j                         t        t        t        |      t        t         j                              |       t        j                         }t        j                   ||       |j#                  d       t        j$                  |      }t	        |j
                  d       t	        ||       t'        d      5 }t        j                   ||       t        j$                  |      }t	        |j
                  d       t	        ||       d d d        y # 1 sw Y   y xY w)NI)SS0r   r   r  )r+   r+   r+   r+   r   )rR   r   r[  r   r   r   r   r   hellor  )rR   S0,S0)r   ry   rR   r   r  zS0,u1f0r4  r+   r  z.npy)suffix)r#   r/   r
  r9   r   r@   rE   rA   r   r   evalr  dictr  ioBytesIOsaveseekloadr   )rT   rL  r  r/  xxr   yytmps           r)   test_zero_width_stringz%TestStructured.test_zero_width_string  sm    XXSz;/0HHQb!QsV12QsV__a(%#QsV12QsV\* &#qv{QsV12QsV\* #QsV12QsV\* JJq#-QZZ#QsVQ 	RXXa(3(5 669;;C8Q	HRXXaw/88!<RXXaw/5>>BsV^^F#R[[!$R3*sCj12RU[["((+4R$RXX*>?DJJL
2	q	WWQZR[[!$RV$GGCBa(R 	 %$$s   ALL%c                j    t        j                  dd      }|d   }t        |j                  |u        y )Nr   zi4,f4r   r   )r#   r9   r   r   r  s      r)   test_base_attrzTestStructured.test_base_attr  s+    HHQg&aD!r+   c                  	
 d 
t        j                  ddg      }t        j                  d|      	t        j                  dgddg      }t        j                  dgddg      }t        j                  dgddg      }t        j                  dgdg      t        j                  dgd	d
g      }	j	                  dgdgdgd      }t        j                  ddg|      }t         
	|      |       t         
	|      |       t         
	|      |       t        t        	
fd       t         
	|      |       d|d d  t        	t        j                  ddg|             t        j                  dgg d      }|ddg   |ddg<   t        |d   j                         d       t        j                  dgddg      }|ddg   |ddg<   t        |d   j                         d       y )Nc                :    | j                         }||d<   ||dd  |S r  rW  )r'   r   r[  s      r)   r  z2TestStructured.test_assignment.<locals>.testassign  s&    
AAaDAabEHr+   fooi8barr)  r2   r  r   )bazr)  r  )r(  r:  )r+  r:  r+  r)  r   namesformatsoffsetsc                             S r"   rd   )r'   r  v4s   r)   r  z0TestStructured.test_assignment.<locals>.<lambda>  s    C)<r+   r   )r3   r   rV  )r'  r*  )r,  r  r(  r   r2   r3   r   r  r   r   r   rR   r  )	r#   r/   rK  r  rm   r   r	   r)  r  )rT   rL  v1v2v3v5r   ansrR   r'   r  r2  s            @@@r)   test_assignmentzTestStructured.test_assignment  s   	 XX}m45gganXXugm]%CDXXugm]%CDXXugm]%CDXXtfm_5XXugm]%CDHHwD6qcJKhhe}B/ZR(#.ZR(#.ZR(#.i!<=ZR(#.!S"((E%=;< HHgYHJuen-5%.QqTYY['* HHeW[+$>?3*3*QqTYY[%(r+   c                    t        t              5  t        j                  d      j	                  dd      }|j                  d       d d d        y # 1 sw Y   y xY w)N   rW   r   )r	   r8   r#   r%   r   itemsetrj   s     r)   test_scalar_assignmentz%TestStructured.test_scalar_assignment  s;    :&))B-''1-CKKN '&&s   7AAc                    t        j                  dd      }t        |ddg   d   |d   ddg          t        |d   |d   d          y )Nr3   z(2)3S,(2)3Ur  r  r8  r   rd   )r#   rA   r   r<  s     r)   test_structuredscalar_indexingz-TestStructured.test_structuredscalar_indexing  sL    HH1M2QT{^A&!d4[(9:QqT1Q48$r+   c                    t        j                  dg d      t        t        fd       t        t        fd       t        t        fd       ddg    y )	Nr   ))r{  r   r[  r   r   r   r   c                      ddg   S )NrR   r[  rd   r   s   r)   r  z7TestStructured.test_multiindex_titles.<locals>.<lambda>      C9r+   c                      ddg   S )NrR   rd   r   s   r)   r  z7TestStructured.test_multiindex_titles.<locals>.<lambda>  rD  r+   c                      ddg   S )Nr   rd   r   s   r)   r  z7TestStructured.test_multiindex_titles.<locals>.<lambda>  s    1c#Y<r+   r   r[  )r#   r9   r	   ru  r8   r   s    @r)   test_multiindex_titlesz%TestStructured.test_multiindex_titles  s@    HHQIJh 56h 56j"78	3s)r+   c           	        d}d}t        j                  dg||g      }t        j                  dg||g      }t        t        t         j                  ||       t        t        t         j
                  |j                  |j                         t        t        t         j                  |j                  |j                         t        t        j                  |j                  |ddg   j                        t        |j                  j                  d                   t        t        j                  |j                  |j                        d       t        |j                  |j                        j                  |j                         t        t        j                  d	d
dg      d       t        t        j                  d	ddg      d       t        t        j                  d	dd
g      d       t        t        j                  d	dd
gd      d       ||d d  t        j                  dg      }t        j                  dg      }t        t        j                  ||      t        j                  dg             t        t        j                  ||      t        j                  dg             t        t        t         j                  |t        j                  dg             t        t        j                  dd      t        j                  ddg             t        j                  d|fg      }t        j                  d|fg      }t        t        j                  ||      t        j                  dt        j                  dg      fg             t        j                  dgdgdgd      }	t        j                  d|	      }
t        t        j                  |
|
g      j                  t        j                  dg             y )Nr  r  r  r   rR   r   NTzf8,i8)r  r:  )r8  r)  )r8  r:  )r  r)  Fr  r  )r  r   )r  r)  )r  V3r7  zi8,f4r  r  r  r   r   r-  r   )r  r   )r#   r  r	   r)  concatenateresult_typer/   promote_typesr   r   r  r  r  rK  )rT   r  rt   abbadt1dt2dt1nestdt2nestrL  rR   s              r)   )test_structured_cast_promotion_fieldorderz8TestStructured.test_structured_cast_promotion_fieldorder  s    XXvhq!f-XXvhq!f-iR8i288Di!1!1288RXXF 	R%%bhhC:0D0DE"288#8#8#=>	@
 	R[[2884d;RYYrxx(..9R[[<*FGNR[[<*FGNR[[<*FGOR[[<*F)1348	: 1 hh
|$hh
|$R%%c3/<.1IJR%%c3/<.1IJi!1!13*8NOR%%gw7XX|\:;	= ((RI;'((RI;'R%%gw7XXbhh~&>?@A	C XX4&aSIJGGAR R^^QF+11288[M3JKr+   
dtype_dictrR   r   r   r  r^  )r.  r/  r@   r   r}  r-  rG   TFc                x   t        j                  ||      }|j                  dd        |j                  dd        t        j                  ||      }t        j                  ||      }|j                  |j                  k(  sJ |j
                  |j
                  k(  sJ t        j                  ||      }||u sJ y )NrG   r@   r0  )r#   r/   poprM  r@   r  )rT   rU  rG   r/   r  ress         r)   test_structured_promotion_packsz.TestStructured.test_structured_promotion_packsG  s     51z4(y$'88Je4ue,||x00000zzX__,,, x2hr+   c                   t        j                  dgd      }|d   }|j                  j                  rJ t        j                  |      j
                  |u sJ t        j                  ||j                        j
                  J t        j                  t        j                  |            }|j                  j                  sJ t        j                  |      j
                  J y )Nr3   r3  r   r   )
r#   r  rY   r   rn   r   r/   r   r   r   )rT   r'   r1  s      r)   test_structured_asarray_is_viewz.TestStructured.test_structured_asarray_is_view]  s     hhs%(Q<<''''zz&!&&&000zz&5::BBB fll623||####zz&!&&...r+   N)ra   rb   rc   r  r  r  r   r   r   r>   r  r  r  r  r  r  r  r  r  r"  r$  r9  r=  r?  rG  rT  r  rZ  r\  rd   r+   r)   r  r    sA   <8t
 [[THKK#=> ?,( [[TKK7KK7$9 ::*8Bt=. 6!p
#)J
%-L^ [[\SzD#;ESzD#;R",# $ [[WtUm4 5	$
"/r+   r  c                      e Zd Zd Zd Zd Zd Zej                  j                  d        Z
d Zd Zd Zej                  j                  d	
      d        Zej                  j                  d	
      d        Zy)TestBoolc                n   t        j                  d      }t        j                  d      }t        ||u        t        j                  d      }t        j                  d      }t        ||u        t        t        j                  dg      d   |u        t        t        j                  d      d   |u        y )Nr   Fr3   Trd   )r#   bool_r   r  )rT   a0b0a1b1s        r)   test_test_interningzTestBool.test_test_interningn  s    XXa[XXe_bXXa[XXd^b$ #r)*r"b()r+   c                   t        j                  dt              }t        |j	                         |j
                         t        |d d d   j	                         |d d d   j
                         t        |d d d   j	                         |d d d   j
                         t        j                  dt              }t        |j	                         |j
                         t        |d d d   j	                         |d d d   j
                         t        |d d d   j	                         |d d d   j
                         y )Ne   r   r2   r  s   )r#   rK  rL  r   rI  rH   r}   rh  s     r)   test_sumzTestBool.test_sumx  s    GGCt$QUUWaff%QssVZZ\1SqS6;;/QttW[[]AddGLL1MM+48QUUWaff%QssVZZ\1SqS6;;/QttW[[]AddGLL1r+   c                X   t        |      D cg c]  }d|z  	 }}t        d|z        D ]  }|D cg c]
  }||z  dk7   }}t        j                  |t              }t	        j
                  |      }t        t        j                  |      |       |j                  t        j                        }	|	dz  }	t        t        j                  |      |       |	dz  }	t        t        j                  |      |       d|	|	dk7  <   t        t        j                  |      |        y c c}w c c}w )Nr2   r   r   r   r      )
r   r#   r  rL  builtinsrI  r   rH  rm   rB   )
rT   powerlengthr   powersr  r   rR   r[  avs
             r)   check_count_nonzerozTestBool.check_count_nonzero  s    "'-0-Q!q&-0q%xA'-.v!!a%AvA.$'AQA))!,a0!B!GB))!,a0!GB))!,a0BrQwK))!,a0 ! 1.s
   D"D'c                (    | j                  dd       y )Nr}     rp  rS   s    r)   test_count_nonzerozTestBool.test_count_nonzero  s     	  R(r+   c                (    | j                  dd       y )Nrr  rs  rS   s    r)   test_count_nonzero_allzTestBool.test_count_nonzero_all  s     	  R(r+   c                   t        d      D ]  }t        j                  dt              |dz   d  }d|d | t	        t        j
                  |      t        j                  |j                                      t        j                  dt              |dz   d  }d|d | t	        t        j
                  |      t        j                  |j                                       y )Nr  )   r   r3   TF)
r   r#   r9   rL  r   rH  rk  rI  tolistrK  )rT   orR   s      r)   test_count_nonzero_unalignedz%TestBool.test_count_nonzero_unaligned  s    qAd+AaCD1AAbqE))!,hll188:.FGT*1Q340AAbqE))!,hll188:.FG r+   c           	        t        d      D ]  }t        j                  d||f      }t        t	        |      d       t        t	        |d         d       t        |j                  t              d       t        t        |j                  t              t        j                               t        |d   j                  t              t        j                  u         t        dd      D ]  }dD ]  }t        j                  |||f      }t        t	        |      d       t        t	        |d         d       t        |j                  t              d       t        t        |j                  t              t        j                               t        |d   j                  t              t        j                  u          y )	Nr   r+   Frd   r3   r   )   a   0    T)r   r#   r  r   rL  r  r   r   rE   False_True_)rT   r/   nr   vals        r)   _test_cast_from_flexiblez!TestBool._test_cast_from_flexible  s*   qAuaj)Aa%(aee,$/Jqxx~rzz:;AbELL&"))34  q!A)HHS5!*-T!Wd+T!B%[$/QXXd^T2
188D>2::>?"T*bhh67 * r+   c                B    | j                  t        j                         y r"   )r  r#   voidrS   s    r)   test_cast_from_voidzTestBool.test_cast_from_void  s    %%bgg.r+   zSee gh-9847r   c                B    | j                  t        j                         y r"   )r  r#   str_rS   s    r)   test_cast_from_unicodezTestBool.test_cast_from_unicode  s    %%bgg.r+   c                B    | j                  t        j                         y r"   )r  r#   bytes_rS   s    r)   test_cast_from_byteszTestBool.test_cast_from_bytes  s    %%bii0r+   N)ra   rb   rc   re  rh  rp  rt  r   r   r  rv  r{  r  r  xfailr  r  rd   r+   r)   r^  r^  m  s    *	21)
 [[) )
H8(/ [[m,/ -/ [[m,1 -1r+   r^  c                      e Zd Zeef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j*                  dk  d      d        Zy)TestZeroSizeFlexiblec                    t        j                  |      }|t         j                  k(  rt        j                  | |df      S t        j                  d|dfg      }t        j                  | |      d   S )Nr   r   r  )r#   r/   r  r9   r  s     r)   _zeroszTestZeroSizeFlexible._zeros  s_    BGG88E%44 3q/*+xxU+C00r+   c                    | j                  dt              }t        |j                  d       | j                  dt        j
                        }t        |j                  d       | j                  dt              }t        |j                  d       y )NrQ   r   )r  r   r   r@   r#   r  r  rT   zss     r)   test_createz TestZeroSizeFlexible.test_create  s`    [[U#R[[!$[[RWW%R[[!$[[S!R[[!$r+   c                    t         t        j                  t        fD ]L  }| j	                  d|      }t        ||      }t        t        |      }|D ]  } |dd|i|  ||fd|i|  N y )NrQ   kindrd   )r   r#   r  r  r  getattr)	rT   namekindskwargsrL  r  sort_method	sort_funcr  s	            r)   _test_sort_partitionz)TestZeroSizeFlexible._test_sort_partition  sk    "''3'BR$B!"d+KD)I000"24262 	 (r+   c                *    | j                  dd       y )Nr$   qhsr  r  rS   s    r)   	test_sortzTestZeroSizeFlexible.test_sort  s    !!&!6r+   c                *    | j                  dd       y )Nargsortr  r  r  rS   s    r)   test_argsortz!TestZeroSizeFlexible.test_argsort  s    !!)5!9r+   c                .    | j                  ddgd       y )N	partitionintroselectr2   r  kthr  rS   s    r)   test_partitionz#TestZeroSizeFlexible.test_partition  s    !!+m_!!Lr+   c                .    | j                  ddgd       y )Nargpartitionr  r2   r  r  rS   s    r)   test_argpartitionz&TestZeroSizeFlexible.test_argpartition  s    !!.Q!Or+   c                    t         t        j                  t        fD ]6  }| j	                  d|      }|j                  d       |j                  d       8 y )NrQ   r;  r   )r   r#   r  r  r  resizerT   rL  r  s      r)   test_resizez TestZeroSizeFlexible.test_resize  s>    "''3'BR$BIIbMIIh (r+   c                &   t         t        j                  t        fD ]s  }| j	                  d|      }t        |j                  |      j                  t        j                  |             t        |j                  |df      j                  d       u y )NrQ   r3   r  )	r   r#   r  r  r  r   rm   r/   rF   r  s      r)   	test_viewzTestZeroSizeFlexible.test_view  sh    "''3'BR$B **BHHRL9 "a)//6 (r+   c                    | j                  dt              }t        |t        j                  |j                                      y rP   )r  r
  r   r   r   r   r  s     r)   
test_dumpszTestZeroSizeFlexible.test_dumps  s+    [[S!Rbhhj12r+   c                D   t        dt        j                  dz         D ]  }t        t        j
                  t        fD ]`  }| j                  d|      }t        j                  ||      }t        j                  |      }t        |j                  |j                         b  y )Nr2   r3   rQ   protocol)r   r   r   r   r#   r  r  r  r   r   r   r/   )rT   protorL  r  pzs2s         r)   test_picklez TestZeroSizeFlexible.test_pickle  sr    1f559:Ebggs+[[R(LLe4ll1oRXXsyy1 , ;r+   c                    t        j                  g       j                  dd      }t        j                  |      }t        j
                  |      }|j                  dk(  sJ y)z]Checking if an empty array pickled and un-pickled will not cause a
        segmentation faulti?B r   N)r#   r  r   r   r   r   rH   )rT   r'   pk_dmppk_loads       r)   test_pickle_emptyz&TestZeroSizeFlexible.test_pickle_empty  sL     hhrl""61-c",,v&||q   r+   rW   requires pickle protocol 5r   c                    t        j                  d      }g }t        j                  ||j                  d      }t        j
                  ||      }d|d<   |d   dk(  s
J |d          y )NrQ   rW   )buffer_callbackr  buffersr5   r   )r#   r%   r   r   appendr   )rT   r  r  bytes_stringarray_from_buffers        r)   test_pickle_with_buffercallbackz4TestZeroSizeFlexible.test_pickle_with_buffercallback  si     		"||E7>>-.0"LLwG
 a #r)?+<Q+??)r+   N)ra   rb   rc   staticmethodr  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r   r  rd   r+   r)   r  r    s     1 1%37:MP 732! [[//!3;  =@=@r+   r  c                  
   e Zd Zg dZd Zd Zd Zd Zd Ze	j                  j                  ddeg      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                  g      d        Ze	j                  j                  dej:                  ej<                  ej>                  ej@                  ej0                  ej2                  ej4                  ej6                  g      d        Z!e	j                  j                  dej2                  ej4                  ej6                  g      e	j                  j                  dddg      d               Z"d Z#e	j                  j                  dejH                  ejJ                  g      d        Z&d Z'e	j                  j                  d ejP                  de)fde*fg       ejP                  de)fdefg      g      e	j                  j                  dddg      d               Z+e	j                  j                  ddd g      d!        Z,d" Z-d# Z.d$ Z/d% Z0d& Z1d' Z2d( Z3e	j                  j                  dd)ej>                  d*g      d+        Z4d, Z5d- Z6d. Z7d/ Z8e	j                  j                  d0 ejr                  d1dejt                  gej0                  2       ejr                  d1dejt                  gej2                  2       ejr                  d1dejt                  g      g      d3        Z;d4 Z<d5 Z=d6 Z>d7 Z?d8 Z@d9 ZAd: ZBd; ZCd< ZDe	j                  j                  dej                  d=         d>        ZFe	j                  j                  dej                  d=         d?        ZGd@ ZHdA ZIe	j                  j                  dBej                  dC         dD        ZJe	j                  j                  dBej                  dC         dE        ZKdF ZLdG ZMdH ZNdI ZOdJ ZPdK ZQe	j                  j                  dBej                  dC         dL        ZRdM ZSe	j                  j                  dNej                  ej                  f      dO        ZVe	j                  j                  dNej                  ej                  f      e	j                  j                  ddP      dQ               ZWdR ZXdS ZYdT ZZdU Z[dV Z\dW Z]dX Z^dY Z_dZ Z`d[ Zad\ Zbd] Zcd^ Zdd_ Zed` Zfda Zgdb Zhdc Zidd Zjde Zky)fTestMethods)	quicksortheapsortstablec           
        t        j                  g dg dg dg      }t        j                  g dg dg dg      }t        j                  dgdgdgg      }dD ]  }t        |j                  ||      t        j                  ||d d df   d d f   |	             t        t        j                  |||      ||d d df   d d f   j                  |	              t        |j                  |
      d       t        t        j                  ||
      d       t        |j                  d
      d       t        t        j                  |d
      d       y )NTFTFFFTTTFTr   Naxiswherer   r  r  )r#   r  r   all)rT   rR   wh_fullwh_lower_axs        r)   test_all_wherezTestMethods.test_all_where+  s0   HH)+(* + ((/1/1 2 88eW#W"V% & CCx8q!A#q1<>8<8AaC=?+//S/9;  	QUUU)40RVVAW-t4QUUU'.RVVAU+T2r+   c           
        t        j                  g dg dg dg      }t        j                  g dg dg dg      }t        j                  dgdgdgg      }dD ]  }t        |j                  ||      t        j                  ||d d d	f   d d f   |
             t        t        j                  |||      ||d d d	f   d d f   j                  |
              t        |j                  |      d       t        t        j                  ||      d       t        |j                  d      d       t        t        j                  |d      d       y )Nr  r  r  )FTFFTr  r  r   r  r  )r#   r  r   rJ  )rT   rR   r  	wh_middler  s        r)   test_any_wherezTestMethods.test_any_where@  s3   HH)+(* + ((0.13 4 HHug#f$g' (	 CCy9)AaC."2 3#>@9=9QqS>!+,00c0:< 
 	QUUU)51RVVAW-u5QUUU'/RVVAU+U3r+   c                   g dg}t        j                  d      j                  dd      }|j                  ddgd      }t	        ||       ddgd	d
gg}|j                  g dd      }t	        ||       dgd	gg}t        j                  d      j                  dd      }|j                  ddgd      }t	        ||       t        j                  d      j                  dd      }|j                  ddg      }t	        |d       y N)rW   r   r  r   r  rQ   r2   rW   r   r3   r  r   r   r   )r   r3   r   r3   r   r#   r%   r   compressr   rT   rN  r'   outs       r)   test_compresszTestMethods.test_compressT  s    iim##Aq)llAq6l*S#1v1vll?l3S#sQCjiim##Aq)llAq6l*S#iim##Aq)llAq6"S!r+   c                   dt        j                  dt              z  }dt        j                  dt              z  }dt        j                  dt              z  }dt        j                  dt              z  }t        j                  g d      }|j	                  ||f      }t        |g d       |j	                  ||f      }t        |g dg dg       |j	                  ||f      }t        |g dg dg       t        j                  d      }t        t        |j                  t        j                  d	      |g       t        j                  d	      }t        j                  t        j                  d      g d
|      }	||	u sJ t        |d   d       t        j                  d      }t        j                  g d|d d |d d |d d g|dd d      }t        |t        j                  g d             y )Nr2   rS  r   r   r  r   r   r3   r2   r2   r   r3   r   )rQ   r   r   r  rd   r   rW   rv  r   wrapr  moderu  )
r#   rK  r
  r  chooser   r	   r)  r  r%   )
rT   r  r/  x2y2r~  r  onedr  rets
             r)   test_choosezTestMethods.test_chooseg  s   bggd#&&bggd#&&rwwvS))rwwvS))hhy!JJ1vQ	"JJBx QI./JJ2wQI./wwqziRWWQZ$@hhqkii\s;czzSWb! IIaLIIg"1q!uae4!Aa&vNQ+,r+   c                   g d}g dg dg dg}t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  fD ]  }t        j                  ||      }t        j                  ||      }|dv r7t        t        |j                         t        t        |j                  d       jt        |j                  d      d	       t        |j                  d      t        j                  g d
|             t        |j                  d      t        j                  g d|              y )N)r3   r2   rQ   r?  r   rW   r   r  )rW   r   r  r  )rQ   r   r   rW   )1r   r3   r  r   i g  )r  $   T      r5   )   ib  iX  )r#   r   r   r   r   float32r   	complex64
complex128r  r	   ArithmeticErrorprodr   r   )rT   rO  ba2ctyperR   a2s         r)   	test_prodzTestMethods.test_prod  s    $\=9hh		288RYYjj"**bllBMMKEU#A#u%B
"oqvv6orwwQ?QVVV^U3"2777?#%88,=u#EG"2777#3#%88OU#CEKr+   r/   Nc                   t        j                  g d|      }|j                  d      }|j                  g d      }t	        |g d       |j                  d      }t	        |g d       |j                  ddgd	
      }t	        |g dg dg dg       |j                  g dd
      }t	        |g dg dg       |j                  dd	
      }t	        |g dg dg dg dg       |j                  dd
      }t	        |g dg dg       y )Nr3   r2   r   r   rW   r   r   r  r3   r   r2   r3   r3   r2   
r3   r2   r2   r2   r   r   r   rW   r   r   r2   r3   r3   r2   r2   r   r   r   r   rW   rW   r   r   r3   r   r  rV  r   rW   r   r3   r   r2   r3   r2   r2   r2   r   r   r   rW   rW   rW   r   r   r3   r3   r2   r2   r   r   r   r   rW   rW   r   r   )r#   r  r   repeatr   )rT   r/   mm_rectr  s        r)   test_repeatzTestMethods.test_repeat  s   HH'u56"HH'(Q ( 	) HHQKQ + 	, MM1a&qM)Q""$ 	% MM)!M,Q++- 	. MM!!M$Q"""$ 	%
 MM!!M$Q++- 	.r+   c                   t        j                  g dg dg dg dg      }g dg dg}t        |j                  dd      |       g d	g d
g dg}t        |j                  dd      |       g dg dg dg}t        |j                  dd      |       g dg dg dg}t        |j                  j                  dd      |       y )NrV  r  )r  r   r  )rQ   r?  r}  r	  )r  r   r  rQ   r?  r}  r2   r   r  rW   r   r  r   )r  rQ   r?  r}  r   r   )r3   rQ   r   r   )r   r2   r?  r  )r  rW   r   r}  r   r   rZ  r6   )r3   r   r  rQ   )r2   rW   r   r?  )r   r   r  r}  r,   )r#   r  r   r   rM  )rT   r'   rN  s      r)   test_reshapezTestMethods.test_reshape  s    hh	9iFG!#89S[[A&,\?;S[[A&,m];S[[s[3S9m];SUU]]6]5s;r+   c                   d } |t        j                  ddg      ddg        |t        j                  d      d        |t        j                  ddg      dd	gd
        |t        j                  ddg      ddgd        |t        j                  dg      dg        |t        j                  dg      dgd
       y )Nc                    t         | j                  | |       t        j                  |       } | j                  |d|i}t        ||       ||u sJ y Nr  )r   roundr#   rZ  )r'   r  
round_argsr  rY  s        r)   check_roundz+TestMethods.test_round.<locals>.check_round  sP    J/:--$C#))Z1S1Ch'#::r+   g333333?      ?r3   r2   gffffff(@g      /@rQ   r   r5   gL(@gQ/@y      @      ?y      @       @y      )@      /@y      $@      4@ro  )rT   r   s     r)   
test_roundzTestMethods.test_round  s    	 	BHHc3Z(1a&1BHHSM1%BHHdD\*RHb9BHHeU^,tTlA>BHHj\*VH5BHHl^,xj"=r+   c                .   t        j                  dgdgdggg      }t        |j                         g d       t        |j                  d      dgdgdgg       t	        t
        |j                  d       t        |j                  d      g dg       y )	Nr3   r2   r   rV  r  r  r  r  )r#   r  r   squeezer	   r8   r   s     r)   test_squeezezTestMethods.test_squeeze  sw    HHsQC!o&'QYY[),QYYDY)QC!qc?;j!))$7QYYDY)I;7r+   c                    t        j                  ddgddgg      t        j                         ddgddgg       t	        t
        fd       t	        t
        fd       t	        t
        fd       y )Nr3   r2   r   r   c                 &     j                  d      S r	  r  r   s   r)   r  z,TestMethods.test_transpose.<locals>.<lambda>  s    !++a.r+   c                 (     j                  dd      S r	  r(  r   s   r)   r  z,TestMethods.test_transpose.<locals>.<lambda>  s    !++a*;r+   c                 *     j                  ddd      S )Nr   r3   r2   r(  r   s   r)   r  z,TestMethods.test_transpose.<locals>.<lambda>  s    !++aA*>r+   )r#   r  r   r  r	   r8   r   s    @r)   test_transposezTestMethods.test_transpose  s\    HHq!fq!f%&Q[[]aVaV$45j"89j";<j">?r+   c                b   d}t        j                  t         j                  ddg      }t        j                  |      }t	        ||d d d   |       d}t        j
                  dt         j                        }|xj                  t         j                  t         j                  t         j                  ddddddg	z  c_        |xj                  t         j                  ddt         j                  t         j                  ddddg	z  c_        t        j                  |      }t	        ||d d d   |       y )NzTest real sort order with nansr3   r   r5   z!Test complex sort order with nansr  r   )	r#   r  nanr$   r   r9   r  r  r  )rT   r&  rR   r   s       r)   r  zTestMethods.test_sort  s     /HHbffa^$GGAJQ$B$%1HHQbmm,	2662662661aAq!<<	2661aAq!<<GGAJQ$B$%r+   c                F   t        j                  d|      }|d d d   j                         }| j                  D ]e  }d|z  }|j                         }|j	                  |       t        |||       |j                         }|j	                  |       t        |||       g y )Nrg  r   r5   scalar sort, kind=%sr  r#   r%   rX  
sort_kindsr$   r   rT   r/   rR   r   r  r&  r[  s          r)   test_sort_unsignedzTestMethods.test_sort_unsigned  s     IIc'ddGLLNOOD(4/CAFFFAs#AFFFAs# $r+   c                H   t        j                  dd|      }|d d d   j                         }| j                  D ]e  }d|z  }|j                         }|j	                  |       t        |||       |j                         }|j	                  |       t        |||       g y )N3   r   r5   r/  r0  r1  r3  s          r)   test_sort_signedzTestMethods.test_sort_signed  s     IIc2U+ddGLLNOOD(D1CAFFFAs#AFFFAs# $r+   partr  r  c                   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  i|   }t        j                  dd|      }|d d d   j                         }|dz  j                  |      }|dz  j                  |      }t        ||d       t        ||d       | j                  D ]h  }d|d|}	|j                         }
|
j                  |	       t        |
||	       |j                         }
|
j                  |	       t        |
||	       j y )
Nr6  r7  r   r5         ?      ?r3   zcomplex sort, z part == 1, kind=r0  )r#   singlecsingledoublecdoubler  clongdoubler%   rX  r  r   r2  r$   r   )rT   r9  r/   cdtyperR   r   aibir  r&  r[  s              r)   test_sort_complexzTestMethods.test_sort_complex  s    IIrzzIIrzzMM2>>
 	
 IIc2U+ddGLLN4j  (4j  (D!D!OOD;?FC	AFFFB$	AFFFB$ $r+   c                    dD ]t  }t         j                  d   D ]\  }t        j                  g d||z         }|j                         }|j	                          dj                  |      }t        |||       ^ v y )Nr  Complexy      ?      @y       @       @y      @      ?r   z$byte-swapped complex sort, dtype={0})r#   r#  r  rX  r$   formatr   )rT   
endiannessrL  r'   r[  r&  s         r)   test_sort_complex_byte_swappingz+TestMethods.test_sort_complex_byte_swapping5  sd    Jll9-hh4JOLHHJ<CCBGQS) . r+   c           	        t        j                  t        d      D cg c]  }dt        |      z    c}|      }|d d d   j	                         }| j
                  D ]e  }d|z  }|j	                         }|j                  |       t        |||       |j	                         }|j                  |       t        |||       g y c c}w )Nrg  aaaaaaaar   r5   kind=%sr0  )r#   r  r   chrrX  r2  r$   r   )rT   r/   r   rR   r   r  r&  r[  s           r)   test_sort_stringzTestMethods.test_sort_string?  s     HH5:>:aj3q6):>eLddGLLNOODd"CAFFFAs#AFFFAs# $ ?s   Cc                L   t        j                  dt              }t        t	        d            |d d  |d d d   }dD ]e  }d|z  }|j                         }|j                  |       t        |||       |j                         }|j                  |       t        |||       g y )Nrg  r   rg  r5   qhr  rM  r0  )r#   rA   r7   r  r   rX  r$   r   )rT   rR   r   r  r&  r[  s         r)   test_sort_objectzTestMethods.test_sort_objectM  s    HHV6*E#J!ddG#Dd"CAFFFAs#AFFFAs# $r+   rL  r  r   stepr3   r2   c                L   t        j                  t        d|z        D cg c]  }||f c}|      }|d d d   }dD ]  }d|z  }|j                         d d |   }|j	                  |      }	|j                  |       t        ||d d |   |       t        |d d |   |	   |d d |   |       |j                         d d |   }|j	                  |      }	|j                  |       t        |||dz
  d |   |       t        |d d |   |	   ||dz
  d |   |        y c c}w )Nrg  r   r5   rR  rM  r0  r3   )r#   r  r   rX  r  r$   r   )
rT   rL  rV  r   rR   r   r  r&  r[  indxs
             r)   test_sort_structuredz TestMethods.test_sort_structured[  s-    HHeCHo6oq!fo6bAddG#Dd"C4 A99$9'DFFFAffIs+6T64!FdF)S94 A99$9'DFFFAd1fldlOS16T64!DFLDL/3? $ 7s   D!datetime64[D]timedelta64[D]c                   t        j                  dd|      }|d d d   }dD ]e  }d|z  }|j                         }|j                  |       t	        |||       |j                         }|j                  |       t	        |||       g y )Nr   rg  r   r5   rR  rM  r0  )r#   r%   rX  r$   r   r3  s          r)   test_sort_timezTestMethods.test_sort_timep  s     IIaE*ddG#Dd"CAFFFAs#AFFFAs# $r+   c                   t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  ddgddgg      }|j                         }|j                  d       t	        ||d       |j                         }|j                  d       t	        ||d       |j                         }|j                          t	        ||d       y )	Nr   r2   r3   r   r  ztest sort with axis=0ztest sort with axis=1ztest sort with default axis)r#   r  rX  r$   r   )rT   rR   r   r[  r   s        r)   test_sort_axiszTestMethods.test_sort_axis~  s     HHq!fq!f%&HHq!fq!f%&HHq!fq!f%&FFH	AQ23FFH	AQ23FFH	Q89r+   c                R   t        j                  g       }d|_        t        |j                   |j                        D ]5  }dj                  |      }t        t        j                  ||      ||       7 d}t        t        j                  |d       |j                         |       y )Nr  z#test empty array sort with axis={0}r  z$test empty array sort with axis=None)	r#   r  rF   r   r   rH  r   r$   ravel)rT   rR   r  r&  s       r)   test_sort_size_0zTestMethods.test_sort_size_0  s|    HHRL166'166*D7>>tDC.37 + 5RWWQT*AGGIs;r+   c                     G d d      }t        j                   |       gdz  t              }| j                  D ]6  }d|z  }|j	                         }|j                  |       t        |||       8 y )Nc                      e Zd Zd Zy)0TestMethods.test_sort_bad_ordering.<locals>.Boomc                     y)NTrd   rT   others     r)   __lt__z7TestMethods.test_sort_bad_ordering.<locals>.Boom.__lt__  s    r+   N)ra   rb   rc   ri  rd   r+   r)   Boomre        r+   rj  r^  r   rM  r0  )r#   r  r7   r2  rX  r$   r   )rT   rj  rR   r  r&  r[  s         r)   test_sort_bad_orderingz"TestMethods.test_sort_bad_ordering  sc    	 	 HHdfX^62OODd"CAFFFAs#	 $r+   c                   t        d      D ]Y  }t        j                  j                  ddt        j                        }|j                  d      }|d d d   j                          [ t        j                  dg      }t        d      D ]Y  }t        j                  j                  ddt        j                        }|j                  |      }|d d d   j                          [ y )Nr      i  rH   r/   r+  r5   )r  r   r  )r   r#   randomrandintrB   rm   r$   r/   )rT   r   randr'   rL  s        r)   test_void_sortzTestMethods.test_void_sort  s    qA99$$St288$DD))D/C"INN 
 XX*+,qA99$$St288$DD))B-C"INN r+   c                   t        j                  dt        j                         dgt              }| j
                  D ]  }t        t        |j                  |          G d d      }t        j                  t        d      D cg c]  } |       |g c}      j                  d      }t         j                  j                  |       | j
                  D ]  }t        t        |j                  |         y c c}w )	Nr   r3   r   r0  c                  *    e Zd Zd ZexZxZxZxZxZZ	y),TestMethods.test_sort_raises.<locals>.Raiserc                     t        d      )NzSOMETHING ERROREDr)  argsr  s     r)   raises_anythingz<TestMethods.test_sort_raises.<locals>.Raiser.raises_anything  s     344r+   N)
ra   rb   rc   r{  __eq____ne__ri  __gt____ge____le__rd   r+   r)   Raiserrv    s%    5BQQFQVQfQvQr+   r  rQ   r5   )r#   r  r    nowr7   r2  r	   r)  r$   r   r   rp  shuffle)rT   r'   r  r  r  s        r)   test_sort_raiseszTestMethods.test_sort_raises  s    hh8<<>1-V<OOD)SXXD9 $	R 	R hhuRy9y!1y9:BB2F
		#OOD)SXXD9 $ :s   C7c                \   t        j                  d      }|j                         }|}|j                  dkD  r5|j                  dz  }|d   ||   c||<   |d<   |d d }|j                  dkD  r5t	        t        j
                  |      |       t	        |t        j                  |         |       y )N@B r   r2   r  )r#   r%   rX  rH   r   r$   r  )rT   r   dor  mids        r)   test_sort_degradedzTestMethods.test_sort_degraded  s    IIgVVX ffqj&&A+CbE1S6MAcFAbE#2A ffqj
 	RWWQZ$Qrzz!}%r*r+   c                   d }d }t        j                  dd      } ||j                                 ||j                  d              ||j                  d              ||j                  d             t        j                  dd      } ||j                                 ||j                  d              ||j                  d              ||j                  d             y )Nc                    t        | j                  j                         t        | j                  j                         t        | j                  j                          y r"   r   rY   fortranrf  re  r'   s    r)   assert_fortranz-TestMethods.test_copy.<locals>.assert_fortran  s;    CII%%&CII**+		.../r+   c                    t        | j                  j                          t        | j                  j                          t        | j                  j                         y r"   r  r  s    r)   assert_cz'TestMethods.test_copy.<locals>.assert_c  s>    		)))*		.../CII**+r+   r4  rZ  r6   r,   r  )r#   rA   rX  )rT   r  r  rR   s       r)   	test_copyzTestMethods.test_copy  s    	0
	,
 HHV3'qvvc{#qvvc{# HHV3'qvvc{#r+   r,  zi,Oc                <   t        j                  d|      }t        j                  |j                  j                  d|j
                         |j                  i       }d|d<   t        j                  t              5  t        ||       d d d        y # 1 sw Y   y xY w)Nr   r   r   r  )r#   rA   ctypesmemsetr4   r   __deepcopy__r   rB  AssertionErrorr   )rT   r/   rR   r   s       r)   test__deepcopy__zTestMethods.test__deepcopy__  sk     HHQe$ahhmmQ1 NN2!]]>*q!$ +**s   <BBc                     G d d      }t        j                  d |       dgd      }t        j                  t              5  |j                  i        d d d        y # 1 sw Y   y xY w)Nc                      e Zd Zd Zy):TestMethods.test__deepcopy__catches_failure.<locals>.MyObjc                    t         r"   r  rT   rz  r  s      r)   r  zGTestMethods.test__deepcopy__catches_failure.<locals>.MyObj.__deepcopy__  s    ""r+   N)ra   rb   rc   r  rd   r+   r)   MyObjr    s    #r+   r  r3   r   r,  r   )r#   r  r   rB  r  r  )rT   r  r'   s      r)   test__deepcopy__catches_failurez+TestMethods.test__deepcopy__catches_failure  sL    	# 	# hh57Ac2]]<(R  )((rD  c                r   t        j                  g d      }t        j                  g d      }t        j                  g d      }t         j                  j                  |||gd      j	                  dg       t        j                  t        j                  g d             t        j                  t        j                  g d	             t        j                  t        j                  g d
             j	                  dg       t        j                  t        j                  g d             t        j                  t        j                  g d             t        j                  t        j                  g d             j	                  dg       t        j                  t        j                  g d             t        j                  t        j                  g d             t        j                  t        j                  g d             t        t        dfd       t        j                  dk(  rd}nd}dd|fg}t        j                  g d|      j	                  d       t        d   g d       t        t        j                  g d|             y )N)   r      )myfirstr  )@      @@zid,word,number)r.  r0  r6   )r  r  r   )r  r  r  )r  r  r  word)r   r  r  )r  r  r  )r  r  r  number	duplicatec                 ,     j                  ddg      S )Nr0  r6   )r$   )r  s   r)   r  z-TestMethods.test_sort_order.<locals>.<lambda>	  s    AFF$F.r+   littler  r  )r  rY  col2)rR   r3   r   rj  r[  r   r     r   )r3   r   rj  r  )r  r  r  r  )r#   r  r  
fromarraysr$   r   r0  r  r  r   r8   sys	byteorder)rT   x1r  x3strtypemydtyper  s         @r)   test_sort_orderzTestMethods.test_sort_order 	  s   XXl#XX-.XXo&FFr2rl2BC	dVQTT288L12QVVRXX&=>?QXXrxx89	fXQTT288L12QVVRXX&=>?QXXrxx89	hZ QTT288L12QVVRXX&=>?QXXrxx89J.	0 ==H$GG!FG#45HHA"$	VQvY 01Q!M'.0 	1r+   c           
        t         j                  t         j                  t         j                  fD ]  }t        j                  d|      }|d d d   j                         }| j                  D ]`  }d|d|}t        |j                         j                  |      ||       t        |j                         j                  |      ||       b  dz  dz   }dz  dz   }| j                  D ]]  }d	|z  }t        |j                         j                  |      ||       t        |j                         j                  |      ||       _ |dz   }|dz   }| j                  D ]]  }d	|z  }t        |j                         j                  |      ||       t        |j                         j                  |      ||       _ d
D ]  }t         j                  d   D ]v  }	t        j                  g d||	z         }
dj                  |	      }t        |
j                         t        j                  t        |
      t         j                        |       x  d}t        j                  t        d      D cg c]  }|t        |      z    c}      }|d d d   j                         }t        j                  d      }|d d d   }| j                  D ]]  }d|z  }t        |j                         j                  |      ||       t        |j                         j                  |      ||       _ d}t        j                  t        d      D cg c]  }|t        |      z    c}t         j                         }|d d d   }t        j                  d      }|d d d   }| j                  D ]]  }d|z  }t        |j                         j                  |      ||       t        |j                         j                  |      ||       _ t        j"                  dt$              }t'        t        d            |d d  |d d d   }t        j                  d      }|d d d   }| j                  D ]]  }d|z  }t        |j                         j                  |      ||       t        |j                         j                  |      ||       _ t        j(                  dt*        fdt,        fg      }	t        j                  t        d      D cg c]  }||f c}|	      }|d d d   }t        j                  d      }|d d d   }| j                  D ]]  }d|z  }t        |j                         j                  |      ||       t        |j                         j                  |      ||       _ t        j                  ddd      }|d d d   }t        j                  d      }|d d d   }dD ]]  }d|z  }t        |j                         j                  |      ||       t        |j                         j                  |      ||       _ t        j                  ddd      }|d d d   }t        j                  d      }|d d d   }dD ]]  }d|z  }t        |j                         j                  |      ||       t        |j                         j                  |      ||       _ t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  ddgddgg      }t        |j                         j                  d      |       t        |j                         j                  d      |       t        |j                         j                         |       t        j                  g       }d|_        t        |j0                   |j0                        D ]X  }d j                  |      }t        t        j                  ||      t        j2                  |t         j                        |       Z d!}t        t        j                  |d       t        j2                  |j5                         t         j                        |       t        j                  d"      }t        j6                  d"      }t        |j                  d#      |       t        j6                  d"t8              }t        |j                  d#      |       t        j                  t        d"      D cg c]  }d$ c}      }t        |j                  d#      |       t        j                  t        d"      D cg c]  }d$ c}t         j                         }t        |j                  d#      |       y c c}w c c}w c c}w c c}w c c}w )%Nrg  r   r5   zscalar argsort, kind=z, dtype=r0  r  r3   zcomplex argsort, kind=%sr  rF  rG  z'byte-swapped complex argsort, dtype={0}rL  zstring argsort, kind=%szunicode argsort, kind=%srQ  zobject argsort, kind=%sr  r   z!structured array argsort, kind=%sr   rZ  rR  zdatetime64 argsort, kind=%sr[  ztimedelta64 argsort, kind=%sr   r2   r  r  z&test empty array argsort with axis={0}z'test empty array argsort with axis=Noner^  r  	aaaaaaaaa)r#   r   r   r  r%   rX  r2  r   r  r#  r  rH  r&   r7  r   rN  r  rA   r7   r  r/   floatr
  rF   r   rZ  ra  r9   rc  )rT   r/   rR   r   r  r&  rB  rC  rI  rL  r'   r   r   r  rrr[  r  s                    r)   r  zTestMethods.test_argsort%	  s    hh		2::6E		#U+A$B$A=A5IQVVX--4-8!SAQVVX--4-8!SA ( 7 rTAXrTAXOOD,t3C***5q#>***5q#> $ VVOOD,t3C***5q#>***5q#> $ Jll9-hh4JOL?FFrJS[[]YYs3xrww?F .  HH%*5*Qa#a&j*56ddGLLNIIcNttWOOD+d2C))t)4a=))t)4b#> $ HH%*5*Qa#a&j*5RWWEddGIIcNttWOOD,t3C))t)4a=))t)4b#> $ HHV6*E#J!ddGIIcNttWOOD+d2C))t)4a=))t)4b#> $ XXU|c3Z01HHeCj1jq!fj1<ddGIIcNttWOOD5<C))t)4a=))t)4b#> $ IIaO4ddGIIcNttW#D/$6C))t)4a=))t)4b#> $ IIa$45ddGIIcNttW#D047C))t)4a=))t)4b#> $ HHq!fq!f%&HHq!fq!f%&HHq!fq!f%&QVVX%%1%-q1QVVX%%1%-q1QVVX%%'+ HHRL166'166*D:AA$GCAD1q8#? + 8RZZ-]]1779BGG<c	C IIcNHHSMQYYCY(!,HHS(QYYCY(!,HH5:6:ak:67QYYCY(!,HH5:6:ak:6bggFQYYCY(!, 6 6, 2t 7 7s   4ggg	g
	gc                    t        j                  d      }dj                  d      }t        t        |j
                  |       t        t        |j                  |       y )NrQ      äUTF8r0  )r#   r%   decoder	   r8   r$   r  rT   r   rS  s      r)   test_sort_unicode_kindz"TestMethods.test_sort_unicode_kind	  s?    IIbMv&j!&&q1j!))!4r+   rR   r   r   c                   d|j                   z  }|j                  |d      }t        |t        j                  d      |       d|j                   z  }|j                  |d      }t        |t        j                  dd      |       |j                  d	       t        j
                  d
dt        j                  gd      }t        j                  ||d         }t        |d       y )Nz/Test real (%s) searchsorted with nans, side='l'leftsider   z/Test real (%s) searchsorted with nans, side='r'rightr3   r   )r   r   r  r   r5   r2   )r/   searchsortedr   r#   r%   r  r-  )rT   rR   r&  r   r  r/  s         r)   test_searchsorted_floatsz$TestMethods.test_searchsorted_floats	  s     @!''INN16N*Q		!c*?!''INN17N+Q		!Q-	HHaBFF^95OOAqu%Qr+   c                |   t        j                  dt         j                        }|xj                  ddddddt         j                  t         j                  t         j                  g	z  c_        |xj
                  ddddt         j                  t         j                  ddt         j                  g	z  c_        d}|j                  |d      }t        |t        j                  d      |       d}|j                  |d	      }t        |t        j                  dd
      |       d}t        j                  ddgd      }|j                  t        j                  dd            }t        |d|       d}t        j                  ddgd      }|j                  t        j                  dd            }t        |d|       y )Nr  r   r   r3   z-Test complex searchsorted with nans, side='l'r  r  z-Test complex searchsorted with nans, side='r'r  rQ   z.Test searchsorted with little endian, side='l'   r  z+Test searchsorted with big endian, side='l'r  )
r#   r9   r  r  r-  r  r  r   r%   r  )rT   rR   r&  r   s       r)   test_searchsorted_complexz%TestMethods.test_searchsorted_complex	  sG    HHQbmm,	1aAq!RVVRVVRVV<<	1aArvvrvvq!RVV<<=NN16N*Q		!c*=NN17N+Q		!R(#.>HHaXU+NN288Cu56Q3;HHaXU+NN288Cu56Q3r+   c                   t        j                  d      }|j                  g dd      }t        |g d       |j                  g dd      }t        |g d       t        j                  d      }|j                  g dd      }t        |g d       |j                  g dd      }t        |g d       t        j                  d	      }|j                  g dd      }t        |g d
       |j                  g dd      }t        |g d       y )Nr   ru  r  rv  r  r3   r  r   r3   r3   r2   )r   r   r2   )r   r2   r2   )r#   rK  r  r   r  s      r)   test_searchsorted_n_elementsz(TestMethods.test_searchsorted_n_elements	  s    GGAJNN9f-Q	"NN9g.Q	"GGAJNN9f-Q	"NN9g.Q	"GGAJNN9f-Q	"NN9g.Q	"r+   c                   t        j                  d      }t        j                  |j                  |j                  z  dz   d      }|dd  j                  |j                        }||d d  |j                  |d      }t        ||       |j                  |d      }t        ||dz          |j                  |d      }t        ||       |j                  |d      }t        ||dz          y )NrQ   r3   rB   r  r  )	r#   r%   rA   r@   rH   rm   r/   r  r   )rT   rR   r   	unalignedr   s        r)   !test_searchsorted_unaligned_arrayz-TestMethods.test_searchsorted_unaligned_array	  s    IIbM((1::.2G<ABK$$QWW-		!""1f-Q""1g.QANN9f-QNN9g.QAr+   c                    t        j                  d      }|j                  g dd      }t        |g d       |j                  g dd      }t        |g d       y )NrW   )r   rW   r   r  )rW   rW   r   r  )rW   rW   rW   )r#   r%   r  r   r  s      r)   test_searchsorted_resettingz'TestMethods.test_searchsorted_resetting
  sC    IIaLNN9f-Q	"NN9g.Q	"r+   c           	     6   dj                  t        j                  d   t        j                  d   t        j                  d   df      }|D ]K  }|dk(  rd}|dk(  r-t        j                  d	|
      }t        j                  d	      }n-t        j                  dd|
      }t        j                  d      }|j	                  |d      }t        ||       |j	                  |d      }t        ||dz          t        j                  dd|      }|j	                  |d      }t        |t        j                  t        |      t        j                  
             |j	                  |d      }t        |t        j                  dt        j                  
             N y )Nr  r  rD  Datetime?OMM8[D]?r2   r   r   rW   r  r  r3   r+   rF   r  r/   )joinr#   r#  r%   r  r   rE   r   r9   r&   r7  )rT   r   rL  rR   r  r   r  s          r)   test_searchsorted_type_specificz+TestMethods.test_searchsorted_type_specific
  s4   l3R\\*5Mj149 :BSySyIIar*iilIIa"-iilq&)AC q'*AC!G$ 

3b9Aq&)Aq"((3q6"ABq&)Aq"((1BGG"<=' r+   c           	        t        j                  g dt         j                        }t        j                  t	        |            }t        |D cg c]  }|j                  |d       c}|       t        |D cg c]  }|j                  |d       c}|dz          t        |D cg c]  }|j                  ||   d       c}|       t        |D cg c]  }|j                  ||   d       c}|dz          y c c}w c c}w c c}w c c}w )N)z'P:\20x_dapi_cy3\20x_dapi_cy3_20100185_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100186_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100187_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100189_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100190_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100191_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100192_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100193_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100194_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100195_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100196_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100197_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100198_1z'P:\20x_dapi_cy3\20x_dapi_cy3_20100199_1r   r  r  r3   )r#   r  r  r%   r&   r   r  )rT   rR   r~  r   r   s        r)   test_searchsorted_unicodez%TestMethods.test_searchsorted_unicode'
  s     HH C 77$ iiA;AannQ/;SA!<!QannQ0!<cAgFC@CqannQqT62C@#FSASannQqT73SA37K <<@As   C;9D &DD
c           
        t        j                  g d      }t        j                  |      }t        t        t         j
                  |dt        j                  dt                     t        t        t         j
                  |ddg       t        t        t         j
                  |dg d       t        t        t         j
                  |dg d       t        t        t         j
                  |d	g d
       t        t        t         j
                  |dg d       t        t        t         j
                  |dg d       y )N)rW   r2   r3   r   r   r   )r3   r  r   sorterg?r  r	  r   r   r3   r2   r   rW   )r5   r   r3   r2   r   )r   r   r5   r2   r   )r#   r  r  r	   r)  r  r7   r8   )rT   rR   r   s      r)   %test_searchsorted_with_invalid_sorterz1TestMethods.test_searchsorted_with_invalid_sorterB
  s    HH_%JJqMi!QXXk@	Bi!QuEj"//1aMj"//1a@RS 	j"//1aPj"//1a@PQj"//1a@PQr+   c           	     	   t         j                  j                  d      }|j                         }t        j                  |      }t        j
                  ddd      }t        |j                  |      |j                  ||             t        j                  g ddz        }|j                         }g d}g d}t        |j                  |d|	      |       g d
}t        |j                  |d|	      |       t        j                  d      }|j                         }t         j                  j                  |       |j                         }t        j                  |j                  |j                  z  dz   d      }|dd  j                  |j                         }||d d  |j                  |d|      }t        ||       |j                  |d|      }t        ||dz          ||d d  |j                  |d|      }t        ||       |j                  |d|      }t        ||dz          dj#                  t         j$                  d   t         j$                  d   t         j$                  d   df      }	|	D ]  }
|
dk(  rd}
|
dk(  rXt        j                  ddg|
      }t        j                  ddgt         j&                        }t        j                  ddg      }ngt        j                  g d|
      }t        j                  g dt         j&                        }t        j                  g dt         j(                        }|j                  |d|      }t        ||       |j                  |d|      }t        ||dz          t        j*                  dd|
      }|j                  |d|d d       }t-        |t        j.                  t1        |      t         j(                               |j                  |d|      }t-        |t        j.                  dt         j(                                t        j                  g d      }t        j                  dt         j(                        }d|dd d<   g d|d d d<   |d d d   }t        j                  g dt         j(                        }|j                  |d|      }t        ||       |j                  |d|      }t        ||dz          y )Ni,  r   r3   r   r  r  )r   r   (   r   rb  r  )r  r  )r   r  r   rb  r^  r  rQ   rB   r  r  rD  r  r  r  r  r  r   )r   r   r3   r2   r   )r   r2   r   r   r3   r+   r  r   r5   r2   )r#   rp  rr  r  r$   linspacer   r  r  r%   rX  r  rA   r@   rH   rm   r/   r  r#  r   r7  rE   r   r9   r&   )rT   rR   r   r   rS  r  keysr   r  r   rL  r  r  srts                 r)   test_searchsorted_with_sorterz)TestMethods.test_searchsorted_with_sorterP
  s   IINN3IIKGGAJKK1b!Q^^A&q(CDHH_R'(IIK&Q^^AF1^=xH(Q^^AGA^>I yy}IIK
		!IIK((1::.2G<ABK$$QWW-		!""43Q""4!4Qq!	!NN9fa0QNN9gq1Qq! l3R\\*5Mj149 :BSySyHHaV2. HHaV2884hh1v&HH_B7 HH_BHH=hhbgg>q&!,AC q'1-AC!G$ 

3b9Aq&!BQ%0Aq"((3q6"ABq&!,Aq"((1BGG"<=3 8 HH_%hhuBGG,ADqD	"CaC!Hhhbgg6NN1fa(QNN1gq)Qa r+   c           	     D    G d dt         j                        }t        j                  d      j                  |      }t        j                  dd      j                  |      }t        j                  d      j                  |      }t	        t        |j                  |d      |              t	        t        |j                  |d      |              t	        t        |j                  |d|      |              t	        t        |j                  |d|      |              y )Nc                      e Zd Zy)4TestMethods.test_searchsorted_return_type.<locals>.ANr`   rd   r+   r)   r  r  
  rf   r+   r  rW   r3   r   r  r  )r#   rE   r%   rm   r   r   r  )rT   r  rR   r   r   s        r)   test_searchsorted_return_typez)TestMethods.test_searchsorted_return_type
  s    	

 	IIaLa IIaO  #IIaLa Jq~~a8!<<=Jq~~a91==>Jq~~a;Q??@Jq~~a!<a@@Ar+   rV  c                    t        j                  d      j                  |      }t        t        |j
                  d       t        t        |j
                  d       y NrQ   r   i)r#   r%   r  r	   r8   r  rT   r/   r   s      r)   test_argpartition_out_of_rangez*TestMethods.test_argpartition_out_of_range
  s?     IIbM  u -j!.."5j!..#6r+   c                    t        j                  d      j                  |      }t        t        |j
                  d       t        t        |j
                  d       y r  )r#   r%   r  r	   r8   r  r  s      r)   test_partition_out_of_rangez'TestMethods.test_partition_out_of_range
  s?     IIbM  u -j!++r2j!++s3r+   c                    t        j                  d      }t        t        |j                  d       t        j                  dt
              }t        t        |j                  d       y NrQ         "@r   )r#   r%   r	   r)  r  r7   rT   r   d_objs      r)   test_argpartition_integerz%TestMethods.test_argpartition_integer
  sC    IIbMi4 		"F+i!3!3R8r+   c                    t        j                  d      }t        t        |j                  d       t        j                  dt
              }t        t        |j                  d       y r  )r#   r%   r	   r)  r  r7   r  s      r)   test_partition_integerz"TestMethods.test_partition_integer
  sA    IIbMib1 		"F+i"5r+   	kth_dtyper  c                   t        j                  d|      d   }t        j                  g       }d|_        t        |j                   |j                        D ]6  }dj                  |      }t        t        j                  |||      ||       8 d}t        t        j                  ||d       |j                         |       y )Nr   r   rd   r  z(test empty array partition with axis={0}r  z)test empty array partition with axis=None)	r#   r  rF   r   r   rH  r   r  ra  rT   r  r  rR   r  r&  s         r)   test_partition_empty_arrayz&TestMethods.test_partition_empty_array
  s     hhq	*2.HHRL166'166*D<CCDICa48!SA + :R\\!St4aggiEr+   c                   t        j                  d|      d   }t        j                  g       }d|_        t        |j                   |j                        D ]Y  }dj                  |      }t        t        j                  |||      t        j                  |t         j                        |       [ d}t        t        j                  ||d       t        j                  |j                         t         j                        |       y )Nr   r   rd   r  z+test empty array argpartition with axis={0}r  z,test empty array argpartition with axis=None)r#   r  rF   r   r   rH  r   r  rZ  r7  ra  r  s         r)   test_argpartition_empty_arrayz)TestMethods.test_argpartition_empty_array
  s     hhq	*2.HHRL166'166*D?FFtLCa48q8#? + =R\\!St4]]1779BGG<c	Cr+   c                '   t        j                  d      }t        t        t         j                  |dd       t        t
        t         j                  |dd       t        t
        t         j                  |dd       t        t
        |j                  ddd       t        t
        |j                  ddd       dD ]  }t        j                  g       }t        t        j                  |d|      |       t        t        j                  |d|      |       t        j                  d      }t        t        j                  |d|      d   |       t        |t        j                  |d|         t        j                  |d|             t        j                  g d	      }|j                         }t        j                  t        j                  d
      |       t        ||       ddgddgddgfD ]/  }t        j                  |      }t        j                  |      }t        t        j                  |d|      d   |d          t        t        j                  |d|      d   |d          t        |t        j                  |d|         t        j                  |d|             t        |t        j                  |d|         t        j                  |d|             t        |j                        D ]  }||d  j	                  d|        t        ||       2 g dg dg dg dg dg dg dg dfD ]  }t        j                  |      }t        j                  |      }t        t        j                  |d|      d   |d          t        t        j                  |d|      d   |d          t        t        j                  |d|      d   |d          t        |t        j                  |d|         t        j                  |d|             t        |t        j                  |d|         t        j                  |d|             t        |t        j                  |d|         t        j                  |d|             t        |j                        D ]  }||d  j	                  d|        t        ||        t        j                  d      }t        t        j                  |d|      |       t        |t        j                  |d|         t        j                  |d|             t        j                  d      }t        t        j                  |d|      d   d       t        t        j                  |d|      d   d       t        |t        j                  |d|         t        j                  |d|             t        |t        j                  |d|         t        j                  |d|             t        j                  d      d d d   }t        t        j                  |d|      d   d       t        t        j                  |d|      d   d       t        |t        j                  |d|         t        j                  |d|             t        |t        j                  |d|         t        j                  |d|             t        t        j                  |d|      t        j                  |d|             t        t        j                  |d|      t        j                  |d|             t        |t        j                  |d|         t        j                  |d|             t        j                  d      }t        j                  ||j                  dz        }|j                  dz  dz   }	t        t        j                  ||	      |	   |	       t        j                  d       }t        j                  ||j                  dz  dz         }|j                  dz  dz   }	t        t        j                  ||	      |	   |	       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         j                   |d<   t#        t        j$                  |t        j                  |d"         d                t#        t        j$                  t        j                  |d"      d                t        j                  d      d#z  }t        j                  t        j                  d      d#z        }t         j&                  j)                  |       t        |j                        D ]*  }t        t        j                  |||      |   ||          , t        |t        j                  |d|         t        j                  |d|             t        |t        j                  |d|         t        j                  |d|             t        |j                        D ]  }||d  j	                  d|        t        ||       t        j                  g d$      }g d%}t        t        j                  |||      |   d&       t        |t        j                  |||         |   d&       t        j                  ddg      }|j	                  d|       t        t
        |j                  d       t        t         j*                  |j                  d'd(       t        t
        t         j                  |d       t        t         j*                  t         j                  |dd(       t        t
        |j                  d       t        t         j*                  |j                  d'd(       t        t
        t         j                  |d       t        t         j*                  t         j                  |dd(       t        j                  d      j-                  d)      }|j	                  dd|       |j	                  d!d|       t        j                  |dd|       t        j                  |d!d|       t        j                  |dd |       t        j                  |d*d |       |j                  dd|       |j                  d!d|       t        j                  |dd|       t        j                  |d!d|       t        j                  |dd |       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                  dd(       t        t
        |j                  d+d(       t        t
        t         j                  |d*d(       t        t
        t         j                  |d+d (       t         j.                  t         j0                  t         j2                  fD 
cg c]  }
d,D ]  }|
|f  }}
}|D ]y  \  }
}t        }t"        }t        j                  ||
-      }t         j&                  j)                  |       t        j4                  t        j                  ||
-      d.      }t7        t         j&                  j(                  |       t        j8                  |      }t        |j                        D ]  }t        j                  |||      }t        ||   |       t;        |d | ||          t;        ||   ||dz   d          |||t        j                  |||                t        j                  ||d|      } ||d d |f   t        j                  |g|j<                  d   z  |
-              ||d d d |f   j>                  |d d |f   k  jA                         d/||d d |f   |d d d |f   j>                  fz  0        ||d d |dz   d f   j>                  |d d |f   kD  jA                         d1||d d |f   |d d |dz   d f   j>                  fz  0        |||t        j                  |j<                  d         d d d f   t        j                  ||d|      f          t        j                  ||d|      } |||d d f   t        j                  |g|j<                  d   z  |
-              ||d |d d f   ||d d f   k  jA                         d/|||d d f   |d |d d f   fz  0        |||dz   d d d f   ||d d f   kD  jA                         d1|||d d f   |d d |dz   d f   fz  0        |||t        j                  ||d|      t        j                  |j<                  d         d d d f   f          |j                         }|j	                  ||       t        |t        j                  |||             |j                         }|j	                  |d|       t        |t        j                  ||d|             |j                         }|j	                  |d|       t        |t        j                  ||d|              |  y c c}}
w )2NrQ   r2   r3   r0  nonsenser   )r  r  )r  )r      rW   r  r-  rV  r3  r2   r   r3   rw  )r3   r2   r2   r2   r2   r3   )r3   r2   r3   r  1   rW   r  /   r5   r   r   i)   i   r  iAB r   )r2   r5   r  )r   r3   r2   r   r   rW   r  r  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   rW   r  r?  )r  r   r   r   r3   z%d: %r <= %rr&  z%d: %r < %r)!r#   r%   r	   r)  r  r8   r  r  r   rK  rX  r$   r   rH   r   rollr-  r   isnanrp  r  	AxisErrorr   r   r  r   tilemapr  r   rF   rM  r  )rT   r   rS  r  okthr  rN  r   r  r  rL  r   tdaaeatr  d0r  dcs                      r)   r  zTestMethods.test_partition
  s"   IIbMiq!!<j",,1:Fj"//1ajIj!++qqzJj!..!!*M!AAr||Aqq91=rq!!<a@
Ar||Aqq9!<a@qAA!>?!||Aqq9; ((;'C88:DLL2,sD)!fq!fq!f-HHQKggaj"2<<11#=a#@#a&I"2<<11#=a#@#a&I"1R__Q%B#C#%<<11#=?"1R__Q%B#C#%<<11#=?qvvAabEOOAAO. '"1c* .  IyIyBHHQKggaj"2<<11#=a#@#a&I"2<<11#=a#@#a&I"2<<11#=a#@#a&I"1R__Q%B#C#%<<11#=?"1R__Q%B#C#%<<11#=?"1R__Q%B#C#%<<11#=?qvvAabEOOAAO. '"1c*B" Ar||Aqq91=qAA!>?!||Aqq9; 		"Aa3A6:a!4R8"=qAA!>?!||Aqq9;qBQ!?@!||Ar:< 		"dd#Aa3A6:a!4R8"=qAA!>?!||Aqq9;qBQ!?@!||Ar:< r||Ar:!||Ar:<r||As;!||Ar:<qBQ!?@!||Ar:<
 		'"A166Q;'A&&A+/Ca-c2C8		'"A166Q;?+A&&A+/Ca-c2C8 AAaDa1"5q9a1!4a82??1g67;Q?2??1g67:A>66AaDBHHQrq':;B?@ABHHR\\!W5b9:; 		"!A''"))B-!+,CIIa 166]R\\!QQ7:CFC #qAA!>?!||Aqq9;qBQ!?@!||Ar:<166]!"* #q#& , -A Ca15c:LI2??1c:;C@,O!Q AKKK"*akk15",,QQ?*bllAq9",,aC*anna8",,B*booq!<",,AAF		"%%f-AKKK*KKK*LLAAA.LLAAA.LLADq1LLADq1NN111N-NN111N-OOAqqq1OOAqqq1OOAqt!4OOAqt!4*akk11=*akk2A>)Q[[!$?*bllAqqA*bllArE*annaa@*annbqA*booq!!D*booq"4H%'XXrzz2<<$H $$Hb"a q'" $HB $A(IIar*		!!!$WWRYYq3V<BII%%r*\\"%qvvAQ2A 1q)%aeQqT2%adAa!efI61R__Q:;<R;A!Q$1#*;2!FG!RaR%

a1g-224)Q!Q$1bqb5,DDF!QUV)1a40557(AqAw!QUV)+GGI2bii4QW=AAA>? @ A R;A!Q$1#*;2!FG"1"a%AadG+002)Q!Q$2A2q5,BBD!a%&!)qAw.335(AqAw!QUV)+EEG2boob!!!D		"((1+.tQw78 9 : BLLL+ R\\!QQ%?@BLLL3 R\\"aaa%HIBLLL3 R\\"aaa%HIM ' q "l$s   7AOc           	         d}t        j                  |      D ]N  }t        ||| ||   d|z         t        ||d  ||   k\  j	                         d|||d  ||   fz         |dz   }P y )Nr   zkth %dr   zkth %d, %r not greater equal %dr  r3   )r#   r$   r   r   r  )rT   r   r  prevrS  s        r)   assert_partitionedzTestMethods.assert_partitioned  sw    AaQi1x!|DQqrUad]'')9Q!"qt<LLNq5D	 r+   c           	        t        j                  d      }d}t        t        |j                  |       t        t        |j
                  |       t        j                  d      j                  d      }t        t        |j                  |d       t        t        |j                  |d       t        t        t         j                  ||d       t        t        t         j                  ||d        t        j                  g d      }t        j                  |d	      }| j                  |d	       | j                  |t        j
                  |d	         d	       t        |t        j                  |d
             t        ||t        j
                  |d
                t        j                  d      }t         j                  j                  |       |j	                  t        |j                               t        t        j                  d      |       t         j                  j                  |       t        t        j                  d      ||j                  t        |j                                        t        j                  d      }t         j                  j                  |       t        j                  g d      }t         j                  j                  |       t        j                  ||      }| j                  ||       |t        j
                  ||         }| j                  ||       t         j                  j                  |       t        t        j                  ||      |       t        |t        j
                  ||         |       t        j                  d      d d d   }| j                  t        j                  |dgdz        dg       | j                  t        j                  |dgdz  ddgz         dgdz  ddgz          | j                  |t        j
                  |dgdz           dg       | j                  |t        j
                  |dgdz  ddgz            dgdz  ddgz          t        j                  d      }t         j                  j                  |       t        j                  t        j                  d      d      }t        t         j                  j                  |       t        j                   |      }d}t        j                  ||d      }|t        j                  |j"                  d         d d d f   |j                  |d      f   }t        ||       t        |j"                  d         D ]  }| j                  ||d d f   |        t        j                  ||d      }|t        j
                  ||d      t        j                  |j"                  d         d d d f   f   }t        ||       t        |j"                  d         D ]  }| j                  |d d |f   |        y )Nrr  )r   r3   r2   i     rQ   r  r   r  r3   )r   r   r2   r3   r   r   )r  r5   )r3   r   r   r  r   r5   rW   r   r   rF  r}  r  )r3   r   r  r5   )r#   r%   r	   r8   r  r  r   r  r  r   rp  r  r   rH   r  r  r  rF   )	rT   r   r  r  r  r  r  par   s	            r)   test_partition_iterativez$TestMethods.test_partition_iterative  s   		"A%C*akk37*annc:		"%%f-A*akk3Q?*akk3Q?*bllAsC*bllAsF&AQ'A##Av.##Abooa&@$A6Jq",,q(";<q!BOOAx$@"AB		"AIIa KKaff&ryy}a0IIa ryy}auQVV}0M.NO 		"AIIa 88M*DIIa Q%A##At,"//!T*+A##At,IId#r||At4a8qD!9:A> 		"dd#A##BLLQCE$:QC@##BLLQCEQGO$D%&CEQGO5##Abooa!Q&?$@1#F##Abooa!Q!R&I$J%&CEQGO5 		"AIIa 2/B		!!2&b!BCR1-ABIIbhhqk*1d73OOCaO01 2Bq"%288A;'''!A#4 (R1-ABOOB!4IIbhhqk*4623 4Bq"%288A;'''!Q$5 (r+   c           
        t        j                  g dg d      }t        j                  |ddg      }t        t        j                  |t        |j                        ddg      |       t        |t        j                  |t        |j                        ddg         |       t        |j                        D ]Y  }t        t        j                  ||ddg      |   ||          t        |t        j                  ||ddg         |   ||          [ t        j                  g d      }t        j                  |      }t        t        j                  |t        |j                              |       t        |j                        D ]Q  }t        t        j                  ||      |   ||          t        |t        j                  ||         |   ||          S y )N))Galahadg333333?&   )Arthurg?r  )Lancelotgffffff?r'  ))r  z|S10)heightr  )ager  r   r+  r*  r6   )r&  r(  zebrar)  )	r#   r  r$   r   r  r   rH   r  r   )rT   r   rN  rS  s       r)   test_partition_cdtypez!TestMethods.test_partition_cdtype  s   HH *MO ggax012<<5=/4h.?A	  	1R__Qaff4983DF G	  qvvAa5(2CDQGA 2??1ax7HIJ1MQ!  HH?@ggaj2<<5=93?qvvAa+A.A72??1a01!4c!f= r+   c                    t        j                  d      }dj                  d      }t        t        |j
                  d|       t        t        |j                  d|       y )NrQ   r  r  r2   r0  )r#   r%   r  r	   r8   r  r  r  s      r)   test_partition_unicode_kindz'TestMethods.test_partition_unicode_kind  sC    IIbMv&j!++qq9j!..!!<r+   c           
        t        dd      D ]  }t        d|dz
        D ]  }t        j                  |      }t        j                  j	                  |       |t        j                  j                  dd      z  }t        j                  j                  |j                        }d|||dz   g}t        j                  |      |   }t        t        j                  ||      |   |d|d|         y )	NrQ   r   r3   r2   r   zdata: z
 kth: r   )
r   r#   r%   rp  r  rq  rH   r$   r   r  )rT   r  r   r   r.  r  rN  s          r)   test_partition_fuzzzTestMethods.test_partition_fuzz  s    r2A1a!e_IIaL		!!!$		))!R00ii''/#q!a%(ggajo"2<<3#7#<cCDc+JL % r+   c                    t        j                  d|      d   }g d}t        j                  ||      }| j                  t        j                  |      |   dg       y )Nr3   r   rd   )r   r  r   r2   r  r   )r#   r  r  r  )rT   r  r  r   r  s        r)   test_argpartition_gh5524z$TestMethods.test_argpartition_gh5524+  sL     hhq	*2.OOAs#As3r+   c                   t        j                  g dg dgt         j                        }t        j                  ddgddggddgd	d
gggt         j                        }t        j                  g dt         j                        }t        j                  g dt         j                        }t        j                  g dt         j                        }t        j                  g dt         j                        }t        |j	                         |       t        |j	                  d      |       t        |j	                  d      |j
                  j	                                t        |j	                         |       t        |j	                  d      |       t        |j	                  d      |j
                  j	                                y )NrV  r  r3   r2   r   r   rW   r   r  r   r	  )r3   r   r2   rW   r   r   )r3   r2   r   r   rW   r   r  r   )r3   rW   r   r  r2   r   r   r   rZ  )r#   r  r   r   flattenrM  )rT   x0r  y0y0fy1y1fs          r)   test_flattenzTestMethods.test_flatten3  s   XXy),bhh7XXAA'1a&1a&)9:BHHEXX("((3hh)2884XX.9hh/:RZZ\2&RZZ_c*RZZ_bddlln5RZZ\2&RZZ_c*RZZ_bddlln5r+   rj  c                   t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  d      j                  dd      }t        j                  g dg d	g d
g dg      }t        j                  g dg dg dg dg dg dg      }t         j                  t         j
                  t         j                  t         j                  fD ]!  }|j                  |      }	t         ||	|	      |	       t         ||	j                  |	      |	       t         ||	|	j                        |	       t         ||	j                  |	j                        |	       t         ||	j                  j                         |	      |	       t         ||	|	j                  j                               |	       t         ||	j                  j                         |	j                  j                               |	       $ t         j                  t         j
                  t         j                  t         j                  fD ]  }|j                  |      }	|j                  |      }
t         ||
|
      |	       t         ||
j                  |
      |	       t         ||
|
j                        |	       t         ||
j                  |
j                        |	        t         j                  t         j
                  t         j                  t         j                  fD ]  }|j                  |      }t         ||d d dd d f   |j                         ||d d dd d f   j                         |j                  j                                      t         ||d d d d df   |j                         ||d d d d df   j                         |j                  j                                      t         |||d d dd d f   j                         |||d d dd d f   j                  j                                      t         |||d d d d df   j                         |||d d d d df   j                  j                                      t         ||d |j                  d   dz  d d f   |d d dd d f   j                         ||d |j                  d   dz  d d f   j                         |d d dd d f   j                  j                                      t         ||d d dd d f   |d |j                  d   dz  d d f   j                         ||d d dd d f   j                         |d |j                  d   dz  d d f   j                  j                                       t         j                  t         j
                  t         j                  t         j                  fD ]o  }|j                  |      }|j                  |      }|j                  |      }t         |||j                        |       t         ||j                  |      |       q y )Nr3   r   r  r  r   r   )7         E  )r?  i    '  )r@  rB  i  	  )rA  rC  rD  i	  )i    @  d      )rE  iD  l        )rF  rJ  i        )rG  rK  rN  i  $  T  )rH  rL  rO  rQ  iX    )rI  rM  rP  rR  rS  i  r5   r2   )r#   r  r%   r   r  r   r   r  r  r   rM  rX  rF   )rT   rj  rR   r   r[  r   ddtdtdeteafebfedfeddtfedtdfs                 r)   test_arr_multzTestMethods.test_arr_multB  s   HHq!fq!f%&HHq!fq!f%&HHq!fq"g&'IIbM!!!Q'hh%%%%'
 hh++++++-
 ::rzz2<<GB((2,Cc3-ceeS)3/c355)3/ceeSUU+S1ceejjlC0#6c355::<0#6ceejjlCEEJJL93? H ::rzz2<<GB((2,C((2,Cc3-ceeS)3/c355)3/ceeSUU+S1 H ::rzz2<<GB((2,CS2q\355)S2q\&&(#%%**,7 SDbD\355)SDbD\&&(#%%**,7 S#ddAg,..)S#ddAg,..--/0 S#a2g,..)S#a2g,..--/0 S+#))A,!++Q./SqS!V?S+#))A,!++Q./446CaCF8J8J8LM S1a[#&8syy|q'8&8!&;"<">">?S1a[%%'-?ciila.?-?-B)C)E)E)J)J)LM- H8 ::rzz2<<GB((2,CJJrNEJJrNEc355)51ceeS)51 Hr+   ifdFDc                   t        j                  d|      j                  dd      }t        j                  dd      } |||      } |||j	                               }t        ||        ||j                  |j                        } ||j                  j	                         |j                        }t        ||       t        j                  |      }t        j                  d|j                  z  dz  dz   d	      dd  j                  |      }|j                  dd      }|d
   }t        |j                  d   d
   |j                  z  d
k7          |||      } ||j	                         |j	                               }t        ||        ||j                  |j                        } ||j                  j	                         |j                  j	                               }t        ||       y )N       @r   r2   r   r6  r  r   r3   r   r   r4   )r#   r%   r   broadcast_torX  r   rM  r/   r9   r@   rm   r   rC   )rT   rj  r/   rR   r   ret1ret2rL  s           r)   test_no_dgemvzTestMethods.test_no_dgemv  sz   
 IIc'//15OOB'AqzAqvvx T4 ACC~ACCHHJ$T4  XXe_HHQ_)A-W=abAFFuMIIaOaD%%f-a02;;>!CDAqzAFFHaffh'T4 ACC~ACCHHJ
+T4 r+   c                   t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  ddgddgg      }t        t        j                  ||      |j                  |             t        t        j                  t        j                  ||      |      |j                  |      j                  |             t        j                  |      }|j                  ||       t        |t        j                  ||             t        j                  |      }|j                  ||       t        |t        j                  ||             y )Nr3   r   r  r=  )r   r  )r#   r  r   dotrZ  rT   rR   r   r[  s       r)   test_dotzTestMethods.test_dot  s   HHq!fq!f%&HHq!fq!f%&HHq!fq"g&'RVVAq\1558,RVVBFF1aL!,aeeAhll1o> MM!	aQq!% MM!	qQq!%r+   c                    d}t        j                  dd      }t        t        t         j                  ||       t        t        t         j                  ||       y Nr6  r  r3  r   )r#   r  r	   r)  re  rT   r[  r  s      r)   test_dot_type_mismatchz"TestMethods.test_dot_type_mismatch  s;    HHU%(iA.iA.r+   c                   t         j                  j                  d       t         j                  d   D cg c]  }|dvrt        j                  |       }}|D ]  }t         j                  j                  dd      j                  |      }t        d|      }t         j                  j                  dd      |d<   t        j                  ||      }t        j                  |||      }t        ||t        |      	       t        t        t         j                  |||d d d
          t        t        t         j                  |||j                          y c c}w )Nr3   rV  USVMr   rW  r   .r  r   r2   )r#   rp  seedr#  r/   rr  r  rL   re  r   r  r	   r8   rM  )rT   codedtypesr/   rR   r   r/  r  s           r)   test_dot_out_mem_overlapz$TestMethods.test_dot_out_mem_overlap  s   
		q .0\\%-@ )-@T' ((4.-@ )E		q!$++E2A vU3AYY^^Aq)AcFq!Aq!#AAtE{3 *bffa#A#?*bffa< )s    Ec                P    G d dt         j                        }t        j                  d      j                  |      }t        j                  d      j                  |      }t        j                  d      }t        j                  |||       t        j
                  |||       y )Nc                      e Zd Zy),TestMethods.test_dot_matmul_out.<locals>.SubNr`   rd   r+   r)   Subrt    rf   r+   ru  r4  r  )r#   rE   rK  rm   re  matmul)rT   ru  rR   r   r  s        r)   test_dot_matmul_outzTestMethods.test_dot_matmul_out  sq    	"** 	GGFO  %GGFO  %ggfo 	q!
		!QC r+   c                    G d d      }t        t        t        j                   |        |              t        t        t        j                   |        |              t        t        t        j
                   |        |              y )Nc                      e Zd Zd Zy)@TestMethods.test_dot_matmul_inner_array_casting_fails.<locals>.Ac                    t         r"   NotImplementedErrorr  s      r)   r  zJTestMethods.test_dot_matmul_inner_array_casting_fails.<locals>.A.__array__      ))r+   Nr  rd   r+   r)   r  rz        *r+   r  )r	   r}  r#   re  rv  innerrT   r  s     r)   )test_dot_matmul_inner_array_casting_failsz5TestMethods.test_dot_matmul_inner_array_casting_fails  sS    	* 	*
 	)26613<)299ac13?)288QS!#>r+   c                   t        j                  d      j                  ddd      }t        j                  ||      }t        j                  |||      }t	        ||u        t        ||       t        j                  d      j                  ddd      }t        j                  |||d d ddf         }t	        |j                  |j                  u        t        ||       y )Nrx  r2   r   r  r5   .)r#   r%   r   rv  r   r   r   rf  s       r)   test_matmul_outzTestMethods.test_matmul_out  s    IIbM!!!Q*IIaOIIa"QQIIbM!!!Q*IIa$B$)-!&& !Qr+   c                   t        j                  d      j                  d      }t        |j	                         g d       t        |j	                  d      g d       t        |j	                  d      g d       t        |j	                  d      dd	g       t        t         j                  |j                  dd
       t        t         j                  |j                  d
d       t        t         j                  |j                  d
d
       t        t        |j                  dd       t        j                  d      j                  d      }t        |j	                         ddgddgg       t        |j	                  d      ddgddgg       t        |j	                  d      dgdgg       t        |j	                  d      dgd
gg       t        t        |j                  dd       t        |j	                  ddd      ddgddgg       t        |j	                  ddd      ddgddgg       t        |j	                  ddd      dgdgg       t        |j	                  ddd      ddgddgg       y )Nr}  r  )r   rW   rQ   r   r3   )r3   r   r?  r5   r   r  rW   )axis1axis2r   r2   r2   r2   r   r  r2   r   rK   r  r  )r#   r%   r   r   diagonalr	   r  r8   r  s      r)   test_diagonalzTestMethods.test_diagonal   s   IIbM!!&)QZZ\:.QZZ]J/QZZ]J/QZZ^aV,bllAJJaqAbllAJJaqAbllAJJaqAj!**AQ?IIaL  +QZZ\QFQF#34QZZ]aVaV$45QZZ]aS1#J/QZZ^qcA3Z0j!**AQ?QZZ1a(Aq6Aq6*:;QZZ1a(Aq6Aq6*:;QZZqZ;qcA3ZHQZZ1a(Aq6Aq6*:;r+   c                j   t        j                  d      j                         }t        |j                  j
                          t        |j                  j                          t        j                  t        j                  d            }t        |j                  j
                          t        |j                  j                          t        j                  t        j                  d            }t        |j                  j
                          t        |j                  j                          y Nr   )r#   eyer  r   rY   rZ   r   diagr   s     r)   test_diagonal_view_notwriteablez+TestMethods.test_diagonal_view_notwriteable  s    FF1I AGG%%%&AGGOO#$KKq	"AGG%%%&AGGOO#$GGBFF1IAGG%%%&AGGOO#$r+   c                   t        j                  d      }t        r!t        t	        j
                  |      dk         t        d      D ]  }|j                           t        r"t        t	        j
                  |      dk         y y )Nr^  r^  r  r^  )r#   r9   r   r   r  getrefcountr   r  )rT   rR   r   s      r)   test_diagonal_memleakz!TestMethods.test_diagonal_memleak$  s^    HHZ COOA&+,sAJJL COOA&+, r+   c                   t        j                  g t         j                        }t        j                  d      }t        d      D ]  }t        j                  |||        t
        r"t        t        j                  |      dk         y y )Nr          @r^  r  r  )	r#   r  r   r   re  r   r   r  r  )rT   rR   r  _s       r)   test_size_zero_memleakz"TestMethods.test_size_zero_memleak.  sa     HHRrzz*HHSMsAFF1aQ COOA&+, r+   c                   t        j                  d      j                  d      }t        |j	                         d       t        |j	                  d      d       t        |j	                  d      d       t        |j	                  d      d       t        j                  d	      j                  d
      }t        |j	                         dd	g       t        |j	                  d      dd	g       t        |j	                  d      ddg       t        |j	                  d      ddg       t        |j	                  ddd      dd	g       t        |j	                  ddd      ddg       t        |j	                  ddd      ddg       t        |j	                  ddd      ddg       t        j
                  d      }|j	                  |      }||u sJ y )Nr}  r  r  r   r3   rx  r5   rF  r   r  r   r2   r   r   rW   r  r?  r  r  )r#   r%   r   r   tracer  )rT   rR   r   r  r  s        r)   
test_tracezTestMethods.test_trace9  se   IIbM!!&)QWWY#QWWQZ$QWWQZ$QWWR["%IIaL  +QWWYA'QWWQZ!Q(QWWQZ!Q(QWWR[1a&)QWWQ1%1v.QWWQ1%1v.QWWQ1%2w/QWWAQaW81a&Ahhqkgg#gczzr+   c                     G d dt         j                        }t        j                  d      j                  d      j	                  |      }|j                         }t        t        ||             y )Nc                      e Zd Zy)0TestMethods.test_trace_subclass.<locals>.MyArrayNr`   rd   r+   r)   MyArrayr  Q  rf   r+   r  r   r  )r#   rE   r%   r   rm   r  r   r   )rT   r  r   r.  s       r)   test_trace_subclasszTestMethods.test_trace_subclassN  sQ    	bjj 	 IIaL  +009GGI
1g&'r+   c                   t         j                  d   }t         j                  d   }||z   dz   D ]  }t        j                  g d|      }t        j                  d|      }|j	                  g dg d       t        ||       t        j                  d|      }|j	                  g dg d       t        ||j                  d	d
              dD ]  }t        j                  g d|      }t        j                  d|      }|j	                  g ddgd
z         t        ||       t        j                  d|      }|j	                  g ddgd
z         t        ||j                  d	d
              t        j                  d      }d|j                  _        t        t        |j                  g dg d       g d}t        t        t         j                  |dd	gd       y )Nr  rD  r,  )r   r3   r   r   r   rW   r   r   )r3   r   rW   r  r2   r   r  )FTFTFTTFrV  r   rW   )r#   r#  r  r9   putr   r   rY   rZ   r	   r8   r)  )rT   icodesfcodesrL  rN  rR   	bad_arrays          r)   test_putzTestMethods.test_putX  su   l+j)6/C'B((-R8C "%AEE)Y'C  r*AEE)Y'CKK1-. ( B((B"MC "%AEE)dVAX&C  r*AEE)dVAX&CKK1-.  HHQK!j!%%I>
 	iQFA>r+   c                \   t        j                  ddgddgg      }t        |j                         g d       t	        |j                         j
                  j                          t        |j                  d      g d       t        |j                  d	      g d       t        |j                  d	      g d       t        |j                  d
	      g d       t	        |j                  d
	      j
                  j                          t        |j                  d	      g d       t	        |j                  d	      j
                  j                          t        |j                         |j                  d             t        j                  ddgddggd	      }t        |j                         g d       t        |j                  d
	      g d       t        |j                  d	      g d       t	        |j                  d
	      j
                  j                          t	        |j                  d	      j
                  j                          t        |j                         |j                  d             t        |j                  d
	      |j                  dd
	             t        j                  ddgddgg      d d dd d f   }t        |j                         g d       t        |j                  d	      g d       t        |j                  d	      g d       t        |j                  d
	      g d       t        |j                  d	      g d       t	        |j                  d	      j
                  j                         t        j                  d      d d d   }t	        |j                  d      j
                  j                         t	        |j                  d      j
                  j                         t	        |j                  d      j
                  j                         t        j                  d      d d d   }|j                  dddd      j                  dd      }t        |j                        }d|d<   ||_        t	        |j                  d	      j
                  j                         t        |j                  d      t        j                  ddd             t        j                  d      }|j                  dddd      j                  dd      }t        |j                        }d|d<   ||_        t	        t        j                  |j                  d	      |             t        |j                  d	      t        j                  d             t        j                  d      d d d   j                  dd      }t	        |j                  d	      j
                  j                         t	        |j                  d	      j
                  j                         t        |j                  d      g d       t        |j                  d      g d       t        j                  dgg      }d|_        t        j                  d      j                  dk(  rht	        t        j                  |j                  d      |             t        |j                  d      j                  |j                  j                  f       dD ]a  }t        j                  d      }t        |j                  |      dg       t	        t        j                  |j                  |      |             c t        j                  d      d d d   j                  dddd      }|dd d df   }t        |j                  d      g d       t        |j                  d      g d       t        |j                  d
      g d       t        |j                  d      g d       |d d ddf   }t        |j                  d      g d       t        |j                  d      g d       t        |j                  d
      g d       t        |j                  d      g d       y ) Nr   r3   r2   r   )r   r3   r2   r   rZ  )r   r2   r3   r   r,   r6   r  Kr5   )r2   r   r   r3   )r2   r   r   r3   rQ   r   r  r"  r  r   r   r  )r"  i  r   r,   rZ  r  r  r   .)r   r   r   r}  r   r   r     )r   r   r   r  r   r   r}  r  )r   r2   r   r   r   rQ   r}  r  )r   r   r   r}  r2   rQ   r   r  )r#   r  r   ra  r   rY   r   r   r%   swapaxesr  r   may_share_memoryrK  r/   r@   )rT   rR   r   r0   r   s        r)   
test_ravelzTestMethods.test_ravel  s<   HHq!fq!f%&QWWY-AGGIOO+++,QWWS\<0QWW3W'6QWW3W'6QWW3W'6AGG#G&,,4445QWW3W'6AGG#G&,,4445QWWY		".HHq!fq!f%S1QWWY-QWW3W'6QWW3W'6AGG#G&,,4445AGG#G&,,4445QWWY		".QWW3W'2S)ABHHq!fq!f%&ttQw/QWWY-QWW3W'6QWW3W'6QWW3W'6QWW3W'6c"((001 IIbM#A#""**+""**+""**+ IIh!$IIaAq!**2r2qyy/
	c"((001QWWS\299QA#67 IIdOIIaAq!**2r2qyy/
	##AGG#G$6:;QWW3W'49 IIaL2&&q!,c"((001c"((001QWWS\<0QWWS\<0 HHqcUO	 771:%B''a89--0@0@/BC)EA!-B'':;	 * IIh!$,,Q1a8c3Q3hKQWWS\#@AQWWS\#@AQWWS\#@AQWWS\#@Acc3hKQWWS\#>?QWWS\#>?QWWS\#>?QWWS\#>?r+   c                    G d dt         j                        }t        j                  d      j                  |      }t	        t        |j                  d      |             t	        t        |j                  d      |             t	        t        |j                  d      |             t	        t        |j                  d      |             t        j                  d      d d d   j                  |      }t	        t        |j                  d      |             t	        t        |j                  d      |             t	        t        |j                  d      |             t	        t        |j                  d      |             y )	Nc                      e Zd Zy)6TestMethods.test_ravel_subclass.<locals>.ArraySubclassNr`   rd   r+   r)   ArraySubclassr    rf   r+   r  rQ   r,   rZ  r  r  r2   )r#   rE   r%   rm   r   r   ra  )rT   r  rR   s      r)   test_ravel_subclasszTestMethods.test_ravel_subclass  s   	BJJ 	 IIbM}-
1773<78
1773<78
1773<78
1773<78IIbM#A###M2
1773<78
1773<78
1773<78
1773<78r+   c                   t        j                  d      j                  dddd      j                         }t        j                  |j
                        }t        |j                  d          |j                         }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        d	d      D ]M  }t        d	d      D ]:  }t        ||f      D ]&  \  }}|j                  ||      }t        |j
                        }	|j
                  |   |	|<   |j
                  |   |	|<   t        |j
                  |	t        |||f             |j
                  D 
cg c]  }
|
dz
  	 c}
\  }}}}|j
                  D 
cg c]  }
|
dz
  	 c}
\  }}}}t        |||   ||   ||   ||   f   |||   ||   ||   ||   f   t        |||f             t        |j                  d    t        |||f             |dk(  s%|}) = P y c c}
w c c}
w )
Nr  r3   r2   r   r   OWNDATAr   )r#   r%   r   rX  indicesrF   r   rY   r	   r  r  r   	enumerater  r   r  )rT   rR   r.  r   r   r  rS  srcr[  rF   dimi0r  i2i3j0j1j2j3s                      r)   test_swapaxeszTestMethods.test_swapaxes  s   IIg&&q!Q2779jj!	"#FFHbllAJJA6bllAJJ15bllAJJ26bllAJJ15r1A2q\'A/FAsQ*A OE"yy|E!H"yy|E!H %aAY@78ww%?wc!ew%?NBB7:yy%Ayc!ey%ANBB SWc"gs2wB%G!H!"3r7CGSWc"g#E!F!$aAY1 	 22CAq	NCAv# 0 "  &@%As   I3
'I8
c                   t        j                  g d      j                         }t        j                  |j                         t        j
                  |j
                          t        |j                                t        |t        j                               t        j                  g dd      j                         }t        j                  |j                         t        j
                  |j
                          t        |j                                t        |t        j                               t        j                  g d      j                         }t        |       t        |j                                t        |t        j                               t        j                  g d      j                         }t        |       t        |j                                t        |t        j                               t        j                  g dt              j                         }t        |D cg c]  }|j                          c}       t        |j                                t        |t        j                               t        j                  g dt              t        t        fd       t        t        fd       y c c}w )	N      ?      r;  y      7@      7@rZ  rV  r6  r        @)r  r;  r3   r  )r  r3   r  r  c                 $     j                         S r"   )conjr   s   r)   r  z,TestMethods.test_conjugate.<locals>.<lambda>-  s    r+   c                 $     j                         S r"   )	conjugater   s   r)   r  z,TestMethods.test_conjugate.<locals>.<lambda>.  s    r+   )
r#   r  r  r   r  r  r  r7   r	   r)  )rT   acrS  rR   s      @r)   test_conjugatezTestMethods.test_conjugate  s   HH+,VVXQVVRWW%QVVbggX&R'Ra)HH+S1VVXQVVRWW%QVVbggX&R'Ra)HHYVVXQR'Ra)HH_%VVXQR'Ra)HH)62VVXR3A!++-34R'Ra)HH(&1i!12i!67 4s   K-
c                    t        j                  g d      }t        j                  |      }|j                  |      }||u sJ t	        ||j                                y )Nr  )r#   r  r  r  r   )rT   rR   r  rY  s       r)   test_conjugate_outzTestMethods.test_conjugate_out0  sK     HH+,mmAkk#czz3.r+   c                   g d}|D ]  }t        j                  d|      }t        j                  dg|      }t        j                  dggggg|      }dj                  |      }t        |      }t	        |||       t        t              5  t        |      }d d d        t	        ||       t        t              5  t        |      }	d d d        t	        	||        y # 1 sw Y   IxY w# 1 sw Y   %xY w)Nr  r  r   r)  ry   u2u4u8r  r   grZ  DGr  r,  r  r   z
dtype: {0})r#   r  rH  rc  r   r
   r   )
rT   rp  rL  rR   r   r[  r&  apbpcps
             r)   test__complex__zTestMethods.test__complex__9  s     B"%A!B'AaSE7)B/A%%b)CBQ$01QZ 2Q$01QZ 2Q$  21 21s   C!=C-!C*	-C6	c                L   g d}|D ]0  }t        j                  g d|      }t        t        t        |       2 t        j
                  ddg      }t        j                  d|      }t        t        t        |       t        j                  ddg|      }t        t        t        |       t        j                  d      }t        t        t        |       t        j                  dgd	      }t        t              5  t        t        t        |       d d d        y # 1 sw Y   y xY w)
Nr  rV  r   r9  r  )r6  r   )gMb`?r  z1+1jr_  )r#   r  r	   r)  rc  r/   r
   r   )rT   rp  rL  rR   r   r[  r   r  s           r)   test__complex__should_not_workz*TestMethods.test__complex__should_not_workO  s     B"-A)Wa0  XX{K01HHXR(i!,HHh	*"5i!,HHVi!,HHfXs#,-)Wa0 .--s   ;DD#)lra   rb   rc   r2  r  r  r  r  r  r   r   r   r7   r  r  r"  r%  r+  r  r#   rB   r   r   r   float16r  r   r  r4  r   r   r   r   r8  rD  rJ  r  r  rO  rU  r/   r  r
  rY  r]  r_  rb  rl  rs  r  r  r  r  r  r  r  r  r  r-  r  r  r  r  r  r  r  r  r  r  r#  r  r  r  r  r  r  r  r  r$  r-  r/  r1  r3  r;  re  rv  r\  rc  rg  rk  rq  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rd   r+   r)   r  r  '  s   4J3*4(&-<E$ [[WtVn5. 6.><>"8@&2 [[WrxxBIIryy')zz2::rzz')}}'6 7
$7
$ [[W ggrxx288RZZ jj"**bmmEF
$F
$ [[Wrzz2::r}}&MN[[Vff%56% 7 O%.* [[Wryy"''&:;$ <$$ [[TBHHsElS#J/0BHHsElS&M23$5 6 [[VaV,@ -6@" [[W8H&IJ$ K$: <$:+2 [[WsBHHe&<=
% >
%!#1JG-R5 [[S!Qrzz2!Qrzz2!Q # 

  0#("#>2L6RK!Z
B [[Wbll5&9:7 ;7 [[Wbll5&9:4 ;496 [[[",,|*DE	F F	F [[[",,|*DEC FCNJ`B6H>2=L [[[",,|*DE4 F46 [[Vbffbii%89K2 :K2Z [[Vbffbii%89[[Wg.! / :!8&$/=,
!	?
<.%-	-*(&?PY@v9 @#8J/%,1r+   r  c                      e Zd Zd Zy)TestCequenceMethodsc                    t        dt        j                  d      j                  dd      v        t        dt        j                  d      j                  dd      v       y )N      @g      0@r         4@)r   r#   r%   r   rS   s    r)   test_array_containsz'TestCequenceMethods.test_array_containsg  sF    ryy~--a223BIIcN221Q778r+   N)ra   rb   rc   r  rd   r+   r)   r  r  f  s    9r+   r  c                      e 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y)	TestBinopc                   t        t        j                  dg      t        j                  ddg      z  ddg       t        j                  ddg      d d d   }t        ||t        j                  ddg      z  z  ddg       t        j                  dg      }t        j                  dg      }||z   }||z
  }||z  }||z  }t        ||       t	        |d       ||dz  |z  |z  z   ||z  z
  }t        ||       t        |d       t        j                  dg      }t        j                  dg      }||z  |z  }t	        |d       t        |d       t        |d       y )	N      ?r6  r  r2         ?rW   r   g @)r   r#   r  r   r   )rT   r   rR   r   r[  s        r)   test_inplacezTestBinop.test_inplacel  sJ   !"((C5/BHHc3Z4H"H#&*	. HHc3Z 1%!!q288S#J+?'?"@#'+	/ HHcUOHHcUOEEEEQAr"B
QQ&QQ HHaSMHHaSMUaKAv&QQr+   c                  	 t         j                  dt        ft         j                  dt        ft         j                  dt        ft         j
                  dt        ft         j                  dt        ft         j                  dt        ft         j                  dt        ft         j                  dt        ft         j                  dt        ft         j                  dt        ft         j                  dt        ft         j                  dt        ft         j                  dt        ft         j                   dt        fd G d dt"              fdd d 	d	 d
 }	 	 d	fd	}	 dfd	} | |t$              ddd        | |t$        d      ddd        | |t$        d      ddd        | |t         j&                  d      dddd        | |t$        d|      ddd        | |t         j&                  d|      ddd        | |t$        d       ddd        | |t         j&                  d       dddd       y )NTF)r  subr?   truedivfloordivmoddivmodpowlshiftrshiftandxororrv  c                      e Zd Zy)7TestBinop.test_ufunc_binop_interaction.<locals>.CoercedNr`   rd   r+   r)   Coercedr    rf   r+   r  c                    r"   rd   )rT   r  s    r)   
array_implz:TestBinop.test_ufunc_binop_interaction.<locals>.array_impl  s    Mr+   c                     y)Nforwardrd   rg  s     r)   op_implz7TestBinop.test_ufunc_binop_interaction.<locals>.op_impl      r+   c                     y)Nreverserd   rg  s     r)   rop_implz8TestBinop.test_ufunc_binop_interaction.<locals>.rop_impl  r   r+   c                     y)Nzin-placerd   rg  s     r)   iop_implz8TestBinop.test_ufunc_binop_interaction.<locals>.iop_impl  s    r+   c                    d||||fS )N__array_ufunc__rd   )rT   ufuncmethodrz  r  s        r)   array_ufunc_implz@TestBinop.test_ufunc_binop_interaction.<locals>.array_ufunc_impl  s    %ufdFCCr+   c                   di}|dur||d<   D ]>  }
|dj                  |      <   |dj                  |      <   	|dj                  |      <   @ |dur||d<   | ||d}t        d	|      }t        |t        j                        r5t        j
                  d
d      j                  dd      j                  |      S  |       S )Nr  F__array_priority____{0}____r{0}____i{0}__r  )r   class_namespacera   z(type('MyType', (base,), class_namespace)r   r  r2   )rH  r  
issubclassr#   rE   r%   r   rm   )r   array_priorityarray_ufuncalleged_moduler  r  eval_namespaceMyTyper  r  r  opsr  s           r)   make_objz8TestBinop.test_ufunc_binop_interaction.<locals>.make_obj  s    *J7OU*8F 458?	 0 0 459A
 1 1" 569A
 1 1" 56  %'5@ 12&*1@*8 N D(*F&"**- yyA..q!499&AAxr+   c           	         j                         D ]  \  \  }}}dd|d|d|}t        j                  dd|      j                  dd      g}	|r|	j	                  |	d	   d	          |	D ]  }
t        |
d
j                              }fd}|rt         ||       t        |       n|rt         ||       d	   d|       nt        | t        j                        r`t        |       j                  t        j                  j                  u r1 | ||             }t        |j                  | j                  u |       nt        t         f|| |       t        |
dj                              }|r+ ||       }t        |d	   d|       t        |d   ||       nt        | t        j                        r`t        |       j                  t        j                  j                  u r1 | ||             }t        |j                  | j                  u |       nt        t         f|| |       |r't        |
t        j                        rt        |
dj                              }|rt         ||       t        |       n|ra ||       }t        |d	   d|       t        |d   ||       t        t        |d   d         t"        u |       t        |d   d   d	   |
u |       nst        | t        j                        rDt        |       j                  t        j                  j                  u rt         ||       |
u |       nt        t         f|| |       t        t$        d       }|t        t$        dz   d       }|t        t&              }t         || |
      d|       t        | t        j                        s0|rt         ||
|       d|       n|rt         ||
|       d	   d|       |st         || |
      d	   d|         y )Nzop: z	, ufunc: z, has_inplace: z	, dtype: r   r  r   r2   r   r  c                N    dk(  rt        t        | t                     | d   S | S )Nr  r   )r   r   tuple)r%  r  s    r)   first_out_argzLTestBinop.test_ufunc_binop_interaction.<locals>.check.<locals>.first_out_arg  s(    >#Jvu$=>#)!9,#)Mr+   r  r   r  r3   r  r5   r  r  r  r  )itemsr#   r%   r   r  r  rH  r   NotImplementedr   rE   r  r  r   	__class__r	   r)  r  r>   rk  )objbinop_override_expectedufunc_override_expectedinplace_override_expectedcheck_scalarr  has_inplacer/   r   
check_objsr'   
arr_methodr  rY  arr_rmethodarr_imethodop_fnr  r  r  s                    @r)   checkz5TestBinop.test_ufunc_binop_interaction.<locals>.check  s   3699;//UK %e= ii1E:BB1aHI
%%jmA&67%C!(i.>.>r.B!CJ* /$Z_ngN0$Z_Q%79J%,. 'sBJJ7!#Y66ZZ778 #0
3"@C#CMMS]]$BGL)9g*>*4c7L #*#z/@/@/D"EK.)#.$SV->-46$SVUGD&sBJJ7!%c!:!:!#!;!;"< #0C0@"AC#CMMS]]$BGL *9g*>*5sGM
 #z#rzz'B&-c:3D3DR3H&I4(C.18:4"-c"2C(Q1BGL(Q@#DR$8E$A7K#CGEN1$5$<gF *3

 ;%)#Y%>%>$&JJ$>$>&? !(C(8C(? I -y'.B.936=!? $Hb$7E} '"s(D A} '" 5 sC)WE%c2::62(sC)WM4(sC);=N)02.$U3_Q%79J%,.e & 4?r+   i   )r  r3   )r$  )r  r  )r  )FF__main__)T)r#   r  r  subtractmultiplytrue_dividefloor_divide	remainderr  rl  r
  
left_shiftright_shiftbitwise_andbitwise_xor
bitwise_orrv  r  r7   rE   )
rT   r
  r  r+  r  r  r  r  r  r  s
       @@@@@@r)   test_ufunc_binop_interactionz&TestBinop.test_ufunc_binop_interaction  s    u-dE2dE2u5$6tU3E514-c2s3s3s3c2D%0
.	i 						D >C$.	  	 2 ;?[	.| 	hvue4 	hvf5ueUKhva0$tDhrzz!4eUE 	" 	hva#356;T5	Jhrzz!#356;T5	J 	hv40$uEhrzzt4dE5 	"r+   priorityNruntime errorc                     G fdd      } G d dt         j                        }t        j                  d      j                  |       |       z   }|j                  dk(  sJ |d   dk(  sJ y )	Nc                  (    e Zd Ze fd       Zd Zy)BTestBinop.test_ufunc_binop_bad_array_priority.<locals>.BadPriorityc                (    dk(  rt        d      S )Nr9  z#RuntimeError in __array_priority__!r  )rT   r8  s    r)   r  zUTestBinop.test_ufunc_binop_bad_array_priority.<locals>.BadPriority.__array_priority__P  s    .&'LMMr+   c                     y)Nr%  rd   rg  s     r)   __radd__zKTestBinop.test_ufunc_binop_bad_array_priority.<locals>.BadPriority.__radd__V  s    r+   N)ra   rb   rc   propertyr  r?  )r8  s   r)   BadPriorityr<  O  s       
 r+   rA  c                      e Zd ZdZy)BTestBinop.test_ufunc_binop_bad_array_priority.<locals>.LowPriorityiNra   rb   rc   r  rd   r+   r)   LowPriorityrC  Y  s    !&r+   rE  r   rS  r   r%  )r#   rE   r%   rm   rF   )rT   r8  rA  rE  rY  s    `   r)   #test_ufunc_binop_bad_array_priorityz-TestBinop.test_ufunc_binop_bad_array_priorityI  sb    	  	 	'"** 	'
 iil,{}<yyD   1v!!!r+   c                f    G d d      } |       }t        j                  |dg      }t        d|vxr d|v       t        j                  |dgd      }t        d|vxr d|v        t        |d   d       t        j                  |dgd      }t        d|vxr d|v        t        |d   d       y )	Nc                      e Zd Zd Zy)DTestBinop.test_ufunc_override_normalize_signature.<locals>.SomeClassc                    |S r"   rd   rT   r  r	  inputskws        r)   r  zTTestBinop.test_ufunc_override_normalize_signature.<locals>.SomeClass.__array_ufunc__f  s    	r+   Nra   rb   rc   r  rd   r+   r)   	SomeClassrI  e  s    r+   rO  r3   sig	signaturezii->i)rP  )rQ  )r#   r  r   r   )rT   rO  rR   rM  s       r)   'test_ufunc_override_normalize_signaturez1TestBinop.test_ufunc_override_normalize_signaturec  s    	 	 KVVAs^R9Kr$9:VVAs(R5K2$56R_g.VVAsg.R5K2$56R_g.r+   c                    G d d      } |       }t        j                  d      }t        t        j                  |      d       t        t        j                  ||      d       t        t        j                  ||      d       t        t        j                  ||f      d       t        t        j                  ||      d       t        t        j                  ||      d       t        t        j                  ||f      d       t        t        j                  ||      d       t        t        j                  |d |      d       t        t        j                  |||      d       t        t        j                  ||d f      d       t        t        j                  |||f      d       t        t        j                  |d |f      d       t        t        j                  |||f      d       t        t        j                  |||f      d       t        t              5  t        j                  ||       d d d        t        t        t         j                  ||f       t        t        j                  ||      d       t        t        j                  ||      d       t        t        j                  |||      d       t        t        j                  |||      d       t        t        j                  |||      d       t        t        j                  |||f      d       t        t        j                  |||      d       y # 1 sw Y   xY w)	Nc                      e Zd Zd Zy)4TestBinop.test_array_ufunc_index.<locals>.CheckIndexc                x    t        |      D ]  \  }}|| u s|c S  t        |d         D ]  \  }}|| u s|fc S  y r  )r  )rT   r  r	  rL  rM  r   rR   r  s           r)   r  zDTestBinop.test_array_ufunc_index.<locals>.CheckIndex.__array_ufunc__x  sH    %f-DAqDy  . &bi0DAqDy !t 1r+   NrN  rd   r+   r)   
CheckIndexrU  w  s    $r+   rW  r  r   r  r  r  r3   )	r#   r%   r   sinmodfr	   r)  r8   r  )rT   rW  rR   dummys       r)   test_array_ufunc_indexz TestBinop.test_array_ufunc_indexs  sP   	$ 	$ L		"RVVAY"RVVE1%t,RVVEq)40RVVEt,d3RVVAq\1%RVVA1%q)RVVAA4(!,RWWUA&-RWWUD!,d3RWWUE1-t4RWWUD	2D9RWWUE
3T:RWWUq	2D9RWWU
3T:RWWQUAJ/39%GGEq! & 	j"''5qd; 	RVVAu%q)RVVE1%q)RVVE5!,d3RVVE1a(!,RVVE5a0$7RVVE5qd3T:RVVAu!,a0 &%s   ,MM"c                    G d dt         j                        }t        j                  dg      j                  |      }t        j                  dg      }t        j                  dg      }t        j                  |||       t        |d   d       t        t        ||             d|d<   t        j                  |||       t        |d   d       t        t        ||             y )Nc                      e Zd Zd Zy)-TestBinop.test_out_override.<locals>.OutClassc                    d|v r?|j                         }|j                  d       t        ||      } ||i ||d   d   d<   y y )Nr  r   .)rX  rX  r  )rT   r  r	  rL  rM  tmp_kwrj  s          r)   r  z=TestBinop.test_out_override.<locals>.OutClass.__array_ufunc__  sM    B;WWYFJJu%"5&1D(,f(?(?BuIaL%	 r+   NrN  rd   r+   r)   OutClassr^    s    @r+   ra  r   rW   r   r   r  )r#   rE   r  rm   r.  r   r   r   )rT   ra  r  rt   r,   s        r)   test_out_overridezTestBinop.test_out_override  s    	@rzz 	@ HHaSMx(HHaSMHHaSM
Aq!QqT2
1h'(!
Aqa QqT2
1h'(r+   c                V    G d dt         j                        }t        j                  dt         j                        j	                  |      }t        |dz  d       t        t              5  |dz   d d d        t        t              5  |dz   d d d        t        t              5  |d	z   d d d        t        t              5  |d
z   d d d        t        t              5  |dz   d d d        y # 1 sw Y   ~xY w# 1 sw Y   mxY w# 1 sw Y   \xY w# 1 sw Y   KxY w# 1 sw Y   y xY w)Nc                      e Zd Zd Zy):TestBinop.test_pow_override_with_errors.<locals>.PowerOnlyc                4    |t         j                  urt        y)NPOWER!)r#   rl  r}  rK  s        r)   r  zJTestBinop.test_pow_override_with_errors.<locals>.PowerOnly.__array_ufunc__  s    (--r+   NrN  rd   r+   r)   	PowerOnlyre    s     r+   rh        @r         @rg  r  r   r3   r5   r2   )r#   rE   r  r   rm   r   r	   r}  )rT   rh  rR   s      r)   test_pow_override_with_errorsz'TestBinop.test_pow_override_with_errors  s    	 

 	  HHRrzz*//	:Q#Xx(./H 0./F 0./F 0./G 0./F 0/ 0/////////s<   ,C/	C;&DD D/C8;DDDD(c                T    G fdd      d }t        j                   d       d       d      g      }t        |dz   |d|             t        |dz   |d|             t        |dz   |d|             t        |d	z   |d	|             t        |dz   |d|             y )
Nc                  :    e Zd ZddZd Zd Z fdZ fdZeZy)8TestBinop.test_pow_array_object_dtype.<locals>.SomeClassNc                    || _         y r"   r   r   s     r)   rk   zATestBinop.test_pow_array_object_dtype.<locals>.SomeClass.__init__  s	    r+   c                    t        d      )Nz__mul__ should not be calledr  rg  s     r)   __mul__z@TestBinop.test_pow_array_object_dtype.<locals>.SomeClass.__mul__      $%CDDr+   c                    t        d      )Nz__div__ should not be calledrr  rg  s     r)   __div__z@TestBinop.test_pow_array_object_dtype.<locals>.SomeClass.__div__  rt  r+   c                0     | j                   |z        S )Nrp  rp  )rT   exprO  s     r)   __pow__z@TestBinop.test_pow_array_object_dtype.<locals>.SomeClass.__pow__  s     TXX_55r+   c                P    t        |      r| j                  |j                  k(  S y r"   )r   r   )rT   rh  rO  s     r)   r|  z?TestBinop.test_pow_array_object_dtype.<locals>.SomeClass.__eq__  s%    eY/88uyy00 0r+   r"   )	ra   rb   rc   rk   rs  rv  ry  r|  __rpow__)rO  s   r)   rO  rn    s%    EE61 Hr+   rO  c                X    t        j                  |D cg c]  }|| z  	 c}      S c c}w r"   ro  )rx  r'   r  s      r)   pow_forz6TestBinop.test_pow_array_object_dtype.<locals>.pow_for  s'    88s3s!Q#Xs3443s   'r3   r2   r   r  r   r5   r  )rT   r}  obj_arrrO  s      @r)   test_pow_array_object_dtypez%TestBinop.test_pow_array_object_dtype  s    	 	(	5 ((IaL)A,	!EFW^WS'%:;W\71g#67W\71g#67W]GB$89W\71g#67r+   c                     G d dt         j                        }t        j                  d      j                  |      }t	        t
              5  | d d d        y # 1 sw Y   y xY w)Nc                      e Zd Zd Zy)2TestBinop.test_pos_array_ufunc_override.<locals>.Ac                     t        ||      |D cg c]!  }|j                  t        j                        # c}i |S c c}w r"   )r  rm   r#   rE   )rT   r  r	  rL  r  r   s         r)   r  zBTestBinop.test_pos_array_ufunc_override.<locals>.A.__array_ufunc__  sP    -wuf-5;0=5; 12rzz0B5;0= H@FH H 0=s   &>NrN  rd   r+   r)   r  r    s    Hr+   r  r(  )r#   rE   r  rm   r	   r)  )rT   r  tsts      r)   test_pos_array_ufunc_overridez'TestBinop.test_pos_array_ufunc_override  sG    	H

 	H hhuo""1%9%D &%%s   AA#)ra   rb   rc   r  r7  r   r   r   rF  rR  r[  rb  rk  r  r  rd   r+   r)   r  r  k  sZ    Jv"p [[Z$)@A" B"2/ .1`)**8Br+   r  c                  <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestTemporaryElidec                    ddl m} t        j                  d      } ||      \  }}||z    t	        ||       t	        |||z          y )Nr   )incref_elide順 )r   r  r#   rK  r   )rT   r  r   origrY  s        r)   test_extension_incref_elidez.TestTemporaryElide.test_extension_incref_elide  s@     	>GGFO O	c	A4#3A&r+   c                    ddl m} ddddt        j                  d      g} ||      }t	        |d   t        j                  d             t	        ||d   |d   z          y )Nr   )incref_elide_lr3   r  r   )r   r  r#   rK  r   )rT   r  r   rY  s       r)   !test_extension_incref_elide_stackz4TestTemporaryElide.test_extension_incref_elide_stack
  sV     	@1a)Q1Q413!qt,r+   c           	        t        j                  dt         j                        }t        ||z   ddz  z   j                  t        j                  d             ||z   dz  }t        |j                  t        j                  d             t        j
                  ||z   d      }t        |j                  t        j                  d             ||z   dz  }t        |j                  t        j                  d             ||z   dz  }t        |j                  t        j                  t         j                               t        j                  dt         j                        }t        ||z   |j                  t         j                        z   j                  t        j                  d             |j                  t         j                        }t        ||z   |z   j                  |j                         t        j                  dt         j                        }t        ||z   |z   j                  |j                         t         j                  t         j                  t         j                  fD ]`  }t        j                  d|      }t        |dz        }t        |j                  t        j                  d	|j                  dz  z               b y )
Ni@ r   r2      r,  r:  r  r  zf%d)r#   rK  r   r   r/   r/  r  r  r   r  r   r  r@  absr@   )rT   r   r  r  r   rL  r[  s          r)   test_temporary_with_castz+TestTemporaryElide.test_temporary_with_cast  s   GGF"((+q1u3&--rxx}=!eq[QWWbhhtn-NNAEA&QWWbhhtn-!er\QWWbhhtn-!e\QWWbhhrxx01 GGF"**-q1u 44;;RXXd^L HHRZZ q1uk((!''2GGF"--0q1uk((!''2 <<?Bb)AAGA"((5AJJ!O+D"EF @r+   c                    t        j                  dt              }t        j                  dt              }d|z
  |z   }t	        |d       t	        |j
                  d       y )N)  r3   r   r  r3   )r  r  )r#   rK  r
  rL  r   rF   )rT   r   r   r  s       r)   test_elide_broadcastz'TestTemporaryElide.test_elide_broadcast:  sI     GGIS)GGT$'UaKQQWWl+r+   c                |    t        j                         }t        t        ||z         t         j                  u        y r"   )r#   r`  r   r  r   s     r)   test_elide_scalarz$TestTemporaryElide.test_elide_scalarD  s(    HHJq1uX"((*+r+   c                l    t        j                  dt         j                        }|j                  dz   y )Nr  r   r2   )r#   rA   r   r  r   s     r)   test_elide_scalar_readonlyz-TestTemporaryElide.test_elide_scalar_readonlyI  s#     HHV2::.	!r+   c                    t        j                  t        j                  t        j                  d      d      j                        dz  }t        |d       y )Nr3   r  r5  r   )r#   rn   r`  r9   flatr   rT   r  s     r)   test_elide_readonlyz&TestTemporaryElide.test_elide_readonlyR  s8    JJrrxx{F;@@ACGQr+   c                    t        j                  d      d d d   }|j                  j                         dz   }~t	        |d       y )Ni   r2   r3   )r#   rK  r  r  r   r  s      r)   test_elide_updateifcopyz*TestTemporaryElide.test_elide_updateifcopyW  s<    GGEN3Q3FF"Qr+   N)ra   rb   rc   r  r  r  r  r  r  r  r  rd   r+   r)   r  r    s,    '-GB,,

r+   r  c                  h   e Zd Zd Zej
                  j                  dej                  ej                  g      d        Z
ej
                  j                  dej                  ej                  g      ej
                  j                  exr ej                  j                  dk  d      d               Zy)	TestCAPIc                    ddl m} t         |d             t         |d             t         |ddz               t         |d             t         |d             y )	Nr   )IsPythonScalars   foobarr3   r2   rb  r  rR   )r   r  r   )rT   r  s     r)   test_IsPythonScalarzTestCAPI.test_IsPythonScalar_  sJ    ?y)*q!"q"u%&r"#s#$r+   	converterc                     |d      dk(  sJ  |d      dk(  sJ  |t        j                  d            dk(  sJ  |d      dk(  sJ  |t        j                  dg            dk(  sJ y )	NrQ   r   r5   r%  r"  )r"  r?  )r?  ro  rT   r  s     r)   test_intp_sequence_convertersz&TestCAPI.test_intp_sequence_convertersg  su    
 }%%%}%%% #'61115(((2$(E111r+   )r  r   r   zPyPy bug in error formattingr   c                   t        j                  t        d      5   |t                      d d d        t        j                  t        d      5   |d       d d d        t        j                  t        d      5   |dg       d d d        t        j                  t        d      5   |d       d d d        y # 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   NxY w# 1 sw Y   y xY w)Nz5expected a sequence of integers or a single integer, r@  z?expected a sequence of integers or a single integer, got '32.0'g      @@z2'float' object cannot be interpreted as an integerzMaximum allowed dimension            )r   rB  r)  r7   r8   r  s     r)   $test_intp_sequence_converters_errorsz-TestCAPI.test_intp_sequence_converters_errorsu  s     ]]9MOfhO ]]9#$ cN$ ]]9JLseL ]]:13 e3 3O O$ $L L3 3s/   B;	C<
C)	C;CCCC(N)ra   rb   rc   r  r   r   r   _multiarray_testsrun_scalar_intp_converterrun_scalar_intp_from_sequencer  r   r   r  implementationversionr  rd   r+   r)   r  r  ^  s    % [[[99==?@	2@	2 [[[99==?@ [[KC$6$6$>$>)$K1  33@
r+   r  c                      e Zd Zd Zy)TestSubscriptingc                    t        j                  g d      }t        t        |d   t         j                               t        t        |d         t         j                  u        y )NrV  r   r  )r#   r  r   r   r  r  rE   r<  s     r)   test_test_zero_rankz$TestSubscripting.test_test_zero_rank  s@    HHY
1Q4)*QvY2::-.r+   N)ra   rb   rc   r  rd   r+   r)   r  r    s    /r+   r  c                     e Zd Zej                  j                  ej                  dk\  d      d        Zd Z	ej                  j                  ej                  dk  d      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)TestPicklingrW   zSthis tests the error messages when trying toprotocol 5 although it is not availabler   c                .    t        j                  d      }y rP   r  )rT   r  s     r)   $test_correct_protocol5_error_messagez1TestPickling.test_correct_protocol5_error_message  s     		"r+   c                >   t               }t        j                  |ddfgdt         fdt        fdt        fg      }t        j                  dgdt
        fdt        fdt        fg      }t        dt        j                  dz         D ]  }t        j                  t        j                  ||	            }t        j                  t        j                  ||	            }t        |j                  |j                         t        |j                  |j                          y )
Nr3   r  rR   r   r[  r   xxxr3   r  r2   r  )r7   r#   r  r
  r  r  r   r   r   r   r   r   r/   )rT   	my_objectarr_with_objectarr_without_objectr  depickled_arr_with_objectdepickled_arr_without_objects          r)   #test_record_array_with_object_dtypez0TestPickling.test_record_array_with_object_dtype  s    H	((Q$%V}sCj3,?A  XX !SzC:U|<> 1f559:E(.LL5A)C%+1<<LL!3eD,F( ..288:+115;;= ;r+   r  c                    t        j                  g dg dgd      }g }t        j                  |d|j                        }t        |      dkD  sJ t        j                  ||      }t        ||       y )	NrV  r  rZ  r6   rW   )r  r  r   r  )r#   r  r   r   r  r&   r   r   )rT   f_contiguous_arrayr  r  depickled_f_contiguous_arrays        r)   test_f_contiguous_arrayz$TestPickling.test_f_contiguous_array  ss      XXy)&<CH ||$64;NND 7|a'-||L<C(E$ 	')EFr+   c                p   t        j                  d      j                  dd      d d d df   }|j                  j                  rJ |j                  j
                  rJ t        dt        j                  dz         D ]8  }t        j                  t        j                  ||            }t        ||       : y )Nr}  r   r   r2   r3   r  )r#   r%   r   rY   re  rf  r   r   r   r   r   r   )rT   non_contiguous_arrayr  depickled_non_contiguous_arrays       r)   test_non_contiguous_arrayz&TestPickling.test_non_contiguous_array  s    !yy}44Q:1bqb5A'--::::'--:::: 1f559:E-3\\LL!5F.H* -/MN	 ;r+   c                   t        dt        j                  dz         D ]  }t        j                  ddgddgddgg      }|t        j
                  |      t        j                  dgd	t        dffd
t        fdt        fg      g}|D cg c]  }t        j                  |       }}|D ];  }t        |t        j                  t        j                  ||            d|z         = ~~~t                |D ]  } |       J   y c c}w )Nr2   r3   r  r  r   r   r   r  rR   r   r[  r   r  %rr   )r   r   r   r#   r  r  r  r
  r  weakrefrefr   r   r   r   )rT   r  r   DATArR   refsr  s          r)   test_roundtripzTestPickling.test_roundtrip  s    1f559:EXX1v1v1v67FV$/*C#q?S#J47<3A BD -11DqGKKNDD16<<Q(GH $q*  4Nu}$} # ; 2s   Dc                0    t        j                  |d      S )Nlatin1)encoding)r   r   rT   r   s     r)   _loadszTestPickling._loads  s    ||C(33r+   c                    d}t        j                  g dt         j                        }| j                  |      }t	        ||       y )Ns}   cnumpy.core._internal
_reconstruct
qcnumpy
ndarray
qK UbRq(Kcnumpy
dtype
qUi1K KRq(U|NNJJtbUtb.r  r   r#   r  r   r  r   rT   r   rR   r  s       r)   test_version0_int8zTestPickling.test_version0_int8  s5     sHH\1KKNQr+   c                    d}t        j                  g dt         j                        }| j                  |      }t	        ||       y )Ns   cnumpy.core._internal
_reconstruct
qcnumpy
ndarray
qK UbRq(Kcnumpy
dtype
qUf4K KRq(U<NNJJtbU  ?   @  @@  @tb.r6  r  r  r  r   r#   r  r  r  r   r  s       r)   test_version0_float32z"TestPickling.test_version0_float32  s6     THH)<KKNQr+   c                x    d}t        j                  ddiddig      }| j                  |      }t        ||       y )Ns   cnumpy.core._internal
_reconstruct
qcnumpy
ndarray
qK UbRq(Kcnumpy
dtype
qUO8K KRq(U|NNJJtb]q(}qUaKs}qUbKsetb.rR   r3   r   r2   r#   r  r  r   r  s       r)   test_version0_objectz!TestPickling.test_version0_object  s<     JHHsAha)*KKNQr+   c                    d}t        j                  g dt         j                        }| j                  |      }t	        ||       y )Ns   cnumpy.core._internal
_reconstruct
qcnumpy
ndarray
qK UbRq(KKcnumpy
dtype
qUi1K KRq(KU|NNJJtbUtb.r  r   r  r  s       r)   test_version1_int8zTestPickling.test_version1_int8  s5     }HH\1KKNQr+   c                    d}t        j                  g dt         j                        }| j                  |      }t	        ||       y )Ns   cnumpy.core._internal
_reconstruct
qcnumpy
ndarray
qK UbRq(KKcnumpy
dtype
qUf4K KRq(KU<NNJJtbU  ?   @  @@  @tb.r  r   r  r  s       r)   test_version1_float32z"TestPickling.test_version1_float32   s6     ^HH)<KKNQr+   c                x    d}t        j                  ddiddig      }| j                  |      }t        ||       y )Ns   cnumpy.core._internal
_reconstruct
qcnumpy
ndarray
qK UbRq(KKcnumpy
dtype
qUO8K KRq(KU|NNJJtb]q(}qUaKs}qUbKsetb.rR   r3   r   r2   r  r  s       r)   test_version1_objectz!TestPickling.test_version1_object  s<     THHsAha)*KKNQr+   c                v    d}t        j                  dgddg      }| j                  |      }t        ||       y )Ns  cnumpy.core.multiarray
_reconstruct
p0
(cnumpy
ndarray
p1
(I0
tp2
S'b'
p3
tp4
Rp5
(I1
(I1
tp6
cnumpy
dtype
p7
(S'V6'
p8
I0
I1
tp9
Rp10
(I3
S'|'
p11
N(S'a'
p12
g3
tp13
(dp14
g12
(g7
(S'V4'
p15
I0
I1
tp16
Rp17
(I3
S'|'
p18
(g7
(S'i1'
p19
I0
I1
tp20
Rp21
(I3
S'|'
p22
NNNI-1
I-1
I0
tp23
b(I2
I2
tp24
tp25
NNI4
I1
I0
tp26
bI0
tp27
sg3
(g7
(S'V2'
p28
I0
I1
tp29
Rp30
(I3
S'|'
p31
(g21
I2
tp32
NNI2
I1
I0
tp33
bI4
tp34
sI6
I1
I0
tp35
bI00
S'\x01\x01\x01\x01\x01\x02'
p36
tp37
b.)r3   r  )rR   r  r4  )r   r  r2   r   r  r  s       r)   test_subarray_int_shapez$TestPickling.test_subarray_int_shape  s9     M	HHk]+>*OPKKNQr+   c                N   t        j                  dggd      }|j                  d      }|j                  j	                  d      |_        |j                  d       t        j                  t        j                  |            }t        |j                  |j                         y )	Nz2015-02-24T00:00:00.000000000zdatetime64[ns]r   r  r6   r  Tinplace)
r#   r  rX  r/   r  r  r   r   r   r   )rT   originaloriginal_byte_reversednews       r)   test_datetime64_byteorderz&TestPickling.test_datetime64_byteorder  s    88=>?GWX!)S!9'='C'C'P'PQT'U$'''5ll6<<(>?@X^^SYY/r+   N)ra   rb   rc   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  rd   r+   r)   r  r    s    [[//14!J  LL=* [[//!3;  =G=G O%*4
	0r+   r  c                  0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestFancyIndexingc                   t        j                  d      }d|d d dgf<   t        |t        j                  dgg             t        j                  d      }d|d d d d dgf<   t        |t        j                  dggg             y )Nr  r  r   rw  r#   rK  r   r  r<  s     r)   	test_listzTestFancyIndexing.test_list  sm    GGFO!aS&	1bhhw/0GGI!Q)1bhh#y12r+   c                   t        j                  d      }d|d d df<   t        |t        j                  dgg             t        j                  d      }d|d d d d df<   t        |t        j                  dggg             y )Nr  r  r  rw  r  r<  s     r)   
test_tuplezTestFancyIndexing.test_tuple(  si    GGFO!T'
1bhhw/0GGI!Q*1bhh#y12r+   c                    t        j                  g d      }t        j                  g dt              }t        ||   t        j                  dg             y )Nr  r   r3   r   r   r2   r#   r  rL  r   rT   r  r  s      r)   	test_maskzTestFancyIndexing.test_mask0  s8    HH\"HH\4(1Q41#/r+   c                   t        j                  g dg dg      }t        j                  ddgt              }t        j                  g dg dgt              }t        j                  g dg dgt              }t        ||   t        j                  g dg             t        ||   t        j                  dd	g             t        ||   t        j                  dg             y )
Nr  r  r   r3   r  r3   r   r   r   r  r2   rW   r  )rT   r  r  m2m3s        r)   
test_mask2zTestFancyIndexing.test_mask25  s    HHlL12HHaVT"XX|\2D9XX|\2D91Q4<.!9:1R5"((Aq6"231R5"((A3-0r+   c                    t        j                  g d      }t        j                  g dt              }d||<   t        |t        j                  g d             y )Nr  r  rW   )r3   rW   r   r   r  r  s      r)   test_assign_maskz"TestFancyIndexing.test_assign_mask>  s<    HH\"HH\4(!1bhh|45r+   c                N   t        j                  g dg dg      }t        j                  ddgt              }t        j                  g dg dgt              }t        j                  g dg dgt              }|j                         }d||<   t	        |t        j                  g dg d	g             |j                         }d||<   t	        |t        j                  g d
g dg             |j                         }d||<   t	        |t        j                  g d
g dg             y )Nr  r  r   r3   r  r  r  rQ   )rQ   rQ   rQ   rQ   )r3   rQ   r   r   )rQ   r   r  r   )r#   r  rL  rX  r   )rT   xorigr  r  r   r  s         r)   test_assign_mask2z#TestFancyIndexing.test_assign_mask2D  s    ,56HHaVT"XX|\2D9XX|\2D9JJL!1bhh6F'GHIJJL"1bhh}'EFGJJL"1bhh|'DEFr+   N)	ra   rb   rc   r  r  r  r  r  r  rd   r+   r)   r  r    s!    330
16Gr+   r  c                      e Zd Zd Zd Zd Zy)TestStringComparec           	     d   t        j                  g d      }t        j                  g d      }t        ||k(  dD cg c]  }||   ||   k(   c}       t        ||k7  dD cg c]  }||   ||   k7   c}       t        ||k  dD cg c]  }||   ||   k   c}       t        ||k\  dD cg c]  }||   ||   k\   c}       t        ||k  dD cg c]  }||   ||   k   c}       t        ||kD  dD cg c]  }||   ||   kD   c}       y c c}w c c}w c c}w c c}w c c}w c c}w N)Thisisexample)r  wasr  ru  r\  rT   g1g2r   s       r)   test_stringzTestStringCompare.test_stringU  s+   XX/0XX0128i%Hiber!uni%HI28i%Hiber!uni%HI28i%Hiber!uni%HI28i%Hiber!uni%HI27I$FIqRURU]I$FG27I$FIqRURU]I$FG &I%H%H%H$F$F#   D
"D
D
.D#
D(
:D-
c                   t        j                  g d      }d}t        ||k(  |D cg c]  }||k(  	 c}       t        ||k7  |D cg c]  }||k7  	 c}       t        ||k  |D cg c]  }||k  	 c}       t        ||kD  |D cg c]  }||kD  	 c}       t        ||k  |D cg c]  }||k  	 c}       t        ||k\  |D cg c]  }||k\  	 c}       y c c}w c c}w c c}w c c}w c c}w c c}w )N)spamspaspammerzand eggsr  r\  )rT   r  r  r  s       r)   
test_mixedzTestStringCompare.test_mixed_  s    XX<=28r%:r!a2gr%:;28r%:r!a2gr%:;27R$8RQVR$8927R$8RQVR$8928r%:r!a2gr%:;28r%:r!a2gr%:; &;%:$8$8%:%:s#   C
C 
'C%
C*
'C/
C4
c           	     d   t        j                  g d      }t        j                  g d      }t        ||k(  dD cg c]  }||   ||   k(   c}       t        ||k7  dD cg c]  }||   ||   k7   c}       t        ||k  dD cg c]  }||   ||   k   c}       t        ||k\  dD cg c]  }||   ||   k\   c}       t        ||k  dD cg c]  }||   ||   k   c}       t        ||kD  dD cg c]  }||   ||   kD   c}       y c c}w c c}w c c}w c c}w c c}w c c}w r
  r\  r  s       r)   test_unicodezTestStringCompare.test_unicodei  s+   XX/0XX0128i%Hiber!uni%HI28i%Hiber!uni%HI28i%Hiber!uni%HI28i%Hiber!uni%HI27Y%GYbebemY%GH27Y%GYbebemY%GH &I%H%H%H%G%Gr  N)ra   rb   rc   r  r  r  rd   r+   r)   r  r  T  s    H<Ir+   r  c                  6   e Zd Zg dZej
                  j                  d ej                  eD  cg c]>  }t        t        t        |       t        |                  dgz   D cg c]  }||f c}@ c}}}}}}        ej
                  j                  dej                  ej                  g      d               Zej
                  j                  dddg      d        Zej
                  j                  dd	d
g      d        Zej
                  j                  dddg      ej
                  j                  dd	d
g      d               Zej
                  j                  dej&                  d	ddfej(                  d
ddfg      d        Zej
                  j                  dd	ej                  fd
ej                  fg      d        Zej
                  j/                  d      ej
                  j                  dddg      d               Zyc c}w c c}}}}}} w )TestArgmaxArgminCommon)rd   rS  r   r2   r  rW  r2   r   r   )r   r   r2   r  )r2   r   r   r3   )r   r   r3   r2   )r   r3   r2   r   )r   )r  rn  z
size, axisNr	  c                   t         j                  j                  |      }|"t        t	        |            D cg c]  }d }}nt        |      }d||<   t        |      } |||      }|j                  |      } |||d      }	t        |	|       t        |	j                  |k(         t        j                  |	j                  |	j                        }
 ||||
d      }t        ||
u        t        |	|
       t	        |      dkD  rqt        |      }|d	||<   nd	|d<   t        j                  ||	j                        }t        j                  t              5   ||j                   ||d       d d d        |"t        t	        |            D cg c]  }d }}nt        |      d d d
   }d||<   t        |      } ||j                   |      }|j                  |      } ||j                   |d      }	t        |	|       t        |	j                  |k(         t        j                  |d d d
   |	j                        }
|
j                   }
 ||j                   ||
d      }t        ||
u        t        |	|
       t	        |      dkD  r1t        j                  t              5   ||d   ||
d       d d d        t	        |      dkD  rrt        |      }|d	||<   nd	|d<   t        j                  ||	j                        }t        j                  t              5   ||j                   ||d       d d d        y y c c}w # 1 sw Y   xY wc c}w # 1 sw Y   xY w# 1 sw Y   y xY w)NrH   r3   r  Tr  keepdimsr   )r  r  r#  r   r2   r5   )r#   rp  normalr   r&   r  r  r   r   r   rF   rA   r/   r   rB  r8   rM  )rT   rH   r  r	  r'   r  	new_shape	_res_origres_origrY  outarrayres1wrong_shapewrong_outarrays                 r)   test_np_argmin_argmax_keepdimsz5TestArgmaxArgminCommon.test_np_argmin_argmax_keepdims{  s    iiD) <$)#d)$45$4q$4I5T
IIdO)$	3T*	$$Y/Std3S(#		Y&'88CIISYY7c(%)+ !S(#t9q=y/K$%D!!"AXXkCNz*suu4*T; +
 <$)#d)$45$4q$4I5T
4R4(IIdO)$	355t,	$$Y/SUU5S(#		Y&'88IddO399=::cee$H%)+ !S(#t9q= z*s1vD$t5 + t9q=y/K$%D!!"AXXkCNz*suu4*T; +* o 60 +* 6* +* +*s/   	L>M	M%MM!MM!M*r   minc                   t         j                  j                  ddd      }t        |d|z         }t        ||      }t	        |j
                        D ]  } ||      } ||      }t        t	        |j
                              }|j                  |       t        t        j                  | |j                   |j                  |g|  k(                y )Nr   r3   )r   rW   r   r  r   r(   )r#   rp  r$  r  r   r   r  remover   r  r  r  )	rT   r	  rR   
arg_method
val_methodr   a_maxminaarg_maxminaxess	            r)   test_allzTestArgmaxArgminCommon.test_all  s    IIQ?3Q/
Q'
qvvA!!}H$Q-Kaff&DKKNBFF8'9{'9'9)4Q)>)>(@ @ A B r+   argmaxargminc                   t        j                  d      }t        ||      }t        j                  dt         j                        }t	        t
        |d|       t        j                  dt         j                        }t	        t
        |d|       t        j                  dt         j                        }t	        t
        |d|       t        j                  dt         j                        } |d|       t        | |d             y )	N)rQ   rW   r?  r   r5   r  r3   rQ   rQ   r  )r#   rK  r  r  r	   r8   r   )rT   r	  rR   r0  r  s        r)   test_output_shapez(TestArgmaxArgminCommon.test_output_shape  s     GGGQ'
ggb(j*b#6ggfBGG,j*b#6 gggRWW-j*b#6ggb(23S*R.)r+   r   r   r3   c                    t        j                  dd|z  z         }t        ||      }t        j                  d|z  t         j                        } |d|      }||u sJ y )Nr   r  r   r   r  r  )r#   rK  r  rA   r7  )rT   r   r	  rR   r0  r  r  s          r)   test_ret_is_outz&TestArgmaxArgminCommon.test_ret_is_out  sW     GGD6$;&'Q'
hhvd{"''2aS)czzr+   znp_array, method, idx, vali6  asiq  0c                \     |dd      }t        ||      }|||<   t         |       |       y )Ni  z<U9r   )r  r   )rT   np_arrayr	  r.  r  r   r0  s          r)   r  z#TestArgmaxArgminCommon.test_unicode  s1     T'Q'
#Z\3'r+   zarr_method, np_methodc                   t         j                  j                  d      }t        ||      }t        j                  dt
              }t        j                  dt
              }t         |d|       ||d|             t        ||       t        j                  dt
              }t        j                  dt
              }t         ||d       |||d             t        ||       y )	Nr  r!  r2   r   r3   r   r   )r  r  )r#   rp  r$  r  r9   r
  r   )rT   r'  	np_methodrR   r0  out1out2s          r)   test_np_vs_ndarrayz)TestArgmaxArgminCommon.test_np_vs_ndarray  s     II&)Q
+
 xx%xx%Z4()Aq$*?@T4  xx%xx%ZDq1qd3	5T4 r+   zreplaces None with NULL.r   zmethod, vals)r6  )rQ   r   )r7  )r   rQ   c                :   t        j                  dd      }t        ||      }t        j                  |j                  j
                  d|j                         t         |       d       |d   |d<   t         |       d       |d   |d<   t         |       d       y )Nr   r,  r   r   r   r3   )r#   rA   r  r  r  r4   r   r   )rT   r	  rx   rR   r0  s        r)   test_object_with_NULLsz-TestArgmaxArgminCommon.test_object_with_NULLs  sz     HHQc"Q'
ahhmmQ1Z\1%Aw!Z\1%Aw!Z\1%r+   )ra   rb   rc   sizesr   r   r   	itertoolschainr  r   r&   r#   r6  r7  r,  r5  r:  r>  r9   rK  r  rG  leaks_referencesrI  ).0rH   r  r   r&   r  s   000000r)   r  r  s  sE   $E [[\?9??= =D D	z3t956$?>A?D @DTl?>A= ,  [[X		299'=>F; ?F;P [[Xu~6
B 7
B [[X(';<* =*& [[VaV,[[X(';< = - [[9
((HdD	)
''8T3	'	)*(*( [[4
BII	
BII		 !!!!& [[!!)C!D[[^			 	&  E	&s>A =s   3H'H2HHr  c                  X   e Zd Zg ddfg ddfg ddfg ddfgZeg ddfg d	dfgz   Z ej                  eej                  ej                  ej                  ej                  f      D  cg c]$  \  }}t        j                  |d   |
      |d   f& c}}}} Ze ej                  eej                  ej                  ej                   ej"                  ej$                  ej&                  f      D  cg c]$  \  }}t        j                  |d   |
      |d   f& c}}}} z   Ze ej                  ddddej(                  gdfdddej(                  dgdfej(                  ddddgdfej(                  dej(                  ddgdfdgdz  ej(                  gz   dfdgdz  ej(                  gz   dfdgdz  ej(                  gz   dfdgdz  ej(                  gz   dfdgdz  ej(                  gz   dff	ej$                  ej&                  f      D  cg c]$  \  }}t        j                  |d   |
      |d   f& c}}}} z   Zedddd edej(                        gdfdddd eej(                  d      gdfddd eej(                  d      dgdfddd edej(                        dgdf edej(                        ddddgdf eej(                  ej(                        ddddgdf eej(                  d       eej(                  d       eej(                  d      gdf eej(                  ej(                         eej(                  d       eej(                  d      gdf eej(                  d       eej(                  d       eej(                  ej(                        gdf edd       edd       edd      gdf edd       edd       edd      gdf edd       edd       edd      gdf ej,                  d       ej,                  d       ej,                  d       ej,                  d       ej,                  d       ej,                  d      gdf ej,                  d       ej,                  d       ej,                  d       ej,                  d       ej,                  d       ej,                  d      gdf ej,                  d        ej,                  d        ej,                  d       ej,                  d        ej,                  d!       ej,                  d"      gdf ej,                  d#       ej,                  d$       ej,                  d        ej,                  d%       ej,                  d&       ej,                  d'      gdf ej.                  dd(       ej.                  dd(       ej.                  d d(       ej.                  dd(      gdf ej.                  d d(      gdz  df edd)*       edd+*       ed,d-*      gdf edd.*       ed/d*       edd)*      gdf ed/d0*       ed/d*       ed/d.*      gdfg d1dfg d2dfg d3dfg d4dfgz   Zej6                  j9                  d5e      d6        Zd7 Zy8c c}}}} w c c}}}} w c c}}}} w )9
TestArgmaxr3   r3   r3   r3   r3   r3   r3   r3   r   r   r   r   r   r   r   r   r   r   r   r   r2   r2   r2   r2   r   r3   r2   r   r   rW   r   r  r  r  r   rW   r   r   r2   r3   r   r3   r2   r   r   r  r  r  r5   r   r3   r2   r   r   r5   r  r  r  r   r3   r2   r   r  r  '   O      1923-04-14T12:43:121994-06-21T14:43:152001-10-15T04:10:321995-11-25T16:02:162005-01-04T03:14:122041-12-03T14:05:03rW   1935-09-14T04:40:111949-10-12T12:32:112010-01-03T05:14:12z2015-11-20T12:20:59z1932-09-23T10:10:13z2014-10-10T03:50:30NaT2015-09-23T10:10:131932-10-10T03:50:302059-03-14T12:43:121996-09-21T14:43:152022-12-25T16:02:161963-10-04T03:14:122013-05-08T18:15:23r   r  daysseconds#   r5      r  rQ   r  )FFFFT)FFFTF)TFFFF)TFTFFr4   c                    |\  }}t               5 }|j                  t        d       t        j                  |      }d d d        t        t        j                  |      |d|z         t        |t        j                  |         d|z         t        j                  |d      }|dz  }t        t        j                  |      |d|z         t        |t        j                  |         |d|z         t        j                  t        j                  |      d      }t        j                  ||f      }|}t        t        j                  |      |d|z         t        |t        j                  |         |d|z         y # 1 sw Y   IxY wNz#invalid value encountered in reducer  r      i  )
r   filterRuntimeWarningr#   r   r   r6  r  r-  rK  )	rT   r4   r'   possupr  rarrrpospadds	            r)   test_combinationszTestArgmax.test_combinations  s*   S CJJ~=?&&+C !
 	RYYs^S$*=S3(#tczB yyc"SyRYYt_dD4K@T"))D/*CEyyc*~~sDk*RYYt_dD4K@T"))D/*CE% !    ,FFc                   t        j                  g dt         j                        }t        t        j                  |      d       |j                  d      }t        t        j                  |      d       t        j                  g dt         j                        }t        t        j                  |      d       |j                  d      }t        t        j                  |      d       t        j                  g dt         j                        }t        t        j                  |      d       |j                  d      }t        t        j                  |      d       t        j                  g dt         j                        }t        t        j                  |      d       |j                  d      }t        t        j                  |      d       y )N)r3      r   r3   rr  )r3      )r3   r8     )r3   r:           )	r#   r  r   r   r6  r  r   r   r   r   s     r)   test_maximum_signed_integersz'TestArgmax.test_maximum_signed_integers  s   HH)9RYYq\1%HHSMRYYq\3'HH+288<RYYq\1%HHSMRYYq\3'HH+288<RYYq\1%HHSMRYYq\3'HH+288<RYYq\1%HHSMRYYq\3'r+   N)ra   rb   rc   usg_datasg_datarK  productr#   rB   r   r   r   r  darrr   r   r   r   r  r   r-  rc  
datetime64timedelta64r   nan_arrr   r   r   rz  r  rN  r   r.  r#   s   0000r)   rP  rP    s:   	6:	%q)	%q)	%q)	H 	%q)	%q) G
 		(HHbiiBII%
 		 151RXXad!$ad+	D
 	'GGRXXrxx2::rzz$
 		 8<q!BHHQqT+QqT2	 D
 	Aq"&&!1%Arvvq!1%ffaAq!1%ffaA&* SE]bffX%u-SE]bffX%u-SE]bffX%u-SF^rvvh&/SF^rvvh&/
 JJ


		 8<q!BHHQqT+QqT2	 D" 
Q1ga(	)1-
Q1gbffa(	)1-
Q72661%q	)1-
Q71bff%q	)1-
!RVV
aAq	)1-
"&&"&&
!1aA	.2
"&&!
gbffa0'"&&!2D	EqI
"&&"&&
!72661#5wrvvq7I	JAN
"&&!
gbffa0'"&&"&&2I	JAN
!Q-A1	6:
!Q-A1	6:
!Q-A1	6:
"---
.
"---
.
"---
.
"---
.
"---
.
"---
.
0
 23	4 "---
.
"---
.
"---
.
"---
.
"---
.
"---
.
0
 23	4 "--

"--

"---
.
"--

"---
.
"---
.
0
 23	4 "---
.
"---
.
"--

"---
.
"---
.
"---
.
0
 23	4 "..C
 
"..C
 
"..
$
"..C
 
" $%	& "..
$	%	)1-
B
'2)F
R
(
*+,	.
B
'A)F
B
'
)*+	-
R
()Q*G
R
(
*+,	. 
,Q/	+Q/	+Q/	*A.q9 9Gv [[VW-F .F.(]

   .)Z
8)Z)Z$rP  c                  X   e Zd Zg ddfg ddfg ddfg ddfgZeg d	dfg d
dfgz   Z ej                  eej                  ej                  ej                  ej                  f      D  cg c]$  \  }}t        j                  |d   |      |d   f& c}}}} Ze ej                  eej                  ej                  ej                   ej"                  ej$                  ej&                  f      D  cg c]$  \  }}t        j                  |d   |      |d   f& c}}}} z   Ze ej                  ddddej(                  gdfdddej(                  dgdfej(                  ddddgdfej(                  dej(                  ddgdfdgdz  ej(                  gz   dfdgdz  ej(                  gz   dfdgdz  ej(                  gz   dfdgdz  ej(                  gz   dfdgdz  ej(                  gz   dff	ej$                  ej&                  f      D  cg c]$  \  }}t        j                  |d   |      |d   f& c}}}} z   Zedddd edej(                        gdfdddd eej(                  d      gdfddd eej(                  d      dgdfddd edej(                        dgdf edej(                        ddddgdf eej(                  ej(                        ddddgdf eej(                  d       eej(                  d       eej(                  d      gdf eej(                  ej(                         eej(                  d       eej(                  d      gdf eej(                  d       eej(                  d       eej(                  ej(                        gdf edd       edd       edd      gdf edd       edd       edd      gdf edd       edd       edd      gdf ej,                  d       ej,                  d       ej,                  d       ej,                  d       ej,                  d       ej,                  d      gdf ej,                  d       ej,                  d       ej,                  d       ej,                  d       ej,                  d       ej,                  d      gd f ej,                  d!       ej,                  d!       ej,                  d       ej,                  d!       ej,                  d       ej,                  d      gdf ej,                  d"       ej,                  d#       ej,                  d!       ej,                  d$       ej,                  d%       ej,                  d&      gdf ej.                  dd'       ej.                  dd'       ej.                  d!d'       ej.                  dd'      gdf ej.                  d!d'      gdz  df ed d()       edd*)       ed+d,)      gdf edd-)       ed.d )       ed d()      gdf ed.d/)       ed.d )       ed.d-)      gdfg d0dfg d1dfg d2dfg d3dfgz   Zej6                  j9                  d4e      d5        Zd6 Zy7c c}}}} w c c}}}} w c c}}}} w )8
TestArgminrQ  r   rR  r   rS  r   rT  r  rU  rV  r   r3   r2   r   r  r  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  z2014-11-20T12:20:59rd  re  rW   rc  rf  rg  rh  ri  rj  r   r  rk  rn  r5   ro  r  rQ   r  )TTTTF)TTTFT)FTTTTFTFTTr4   c                    |\  }}t               5 }|j                  t        d       t        j                  |      }d d d        t        t        j                  |      |d|z         t        |t        j                  |         d|z         t        j                  |d      }|dz  }t        t        j                  |      |d|z         t        |t        j                  |         |d|z         t        j                  t        j                  |      d      }t        j                  ||f      }|}t        t        j                  |      |d|z         t        |t        j                  |         |d|z         y # 1 sw Y   IxY wrq  )
r   rs  rt  r#   r-  r   r7  r  r   rK  )	rT   r4   r'   ru  rv  min_valrw  rx  ry  s	            r)   rz  zTestArgmin.test_combinations  s*   S CJJ~<>ffSkG !
 	RYYs^S$*=S3('4#:F yyc"SyRYYt_dD4K@T"))D/*GTD[Iyyc*~~sDk*RYYt_dD4K@T"))D/*GTD[I% ! r{  c                   t        j                  g dt         j                        }t        t        j                  |      d       |j                  d      }t        t        j                  |      d       t        j                  g dt         j                        }t        t        j                  |      d       |j                  d      }t        t        j                  |      d       t        j                  g dt         j                        }t        t        j                  |      d       |j                  d      }t        t        j                  |      d       t        j                  g dt         j                        }t        t        j                  |      d       |j                  d      }t        t        j                  |      d       y )N)r3   r~  ir}  r   r3   rr  )r3   r  ir  )r3   r  i  r8  )r3   r  l r:  )	r#   r  r   r   r7  r  r   r   r   r   s     r)   test_minimum_signed_integersz'TestArgmin.test_minimum_signed_integers&  s   HH4BGGDRYYq\1%HHSMRYYq\3'HH7rxxHRYYq\1%HHSMRYYq\3'HH7rxxHRYYq\1%HHSMRYYq\3'HH7rxxHRYYq\1%HHSMRYYq\3'r+   N)ra   rb   rc   r  r  rK  r  r#   rB   r   r   r   r  r  r   r   r   r   r  r   r-  rc  r  r  r   r  r   r   r   rz  r  r  s   0000r)   r  r    s:   	6:	%q)	%q)	%q)	H 	%q)	%q) G
 		(HHbiiBII%
 		 151RXXad!$ad+	D
 	'GGRXXrxx2::rzz$
 		 8<q!BHHQqT+QqT2	 D
 	Aq"&&!1%Arvvq!1%ffaAq!1%ffaA&* SE]bffX%u-SE]bffX%u-SE]bffX%u-SF^rvvh&/SF^rvvh&/
 JJ


		 8<q!BHHQqT+QqT2	 D" 
Q1ga(	)1-
Q1gbffa(	)1-
Q72661%q	)1-
Q71bff%q	)1-
!RVV
aAq	)1-
"&&"&&
!1aA	.2
"&&!
gbffa0'"&&!2D	EqI
"&&"&&
!72661#5wrvvq7I	JAN
"&&!
gbffa0'"&&"&&2I	JAN
!Q-A1	6:
!Q-A1	6:
!Q-A1	6:
"---
.
"---
.
"---
.
"---
.
"---
.
"---
.
0
 23	4 "---
.
"---
.
"---
.
"---
.
"---
.
"---
.
0
 23	4 "--

"--

"---
.
"--

"---
.
"---
.
0
 23	4 "---
.
"---
.
"--

"---
.
"---
.
"---
.
0
 23	4 "..C
 
"..C
 
"..
$
"..C
 
" $%	& "..
$	%	)1-
B
'2)F
R
(
*+,	.
B
'A)F
B
'
)*+	-
R
()Q*G
R
(
*+,	. 
)!,	(!,	(!,	)1-q9 9Gv [[VW-J .J,([

r  r  c                      e Zd Zd Zd Zd Zy)
TestMinMaxc                   t        t        j                  t        j                  dd       t        t        j                  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       y )Nr3   r   r  )r	   r#   r  amaxaminr   rS   s    r)   test_scalarzTestMinMax.test_scalar>  s    bllBGGQ2bllBGGQ2RWWQQ'+RWWQQ'+RWWQT*A.RWWQT*A.r+   c                    t        t        j                  t        j                  g dd       t	        t        j                  g dgd      d       y )NrV  r   r3   r  r   )r	   r#   r  r  r   rS   s    r)   	test_axiszTestMinMax.test_axisG  s/    bllBGGY=RWWi[q115r+   c                t   dD ]  }t        j                  d      j                  |      }t        t        j                  |      |d          t        t        j
                  |      |d          d|d<   t        t        j                  |      |d          t        t        j
                  |      |d           y )N)m8[s]zm8[Y]rQ   r   r  rc  r   )r#   r%   r  r   r  r  )rT   r/   rR   s      r)   test_datetimezTestMinMax.test_datetimeK  s    'E		"$$U+AQqT*QqT*AaDQqT*QqT* (r+   N)ra   rb   rc   r  r  r  rd   r+   r)   r  r  <  s    /6+r+   r  c                      e Zd Zd Zy)TestNewaxisc                    t        j                  g d      }d|d d t         j                  f   z  }t        |j	                         d|z         y )N)r   gg?   )r#   r  r  r   ra  )rT   skrY  s      r)   
test_basiczTestNewaxis.test_basicW  s;    XXn%"Q

]##CIIKR0r+   Nra   rb   rc   r  rd   r+   r)   r  r  V  s    1r+   r  c                  6    e Zd Zd Z	 	 ddZd Zd Zd Zd Zy)	TestClipc                    t        t        j                  ||k\               t        t        j                  ||k               y r"   )r   r#   r  )rT   r  cmincmaxs       r)   _check_rangezTestClip._check_range^  s,    qDy!"qDy!"r+   Nc                *   ||}||}t         j                  |   D ]  }t        j                  dk(  rddg}	nddg}	|	D ]  }
t        j                  |      j                  |
      }t         j                  j                  d      |z  j                  |      }|r|j                  |||d       n|j                  ||      }d}
|j                  j                  dk(  rd}
t        |j                  j                  |
       | j                  |||         S )	Nr  =><r   r  r  |)r#   sctypesr  r  r/   r  rp  r  clipr   r  )rT   
type_group	array_maxclip_minclip_maxr  expected_minexpected_maxrM  byte_ordersr  r/   r  s                r)   
_clip_typezTestClip._clip_typeb  s    #L#LJ'A}}("Cj"Cj(	00;YY%%d+i7??F
 FF8Xq(FCx2A #I77$$+ #IQWW..	:!!!\<@# ) (0 r+   c           	        dD ]  }| j                  dddd|       | j                  dddd|       | j                  ddd	d
|       | j                  dddd|       | j                  dddd|       | j                  ddd	d
|d        y )N)FTr     g)gY@r  r   r
  ir^  uint)r  r  )r  )rT   r  s     r)   r  zTestClip.test_basic  s    $GOOueW  >OOq!W  6 OOtT3  9OOtQ7  4 OOaG  5OOdCq  J %r+   c                    t        j                  ddgg d      }|d   j                  dd      }| j                  |dd       y )Nr  r  r  ri  r  r  )r  r  )r/  r  zr  r   r  g333333ӿr  )r#   r  r  r  )rT   r  r/  s      r)   test_record_arrayzTestClip.test_record_array  sA    hh8GIHMM$$!T3'r+   c                b   t        j                  g d      }|j                  d      }t        t        j                  |dk\               |j                  d      }t        t        j                  |dk\               |j                  d      }t        t        j                  |dk               y )NrS  r   )r-  r   )r   )r#   r  r  r   r  )rT   r  r  s      r)   test_max_or_minzTestClip.test_max_or_min  sx    hh/0HHQKqAvHHHOqAvHHHOqAvr+   c                   t        j                  dt         j                  dddt         j                  g      }|j                  dd      }t        j                  dt         j                  dddt         j                  g      }t	        ||       y )	N       r  r  r  r5   r3         r6  )r#   r  r-  r  r   )rT   	input_arrr%  r  s       r)   test_nanzTestClip.test_nan  sb    HHc2663D"&&AB	A&88S"&&#r4@A68,r+   )FNN)	ra   rb   rc   r  r  r  r  r  r  rd   r+   r)   r  r  ]  s*    #
 0537 DJ"( -r+   r  c                      e Zd Zd Zd Zd Zy)TestCompressc                    g dg}t        j                  d      j                  dd      }t        j                  ddg|d      }t	        ||       ddgd	d
gg}t        j                  g d|d      }t	        ||       y r  r  r  s       r)   r  zTestCompress.test_axis  sr    iim##Aq)kk1a&#A.S#1v1vkk/3Q7S#r+   c                    dgdgg}t        j                  d      j                  dd      }t        j                  ddg|d      }t	        ||       y )Nr3   r   rQ   r2   rW   r   r  r  r  s       r)   test_truncatezTestCompress.test_truncate  sI    sQCjiim##Aq)kk1a&#A.S#r+   c                    t        j                  d      j                  dd      }t        j                  ddg|      }t	        |d       y )NrQ   r2   rW   r   r3   r  rT   r'   r  s      r)   r;  zTestCompress.test_flatten  s:    iim##Aq)kk1a&#&S!r+   N)ra   rb   rc   r  r  r;  rd   r+   r)   r  r    s    r+   r  c                  z    e Zd Zd Zd Zd Zej                  j                  dd      d        Z	d Z
d Zd	 Zd
 Zy)TestPutmaskc                x    t        j                  |||       t        ||   t        j                  ||             y r"   )r#   putmaskr   r  )rT   r  rM  maskr  s        r)   	tst_basiczTestPutmask.tst_basic  s+    


1dC QtWbhhsA./r+   c           	        t         t        t        j                  g}t        j                  j	                  d      dz  }|dk  }dD ]   }t        j
                  j                         D ]  }|D ]  }||vs|dk  rDt        j                  |      j                  dk(  r"t        j                  |      j                  dz
  }| j                  |j                         j                  |      |||         t        j                  d      }| j                  |j                  |      |j                  ||j                  |      d d	         y )
Nr   r^  r  )r   r  r   r  c   S3r   )r   r  r#   r  rp  r  r   r/   r  r<  r   r  rX  r  r  )rT   unchecked_typesr  r  r  r   rM  rL  s           r)   test_ip_typeszTestPutmask.test_ip_types  s     #rww/IIT"3&2v C**,A/7rxx{'7'73'>"$((1+//B"6Cqvvxq'91dCH	  - $BNN188B<$Ra8HI !r+   c                r    t        t        t        j                  t        j                  g d      dgd       y )NrV  TrW   )r	   r8   r#   r  r  rS   s    r)   test_mask_sizezTestPutmask.test_mask_size  s!    j"**bhhy.AD61Mr+   r/   r  r  c                    t        j                  g d|      }t        j                  |g dd       t        |g d       y )NrV  r  r5   )r5   r2   r5   r#   r  r  r   rT   r/   r  s      r)   test_byteorderzTestPutmask.test_byteorder  s-    HHY&


1)2.1k*r+   c                v   t        j                  ddgg d      }t        j                  |d   ddgd       t        |d   dd	g       t        |d
   ddg       t        |d   ddg       t        j                  |d
   ddgd       t        |d   dd	g       t        |d
   ddg       t        |d   ddg       y )Nr  r  r  )r/  r  r  r   r  TFrQ   rW   r/  r2   r   r  r   r?  r  )rT   r  s     r)   r  zTestPutmask.test_record_array  s    hh8FH


3s8dE]B/3s8b!W-3s8aV,3s8aV,


3s8dE]B/3s8b!W-3s8b!W-3s8aV,r+   c                `   t        j                  g d      }t        j                  |dd g d|d d        t        |t        j                  g d             t        j                  g d      }t        j                  |dd |d d g d       t        |t        j                  g d             y )	NTFTFr3   r   r  r   )TTFTr  )TTTT)r#   r  r  r   r<  s     r)   test_overlapszTestPutmask.test_overlaps  s    HH/0


1Qq6-q!u5Q!:;<HH/0


1Qq61Ra5"56Q!9:;r+   c                    t        j                  d      }d|j                  _        t	        j
                  t              5  t        j                  ||dk\  d       d d d        y # 1 sw Y   y xY w)NrW   Fr2   r   )r#   r%   rY   rZ   r   rB  r8   r  r   s     r)   r\   zTestPutmask.test_writeable  sG    IIaL!]]:&JJq!q&!$ '&&s    A$$A-c                   t        j                  ddg      }t        j                  |ddgddg       t        |ddg       t        j                  ddg      }t        j                  |ddgddg       t        |ddg       t        j                  ddg      }t        j                  |ddgddg       t        |ddg       t	        j
                  t              5  t        j                  |ddgddg       d d d        y # 1 sw Y   y xY w)Nr   r3   r5   r  )r  r   )r   r  )rR   r   r  )r#   r  r  r   r   rB  r)  r<  s     r)   test_kwargszTestPutmask.test_kwargs   s    HHaV


1q!fr2h'1q"g&HHaV


1Aq62r(31q"g&HHaV


1b"XaV41q"g&]]9%JJB8Aq6: &%%s   DDN)ra   rb   rc   r  r  r  r   r   r   r  r  r  r\   r  rd   r+   r)   r  r    sL    0J$N [[Wn5+ 6+
-<%;r+   r  c                      e Zd Zd Zd Zd Zd Zd Zej                  j                  dd      d        Zd	 Zd
 Zej                  j                  dg d      d        Zy)TestTakec                    t        t        |j                  d               }t        |j	                  |d      |       y )Nr   r  )r  r   rF   r   take)rT   r  r~  s      r)   r  zTestTake.tst_basic  s0    5$%166#A6.2r+   c                   t         t        t        j                  g}t        j                  j	                  d      dz  }d|_        t        j                  j                         D ]\  }|D ]5  }||vs| j                  |j                         j                  |             7 | j                  |j                  d             ^ y )Nr  r^  r  r  )r   r  r#   r  rp  rF   r  r   r  rX  r  )rT   r  r  r   rM  s        r)   r  zTestTake.test_ip_types  s     #rww/IIR $ZZ&&(EO+NN1668??1#56 
 NN188D>* )r+   c                   t         j                  j                  d      dz  }d|_        t        t        |j
                  g dd       t        t        |j
                  dgd       t        |j                  dgd      d   |d	          y )
Nr  r^  r  ru  r   r  r  r5   r3   )r#   rp  rF   r	   r  r  r   r<  s     r)   
test_raisezTestTake.test_raise#  sj    IIR $j!&&)!<j!&&2$Q71662$Q6/2AaD9r+   c                    t         j                  j                  d      dz  }d|_        t        |j	                  dgdd      d   |d          t        |j	                  dgdd      d   |d	          y )
Nr  r^  r  r5   r   r  r  r  r2   r3   r#   rp  rF   r   r  r<  s     r)   	test_clipzTestTake.test_clip*  sj    IIR $1662$QV6<Q?1F1661#AF6;A>!Er+   c                4   t         j                  j                  d      dz  }d|_        t        |j	                  dgdd      d   |d          t        |j	                  d	gdd      d   |d          t        |j	                  d
gdd      d   |d          y )Nr  r^  r  r5   r   r  r  r3   r2   r   r  r<  s     r)   	test_wrapzTestTake.test_wrap0  s    IIR $1662$QV6<Q?1F1661#AF6;A>!E1661#AF6;A>!Er+   r/   r  c                r    t        j                  g d|      }t        |j                  g d      g d       y )NrV  )r   r2   r3   r  )r#   r  r   r  r  s      r)   r  zTestTake.test_byteorder7  s%    HHY&166),i8r+   c                    t        j                  ddgg d      }|j                  dg      }t        |d   dk(  xr |d   d	k(         y )
Nr  r  r  r   r3   r  ri  r/  r  )r#   r  r  r   )rT   r  rec1s      r)   r  zTestTake.test_record_array<  sI    hh8FHxx}S	S 5T#Y#%56r+   c                    t        j                  d      }t        j                  |g d|dd d      }t        |t        j                  g d             y )NrW   rV  r2   r  r  )r#   r%   r  r   r  r  s      r)   test_out_overlapzTestTake.test_out_overlapC  s<    IIaLGGAya!f6:Q+,r+   rF   )r  r  rd   c                    t        j                  d      }t        j                  |t         j                        }t        j                  ||j                        }t        j
                  |||      }||u sJ y )NrW   r   r  )r#   r%   r9   r7  r/   r  )rT   rF   r  indsr  r  s         r)   r>  zTestTake.test_ret_is_outI  sW     IIaLxxRWW-hhuAGG,gga3'czzr+   N)ra   rb   rc   r  r  r  r  r  r   r   r   r  r  r  r>  rd   r+   r)   r  r    sr    3+:FF [[Wn59 697- [[W&89 :r+   r  c                  Z   e Zd Zej                  j                  dej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                   ej"                  g      d        Zd Zd Zd Zd Zy)TestLexsortr/   c                    t        j                  g d|      }t        j                  g d|      }t        j                  ||f      }t        j                  g d      }t        ||       t        ||   t        j                  |             y )Nr3   r2   r3   r   r3   rW   r   r   r   rW   r   r2   r   r   r   r2   r3   r   rW   )r#   r  lexsortr   r$   )rT   r/   rR   r   r.  expected_idxs         r)   r  zTestLexsort.test_basicT  sg     HH'u5HH'u5jj!Q xx 233-1S62771:.r+   c                    t        j                  g d      }t        j                  g dd      }t        j                  ||f      }t        j                  g d      }t        ||       y )Nr  r  rZ  r   r  r#   r  r  r   rT   rR   r   r.  r	  s        r)   r  zTestLexsort.test_mixeda  sM    HH'(HH'?jj!Q xx 233-r+   c                   t        j                  g dd      }t        j                  g dd      }t        j                  ||f      }t        j                  g d      }t        ||       t        j                  g dd      }t        j                  g dd      }t        j                  ||f      }t        j                  g d      }t        ||       y )Nrv  rZ  r   ry  r[  r  r  s        r)   r  zTestLexsort.test_datetimei  s    HHWO4HHWO4jj!Q xx	*3-HHW$45HHW$45jj!Q xx	*3-r+   c           
        t         j                  j                  dd      }t         j                  j                  g dd      }||fD ]J  }t        j                  |j	                  d      f      }t        j
                  |d      }t        ||       L ||f||ffD ]  \  }}t        j                  ||f      }t        |t        j                  |j	                  d      |f             t        |t        j                  ||j	                  d      f             t        j                  |d      t        j                  |d      }}t        |t        j                  ||f              y )	NrQ   r   )abcxywzefghiqwstr  r,  	mergesortr0  r7   r   )r#   rp  choicer  r  r  r   r  )rT   rR   r   r  r  r  r   r.  s           r)   test_objectzTestLexsort.test_objectv  s   IIR&IIFMAA::qxx}./DJJq{3EtU+ 
 FQFNDAq**aV$CsBJJq/A$BCsBJJ188C=/A$BC88AX.(0KqAsBJJ1v$67 #r+   c                    t        j                  ddd      j                  dd      }t        t         j                  t         j
                  |d       y )Nr5  r6  ~   r  r   r2   r  )r#   r  r   r	   r  r  r<  s     r)   test_invalid_axiszTestLexsort.test_invalid_axis  s7    KKB%--b!4bllBJJ:r+   N)ra   rb   rc   r   r   r   r#   rB   r   r   r   r   r   r   r   r  r  r   r  r  r  r  r  rd   r+   r)   r  r  S  s    [[W
"))RYY		
288RXX


BJJ

& 
/
/..8 ;r+   r  c                     e Zd ZdZ ej
                         d        Z ej
                  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ej:                  j=                  ed      d        Z d Z! ej
                  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/d0 Z0d1 Z1d2 Z2d3 Z3d4 Z4d5 Z5y6)7TestIOz.Test tofile, fromfile, tobytes, and fromstringc                   d}t         j                  j                  } ||       ||      j                  t              dz  z   }t         j                  t         j
                  t         j
                   t         j                  g|dd d df<   |S )N)r2   r   r   r  r   r3   )r#   rp  r  rc  r-  inf)rT   rF   rr  r  s       r)   r  zTestIO.x  sg    yyK$u+,,W5::ffbffrvvgrvv6!Q'
r+   stringpath_obj)paramsc              #  R   K   |dz  }|j                   dk(  rt        |      }| y w)Nfiler  )r  r  )rT   tmp_pathrequestfilenames       r)   tmp_filenamezTestIO.tmp_filename  s,     
 f$==H$8}Hs   %'c                    t        j                         t        t        t        j
                  t        j                  d       t	        j                  d      }t        t        fd|       y )Nrb  r  c                &    | j                        S r"   tofile)r  r   s    r)   r  z$TestIO.test_nofile.<locals>.<lambda>  s    !r+   )r  r  r	   OSErrorr#   fromfilerB   rK  )rT   r   r   s     @r)   test_nofilezTestIO.test_nofile  sB     JJLgr{{Arxx<GGAJg4a8r+   c                    t        j                  g dt         j                        }t        j                  ddt         j                        }t	        ||       y )Nr  r   z1 0 -2.3 0.0 sepr/   )r#   r  r`  r   r   )rT   r   r/  s      r)   test_bool_fromstringzTestIO.test_bool_fromstring  s7    HH/rxx@MM.cB1a r+   c                    t        j                  dt         j                  d      }t        j                  ddgt         j                        }t	        ||       y )Nz#9923372036854775807 104783749223640r/  r/   r1  l   *M    M<3} r   )r#   r   r   r  r   r]  s      r)   test_uint64_fromstringzTestIO.test_uint64_fromstring  s@    MM? "		s4HH)?;299M1a r+   c                    t        j                  dt         j                  d      }t        j                  ddgt         j                        }t	        ||       y )Nz-25041670086757 104783749223640r/  r4  le o[r5  r   )r#   r   r   r  r   r]  s      r)   test_int64_fromstringzTestIO.test_int64_fromstring  s?    MM; "c3HHo7rxxH1a r+   c                t    t        j                  ddt         j                  d      }|j                  dk(  sJ y )Nz1,2,r   )r1  r/   countr  )r#   r   r   rF   rh  s     r)   test_fromstring_count0zTestIO.test_fromstring_count0  s*    MM%SBww$r+   c                    t        |d      5 }	 d d d        t        j                  |      }t        |j                  dk(  d       y # 1 sw Y   8xY w)Nr   r   Array not emptyopenr#   r,  r   rH   rT   r&  r  r/  s       r)   test_empty_files_textzTestIO.test_empty_files_text  s@    ,$ %KK%!./ %$s   AAc                    t        |d      5 }	 d d d        t        j                  |d      }t        |j                  dk(  d       y # 1 sw Y   :xY w)Nwbr/  r1  r   r>  r?  rA  s       r)   test_empty_files_binaryzTestIO.test_empty_files_binary  sB    ,% &KK#.!./ &%s   AAc                   t        |d      5 }|j                  |       d d d        t        |d      5 }t        j                  ||j                        }d d d        t        |j                         y # 1 sw Y   VxY w# 1 sw Y   ,xY w)NrD  rbr   )r@  r*  r#   r,  r/   r   r  rT   r  r&  r  r/  s        r)   test_roundtrip_filezTestIO.test_roundtrip_file  se    ,%HHQK & ,%AQWW-A &1aff% &% &%s   A4"B 4A= B	c                    |j                  |       t        j                  ||j                        }t	        ||j
                         y r?  )r*  r#   r,  r/   r   r  )rT   r  r&  r/  s       r)   r  zTestIO.test_roundtrip  s0    	KKAGG41aff%r+   c                    t        j                  |      }|j                  |       t        j                  |d      }t        ||       y )NT)allow_pickle)pathlibPathdumpr#   r  r   )rT   r  r&  r  r/  s        r)   test_roundtrip_dump_pathlibz"TestIO.test_roundtrip_dump_pathlib  s5    LL&	q	GGAD)1a r+   c                ,   |j                         }t        j                  ||j                        }t	        ||j
                         |j                  d      }t        j                  ||j                        }t	        ||j                  d             y )Nr   rZ  )r  r#   r}   r/   r   r  r5  rT   r  r   r/  s       r)   test_roundtrip_binary_strz TestIO.test_roundtrip_binary_str  sb    IIKMM!177+1aff%IIcNMM!177+1aiin-r+   c                    |j                   j                         }dj                  t        t        |            }t        j                  |d      }t        j                  |       }t        ||   ||          t        ||    ||    d       y )N@rE  rW   decimal)
r  ra  r  r  r  r#   r   isfiniter   r   )rT   r  r   r/  nan_masks        r)   test_roundtrip_strzTestIO.test_roundtrip_str  sn    FFLLNHHSa[!MM!%KKN?1X;(4!!XI,8)aHr+   c                    |j                   j                         }dj                  t        t        |            }t        j                  |d      }t        ||       y )NrV  rE  )r  ra  r  r  r  r#   r   r   rS  s       r)   test_roundtrip_reprzTestIO.test_roundtrip_repr  s?    FFLLNHHSq\"MM!%1a r+   c                    |j                  |       d }t        j                  |dd      5 }||_        ||_        t        t        t        j                  ||j                         d d d        y # 1 sw Y   y xY w)Nc                     t        d      )NzCan not tell or seek)r+  ry  s     r)   failz-TestIO.test_unseekable_fromfile.<locals>.fail  s    011r+   rH  r   	bufferingr   )
r*  r  r@  r  tellr	   r+  r#   r,  r/   )rT   r  r&  r`  r  s        r)   test_unseekable_fromfilezTestIO.test_unseekable_fromfile  sW    		2 WW\415AFAF'2;;A 655s   :A00A9c                    |j                  |       t        j                  |dd      5 }t        j                  ||j
                        }t        ||j                         d d d        y # 1 sw Y   y xY w)NrH  r   ra  r   r*  r  r@  r#   r,  r/   r   r  rI  s        r)    test_io_open_unbuffered_fromfilez'TestIO.test_io_open_unbuffered_fromfile  sN    	WW\415AQWW-Aq!&&) 655s   8A++A4c                   t        j                  d      }|j                  |       t        t        j
                  j                  |      |j                         t        |t        j                  |             t        |d      5 }|j                  |j                         |j                  |       t        t        j
                  j                  |      |j                  dz         d d d        t        |d      j                          t        |d      5 }|j                  |       d d d        t        |t        j                  |             t        |d      5 }|j                  |       d d d        t        t        j
                  j                  |      |j                  dz         y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   XxY w)Ni  @ r+br2   r   rN  )r#   r9   r*  r   ospathgetsizer   r   r,  r@  r  close)rT   r&  r   r  s       r)   test_largish_filezTestIO.test_largish_file  s/   HH]#	RWW__\2AHH=1bkk,78,&!FF188HHQK61E '
 	\3%%',%HHQK &1bkk,78,%HHQK &RWW__\2AHHqLA '& &% &%s%   A#F,F8G,F58GGc                    |j                  |       t        j                  |dd      5 }t        j                  ||j
                        }d d d        t        |j                         y # 1 sw Y    xY w)NrH  r5   ra  r   rf  rI  s        r)   test_io_open_buffered_fromfilez%TestIO.test_io_open_buffered_fromfile  sP    	WW\426!AQWW-A 71aff% 76s   "A++A4c                   t         j                  dz  t         j                  t         j                  dz  g}|D ]  }t        |d      5 }|j                  |dz
         |j	                  d       d d d        dD ]s  }d||fz  }t        ||      5 }|j                  d       t        j                  |t        j                  d       |j                         }d d d        t        d	|
       u  y # 1 sw Y   xY w# 1 sw Y   (xY w)Nr   rD  r3       )rH  ri  z%d %sr2   r/   r;  rQ   r   )r  DEFAULT_BUFFER_SIZEr@  r  rv   readr#   r,  r   rc  r   )rT   r&  rJ  rH   r  r  r   ru  s           r)   !test_file_position_after_fromfilez(TestIO.test_file_position_after_fromfile!  s    ''*'''')+ DlD)QtAv * &!T4L0,-FF1IKK1=&&(C . S"g6 & )) .-s   &C0AC<0C9	<Dc                0   t         j                  dz  t         j                  t         j                  dz  g}|D ]C  }d|fz  }t        |d      5 }|j                  |dz
         |j	                  d       |j                  d       |j	                  d       t        j                  dgt
        j                  	      j                  |       |j                         }d d d        t        d
|       t        |d      5 }|j                  d       |j                  dd       t        j                  dgt
        j                  	      j                  |       |j                         }d d d        t        |d|       F y # 1 sw Y   xY w# 1 sw Y   'xY w)Nr   z%drD  r3   rr  rQ   s   12r   r   r   r   ri  r2   )r  rt  r@  r  rv   r#   r  r   r*  rc  r   ru  )rT   r&  rJ  rH   r   r  ru  s          r)   test_file_position_after_tofilez&TestIO.test_file_position_after_tofile5  s1   ''*'''')+ DdWnGlD)QtAvr
!BJJ/66q9ffh * j':lE*aq	q!!BJJ/66q9ffh	 +
 b'2#  *) +*s   BF =A)F F		F	c                "   t        |d      5 }	 d d d        t        |d      5 }t        t        dt        j                  |t
               d d d        t        t        dt        j                  |t
               y # 1 sw Y   kxY w# 1 sw Y   <xY w)Nr   rH  zCannot read into object arrayr   )r@  r   r8   r#   r,  r7   )rT   r&  r  s      r)   test_load_object_array_fromfilez&TestIO.test_load_object_array_fromfileN  sn    ,$ % ,%
,K "Qf> & 	J(GKKV	E %$ &%s   A9'B9BBc           
     $   t        |d      5 }|j                  |       d d d        t        |d      5 }t        j                  ||j                  d      }t        ||j                         d d d        t        |d      5 }t        |j                        dz  }t        |j                        dz  }|j                  j                  |z  }t        j                  ||j                  ||      }t        ||j                  |||z           |j                  j                  }t        j                  ||j                  |      }t        ||j                  ||z   dz   d         d d d        t        |d      5 }|j                  |d	
       d d d        t        |d      5 }t        t        dt        j                  ||j                  d	d       d d d        y # 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   xY w# 1 sw Y   sxY w# 1 sw Y   y xY w)NrD  rH  r   )r/   rK   r   r   )r/   r;  rK   r3   r:  rE  z1'offset' argument only permitted for binary files)r/   r1  rK   )r@  r*  r#   r,  r/   r   r  r&   r@   r   r)  )	rT   r  r&  r  r/  count_itemsoffset_itemsoffset_bytesr  s	            r)   test_fromfile_offsetzTestIO.test_fromfile_offset[  s   ,%HHQK & ,%AQWWQ7Aq!&&) & ,%aff+*Kqvv;!+L77++l:LLA 166,|K'?@
 77++LAQWW\BAq!&&k)A!)C)D"EF &  ,%HHQCH  & ,%GKKQWWA	' &%5 &% &% &%  &% &%s;   G9G! C G.4G:/HG!G+.G7:HHz bug in PyPy's PyNumber_AsSsize_tr   c                J   d }d }t         j                  }	 t        |d      5 }|j                  |       |t        f|t
        ffD ]+  \  }}|t         _        t        |t        j                  |       - 	 d d d        |t         _        y # 1 sw Y   xY w# |t         _        w xY w)Nc                     y)Nr  rd   fds    r)   dup_strz-TestIO.test_fromfile_bad_dup.<locals>.dup_str  s    r+   c                    ddz  S )Nr2   D   rd   r  s    r)   
dup_bigintz0TestIO.test_fromfile_bad_dup.<locals>.dup_bigint  s    b5Lr+   rD  )	rj  dupr@  r*  r)  r+  r	   r#   r,  )	rT   r  r&  r  r  old_dupr  r  excs	            r)   test_fromfile_bad_dupzTestIO.test_fromfile_bad_dup}  s    		 &&	lD)Q")9!5
G7L MHC BF!#r{{A6 !N * BF *) BFs#   B AB	5B 	BB B"c                &   d|vrt        j                  |fi |}nt        j                  |fi |}t        ||       t	        |d      5 }|j                  |       d d d        t        j                  |fi |}t        ||       y # 1 sw Y   ,xY w)Nr1  rD  )r#   r}   r   r   r@  rv   r,  )rT   r   r2  r%  rM  r/  r  s          r)   _check_fromzTestIO._check_from  s{    ?a&2&Aa&2&A1e$(D!QGGAJ "KK'B'1e$ "!s   
BBperiodcommac              #     K   |j                   dk(  rd y|j                   dk(  rt               5  d ddd       yJ |j                          # 1 sw Y   yxY ww)a  
        Including this fixture in a test will automatically
        execute it with both types of decimal separator.

        So::

            def test_decimal(decimal_sep_localization):
                pass

        is equivalent to the following two tests::

            def test_decimal_period_separator():
                pass

            def test_decimal_comma_separator():
                with CommaDecimalPointLocale():
                    pass
        r  Nr  )r  r   )rT   r$  s     r)   decimal_sep_localizationzTestIO.decimal_sep_localization  sL     ( ==H$]]g%(* +* ('--'5 +*s   .AAAAAc           
         | j                  dt        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  g|d       y )Ns3   nan +nan -nan NaN nan(foo) +NaN(BAR) -NAN(q_u_u_x_)r/  rE  )r  r#   r-  rT   r&  r  s      r)   r  zTestIO.test_nan  sL    BVVRVVRVVRVVRVVRVVRVVD	 	 	r+   c           
        | j                  dt        j                  t        j                  t        j                   t        j                  t        j                   t        j                  t        j                   g|d       y )Ns.   inf +inf -inf infinity -Infinity iNfInItY -inFr/  rE  )r  r#   r  r  s      r)   test_infzTestIO.test_inf  sR    =VVRVVbffWbffrvvgrvvwG	 	 	r+   c                2    | j                  dg d|d       y )Ns'   1.234 -1.234 .3 .3e55 -123133.1231e+133)X9v?gX9vg333333?g.LKR?KgY]xr/  rE  r  r  s      r)   test_numberszTestIO.test_numbers  s!    69	 	 	r+   c                X    | j                  dt        j                  g d      |d       y )Ns     ?   @  @@  @r  r  r   )r  r#   r  rT   r&  s     r)   test_binaryzTestIO.test_binary  s*    @HH\"	 	 	r+   c                2    | j                  dg d|d       y )N   1,2,3,4r  r:  rE  r  r  s     r)   r  zTestIO.test_string  s    %5|Mr+   c                    | j                  dg d|dd       | j                  dg d|dd       | j                  dg d|dd       y )	Nr  r  r   r:  )r;  r1  r  r   r5   r  r  s      r)   test_counted_stringzTestIO.test_counted_string  sa    (,aS 	 	Jl! 	 	F(,bc 	 	Kr+   c                <    | j                  dg d|t        d       y )N   1 2  3     4   r  r/  r4  r  r
  r  s     r)   test_string_with_wszTestIO.test_string_with_ws  s!    l#3 	 	Pr+   c                >    | j                  dg d|dt        d       y )Nr  rV  r   r/  )r;  r/   r1  r  r  s     r)   test_counted_string_with_wsz"TestIO.test_counted_string_with_ws  s#    	<q 	 	r+   c                j    | j                  dg d|d       | j                  dg d|t        d       y )Ns   1 , 2 , 3 , 4r  r:  rE  r  r4  )r  r  r  s      r)   
test_asciizTestIO.test_ascii  s@    .# 	 	G(,e 	 	Nr+   c                z    t        t              5  | j                  dddg|d       d d d        y # 1 sw Y   y xY w)Ns   1.234 1,234r  r6  r/  rE  )r
   r   r  r  s      r)   test_malformedzTestIO.test_malformed  s8    ,-\s  D .--s   1:c                2    | j                  dg d|d       y )Ns   1_x_3_x_4_x_5)r3   r   r   rW   _x_rE  r  r  s     r)   test_long_sepzTestIO.test_long_sep  s    lLe 	 	Er+   c                    t        j                  g dt         j                        }| j                  d||dt         j                         y )Nr  r   r  r:  r0  )r#   r  r  r  )rT   r&  r   s      r)   
test_dtypezTestIO.test_dtype  s3    HH\1Q#RWWMr+   c                N   t        j                  g dt         j                        }d}t        |d      5 }|j	                  |       d d d        t        j
                  |dt         j                        }t        |j                  dk(         t        ||       y # 1 sw Y   TxY w)Nr  r   s
   1,0,-2.3,0rD  r:  r0  r  )	r#   r  r`  r@  rv   r,  r   r/   r   )rT   r&  r   r   r  r/  s         r)   test_dtype_boolzTestIO.test_dtype_bool  sq    HH/rxx@,%GGAJ &KK#RXX>31a 	 &%s   BB$c                   t        j                  g dt              }t        |d      5 }|j	                  |d       d d d        t        |d      5 }|j                         }d d d        t        j                  j                  d      D cg c]  }t        |       c}      }t        ||       y # 1 sw Y   vxY w# 1 sw Y   ]xY wc c}w )Ng)\(?r2   gGz@r   r   r   r:  rE  r  )r#   r  r  r@  r*  ru  splitr   )rT   r&  r  r  r  r   r  r/  s           r)   test_tofile_sepzTestIO.test_tofile_sep  s    HH'u5,$HHQCH  %,$A % HH51eAh561Q %$$$ 6s   B3B?C3B<?Cc                "   t        j                  g dt              }t        |d      5 }|j	                  |dd       d d d        t        |d      5 }|j                         }d d d        t        d       y # 1 sw Y   ;xY w# 1 sw Y   "xY w)	Nr  r   r   r:  z%.2f)r1  rH  r  z1.51,2.00,3.51,4.00)r#   r  r  r@  r*  ru  r   )rT   r&  r  r  r  r   s         r)   test_tofile_formatzTestIO.test_tofile_format  sm    HH'u5,$HHQCH/ %,$A %Q-.	 %$$$s   A9B9BBc                &   t        j                  dt              t        d      5 t	        t
        fd       d d d        t        j                         t	        t
        fd       t        j                         y # 1 sw Y   HxY w)NrQ   r   rD  c                 *    j                   d      S )Nr  rE  r)  )r  r  s   r)   r  z,TestIO.test_tofile_cleanup.<locals>.<lambda>  s    188A28+>r+   c                 &    j                         S r"   r)  )r&  r  s   r)   r  z,TestIO.test_tofile_cleanup.<locals>.<lambda>  s    qxx'=r+   )r#   r9   r7   r@  r	   r+  rj  r/  )rT   r&  r  r  s    `@@r)   test_tofile_cleanupzTestIO.test_tofile_cleanup  s_    HHb(,%'#>? & 			, 	g=>
		, &%s   BBc                j   t        j                  dd      j                  ddd      }|j                  |       t        j                  |d      }t        ||       |j                         }t        t              5  t        j                  |d      }t        ||       d d d        y # 1 sw Y   y xY w)Nr  r   r   r2   r   r   z(3,4)i4)
r#   r%   r   r*  r,  r   r  r
   r   r   )rT   r&  r  rY  x_strs        r)   test_fromfile_subarray_binaryz$TestIO.test_fromfile_subarray_binary!  s    IIb%--aA6	kk,i81c"		,---Y7Cq#& .--s   <$B))B2c                   d}t        j                  t              5  t        j                  |dd      }d d d        t        |d      5 }|j                  |       d d d        t        j                  t              5  t        j                  |dd       d d d        y # 1 sw Y   jxY w# 1 sw Y   PxY w# 1 sw Y   y xY w)Na  12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,12,42,13,z(3,)ir:  r4  r   )r   rB  r8   r#   r   r@  rv   r,  )rT   r&  r4   r  r  s        r)   !test_parsing_subarray_unsupportedz(TestIO.test_parsing_subarray_unsupported.  s    ]]:&}}TcBH ' ,$GGDM % ]]:&KKG= '& '& %$ '&s#   B	B*<B6B'*B36B?c                   t        j                  dd      j                  dd      }|j                         }t	        j
                  t              5  t	        j                  t              5  t        j                  |dd       d d d        d d d        |j                  |       t        j                  |dd      }t        ||       y # 1 sw Y   GxY w# 1 sw Y   KxY w)	Ni  r   r   r5   rQ   z(10,)i'  rs  )r#   r%   r   r  r   rB  r8   warnsr   r   r*  r,  r   )rT   r&  r  binaryrY  s        r)   %test_read_shorter_than_count_subarrayz,TestIO.test_read_shorter_than_count_subarray:  s     99XS199"bA!!#]]:&01fHEB 2 ' 	%kk,heD3) 21 '&s$   C+C
C
C	CCN)6ra   rb   rc   r  r   fixturer  r&  r-  r2  r6  r8  r<  rB  rF  rJ  r  rQ  rT  r[  r]  rd  rg  rn  rp  rv  rx  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  rd   r+   r)   r  r    sk   8V^^  V^^Hj12 39!
!!00&&
!.I!
B*B(&7(32E 'D [[(JK L"
% V^^Hg./( 0(6NKP
ND
EN! /	 '
>*r+   r  c                  L   e Zd Zej                  j                  dddg      ej                  j                  deeeg      d               Z	ej                  j                  d e
j                  d      dg      d	        Zd
 Zej                  j                  ed      d        Zy)TestFromBufferr  r  r  r/   c                $   t        j                  |      j                  |      }t         j                  j                  d      dz  j	                  |      }|j                         }t        t        j                  ||      |j                         y )N)r   r  rW   r   )	r#   r/   r  rp  r  r  r   r}   r  )rT   r  r/   rL  r  rI   s         r)   r  zTestFromBuffer.test_basicK  sd     XXe_)))4YYf%)11"5iik2==B7@r+   r   rQ   s   12345678c                N    t        j                  |      }|j                  |u sJ y r"   )r#   r}   r   )rT   r   r  s      r)   test_array_basezTestFromBuffer.test_array_baseS  s"    
 mmC xx3r+   c                h    t        t        j                  d      t        j                  g              y )Nr+   )r   r#   r}   r  rS   s    r)   
test_emptyzTestFromBuffer.test_empty[  s    2==-rxx|<r+   zjPyPy's memoryview currently does not track exports. See: https://foss.heptapod.net/pypy/pypy/-/issues/3724r   c                   t        j                  d      5 }|j                  d       |j                          t	        j                  |j                         d      }t        j                  |t        j                        }t        j                  t              5  |j                          d d d        ~|j                          d d d        y # 1 sw Y   #xY w# 1 sw Y   y xY w)NrD  )r  s   asdfr   r   )tempfileTemporaryFilerv   flushmmapfilenor#   r}   rB   r   rB  BufferErrorrm  )rT   r!  mmr'   s       r)   test_mmap_closezTestFromBuffer.test_mmap_close^  s     ##.#IIgIIK3::<+B--"((3C{+
 ,HHJ /.
 ,+ /.s$   BCC,CC	CC#N)ra   rb   rc   r   r   r   r  r
  rc  r  r#   r%   r  r  r   r   r  rd   r+   r)   r  r  J  s    [[[3*5[[Wuc7&;<A = 6A [[UYRYYr]K$@A B= [[G  HHr+   r  c                  r    e Zd Zd Zd Zd Zd Zej                  j                  e
 d      d        Zd Zy	)
TestFlatc                    t        j                  d      }|j                  dd      }d|_        d|j                  _        || _        |d d dd d df   | _        || _        |d d dd d df   | _	        y )Nr  r   rW   r   Fr2   )
r#   r%   r   rF   rY   rZ   rR   r   ra  rb  )rT   ra  rR   s      r)   rU   zTestFlat.setup_methodp  sn    YYt_JJq!!3Q3!8SqS#A#X,r+   c                    d}	 d| j                   j                  d<   t        |       t        | j                   j                  d   dk(         y # t        $ r d}Y >w xY w)NF      Y@r}  T      (@)rR   r  r8   r   rT   
testpasseds     r)   test_contiguouszTestFlat.test_contiguousz  sV    
	#DFFKKO 	
B4'(  	J	   A AAc                    d}	 d| j                   j                  d<   t        |       t        | j                   j                  d   dk(         y # t        $ r d}Y >w xY w)NFr  r   Tr  )r   r  r8   r   r  s     r)   test_discontiguouszTestFlat.test_discontiguous  sV    
	"DFFKKN 	
A$&'  	J	r  c                4   | j                   j                  j                         }| j                  j                  j                         }| j                  j                  j                         }| j
                  j                  j                         }t        |j                  j                  du        t        |j                  j                  du        t        |j                  j                  du        t        |j                  j                  du        t        |j                  j                  du        t        |j                  j                  du        t        |j                  j                  du        t        |j                  j                  du        y )NFT)
rR   r  r  r   ra  rb  r   rY   rZ   r   )rT   r[  r   r  r  s        r)   test___array__zTestFlat.test___array__  s   FFKK!!#FFKK!!#GGLL""$GGLL""$!!U*+!!U*+!!T)*!!U*+''501''501''501''501r+   Python lacks refcountsr   c                   t        j                  d      t        j                  dg| j                  j                  z        t        j                  dg      d g}t        j
                  t         j                        }t        j                  |      }|D ]  }t        j                  |      }t        d      D ]  }	 | j                  j                  |     t        t        t        j                  |      |z
        dk         t        t        t        j                  |      |z
        dk          y # t        $ r Y w xY w)Nr   Tr^  r  )r#   r7  r  rR   rH   r/   r  r  r   r  r  r   r  )rT   r  indtype
rc_indtyper~  rc_indr  s          r)   test_refcountzTestFlat.test_refcount  s     
BHHdVDFFKK%78"((A3-N((277#__W-
C__S)F3ZFFKK$  
 C,v56;<C0:=>CD 
 " s   :D22	D>=D>c                &   t        j                  d      j                  ddd      j                  }t	        j
                  t              5  d|_        d d d        |D ]  } |j                  |j                  j                  k(  sJ y # 1 sw Y   6xY w)NrQ   r2   r3   rW   )
r#   r%   r   r  r   rB  r  rn  r   rH   )rT   itr  s      r)   test_index_getsetzTestFlat.test_index_getset  sp    YYr]""1a+00]]>*BH + A  xx277<<''' +*s   
BBN)ra   rb   rc   rU   r  r  r  r   r   r   r   r  r  rd   r+   r)   r  r  o  sJ    )(2 [[L(1IJE KE	(r+   r  c                      e Zd Zed        Zd Zed        Zd Zd Zd Z	ed        Z
ed        Zed	        Zd
 Zd Zy)
TestResizec           	     F   t        j                  g dg dg dg      }t        r|j                  dd       n|j                  d       t	        |j
                  d d t        j                  g dg dg dg      j
                         t	        |dd  j
                  d       y )	Nr3   r   r   r   r3   r   r  rW   rW   Frefcheckr  r   )r#   r  r   r  r   r  r<  s     r)   r  zTestResize.test_basic  sx    HHiI67HHVeH,HHV166"1:)Y	:;@@	B1QR5::q)r+   c                |    t        j                  g dg dg dg      }|}t        t        |j                  d       ~y Nr  r  r  )rW   r3   )r#   r  r	   r8   r  r  s      r)   test_check_referencezTestResize.test_check_reference  s/    HHiI67j!((F3r+   c                    t        j                  d      }t        r|j                  dd       n|j                  d       t	        |t        j                  d      dd d f          y )Nr   Fr  r   )r#   r  r   r  r   r<  s     r)   test_int_shapezTestResize.test_int_shape  sG    FF1IHHQH'HHQK1bffQi!n-r+   c                    t        j                  d      }|j                  d        t        |t        j                  d             |j                          t        |t        j                  d             y r  )r#   r  r  r   r<  s     r)   test_none_shapezTestResize.test_none_shape  sG    FF1I	1bffQi(	
1bffQi(r+   c                l   t        d      D ]  }t        j                  d      }|j                  d       t	        |j
                  d       t	        |j                  d       t        j                  d      }|j                  d       t	        |j
                  d       t	        |j                  d        y )NrQ   r  rd   r3   )r   r#   rA   r  r   rF   rH   )rT   r   r  s      r)   test_0d_shapezTestResize.test_0d_shape  sx    rAAHHRL"%#AHHTN$'# r+   c                x   t        t        t        j                  d      j                  d       t        t
        t        j                  d      j                  d       t        t        t        j                  d      j                  d       t        t        t        j                  d      j                  d       y )Nr   hir5   r3   r6   r  )r	   r)  r#   r  r  r8   rS   s    r)   test_invalid_argumentsz!TestResize.test_invalid_arguments  sj    i!1!148j"&&)"2"2B7i!1!1;i!1!1DAr+   c                    t        j                  d      }t        r|j                  dddd       n|j                  ddd       t	        |j
                  dk(         y )Nr   r2   r3   Fr  r-  )r#   r  r   r  r   rF   r<  s     r)   test_freeform_shapezTestResize.test_freeform_shape  sG    FF1IHHQ1uH-HHQ19$%r+   c                   t        j                  d      }t        r|j                  dddd       n|j                  ddd       t	        |d   t        j                  d             t	        |d   t        j
                  d             y )Nr   r2   Fr  r   r3   rW  )r#   r  r   r  r   r9   r<  s     r)   test_zeros_appendedzTestResize.test_zeros_appended  sc    FF1IHHQ1uH-HHQ11Q4+1Q4&!12r+   c                   t        j                  ddt        dfg      }t        r|j	                  dd       n|j	                  d       t        |j                  d       t        |d   d	d  d
       t        |d   d d	 d       y )NrQ   rS  r2   r   r  Fr  )r  r  r   r3   )r#   rK  r7   r   r  r   rF   r   r   s     r)   test_obj_objzTestResize.test_obj_obj  sr     GGBVQ/01HHR%H(HHRMQWWe$1S6"#;*1S6#2;*r+   c                    t        j                  dt              }|d   }|j                  d       |j                  d       y )N)rQ   r   .)r   rQ   )r   r^  )r#   r9   r
  r  )rT   r  x_views      r)   test_empty_viewzTestResize.test_empty_view  s5     HHWc"3ghr+   c                    t        j                  g dg dg dg      }t        j                  |      }t	        t
        |j                  d       ~y r  )r#   r  r  r  r	   r8   r  )rT   r  xrefs      r)   test_check_weakrefzTestResize.test_check_weakref  s7    HHiI67{{1~j!((F3r+   N)ra   rb   rc   r   r  r  r  r  r  r	  r	  r	  r	  r
	  r	  rd   r+   r)   r  r    s    * * . .)
$B & & 3 3 	+ 	+ r+   r  c                  N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)
TestRecordc                    t        j                  dt        fdt        fg      }ddg|_        t        |j                  ddg       y )Nr  r   r  rS  )r#   r/   r  r
  r.  r   rT   rL  s     r)   test_field_renamezTestRecord.test_field_rename  s:    XXU|c3Z01:RXXSz*r+   c                *    d }t        t        |       y )Nc                 2    t        j                  g d       y )N)r  r:  rt   r:  r	  r#   r/   rd   r+   r)   test_dtype_initzGTestRecord.test_multiple_field_name_occurrence.<locals>.test_dtype_init!  s    HH<=r+   r	   r8   )rT   r	  s     r)   #test_multiple_field_name_occurrencez.TestRecord.test_multiple_field_name_occurrence   s    	> 	j/2r+   c                   t        t        t        j                  dt        fg       t        t        t        j                  dt        fg       t        j                  dt        fg      }t        t        |j
                  d       t        j                  g d|      }t        t        |j
                  d       |d   }t        t        |j
                  d       y )Nr}  )r   r}  )r}  r   )r  r  rS  r   r   )r	   r)  r#   r/   r
  r  r  r  )rT   rL  r  r/  s       r)   test_bytes_fieldszTestRecord.test_bytes_fields'  s     	iT3K=9i[#,>+?@XXS)*+i6HH'r2j!--6aDj!--6r+   c                *    d }t        t        |       y )Nc                 2    t        j                  g d       y )N)u   ₹r:  r	  r	  r	  rd   r+   r)   test_dtype_unicodezGTestRecord.test_multiple_field_name_unicode.<locals>.test_dtype_unicode7  s    HHFGr+   r	  )rT   r 	  s     r)    test_multiple_field_name_unicodez+TestRecord.test_multiple_field_name_unicode6  s    	H 	j"45r+   c                    t         j                  j                  j                  dgdggdd      }t	        |d   d   d       t	        |d   d   d       y )Nr   r3   za,bi4,i4r.  r/  rR   r   )r#   r   r   r  r   r<  s     r)   test_fromarrays_unicodez"TestRecord.test_fromarrays_unicode=  sT     GGOO&&S1#JeW ' 6QsVAY"QsVAY"r+   c                    d}t        j                  g d|t        fg      }|j                  |       t	        |d   t        j                  g d             y )Nr   r  r   r6   rV  )r#   r  r
  r$   r   )rT   r  r  s      r)   test_unicode_orderzTestRecord.test_unicode_orderE  sD     HHYc{m4	TQsVRXXi01r+   c                   t        j                  dddddgfg      }t        t        |j                  dd       t        t        |j
                  d       t        t        |d	   j                  d
d       t        t        |d	   j
                  d
       |j                         }t        d	      }d||<   t        ||   d       t        d      }t        t        |j                  |d       t        t        |j
                  |       d|d   |<   t        ||   d       t        t        |d   j                  |d       t        t        |d   j
                  |       t        d      }t        d      }d||   |<   t        ||   |   d       t        t        ||   j                  |d       t        t        ||   j
                  |       t        d      }d||<   t        |d	dg   d   j                         d       t        |dd	g   d   j                         d       t        |d	dg   d   j                         d       t        t        |j                  dd       t        t        |j
                  d       y )Nr  )r8  r   )f2r   f3)sf1r   r   s   f1r3   r8  s   sf1z
not at allr2   r   r+	  r)	  r   r  r  )r2   r  u   Ϡ)r#   r9   r	   r  __setitem__r  rX  r  r   r8   ry  )rT   rR   r   fn1fnnfn3sfn1fn2s           r)   test_field_nameszTestRecord.test_field_namesM  s   HHT,".#'-"9"; < 	j!--:j!--7j!D'"5"5vqAj!D'"5"5v>FFH$i#QsVQ,j!--a8j!--5!S	QsVQj!A$"2"2C;j!A$"2"2C8$i5z#tQsVD\1%j!C&"4"4c1=j!C&"4"4c:$i#Qd|_Q'..0&9Qd|_Q'..0&9Qd|_Q'..0)< 	j!--1=j!--:r+   c                N   t        j                  ddgd      }d|j                  _        t        j                  ddgddg      }d|j                  _        t        j                  ddgd      }d|j                  _        t	        t        |d         t        |d	         k(         t	        t        |d         t        |d         k(         t	        t        |d         t        |d	         k7         t	        t        |d         t        |d         k(  xr |d   |d   k(         y )
Nr  i1,i2r   Fr  )num1r  )num2r  r   r3   )r#   r  rY   rZ   r   r   rf  s       r)   test_record_hashzTestRecord.test_record_hashv  s    HHff%W5!HHff%nn-MN!HHff%W5!QqT
d1Q4j()QqT
d1Q4j()QqT
d1Q4j()QqT
d1Q4j(9QqTQqT\:r+   c                f    t        j                  ddgd      }t        t        t        |d          y )Nr  r4	  r   r   )r#   r  r	   r)  r   r   s     r)   test_record_no_hashzTestRecord.test_record_no_hash  s'    HHff%W5iqt,r+   c                z    t        j                  dgg g g dd       t        j                  g dg g g dd       y )Nrd   r}  r.  r/  r0  r@   r   )rd   rd   rd   rd   rd   ro  rS   s    r)   test_empty_structure_creationz(TestRecord.test_empty_structure_creation  s?    
"rb&(b: 	;
%rb68b.J 	Kr+   c           	         t        j                  dg d      }|ddg   }t        |j                  |u        t        |j                  t        j                  ddgddgdd	gd
      k(         d|d d  t        |d   j                         d       y )Nr   )r   )r   r  )r[  r  r   rR   r[  r   r  r   r   r-  r   )r   r3   rW   )r#   rK  r   r   r/   r   r  )rT   rR   r   s      r)   test_multifield_indexing_viewz(TestRecord.test_multifield_indexing_view  s    GGADEsCjM!288sCj15t12A%8 9 9 	: !QqTYY[),r+   N)ra   rb   rc   r	  r	  r	  r!	  r%	  r'	  r2	  r7	  r9	  r<	  r>	  rd   r+   r)   r	  r	    s;    +
376#2';R
;-K-r+   r	  c                      e Zd Zd Zy)TestViewc                8   t        j                  ddgdt         j                  fdt         j                  fdt         j                  fdt         j                  fg      }|j                  d      }|j                  d      }t	        ||       t	        |d	d
g       y )Nr  r  r  r  r   rR   r   r  ii)r#   r  r   rm   r   )rT   r  r/  r  s       r)   r  zTestView.test_basic  s~    HHlL1 "''NS"''N "''NS"''N<= FFFFF5M1a 1x34r+   Nr  rd   r+   r)   r@	  r@	    s    	5r+   r@	  c                &     | j                   di |S r  )meanrR   rz  s     r)   _meanrE	    s    166>D>r+   c                &     | j                   di |S r  )varrD	  s     r)   _varrH	        155=4=r+   c                &     | j                   di |S r  )stdrD	  s     r)   _stdrL	    rI	  r+   c                      e Zd ZeeegZd Zd Zd Z	d Z
d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zej,                  j/                  dd      d        Zd Zd Zd Zd Zd Zd Zd Zy)	TestStatsc           
        t         j                  j                  t        d             t         j                  j                  d      | _        | j                  d| j                  z  z   | _        t        j                  | j                  j                  D cg c]  }t        t        |             c}      | _
        | j                  j                  dd      | _
        y c c}w )Nr   r   r  r   rW   )r#   rp  rn  r   rmatcmatr  r  r   r  omatr   r  s     r)   rU   zTestStats.setup_method  s    
		uQx II$$V,	IITYY.	HH		G1gd1g.GH	II%%a+	 Hs   Cc                    t        j                  d      dddfD ]b  }t        t        j                  |g      d       t        t        j                  |g      d       t        t        j
                  |g      d       d y )Nr6  r3   y      ?        r5  )r#   r  r   rC	  rK	  rG	  r<  s     r)   test_python_typezTestStats.test_python_type  sY    **R.!R.A!r*b)b) /r+   c                B   t        j                  d      }| j                  D ]{  }dD ]J  } |||d      }t        |j                  |j                  k(         t        |j
                  |   dk(         L dD ]%  } |||d      }t        |j
                  dk(         ' } y )Nr   r`  Tr"  r3   r"   r  )r#   r  funcsr   r   rF   )rT   matr  r  rY  s        r)   test_keepdimszTestStats.test_keepdims  s    ffQiA$6CHH,-		$1,-  $6		V+,  r+   c                x   t        j                  d      }| j                  D ]D  }t        j                  d      } ||d      } ||d|      }t	        ||       t	        ||       F t        j
                  d      }t        t        |d|       t        j
                  d      }t        t        ||d|       y )Nr   r3   r  r=  r2   r4  )r#   r  rV	  r9   r   rA   r	   r8   )rT   rW	  r  r  rN  rY  s         r)   test_outzTestStats.test_out  s    ffQiA((1+CCa.CCaS)CS)S)  hhqkj!Sqc:hhvj!Sqc:r+   c                (   t         j                  d   }t         j                  d   }| j                  D ]  }t        j                  t	        d      gdz  gdz        }|j
                  j                  } ||d      j
                  j                  }t        ||u        t         ||d             }t        |t        u         | j                  D ]  }|D ]  }t        j                  d|      }t         j                  } ||d      j
                  j                  }t        ||u         ||d       j
                  j                  }t        ||u          t        fD ]  }|D ]  }t        j                  d|      }|j
                  j                  } ||d      j
                  j                  }t        ||u         ||d       j
                  j                  }t        ||u          t        t        fD ]  }|D ]  }t        j                  d|      }|j                  j
                  j                  } ||d      j
                  j                  }t        ||u         ||d       j
                  j                  }t        ||u          y )Nr  rD  r3   r   r  r   )r#   r#  rV	  r  r   r/   r  r   r  r   rE	  rH	  rL	  r  )rT   r  r  r  rW	  rN  rY  r[  s           r)   test_dtype_from_inputzTestStats.test_dtype_from_input  s   l+j) A((WQZLN+A-.C))..CCa.&&++CC3Jq4()CC7N#  AffQa(jj!n**//s
#$'--22s
#   AffQa(iinn!n**//s
#$'--22s
#   AffQa(hhnn))!n**//s
#$'--22s
#  r+   c                n   t        j                  d      }| j                  D ]  }t         j                  d   D ]y  }t        j                  |      j
                  } ||d|      j                  j
                  }t        ||u         ||d |      j                  j
                  }t        ||u        {  y )Nr   rD  r3   )r  r/   )r#   r  rV	  r#  r/   r  r   )rT   rW	  r  r[  rN  rY  s         r)   test_dtype_from_dtypezTestStats.test_dtype_from_dtype
  s    ffQi" A\\*-hhqk&&!1-3388s
#$a066;;s
# . r+   c                   t         fD ]]  }t        d      D ]M  }| j                  j                  d   } || j                  d      |z  } || j                  d|      ||z
  z  }O _ t        fD ]  }t        d      D ]  }| j                  j                  d   } || j                  d      t        j                  |      z  } || j                  d|      t        j                  ||z
        z  }t        ||       t        ||         y )Nr   r3   r  r  ddof)rH	  r   rP	  rF   rL	  r#   sqrtr   )rT   r  ra	  r  rN  rY  s         r)   	test_ddofzTestStats.test_ddof%  s    Aaiiooa(		*S0		5tD ! 
 Aaiiooa(		*RWWS\9		5d
8KK#C-#C- ! r+   c           	        | j                   j                  d   }t        t        fD ]  }t	        ||dz         D ]  }t        j                  d      5 }t        j                  d        || j                   d|      }t        |dk  j                                 t        t        |      dkD         t        t        |d   j                  t                     d d d          y # 1 sw Y   xY w)Nr3   r2   Tr   r   r`	  r   )rP	  rF   rH	  rL	  r   r   r   r   r   rJ  r&   r  categoryrt  )rT   r  r  ra	  r   rY  s         r)   test_ddof_too_bigzTestStats.test_ddof_too_big3  s    iiooa Ac37+,,D9Q))(3DIIAD9Cq/0CFQJ'Jqt}}nEF :9 , 99s   BC##C,c                   t        j                  d      }| j                  D ]  }dD ]  }t        j                  d      5 }t        j
                  d       t        t        j                   |||            j                                t        t        |      dkD         t        t        |d   j                  t                     d d d         dD ]]  }t        j                  d      5 }t        j
                  d       t         |||      t        j                  g              d d d        _  y # 1 sw Y   xY w# 1 sw Y   zxY w)	Nr"  r  Tr   r   r  r   r  )r#   r9   rV	  r   r   r   r   r  r  r&   r  re	  rt  r   )rT   r  r  r  r   s        r)   r  zTestStats.test_empty>  s    HHVA!,,D9Q))(3BHHQqt_599;<CFQJ'Jqt}}nEF	 :9 " ,,D9Q))(3 14"((2,? :9  99 :9s   BD8-=E8EEc                |   | j                   | j                  | j                  fD ]  }dD ]=  }|j                  |      }t	        ||      |j
                  |   z  }t        ||       ? dD ]M  }|j                  |      }t	        ||      t        j                  |j
                        z  }t        ||       O  y )Nr`  r  r"   )	rP	  rQ	  rR	  rI  rE	  rF   r   r#   r  rT   rW	  r  rN  rY  s        r)   test_mean_valueszTestStats.test_mean_valuesL  s    IItyy$))4Cgg4g(Cd+ciio=#C-  gg4g(Cd+bggcii.@@#C-  5r+   c                \    t        t        t        j                  dd            dk(         y )Nr  r  r   r3   )r   rE	  r#   rK  rS   s    r)   test_mean_float16zTestStats.test_mean_float16W  s!     	bggfI671<=r+   c                    t        t        j                  j                        5  t        j                  d      j                  d       d d d        y # 1 sw Y   y xY wNrQ   r2   r  )r	   r#   
exceptionsr  r%   rC	  rS   s    r)   test_mean_axis_errorzTestStats.test_mean_axis_error\  s;     2==223IIbMA& 433   &AAc           
        t        j                  d      j                  d      }t        j                  g dg dg dg dg      }t        j                  dgdgdgdgg      }d	dg d
fd|g dfd	|g dfd|g dfg}|D ]k  \  }}}t	        |j                  ||      t        j                  |             t	        t        j
                  |||      t        j                  |             m t        j                  d      j                  d      }t        j                  g d      }	ddgddgg}t	        |j                  d|	      t        j                  |             t	        t        j
                  |d|	      t        j                  |             t        j                  t              5 }
t	        |j                  d	|      t        j                  t         j                  ddt         j                  g             d d d        t        j                  t              5 }
t        |j                  d      t         j                         d d d        t        j                  t              5 }
t        t        j
                  |d      t         j                         d d d        y # 1 sw Y   xY w# 1 sw Y   gxY w# 1 sw Y   y xY w)Nr   )r   r   )FTFTr  )TTFF)FFTTFTr3   )r!        @      #@      +@r   )      @ri        $@r  )r  ri  g      !@g      -@)rv	        @r_  r  r  r2   r2   r   FTTFr!  rs	  rt	  ru	  r2   r  )r#   r%   r   r  r   rC	  r   r  rt  r-  r   rT   rR   r  
wh_partial_casesr  _wh_resa3d_wh_partialr   s              r)   test_mean_wherezTestStats.test_mean_whereb  s+   IIbM!!&)((66668 9 XXw $v $v %w( )
 d12g01g23j"235 %NCdAFF3F7HHTN,BGGACs;HHTN, % iim##I.hh9:c
S$K(a{;	(!;?	( \\.)QAFFF<HHbffc3%?@B * \\.)Qe,bff5 *\\.)Q%0"&&9 *) *) *)))s%   .AJ% +J1,0J=%J.1J:=Kc                   | j                   | j                  | j                  fD ]c  }dD ]\  }t        ||j	                         z  |      }t        ||      }|||j                         z  z
  }t        ||      }t        ||       ^ e y Nr   r3   Nr  )rP	  rQ	  rR	  rE	  r  r  rH	  r   rT   rW	  r  msqrrC	  rN  rY  s          r)   test_var_valueszTestStats.test_var_values  sx    IItyy$))4C$S388:-D9St,TDNN$4443T*#C- % 5r+   )complex_dtypendec))r   r   )r  r  )r@  r  c                   dD ]  }| j                   j                         j                  |      }t        ||j	                         z  |      }t        ||      }|||j                         z  z
  }t        ||      }t        |||        y )Nr	  r  rW  )rQ	  rX  r  rE	  r  r  rH	  r   )	rT   r	  r	  r  rW	  r	  rC	  rN  rY  s	            r)   test_var_complex_valuesz!TestStats.test_var_complex_values  sz     !D)).."))-8Csxxz)5D4(D 000Cs&CS$7 !r+   c                   t        j                  | j                  gdz        }dD ]\  }t        ||j	                         z  |      }t        ||      }|||j                         z  z
  }t        ||      }t        ||       ^ y )Nr   )r   r3   r2   r5   Nr  )r#   stackrQ	  rE	  r  r  rH	  r   r	  s          r)   test_var_dimensionszTestStats.test_var_dimensions  su     hh		{1}%'Dsxxz)5D4(D 000Cs&CS) (r+   c                    | j                   j                         j                  d      }|j                  |j                  j	                               }t        |j                         |j                                y )Nr  )rQ	  rX  r  r/   r  r   rG	  )rT   rQ	  cmat_swappeds      r)   test_var_complex_byteorderz$TestStats.test_var_complex_byteorder  sS     yy~~&&|4{{4::#:#:#<=DHHJ(8(8(:;r+   c                    t        t        j                  j                        5  t        j                  d      j                  d       d d d        y # 1 sw Y   y xY wrn	  )r	   r#   ro	  r  r%   rG	  rS   s    r)   test_var_axis_errorzTestStats.test_var_axis_error  s;     2==223IIbM1% 433rq	  c           	        t        j                  d      j                  d      }t        j                  g dg dg dg dg dg      }t        j                  dgdgdgdgdgg      }d	dg d
fddg dfg}|D ]k  \  }}}t	        |j                  ||      t        j                  |             t	        t        j
                  |||      t        j                  |             m t        j                  d      j                  d      }t        j                  g d      }	ddgddgg}t	        |j                  d|	      t        j                  |             t	        t        j
                  |d|	      t        j                  |             t	        t        j
                  |d|      t        j
                  ||   j                  d      d             t	        t        j
                  |d	|      t        j
                  ||d d d	f      d	             t        j                  t              5 }
t        |j                  d      t         j                         d d d        t        j                  t              5 }
t        t        j
                  |d      t         j                         d d d        y # 1 sw Y   [xY w# 1 sw Y   y xY w)Nr;  r  r  TFTTF)TTFFT)FTTFTFTr   )      I@r	  r	  r	  r	  r3   )r  r  r  r  r  r  r   ry	  rz	  r  r2   rW   r   r  r  )r#   r%   r   r  r   rG	  r   r  rt  r   r-  r{	  s              r)   test_var_wherezTestStats.test_var_where  s/   IIbM!!&)((<<<<<	> ?
 XXw $v $v %w $v	' (

 d56d013$NCdAEEs#E6HHTN,BFF13c:HHTN, % iim##I.hh9:ttTl+Qk:	(s+>	( 	qq8qz11&9B	Dqq
;qAaC1:	<\\.)QU+RVV4 *\\.)Q/8 *) *)))s   1+J6=0K6J?Kc                    | j                   | j                  | j                  fD ]B  }dD ];  }t        j                  t        ||            }t        ||      }t        ||       = D y r	  )rP	  rQ	  rR	  r#   rb	  rH	  rL	  r   ri	  s        r)   test_std_valueszTestStats.test_std_values  sT    IItyy$))4C$ggd3T233T*#C- % 5r+   c           	        t        j                  d      j                  d      d d d   }t        j                  g dg dg dg dg dg      }t        j                  dgdgd	gd	gdgg      }d
d	dt        j                  d      z  fdd	dt        j                  d      z  fd
|t        j                  g d      fd
|dt        j                  d      z  fg}|D ]E  \  }}}t        |j                  ||      |       t        t        j                  |||      |       G t        j                  d      j                  d      }t        j                  g d      }	ddgddgg}t        |j                  d|	      t        j                  |             t        t        j                  |d|	      t        j                  |             t        |j                  d|      t        j                  ||   j                  d      d             t        t        j                  |d|      ||   j                  d      j                  d             t        |j                  d
|      t        j                  ||d d d
f      d
             t        t        j                  |d
|      ||d d d
f      j                  d
             t        j                  t              5 }
t        |j                  d      t         j                         d d d        t        j                  t              5 }
t        t        j                  |d      t         j                         d d d        y # 1 sw Y   [xY w# 1 sw Y   y xY w)Nr;  r  r5   r  )TFTFT)TTFTFr	  FTr   gMH@rW   r3   g'e?)gevT@gfvT @ri  g@g,I\) @rj  r  r   ry	  rz	  r  r2   r	  r  r  )r#   r%   r   r  rK  r   rK	  r   r  rt  r   r-  )rT   rR   whfwhpr}	  r  r~	  r	  r	  r	  r   s              r)   test_std_wherezTestStats.test_std_where  s   IIbM!!%(2.hh88888	: ;
 hh	! " j!-.j!-.XXJKMS!%&
 %NCdAEEs#E6=BFF13c:DA % iim##I.hh9:c
S#J'Qk:	(s+>	( 	1C0qv~~e41=	?qq43.333;	=1C0qQqS{3	5qq43qs8))q)1	3\\.)QU+RVV4 *\\.)Q/8 *) *)))s   "+M'.0M3'M03M<c                    G d dt         j                        } |g dg dgd      }|j                  d      }t        |j                  |j                  k(         |j                  d      }t        |j                  |j                  k(         |j                  d      }t        |j                  |j                  k(         y )Nc                      e Zd Zd Zd Zy)*TestStats.test_subclass.<locals>.TestArrayc                `    t        j                  |      }|j                  |       }||_        |S r"   )r#   r  rm   info)clsr4   r	  r%  s       r)   __new__z2TestStats.test_subclass.<locals>.TestArray.__new__  s)    $S)"r+   c                (    t        |dd      | _        y )Nr	  r  )r  r	  r  s     r)   __array_finalize__z=TestStats.test_subclass.<locals>.TestArray.__array_finalize__  s    #C4	r+   N)ra   rb   rc   r	  r	  rd   r+   r)   	TestArrayr	    s    5r+   r	  r  r  jubbar3   )r#   rE   rC	  r   r	  rK	  rG	  )rT   r	  datrY  s       r)   test_subclasszTestStats.test_subclass  s    	5

 	5 |4g>hhqkCHH$%ggajCHH$%ggajCHH$%r+   N) ra   rb   rc   rE	  rH	  rL	  rV	  rU   rT	  rX	  rZ	  r\	  r^	  rc	  rf	  r  rj	  rl	  rp	  r	  r	  r   r   r   r	  r	  r	  r	  r	  r	  r	  r	  rd   r+   r)   rN	  rN	    s    D$E,*	-;/$b$6.	G@	.>
'":H. [[6 9 
8
8	*<&#9J.*9X&r+   rN	  c                      e Zd Zd Zd Zd Zy)TestVdotc                l   t         j                  d   t         j                  d   z   }t         j                  d   }t        j                  d      }|dz   D ]g  }|j                  |      }t        j                  ||      }t        t        j                  |             t        t        j                  ||      d       i t        j                  d      dz  }|dz   D ]g  }|j                  |      }t        j                  ||      }t        t        j                  |             t        t        j                  ||      d       i t        j                  dt              }t        j                  ||      }t        t        j                  |             t        t        j                  ||      d       y )	NrD  r  rF  r   r,  r  r   T)	r#   r#  r  r  vdotr   isscalarr   rL  )rT   
dt_numeric
dt_complexrR   rL  r   rY  s          r)   r  zTestVdot.test_basic#  s4   \\*-\0JJ
\\),
 FF1Is"BA''!Q-CBKK$%A*	 # FF1INs"BA''!Q-CBKK$%A*	 # FF1D!ggamC !RWWQ]D)r+   c                d   t        j                  ddgddggd      }t        j                  ddgddggd      }t        j                  ||      }t        t        j                  ||      |       t        t        j                  ||      |       t        t        j                  ||      |       y Nr3   r2   r   r   r,   r6   rZ  )r#   r  r	  r   rT   rR   r   rY  s       r)   test_vdot_array_orderzTestVdot.test_vdot_array_order=  s    HHq!fq!f%S1HHq!fq!f%S1ggam 	RWWQ]C(RWWQ]C(RWWQ]C(r+   c           	        dD ]D  }t        j                  |ddf      }t        j                  |ddf      }t        j                  |      |d d ddf<   t        j                  |      dz   |d d ddf<   |d   }|d   }t        t        j                  ||      t        j                  |j                         |j                                      t        t        j                  ||j                               t        j                  |j                         |j                                      t        t        j                  |j                         |      t        j                  |j                         |j                                      t        t        j                  |j                  d      |      t        j                  |j                         |j                                      t        t        j                  ||j                  d            t        j                  |j                         |j                                      G y )N)r2   r   r2   r   r3   .r   rZ  )r#   r9   r%   r   r	  r5  rX  )rT   rH   rR   r   s       r)   test_vdot_uncontiguouszTestVdot.test_vdot_uncontiguousG  s   D$1&A$1&A4AaAgJ41,AaAgJ&	A&	AAaiik:<AFFH-aiik:<1-aiik:<a0aiik:<AFF3K0aiik:<% r+   N)ra   rb   rc   r  r	  r	  rd   r+   r)   r	  r	  "  s    *4)<r+   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d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej4                  j6                  ej4                  j9                  dej<                  ej>                  g       e d      d                      Z!d Z"y)TestDotc                   t         j                  j                  d       t         j                  j                  dd      | _        t         j                  j                  dd      | _        t         j                  j                  d      | _        t         j                  j                  dd      | _        t         j                  j                  d      | _        d| _	        y )Nr  r   r2   r3   r  )
r#   rp  rn  rr  r  rd  b2b3b4rI  rS   s    r)   rU   zTestDot.setup_method_  s    
		s1%))..A&))..#))..A&))..#r+   c                    | j                   }t        j                  |j                         |      }t        j                  ddgddgg      }t        ||| j                         y )Ngh5?gV?g1-?rW  )r  r#   re  r  r  r   rI  )rT   r  rY  rN  s       r)   test_dotmatmatzTestDot.test_dotmatmath  sS    FFffQ[[]A&hhZ0#Z02 3Cdff5r+   c                    | j                   | j                  }}t        j                  ||      }t        j                  dgdgdgdgg      }t        ||| j                         y )NgcLU5?g	?g)XF?gс?rW  )r  rd  r#   re  r  r   rI  )rT   r  rd  rY  rN  s        r)   test_dotmatveczTestDot.test_dotmatveco  sV    2ffQmhhzl#zl4 5Cdff5r+   c                    | j                   | j                  }}t        j                  ||      }t        j                  g d      }t        ||| j                         y )N)gHo?gĊ"?g-P?gNz?rW  )r  r	  r#   re  r  r   rI  )rT   r  r	  rY  rN  s        r)   test_dotmatvec2zTestDot.test_dotmatvec2v  sA    2ffQmhhGHCdff5r+   c                    | j                   | j                  }}t        j                  ||      }t        j                  ddg      }t        ||| j                         y Ngة[?g?rW  )r  r	  r#   re  r  r   rI  rT   r  r	  rY  rN  s        r)   test_dotvecmatzTestDot.test_dotvecmat|  sE    2ffRmhh
J/0Cdff5r+   c                    | j                   | j                  }}t        j                  ||j	                               }t        j
                  g dg      }t        ||| j                         y )N)goc?gTbi\?g2r?gb?rW  )r	  r  r#   re  r  r  r   rI  )rT   r	  r  rY  rN  s        r)   test_dotvecmat2zTestDot.test_dotvecmat2  sK    AffR'hhHIJCdff5r+   c                    | j                   | j                  }}t        j                  |j	                         |      }t        j
                  ddg      }t        ||| j                         y r	  )r  r	  r#   re  r  r  r   rI  r	  s        r)   test_dotvecmat3zTestDot.test_dotvecmat3  sL    2ffQ[[]B'hh
J/0Cdff5r+   c                    | j                   | j                  }}t        j                  ||      }t        j                  ddgddgg      }t        ||| j                         y )NgcQ0?gXO?g5쵨h?g5?rW  rd  r	  r#   re  r  r   rI  rT   rd  r	  rY  rN  s        r)   test_dotvecvecouterzTestDot.test_dotvecvecouter  sO    $''BffRnhhZ0:z2JKLCdff5r+   c                    | j                   | j                  }}t        j                  ||      }t        j                  dgg      }t        ||| j                         y )Ng".!?rW  r	  r	  s        r)   test_dotvecvecinnerzTestDot.test_dotvecvecinner  sD    $''BffRnhh*'Cdff5r+   c                    t        j                  d      }dg}t        j                  ||      }t        j                  g d      }t	        ||| j
                         y )Nr   r3   333333@)r	  r	  r	  rW  )r#   rK  re  r  r   rI  rT   rd  r	  rY  rN  s        r)   test_dotcolumnvect1zTestDot.test_dotcolumnvect1  sC    WWV_UffRnhh'Cdff5r+   c                    t        j                  d      j                         }dg}t        j                  ||      }t        j                  g d      }t        ||| j                         y )Nr	  r  )r  r  r  rW  )r#   rK  r  re  r  r   rI  r	  s        r)   test_dotcolumnvect2zTestDot.test_dotcolumnvect2  sL    WWV_&&(UffRnhh'Cdff5r+   c                N   t         j                  j                  d       t         j                  j                  dd      }t         j                  j                  dd      }t        j                  ||      }t        j
                  g dg      }t        ||| j                         y )Nr^  r3   r   )g#:\?gNp?gwr*a?p<e?rW  r#   rp  rn  rr  re  r  r   rI  r	  s        r)   test_dotvecscalarzTestDot.test_dotvecscalar  sk    
		sYY^^Aq!YY^^Aq!ffRnhhHIJCdff5r+   c                X   t         j                  j                  d       t         j                  j                  dd      }t         j                  j                  dd      }t        j                  ||      }t        j
                  dgdgdgdgg      }t        ||| j                         y )	Nr^  r   r3   r	  gpVȅU?gX;'Ii`?g3Tp?rW  r	  r	  s        r)   test_dotvecscalar2zTestDot.test_dotvecscalar2  sx    
		sYY^^Aq!YY^^Aq!ffRnhhj\:,}MNCdff5r+   c                   g d}g d}t        |t        j                  ||            D ]  \  }\  }}t        j                  |      }t        j                  |      }t        j
                  ||      }t        j                  |      }	t        |j                  |	j                  k(         t        ||	| j                          y )N)rd   r  r  )	rd   r  r  r  rd   r  r  r  r  rW  )
ziprK  r  r#   r9   re  r   rF   r   rI  )
rT   dimsdoutr  dim1dim2rd  r	  rY  rN  s
             r)   r5  zTestDot.test_all  s    !G!$T9+<+<T4+H!IC$$B$B&&R.C((3-CCII*+S$&&9 "Jr+   c                    G fdd      t        j                  ddgddgg      }t        j                  |      }t        j                   ddg       ddg      g      }t        j                   ddg       ddg      g      }t        j                  ||      t        j                  ||      z
  }t        |d   j                  |d   j                         t        |d   j                  |d   j                         y )Nc                  :    e Zd ZddZ fdZ fdZ fdZd Zy)#TestDot.test_vecobject.<locals>.VecNc                @    |g }t        j                  |      | _        y r"   ro  )rT   sequences     r)   rk   z,TestDot.test_vecobject.<locals>.Vec.__init__  s    #!HXXh/
r+   c                R            }| j                   |j                   z   |_         |S r"   r  rT   rh  r  Vecs      r)   __add__z+TestDot.test_vecobject.<locals>.Vec.__add__  #    e JJ4	
r+   c                R            }| j                   |j                   z
  |_         |S r"   r  r	  s      r)   __sub__z+TestDot.test_vecobject.<locals>.Vec.__sub__  r	  r+   c                r     | j                   j                               }|xj                   |z  c_         |S r"   )r  rX  r	  s      r)   rs  z+TestDot.test_vecobject.<locals>.Vec.__mul__  s+    $**//+,		U"	
r+   c                    | |z  S r"   rd   rg  s     r)   __rmul__z,TestDot.test_vecobject.<locals>.Vec.__rmul__  s    Ez!r+   r"   )ra   rb   rc   rk   r	  r	  rs  r	  )r	  s   r)   r	  r	    s    0



"r+   r	  r6  r  r5  r   r3   )r#   r  rd  r  re  r   )rT   
U_non_contU_contr  r9   
zeros_testr	  s         @r)   test_vecobjectzTestDot.test_vecobject  s    	" 	"0 \\B8b"X"67
%%j1HHc2r(mS"b]34#r2h-b"X78VVFA&
A)>>
U1X^^Z]%8%89U1X^^Z]%8%89r+   c                    ddl m} t        j                  ddgddggt              }t        j                  ddgddggt              }t        j                  ddgddggt              } |||      }t        ||       y )	Nr   re  r3   r2   r   r   r   r  )numpy.core.multiarrayre  r#   r  r  r   )rT   re  rR   r   r[  r   s         r)   test_dot_2argszTestDot.test_dot_2args  sq    -HHq!fq!f%U3HHq!fq!f%U3HHq!fq!f%U31I1r+   c                |   ddl m} t        j                  j	                  d       t        j                  j                  d      }t        j                  j                  d      }t        j                  d      }t        d      D ]  } ||||        t        rt        t        j                  |      d        |||d 	      }t        ||       t        | ||||	      u        |d d df   j                         }|d d df   j                         } |||      }t        | ||||      u        t        ||       y )
Nr   r	     r  r   r   r   r  r   r}  r2   r  )r	  re  r#   rp  rn  random_samplerA   r   r   r   r  r  r   r   rX  )rT   re  r  r   r  r   r2s          r)   test_dot_3argszTestDot.test_dot_3args  s    -
		rII##J/II##H-HHZ rA1aL +Q/A4 2q!SA1%%&adGLLNadGLLNAYSAq\!"2q!r+   c                   ddl m} t        j                  j	                  d       t        j                  j                  d      }t        j                  j                  d      }t        j                  d      }t        t        ||||       t        j                  d      }t        t        ||||       t        j                  d      }t        t        ||||       t        j                  d	      }t        t        ||||       t        t        ||||j                         t        j                  d
      }t        t        ||||d d d d df          t        t        ||||d d d df          t        j                  dt        j                        }t        t        ||||       t        j                  dt              }t        t        ||||       y )Nr   r	  r 
  r
  r
  )r  r  )r  )r   )r   r  )r  r   r2   r   r
  r   )r	  re  r#   rp  rn  r
  rA   r	   r8   rM  r  r
  )rT   re  r  r   r  s        r)   test_dot_3args_errorszTestDot.test_dot_3args_errors  sR   -
		rII##J/II##H-HHZ j#q!Q/HHWj#q!Q/HHUOj#q!Q/HHZ j#q!Q/j#q!QSS1HHZ j#q!Qq#A#vY7j#q!Qq#2#vY7HHZrzz2j#q!Q/HHZs+j#q!Q/r+   c                h   t        j                  dt         j                        }t        j                  dt         j                        }t        j                  dt         j                        }|j	                  ||      }t        j
                  ||      sJ t        j
                  ||      sJ y )Nrd   r   rW   r  r#   rK  r  r9   re  array_equalrT   r  r/  r  rY  s        r)   test_dot_out_resultzTestDot.test_dot_out_result"  sw    GGBbjj)GGD

+HHT,eeA1eo~~c1%%%~~a###r+   c                B   t        j                  dt         j                        }t        j                  dt         j                        }t        j                  dt         j                        }|j	                  ||      }d|d<   t        j
                  ||      sJ y )Nrd   r   r

  r  r2   r   r
  r
  s        r)   test_dot_out_aliasingzTestDot.test_dot_out_aliasing*  sl    GGBbjj)GGD

+HHT,eeA1eo!~~c1%%%r+   c                d   t        j                  ddgddggd      }t        j                  ddgddggd      }t        j                  ||      }t        t        j                  ||      |       t        t        j                  ||      |       t        t        j                  ||      |       y r	  )r#   r  re  r   r	  s       r)   test_dot_array_orderzTestDot.test_dot_array_order2  s    HHq!fq!f%S1HHq!fq!f%S1ffQl 	RVVAq\3'RVVAq\3'RVVAq\3'r+   c                v   dddfd	}d } ddt         j                        } ddt         j                        }t        j                  ||       t        j                  ddd	d
      }|D ]  \  }}}}t         j
                  j                  ||      }	t         j
                  j                  |      }
t        j                  |	|
      } ||	|t         j                  |      } ||
|t         j                        } ||||       |	d d d   }t        j                  ||
      }|d d d   } ||||       |d d d d df   }|
d d d   }t        j                  ||      }|d d d d df   }|d d d   } ||||       |dk(  rt        |j                  dd|z  f       nt        |j                  d|z  df       t        |j                  d        |||t         j                        } ||||       |	d d d d df   }t        j                  ||      }|d d d d df   } ||||        ||||        y )Nc                t    |d      }t        j                  |       }t        j                  ||j                  z  |z   t         j                        }|j
                  d   d   }t        |      D ]  }||z   |z  dk(  s n ||||j                  z  z    j                  |      }|j                  | |      S )Nr   r   r4   r6   )	r#   r  r9   r   rB   rC   r   rm   r   )	rF   rG   r/   r0   r   rI  r!  addressrK   s	            r)   aligned_arrayzBTestDot.test_accelerate_framework_sgemv_fix.<locals>.aligned_array>  s    aAA((1qxx<%/rxx@C--f5a8G,f$-2 ' fVAahhJ./4454AC;;uE;22r+   c                B     | j                   |||      }| d d  |d d  |S r"   )rF   )r'   rG   r/   r0   r   r
  s        r)   
as_alignedz?TestDot.test_accelerate_framework_sgemv_fix.<locals>.as_alignedI  s)    #CIIueUCGQGAJNr+   c                J    t        t        j                  | |      |dd       y )Ngh㈵>gHz>)rtolatol)r   r#   re  )r  r   desireds      r)   assert_dot_closezETestDot.test_accelerate_framework_sgemv_fix.<locals>.assert_dot_closeN  s    BFF1aL'4Hr+   r^  r  r  )r  r   )r  )   Y   )r,   rZ  r6   r2   rZ  r   r  )r,   )	r#   r  re  rK  r  rp  rr  r   r   )rT   r
  r
  r  r   testdatarG   r  a_orderA_dX_dr
  A_fX_fA_d_2A_f_2A_d_22X_d_2A_f_22X_f_2X_f_2cA_d_12A_f_12r
  s                          @r)   #test_accelerate_framework_sgemv_fixz+TestDot.test_accelerate_framework_sgemv_fix<  s   		3	
	I #r2::.*b"**5
q!$$XxJO$, E1a))..A&C))..#CffS#&GS%7CCS%4CS#w/!HEffUC(G!HEUC11cc6]F!HEffVU+G1cc6]F!HEVUG4#~V^^aQZ8V^^a!eQZ8-ubjj9FVVW5CaC[FffVU+GCaC[FVVW5VUG4I %-r+   r/   g   ЈB)
free_bytesc                l    t        j                  d|      }t        j                  ||      }|dk(  sJ y )Nid  @r   )r#   rK  re  )rT   r/   r4   rY  s       r)   test_huge_vectordotzTestDot.test_huge_vectordot|  s2     wwy.ffT4 ir+   c                P    G d dt               }t        j                  t              5  t	        j
                   |        |              d d d        t        j                  t              5  t	        j
                  d |              d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)Nc                      e Zd Zd Zy)5TestDot.test_dtype_discovery_fails.<locals>.BadObjectc                    t        d      )Nzjust this tiny mint leafrx  rS   s    r)   r  z?TestDot.test_dtype_discovery_fails.<locals>.BadObject.__array__  s     :;;r+   Nr  rd   r+   r)   	BadObjectr5
    s    <r+   r7
  r  )r7   r   rB  r)  r#   re  )rT   r7
  s     r)   test_dtype_discovery_failsz"TestDot.test_dtype_discovery_fails  sk    	< 	< ]]9%FF9;	, & ]]9%FF3	$ &% &% &%s   !B+BBB%N)#ra   rb   rc   rU   r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r5  r	  r	  r
  r
  r
  r
  r
  r/
  r   r   r  r   r#   r   r  r   r2
  r8
  rd   r+   r)   r	  r	  ^  s    666666666666	::B",0<$&(>5@ [[[[Wrzz2==&AB%  & C  
%r+   r	  c                  D    e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)MatmulCommonz5Common tests for '@' operator and numpy.matmul.

    z?bhilqBHILQefdgFDGOc                    g d}t        j                  | j                  |      D ]R  \  }\  }}t        j                  ||      }t        j                  ||      }t        t        | j                  ||       T y )N)	)r  r  )r  r  )r  r  )r  r	  )r  rd   )rd   r3   )r  rd   )rd   r  )r	  r   r3   r2   r   )rK  r  r   r#   rK  r	   r8   rv  )rT   r	  rL  dm1dm2rR   r   s          r)   test_exceptionszMatmulCommon.test_exceptions  sa    
 (//

DANB
c2&A2&A*dkk1a8 Br+   c                
   g d}t        j                  | j                  |      D ]`  \  }\  }}t        j                  ||      }t        j                  ||      }| j                  ||      }t        |j                  dk(         b | j                  D ]m  }t        j                  d|      }t        j                  d|      }| j                  ||      }t        t        j                  |      j                  dk(         o y )N))r  r2   r3   r3   )rA
  r  )rA
  rA
  r   rA
  r  rd   )	rK  r  r   r#   rK  rv  r   rF   r  )	rT   r	  rL  r=
  r>
  rR   r   rY  r[  s	            r)   test_shapeszMatmulCommon.test_shapes  s     (//

DANB
c2&A2&A++a#CCII*+	 B **BB'AB'AAq!ABHHQK%%+,	 r+   c                   t        j                  d      }t        j                  d      }| j                  D ]  }|j                  |      }|j                  |      }||f||f||ffD ])  } | j                  | }t        |j                  |k(         + |dk7  sb| j	                  ||      }t        t        |      t        j                  |      j                  u         y )Nr  r  r,  )r#   rK  r   r  rv  r   r/   r  )rT   rW	  vecrL  r  r   r(   rY  s           r)   test_result_typeszMatmulCommon.test_result_types  s    ggenggdm**B

2A

2AAAA/!dkk3'		R( 0
 Sykk!Q'S	RXXb\%6%667 r+   c                @   t        j                  dg      }t        j                  ddg      j                  dd      }t        j                  ddg      }| j                  dd  D ]j  }|j	                  |      }|j	                  |      }| j                  ||      }t        ||       | j                  |j                  |      }t        ||       l t        j                  ddgd	
      j                  dd      }| j                  |d d df   |      }t        |d       y )Nr2   r   r   r3   r5   r   r   Tr  r   r   )r#   r  r   r   r  rv  r   rM  )	rT   vec1vec2rN  rL  r4  r5  rY  rD
  s	            r)   test_scalar_outputzMatmulCommon.test_scalar_output  s    xx}xxA''2.hh1v**QR.BRBRB++b"%Cc"++bddB'Cc" ! hhd|3/772>kk#ad)S)S$r+   c                T   t        j                  ddg      }t        j                  ddg      j                  dd      }t        j                  dg      }t        j                  ddgddgg      }| j                  dd  D ]p  }|j	                  |      }|j	                  |      }| j                  ||      }t        ||       | j                  ||j                  dd            }t        ||       r t        j                  d	d	gd
      }	| j                  |	|	      }t        |d	       y )Nr3   r2   r   r   r5   r?  r   r   Tr  r   )r#   r  r   r   r  rv  r   )
rT   rG
  rH
  tgt1tgt2rL  r4  r5  rY  rD
  s
             r)   test_vector_vector_valuesz&MatmulCommon.test_vector_vector_values  s    xxAxxA''A.xx~xx!Q!Q()**QR.BRBRB++b"%Cd#++b"**Q"34Cd# ! hhd|3/kk#s#S$r+   c                ~   t        j                  ddg      }t        j                  ddgddgg      }t        j                  |gdz  d      }t        j                  ddg      }t        j                  |gdz  d      }| j                  dd  D ]q  }|j	                  |      }|j	                  |      }|j	                  |      }	| j                  ||      }
t        |
|       | j                  ||	      }
t        |
|       s t        j                  d	d
g      }t        j                  d	d
gd
d	gg      }t        j                  |gdz  d      }t        j                  d	d
g      }t        j                  |gdz  d      }| j                  ||      }
t        |
|       | j                  ||      }
t        |
|       y )Nr3   r2   r   r   r   r  r  rQ   TFr#   r  r	  r   r  rv  r   rT   rD
  mat1mat2rK
  rL
  rL  r   m1r  rY  s              r)   test_vector_matrix_valuesz&MatmulCommon.test_vector_matrix_values  s}   hh1vxx!Q!Q()xxqq)xxB xxqq)**QR.B

2ARBRB++a$Cd#++a$Cd# ! hhe}%xx$67xxqq)xxu&xxqq)kk#t$S$kk#t$S$r+   c                ~   t        j                  ddg      }t        j                  ddgddgg      }t        j                  |gdz  d      }t        j                  ddg      }t        j                  |gdz  d      }| j                  dd  D ]q  }|j	                  |      }|j	                  |      }|j	                  |      }	| j                  ||      }
t        |
|       | j                  |	|      }
t        |
|       s t        j                  d	d
g      }t        j                  d	d
gd
d	gg      }t        j                  |gdz  d      }t        j                  d	d
g      }t        j                  |gdz  d      }| j                  ||      }
t        |
|       | j                  ||      }
t        |
|       y )Nr3   r2   r   r   r   r  rW   r?  TFrO
  rP
  s              r)   test_matrix_vector_valuesz&MatmulCommon.test_matrix_vector_values  s}   hh1vxx!Q!Q()xxqq)xxB xxqq)**QR.B

2ARBRB++b!$Cd#++b!$Cd# ! hhe}%xx$67xxqq)xxu&xxqq)kk#t$S$kk#t$S$r+   c                   t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  ||gd      }t        j                  ||gd      }t        j                  ddgd	d
gg      }t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  ||gd      }t        j                  ||fd      }	t        j                  ||fd      }
| j                  dd  D ]  }|j	                  |      }|j	                  |      }|j	                  |      }|j	                  |      }| j                  ||      }t        ||       | j                  ||      }t        ||       | j                  ||      }t        ||
       | j                  ||      }t        ||	       | j                  ||      }t        ||        t        j                  ddgddggt         j                        }t        j                  ddgddggt         j                        }t        j                  ||gd      }t        j                  ||gd      }|}|}t        j                  ddgddggt         j                        }t        j                  ||gd      }t        j                  ||fd      }	t        j                  ||fd      }
| j                  ||      }t        ||       | j                  ||      }t        ||       | j                  ||      }t        ||
       | j                  ||      }t        ||	       | j                  ||      }t        ||       y )Nr3   r2   r   r   r   r  r  rQ   r  r 
  r   r   )r#   r  r	  r   r  rv  r   r`  )rT   rQ
  rR
  mat12mat21tgt11tgt12tgt21tgt12_21tgt11_12tgt11_21rL  rS
  r  m12m21rY  s                    r)   test_matrix_matrix_valuesz&MatmulCommon.test_matrix_matrix_values*  s   xx!Q!Q()xx!Q!Q()$A.$A.1b'B8,-1a&1a&)*1a&1a&)*88UEN388UEN388UEN3**QR.BRBRB,,r"C,,r"C ++b"%Ce$++b"%Ce$ ++c2&Ch' ++b#&Ch' ++c3'Ch'- !2 XX1v1v&bhh7XX1v1v&bhh7hhBxa(hhBxa(1a&1a&):88UEN388UEN388UEN3 kk"b!S% kk"b!S%  kk#r"S(# kk"c"S(# kk#s#S(#r+   N)ra   rb   rc   r  r   r?
  rB
  rE
  rI
  rM
  rT
  rV
  rb
  rd   r+   r)   r:
  r:
    s6    
 "E9$-(8 " & 6 6?$r+   r:
  c            	         e Zd Zej                  Zd Zd Zd Z ej                  d      j                  dd      Z
 ej                  d      j                  dd      Z ej                  d	      j                  dd
      dddddf   Z ej                  d      Z ej                  d      Z ej                  d      Zej$                  j'                  dg e
efej(                  e
j(                  fej(                  j+                         e
j(                  fej(                  e
j(                  j+                         fe
e
j(                  fe
j(                  e
fe
ej(                  fee
j(                  feej(                  fej(                  efeefej(                  ej(                  fej(                  j+                         ej(                  fe
edd fedd e
fe
j(                  edd fedd e
j(                  fe
eddd   feddd   e
fe
j(                  eddd   feddd   e
j(                  feedd fedd efej(                  edd fedd ej(                  feeddd   feddd   efej(                  eddd   feddd   ej(                  feej(                  fej(                  efe
efej(                  e
j(                  f      d        Zd Zd Zd Zd Zd Zd Zy)
TestMatmulc                   t        j                  dt              }t        j                  ddgddggt              }t        j                  ||      }d}t        j
                  dt              }| j                  |||       t        |||       d	}t        j
                  dt              }| j                  |||
       t        |||       d}t        j
                  dt         j                        }t        t        || j                  |||
       t        j
                  dt         j                        }| j                  |||
      }t        ||u        t               5 }|j                  t         j                  d       |j!                  |j"                        }d d d        t        ||       y # 1 sw Y   xY w)NrW   r2   r   r3   r   rW   r  zout positional argumentr   zout keyword argumentr  zCannot cast ufunc .* outputr  )r#   rK  r  r  re  r9   rv  r   r   r   r)  r  r   r   rs  ComplexWarningr  r/   )rT   rR   r   rN  r&  r  r[  rv  s           r)   test_out_argzTestMatmul.test_out_argo  sU   GGF%(HHq!fq!f%U3ffQl (hhvU+Aq#3S1 %hhvU+Aqc"3S1 ,hhvRXX.IsDKKA3G hhvR]]3KK1#K&S CJJr(("-#A ! 	1c" ! s   &<F77G c                "   t        j                  d      }t        j                  d      }| j                  ||      j                  dk(  sJ t	        j
                  t        d      5  | j                  |||       d d d        y # 1 sw Y   y xY w)Nr  rw  znon-broadcastabler@  r  )r#   rK  rv  rF   r   rB  r8   r  s      r)   test_empty_outzTestMatmul.test_empty_out  sm     ggi ggi {{3$**i777]]:-ABKKScK* CBBs   'BBc                   t        j                  dt              }t        j                  ddgddggt              }t        j                  ddgt              }t        j                  ||      }t        j                  ||      }t        j                  dt              }| j                  |||d   	      }|j                  |u sJ t        ||       | j                  |||d d d
d
f   	      }t        ||       | j                  ||j                  |d d d
d
f   	      }t        ||       t        j                  dt              }| j                  |||d d dd d f   	      }t        ||       t        j                  dt              }| j                  |j                  |j                  |j                  	      }t        ||       y )Nrf
  r   r3   r   rW   r  )rW   r2   r2   r	  r  r   )rQ   r2   r2   )	r#   rK  r  r  re  rv  r   r   rM  )rT   rR   r   r   rN  tgt_mvr  r[  s           r)   test_out_contiguouszTestMatmul.test_out_contiguous  sq   GGF%(HHq!fq!f%U3HHaV5)ffQl1 ggiu-KK1#f+K.vv}}1c"KK1#aAg,K/1f%KK133C1aLK11f% gggU+KK1#cc1f+K.1c" ggfE*KKQSSceeK,3$r+   g      .@rW   r   g      5@r  g      >@r   Nr2   rw	  rv	  r   r   rz  c                    t        j                  | }t        j                  | }t        ||       t        j                  |d   j	                         |d   j	                               }t        ||       y r  )r#   rv  re  r   rX  )rT   rz  r1r
  r3s        r)   test_dot_equivalentzTestMatmul.test_dot_equivalent  sW    ( YYVVT]RYYtAw||~tAw||~6Rr+   c                V   dd l }t        j                  |j                        }d } | |        |             } | |        |             }| j	                  ||      }|||fD cg c]  }|j                  t               c}\  }}	}
t        |
| j	                  ||	             y c c}w )Nr   c                 F    t         j                  j                  ddd      S )Nr3   r   )rQ   r   r   r!  )r#   rp  rq  rd   r+   r)   random_intsz2TestMatmul.test_matmul_object.<locals>.random_ints  s    99$$Q:$>>r+   )	fractionsr#   	vectorizeFractionrv  r  r  r   )rT   rv
  r  ru
  M1M2M3rR   N1N2N3s              r)   test_matmul_objectzTestMatmul.test_matmul_object  s    LL++,	?{}km,{}km,[[R 24b">A>RDKKB/0 ?s   &B&c                    ddl m} t        j                   |dd       |dd      g      }| j	                  ||      }t        t        |      |u        y )Nr   )rx
  r2   r   rW   r  )rv
  rx
  r#   r  rv  r   r  )rT   rZ  r   rY  s       r)   test_matmul_object_type_scalarz)TestMatmul.test_matmul_object_type_scalar  sD    +HHa!fa!f%&kk!QS	Qr+   c                    t        j                  dt              }t        j                  dt              }t        j                  d      }t	        t        j
                  ||      |       y )Nrn
  r   r"  rW  )r#   rA   r7   r9   r   rv  rf  s       r)   test_matmul_emptyzTestMatmul.test_matmul_empty  sD    HHV6*HHV6*HHV299Q?A.r+   c                     G d d      }t        j                  d |             }t        t              5  t        j                  ||      }d d d        y # 1 sw Y   y xY w)Nc                      e Zd Zd Zy)CTestMatmul.test_matmul_exception_multiply.<locals>.add_not_multiplyc                    | S r"   rd   rg  s     r)   r	  zKTestMatmul.test_matmul_exception_multiply.<locals>.add_not_multiply.__add__      r+   N)ra   rb   rc   r	  rd   r+   r)   add_not_multiplyr
    rk  r+   r
  rW  r#   fullr	   r)  rv  )rT   r
  rR   r   s       r)   test_matmul_exception_multiplyz)TestMatmul.test_matmul_exception_multiply  E    	 	 GGE+-.9%		!QA &%%   AAc                     G d d      }t        j                  d |             }t        t              5  t        j                  ||      }d d d        y # 1 sw Y   y xY w)Nc                      e Zd Zd Zy)>TestMatmul.test_matmul_exception_add.<locals>.multiply_not_addc                    | S r"   rd   rg  s     r)   rs  zFTestMatmul.test_matmul_exception_add.<locals>.multiply_not_add.__mul__  r
  r+   N)ra   rb   rc   rs  rd   r+   r)   multiply_not_addr
    rk  r+   r
  rW  r
  )rT   r
  rR   r   s       r)   test_matmul_exception_addz$TestMatmul.test_matmul_exception_add  r
  r
  c                   t        j                  ddgddggt              }t        j                  |j	                  t         j
                              dk(  sJ t        j                  ||      }t        j                  |j	                  t         j
                              dk(  sJ t         j                  j                  t         j                  j                  d            }|j                  ddt         j                        }|j                  dd	      dkD  }t        j                  ||j                  d	d            }t        j                  ||j                  d	d            }t        ||       t        j                  t        j                  d
t              t        j                  dt                    }t        j                   |      rJ y )Nr3   r   r   r  r2   r   ro  r   rW   )r2   r   )r#   r  rL  r   rm   rB   rv  rp  default_rngPCG64integersr   r   re  r   r9   rJ  )rT   rR   r   rgr   rE  rF  r[  s           r)   test_matmul_boolzTestMatmul.test_matmul_bool  s8   HHq!faV_D1vvaffRXX&'1,,,IIaOvvaffRXX&'1,,,YY""299??2#67KK277K3IIaOayyAIIaO,vva1a)T4 IIbhhvT2BHHQd4KL66!9}9r+   )ra   rb   rc   r#   rv  rh
  rj
  rm
  r%   r   rS
  r  r   vcvrr9   m0r   r   r   rM  rX  rr
  r
  r
  r
  r
  r
  r
  rd   r+   r)   rd
  rd
  l  s   YYF#>+%6 
3		1	%B	3		1	%B	3		1	%a1f	-B	3B	2B	&	B[[V &
H&
ttRTTl&
%'TTYY["$$$7&
:<$$		9L&
 J	&
 r
	&
 &(J	&
 24RTT
	&

 J&

 r
&
 H&
 ttRTTl&
 &(TTYY["$$$7&
 BQL&
 bq62,&
 *,r"1v&
 :<BQ&
 CaCM&
 ssGR=&
 ,.44CaC/&
 =?ssGRTT?&
 BQL&
 bq62,&
 *,r"1v&
 :<BQ&
 CaCM&
 ssGR=&
 ,.44CaC/&
 =?ssGRTT?&
" J#&
" r
#&
" &(H#&
" 02ttRTTl#&
 &'&1 /  r+   rd
  c                  8    e Zd ZddlZej                  Zd Zd Zy)TestMatmulOperatorr   Nc                     G d d      } |       }t        j                  d      }t        | j                  ||      d       t        | j                  ||      d       y )Nc                      e Zd ZdZd Zd Zy):TestMatmulOperator.test_array_priority_override.<locals>.Ar   c                     yNr  rd   rg  s     r)   
__matmul__zETestMatmulOperator.test_array_priority_override.<locals>.A.__matmul__      r+   c                     yr
  rd   rg  s     r)   __rmatmul__zFTestMatmulOperator.test_array_priority_override.<locals>.A.__rmatmul__   r
  r+   N)ra   rb   rc   r  r
  r
  rd   r+   r)   r  r
    s    !%r+   r  r2   )r#   rK  r   rv  )rT   r  rR   r   s       r)   test_array_priority_overridez/TestMatmulOperator.test_array_priority_override  sL    	 	 CGGAJT[[A&,T[[A&,r+   c                   t        t        | j                  t        j                  d      t        j                  d             t        t        | j                  t        j
                  d      t        j
                  d             t        t        | j                  t        j                  d      t        j
                  d             y )NrW   s   abcrQ   )r	   r)  rv  r#   r   r  r%   rS   s    r)   test_matmul_raisesz%TestMatmulOperator.test_matmul_raises(  sh    ibggaj"''!*EibggforwwvOibiimRWWV_Mr+   )ra   rb   rc   r>   rv  r
  r
  rd   r+   r)   r
  r
    s    __F- Nr+   r
  c                     e Zd Zi Zej
                  D ]S  Zej
                  D ]B  Z ej                  ee      s ej                  e       ej                  e      fee de <   D U ej                  j                  dej                         e      dd       Zddddd	d
ddddddddZej                  j                  dej                         e      dd       Zy)TestMatmulInplace-zdtype1,dtype2idsc                   t        j                  d      j                  dd      j                  |      }t	        |      }t        j
                  d|      }||z  }||z  }t	        |      |k(  sJ |j                  |k(  sJ |j                  dk(  sJ |j                  dv r!t         j                  j                  ||       y t         j                  j                  ||       y )NrQ   rW   r2   r4  r   rf
  fc)r#   r%   r   r  r0  rK  r/   rF   r  testingr   r   )rT   dtype1dtype2rR   a_idr   r  s          r)   r  zTestMatmulInplace.test_basic5  s    IIbM!!!Q'..v6!uGGF&)!e	Q!u}}ww&   ww&   ;;$JJ&&q#.JJ))!S1r+   ))r  rQ   r   ))r  rQ   rQ   r3   rQ   rQ   )rS  rS  )rW  rS  )rS  rW  )rW  r	  ))r3   r   rW  )r  )r3   r   r3   )r  rY  )r  )r   r   r3   )rY  r  ))r   r3   r   r  ))r3   r3   r   r  )2d_large3d_large1d2d_1d1d_2d2d_broadcast2d_broadcast_reverse3d_broadcast13d_broadcast23d_broadcast33d_broadcast_reverse13d_broadcast_reverse23d_broadcast_reverse3za_shape,b_shapec                   t        j                  |      }t        j                  |      j                  |      j	                  t         j
                        }t        |      }t        j                  |      }t        j                  |      j                  |      }||z  }|j                  |k7  r(t        j                  t              5  ||z  }d d d        y ||z  }t        |      |k(  sJ |j                  j                  t         j
                  k(  sJ |j                  |k(  sJ t         j                  j                  ||       y # 1 sw Y   y xY wr"   )r#   r  r%   r   r  r   r0  rF   r   rB  r8   r/   r  r
  r   )	rT   a_shapeb_shapea_sizerR   r
  b_sizer   r  s	            r)   rB
  zTestMatmulInplace.test_shapesV  s    !IIf%%g.55bjjA!u!IIf%%g.!e99z*Q +FA!u}}ww||rzz)))ww'!!!


""1c* +s   EEN)r
  np.dtyper
  r
  returnNone)r
  tuple[int, ...]r
  r
  )ra   rb   rc   DTYPESr:
  r   r   r  r#   r  r/   r   r   r   r   r  SHAPESrB
  rd   r+   r)   r
  r
  .  s    F##Ar{{1a &.bhhqk8288A;%?!AaSz" $  
 [[_fmmo6J2 K2" ,2( 0///!7!7!7F  [[.VL+ M+r+   r
  c                    t        j                  d      j                  ddd      } t        j                  | | g d      }|j                  dk(  sJ t        j                  | | g d      }|j                  d	k(  sJ t        j
                  |d
d      }t        ||       t        j                  | t        j                  d      g d      }|j                  dk(  sJ y )Nr   r   r   rW   )r  r5   r5   r  r  )r4  )r   r   r   )r
  r
  r`  )r   r   r   r   r2   ))r3   r   r   r   r   )r#   r%   r   rv  rF   r  r   )rR   r[  r   r  r  s        r)   test_matmul_axesr
  m  s    
		%  Aq)A
		!Q9:A77i
		!Q9:A77i
Aq!Aq!
		!RYYq\(:;A77fr+   c                  *    e Zd Zd Zd Zd Zd Zd Zy)	TestInnerc                    d}t        j                  dd      }t        t        t         j                  ||       t        t        t         j                  ||       y ri  )r#   r  r	   r)  r  rj  s      r)   test_inner_type_mismatchz"TestInner.test_inner_type_mismatch{  s;    HHU%(i1a0i1a0r+   c                z   t         j                  d   t         j                  d   z   dz   D ]  }t        j                  d|      d   }t        j                  ddg|      }t        j                  dd	g|      }t        t        j                  ||      |       t        t        j                  ||      |        y )
Nr  rD  r  r   r   rd   r3   r2   r   )r#   r#  r  r   r  )rT   rL  scarD
  r
  s        r)   test_inner_scalar_and_vectorz&TestInner.test_inner_scalar_and_vector  s    ,,|,r||J/GG#MB((1B'+C((Aq6,Chh1vR0G#s+W5#s+W5 Nr+   c                    t        j                  dt         j                        }t        j                  ||      }t	        |dd       y )N)r3   rb  r  r   r  rW  )r#   r9   r   r  r   )rT   rR   r  s      r)   test_vecselfzTestInner.test_vecself  s3     HH7"**5HHQNAq"-r+   c                   t         j                  d   t         j                  d   z   dz   D ]  }t        j                  ddgddgg|      }t        j                  ddgddgg|      }t        j                  ddg|      }t        j                  dd	g|      }t        t        j                  |j
                  |      |       t        t        j                  ||j
                        |       t        t        j                  ||      |       t        t        j                  ||      |       t        j                  d
dgddgg|      }t        t        j                  ||      |       t        j                  ddgddgg|      }t        t        j                  ||      |       t        t        j                  ||j                               |       t        j                  d      j                  |      }|d d d   }t        j                  d|      j                         }t        t        j                  ||      |        y )Nr  rD  r  r3   r2   r   r   r   r   r  rQ   r  r 
  rW   r?  r;  r5   )
r#   r#  r  r   r  rM  rX  r%   r  r  )rT   rL  r  rt   r,   r
  rR   r   s           r)   ,test_inner_product_with_various_contiguitiesz6TestInner.test_inner_product_with_various_contiguities  s   ,,|,r||J/GG#MB1a&1a&)4A1a&1a&)4A!Qr*Ahh1vR0G!##q)73!QSS)73!Q1!Q1hhB"b2"=G!Q1hhB"b2"=G!Q1!QVVX.8		!##B'A$B$Ahhr,113G!Q1+ Nr+   c           	        t         j                  d   t         j                  d   z   dz   D ]  }t        j                  d      j                  ddd      j	                  |      }t        j                  dd      j                  ddd      j	                  |      }t        j
                  g d	g d
gg dg dgg dg dggg dg dgg dg dgg dg dggg      j	                  |      }t        t        j                  ||      |       t        t        j                  ||      j                  dddd      |        y )Nr  rD  r  r  r2   r   r   0   )         )      i  )i6  i  i  )i>  i  i  )i  if  i  )i  i.  i  )if  i>  i  )i  i  i	  )i  i  i.	  )iF
  i^  iv  )i  i	  iF  )i  i  iN  r   r3   )	r#   r#  r%   r   r  r  r   r  r  )rT   rL  rR   r   r
  s        r)   test_3d_tensorzTestInner.test_3d_tensor  s,   ,,|,r||J/GG#MB		"%%a!,33B7A		"b!))!Aa077;Ahh%%' &%' &%'( &%' &%' &%'()$ fRj% & !Q1!Q11!Aa:GD/ Nr+   N)ra   rb   rc   r
  r
  r
  r
  r
  rd   r+   r)   r
  r
  y  s    16.22Er+   r
  c                  N   e Zd Zd Zd Zd Zd Zej                  j                  dd e
j                  dge
j                        fd	 e
j                  dge
j                        fd
 e
j                  d      fd
 e
j                  dge
j                        fg      d        Zy)
TestChoosec                .   dt        j                  dt              z  | _        dt        j                  dt              z  | _        dt        j                  dt              z  | _        dt        j                  dt              z  | _        g d| _        y )Nr2   rS  r   r   r  r  )r#   rK  r
  r  r/  r  r  r~  rS   s    r)   rU   zTestChoose.setup_method  se    2774s++2774s++BGGF#..BGGF#..r+   c                    t        j                  | j                  | j                  | j                  f      }t        |g d       y Nr  )r#   r  r~  r  r/  r   r  s     r)   r  zTestChoose.test_basic  s-    IIdhh 01Q	"r+   c                    t        j                  | j                  | j                  | j                  f      }t        |g dg dg       y r
  )r#   r  r~  r  r  r   r  s     r)   test_broadcast1zTestChoose.test_broadcast1  s2    IIdhh$'' 23QI./r+   c                    t        j                  | j                  | j                  | j                  f      }t        |g dg dg       y r
  )r#   r  r~  r  r  r   r  s     r)   test_broadcast2zTestChoose.test_broadcast2  s2    IIdhh 12QI./r+   r  r   r3   r   r5   r6  r   c                t    t        j                  | }t        j                  dg|      j                  |k(  sJ y r	  )r#   rL  r  r/   )rT   r  expected_dts      r)   test_output_dtypezTestChoose.test_output_dtype  s3     nnc*yy!c"((K787r+   N)ra   rb   rc   rU   r  r
  r
  r   r   r   r#   r  rB   r  r
  rd   r+   r)   r
  r
    s    #00 [[U
!BHH-	.
hbhhs"((+	,
jbjjm	
hbhhs"**-	.	02
92
9r+   r
  c                  *    e Zd Zd Zd Zd Zd Zd Zy)
TestRepeatc                |    t        j                  g d      | _        | j                  j                  d      | _        y )Nr	  r  )r#   r  r  r   r  rS   s    r)   rU   zTestRepeat.setup_method  s'    ,-ffnnV,r+   c                d    t        j                  | j                  g d      }t        |g d       y )Nr
  r  r#   r  r  r   r  s     r)   r  zTestRepeat.test_basic  s&    IIdff01Q ( 	)r+   c                `    t        j                  | j                  d      }t        |g d       y )Nr2   r  r
  r  s     r)   r
  zTestRepeat.test_broadcast1  s%    IIdffa Q + 	,r+   c                    t        j                  | j                  ddgd      }t        |g dg dg dg       t        j                  | j                  g dd      }t        |g dg d	g       y )
Nr2   r3   r   r  rV  r  r  r  r  r#   r  r  r   r  s     r)   test_axis_speczTestRepeat.test_axis_spec  s`    IIdkkAq62Q""$ 	% IIdkk915Q++- 	.r+   c                    t        j                  | j                  dd      }t        |g dg dg dg dg       t        j                  | j                  dd      }t        |g dg dg       y )	Nr2   r   r  rV  r  r3   r  r  r
  r  s     r)   r
  zTestRepeat.test_broadcast2  s_    IIdkk11-Q"""$ 	%
 IIdkk11-Q++- 	.r+   N)ra   rb   rc   rU   r  r
  r
  r
  rd   r+   r)   r
  r
    s    -)
,
.	.r+   r
  r3   r2   r   r   )zeror   constantcircularmirrorrL  r  r7   r
  c                  *    e Zd Zd Zd Zd Zd Zd Zy)TestNeighborhoodIterc                   t        j                  ddgddgg|      }t        j                  g dg dg|      t        j                  g dg dg|      t        j                  g dg d	g|      t        j                  g dg d
g|      g}t        j                  |g d|d   t        d         }t        ||       t        j                  g dg dg|      t        j                  g dg dg|      t        j                  g dg dg|      t        j                  g dg dg|      g}t        j                  |g d|d   t        d         }t        ||       t        j                  g dg dg|      t        j                  g dg dg|      t        j                  g dg dg|      t        j                  g dg dg|      g}t        j                  |g ddt        d         }t        ||       t        j                  g dg dg|      t        j                  g dg dg|      g}t        j                  |g ddt        d   d      }t        ||       y )Nr   r3   r2   r   r   rv  r  r  )r   r2   r   r2   r   r   r5   r   r5   r3   r
  rw  r  r  rV  r  r   )r   r   r   )r   r   r3   )r   r3   r   )r   r2   r   r  r   r
  r#   r  r  test_neighborhood_iterator
NEIGH_MODEr   rT   rL  r  r  r   s        r)   test_simple2dz"TestNeighborhoodIter.test_simple2d  s   HHq!fq!f%R0XXy),B7XXy),B7XXy),B7XXy),B79 88>1Q4F);=1a XXy),B7XXy),B7XXy),B7XXy),B79 88>1Q4E):<1a XXy),B7XXy),B7XXy),B7XXy),B79 88>1j&<>1a  XXy),B7XXy),B7988>1j&<aA1a r+   c                   t        j                  ddgddgg|      }t        j                  g dg dg|      t        j                  g dg dg|      t        j                  g dg dg|      t        j                  g dg d	g|      g}t        j                  |g d
|d   t        d         }t        ||       y )Nr   r3   r2   r   r   r  r  r  r2   r   r   r  r   r  r	  s        r)   test_mirror2dz"TestNeighborhoodIter.test_mirror2d2  s    HHq!fq!f%R0XXy),B7XXy),B7XXy),B7XXy),B79 88>1Q4H)=?1a r+   c                   t        j                  ddd      j                  |      }g dg dg dg dg dg}t        j                  |ddg|d	   t
        d
         }t        ||       g dg dg dg dg dg}t        j                  |ddg|d	   t
        d         }t        ||       |d   ddgg dg dg ddd|d   gg}t        j                  |ddg|d   t
        d         }t        ||       y )Nr3   rW   ru  rV  r  r  )r   rW   r   r5   r   r
  r3   r3   r2   )r   rW   r3   r   r   r2   r
  )r#   r  r  r  r  r  r   r	  s        r)   test_simplez TestNeighborhoodIter.test_simple=  s    KK1a ''+	9iC88B7AaD*V"461a 	9iC88B7AaD*U"351a dAq\9iQ1Q4LI88B7AaD*Z"8:1a r+   c                R   t        j                  ddd      j                  |      }t        j                  g dg dg dg dg dg|      }t	        j
                  |d	d
g|d   t        d         }t        |D cg c]  }|j                  |k(   c}       t        ||       y c c}w )Nr3   rW   )r2   r3   r3   r2   r   )r3   r3   r2   r   r   r3   r2   r   r   rW   )r2   r   r   rW   rW   )r   r   rW   rW   r   r   r  r2   r   )
r#   r  r  r  r  r  r  r   r/   r   )rT   rL  r  r  r   r   s         r)   test_mirrorz TestNeighborhoodIter.test_mirrorP  s    KK1a ''+HHo29;=88B7AaD*X"68*1B*+1a  +s   :B$c                    t        j                  ddd      j                  |      }t        j                  g dg dg dg dg dg|      }t	        j
                  |d	d
g|d   t        d         }t        ||       y )Nr3   rW   )r   rW   r3   r2   r   )rW   r3   r2   r   r   r  )r2   r   r   rW   r3   )r   r   rW   r3   r2   r   r  r2   r   r
  )r#   r  r  r  r  r  r  r   r	  s        r)   test_circularz"TestNeighborhoodIter.test_circularZ  sp    KK1a ''+HHo29;=88B7AaD*Z"8:1a r+   N)ra   rb   rc   r
  r  r  r  r  rd   r+   r)   r  r    s     !D!!&!!r+   r  c                  $    e Zd Zd Zd Zd Zd Zy)TestStackedNeighborhoodIterc           
     l   t         j                  }t        j                  g d|      }t        j                  dg|      t        j                  dg|      t        j                  dg|      t        j                  dg|      t        j                  dg|      t        j                  dg|      t        j                  dg|      g}t        j                  |ddgt
        d	   ddgt
        d	         }t        ||       t        j                  g d
|      t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      g}t        j                  |ddgt
        d	   ddgt
        d         }t        ||       y )NrV  r   r   r3   r2   r   r  r   r
  r  ru  r  )r   r   r3   r5   r   r#   r   r  r  test_neighborhood_iterator_oobr  r   r	  s        r)   test_simple_constz-TestStackedNeighborhoodIter.test_simple_constf  sS   ZZHHYb)XXqc$XXqc$XXqc$XXqc$XXqc$XXqc$XXqc$& <<B7Jv.A
68JL1a XXir*XXir*XXir*XXir*XXir*	,
 <<B7Jv.QE9JL1a r+   c                t   t         j                  }t        j                  g d|      }t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      g}t        j                  |ddgt
        d	   dd
gt
        d         }t        ||       t        j                  g d|      }t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      g}t        j                  |ddgt
        d   ddgt
        d	         }t        ||       t        j                  g d|      }t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      g}t        j                  |ddgt
        d   ddgt
        d	         }t        ||       t        j                  g d|      }t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      g}t        j                  |ddgt
        d   ddgt
        d	         }t        ||       y )NrV  r   r  r  r  )r   r   r   r5   r   r   r3   r
  r  r  ru  r  r  r   r   r   r   )r   r   r   r2   )r3   r   r   r3   r2   r   r   r3   r2   r   r   r3   r2   r   r   r3   r2   r   r   r   )r2   r   r   r   r   r  r	  s        r)   test_simple_mirrorz.TestStackedNeighborhoodIter.test_simple_mirror  sm   ZZHHYb)XXir*XXir*XXir*XXir*XXir*	,
 <<B7Jx02q':f;MO1a  HHYb)XXir*XXir*XXir*XXir*XXir*	,
 <<B7Jv.QH9MO1a  HHYb)XXir*XXir*XXir*XXir*XXir*	,
 <<B7Jv.A
88LN1a  HHYb)XXoR0XXoR0XXoR0XXoR0XXoR0	2
 <<B7Jv.QH9MO1a r+   c                t   t         j                  }t        j                  g d|      }t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      g}t        j                  |ddgt
        d	   dd
gt
        d         }t        ||       t        j                  g d|      }t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      g}t        j                  |ddgt
        d   ddgt
        d	         }t        ||       t        j                  g d|      }t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      g}t        j                  |ddgt
        d   ddgt
        d	         }t        ||       t        j                  g d|      }t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      t        j                  g d|      g}t        j                  |ddgt
        d   ddgt
        d	         }t        ||       y )NrV  r   )r   r   r3   r<
  r  )r   r3   r   r5   r   r
  r3   r
  r  r  ru  r  r  r   r2   )r   r   r   r3   r2   r  r  r   )r2   r   r   r   r3   r  r	  s        r)   test_simple_circularz0TestStackedNeighborhoodIter.test_simple_circular  sm   ZZHHYb)XXir*XXir*XXir*XXir*XXir*	,
 <<B7Jz2RGZ=OQ1a  HHYb)XXir*XXir*XXir*XXir*XXir*	,
 <<B7Jv.QJ9OQ1a  HHYb)XXir*XXir*XXir*XXir*XXir*	,
 <<B7Jv.A
:8NP1a  HHYb)XXoR0XXoR0XXoR0XXoR0XXoR0	2
 <<B7Jv.QJ9OQ1a r+   c                   t         j                  }t        j                  g d|      }t        j                  g d|      g}t        j                  |ddgt
        d   ddgt
        d         }t        ||       t        j                  g d|      }t        j                  g d|      g}t        j                  |ddgt
        d   ddgt
        d	         }t        ||       t        j                  g d|      }t        j                  g d
|      g}t        j                  |ddgt
        d   ddgt
        d         }t        ||       y )NrV  r   )r3   r2   r   r   r3   r
  r5   r2   r  r   )r3   r2   r   r3   r
  r  r	  s        r)   test_simple_strict_withinz5TestStackedNeighborhoodIter.test_simple_strict_within  s"   ZZ HHYb)XXl"-.<<Aq6:f-Aw
68JL1a  HHYb)XXl"-.<<Aq6:f-Aw
88LN1a  HHYb)XXl"-.<<Aq6:f-Aw
:8NP1a r+   N)ra   rb   rc   r  r!  r#  r%  rd   r+   r)   r  r  d  s    !4,!`,!`!r+   r  c                      e Zd Zd Zy)TestWarningsc                t   t        j                  ddg      }t        j                  ddg      }t        j                         5  t        j                  dt         j
                         t        t         j
                  |j                  t        d       |       t        |ddg       d d d        y # 1 sw Y   y xY w)Nr3   r2   y      ?       y      ?       @r   )
r#   r  r   r   r   rg
  r	   r,	  slicer   r  s      r)   test_complex_warningz!TestWarnings.test_complex_warning  s~    HHaVHHdD\"$$&!!'2+<+<="++Q]]E$KKQF# '&&s   A"B..B7N)ra   rb   rc   r*  rd   r+   r)   r'  r'    s    $r+   r'  c                  *    e Zd Zd Zd Zd Zd Zd Zy)TestMinScalarTypec                p    t        j                  d      }t        j                  d      }t        ||       y )Nrj  rB   r#   min_scalar_typer/   r   rT   rL  wanteds      r)   test_usigned_shortshortz)TestMinScalarType.test_usigned_shortshort  s*    ''"VR r+   c                p    t        j                  d      }t        j                  d      }t        ||       y )Ni  r   r.  r0  s      r)   test_usigned_shortz$TestMinScalarType.test_usigned_short  *    ((#VR r+   c                p    t        j                  d      }t        j                  d      }t        ||       y )Nl    r   r.  r0  s      r)   test_usigned_intz"TestMinScalarType.test_usigned_int  r5  r+   c                p    t        j                  d      }t        j                  d      }t        ||       y )Nr:  r   r.  r0  s      r)   test_usigned_longlongz'TestMinScalarType.test_usigned_longlong  r5  r+   c                p    t        j                  d      }t        j                  d      }t        ||       y )Nr  r,  r.  r0  s      r)   r  zTestMinScalarType.test_object  s)    &#VR r+   N)ra   rb   rc   r2  r4  r7  r9  r  rd   r+   r)   r,  r,    s    !
!
!
!
!r+   r,  )_dtype_from_pep3118c                  N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)TestPEP3118Dtypec                l    t        j                  |      }t        |      }t        ||d|d|       y )Nzspec z
 != dtype r   )r#   r/   r;  r   )rT   specr1  rL  actuals        r)   _checkzTestPEP3118Dtype._check&  s/    XXf$T*VR6:FC	Er+   c           
         t        j                  d      j                  }t        d      D ]O  }|dk(  rd}nd|z  }| j	                  d|z   dd|d||z  z   z  fd	       | j	                  d
|z   ddd|z   fd	       Q y )Nr   r   r   rC  zb%dxirV  )r  r   r3   r  r8  r  )r#   r/   r:   r   rA  )rT   rG   r  r   s       r)   test_native_paddingz$TestPEP3118Dtype.test_native_padding,  s    ''qAAvaKKKAi'*E1q%x<,@&A C DKKAi'*AaCj 2 3 r+   c                l    | j                  ddddidfdfi       | j                  ddddidfdfi       y )	Nzx3T{xi}r  )r   r   rS  r   z^x3T{xi})r   r3   r3   rA  rS   s    r)   test_native_padding_2z&TestPEP3118Dtype.test_native_padding_28  sF    Ix(8$'?&CDEJ$)94(@!'D EFr+   c                f   t        j                  d      j                  t        j                  d      j                  }fd}t	        dgdg      }| j                  dt	        dd ||dz         i|       | j                  dt	        dd ||d	z         i|       | j                  d
t	        dd ||dz         i|       | j                  dt	        dd ||dz         i|       | j                  dt	        dd ||dz         i|       | j                  dt	        dd|dz   i|       | j                  dt	        dd|d	z   i|       | j                  dt	        dd|dz   i|       | j                  dt	        dd|dz   i|       | j                  dt	        dd|dz   i|       y )Nr   c                     d| dz
  z  z   z  S ri  rd   r  rG   s    r)   r   z7TestPEP3118Dtype.test_trailing_padding.<locals>.alignedC  s    !qsUl*++r+   r  )r/  r.  ixr@   r3   ixxr2   ixxxr   ixxxxr   i7xr  z^ixz^ixxz^ixxxz^ixxxxz^i7xrd   )r#   r/   r:   r@   r  rA  )rT   rH   r   r   rG   s       @r)   test_trailing_paddingz&TestPEP3118Dtype.test_trailing_padding=  s    ''xx}%%	, SE$0DTE74!8+<EEFETE74!8+<EEFFTE74!8+<EEFGTE74!8+<EEFETE74!8+<EEFEd=D1H==>Fd=D1H==>Gd=D1H==>Hd=D1H==>Fd=D1H==>r+   c                   t        j                  dddt        j                  d      fdgd      }| j                  d|       t        j                  ddd	d
ddt        j                  dd      fg      }| j                  d|       y )Nr{  r   r   r  b,irA  TrW  z(T{b:a:xxxi:b:T{b:f0:=i:f1:}:sub:xxxi:c:}r[  r   r   r   r  r   z-T{b:a:=i:b:b:c:b:d:b:e:T{b:f0:xxxi:f1:}:sub:}r#   r/   rA  r	  s     r)   test_native_padding_3z&TestPEP3118Dtype.test_native_padding_3T  s    XXZBHHUO,j: 	>CXXZZd(C DFG 	CRHr+   c                Z    t        j                  g dd      }| j                  d|       y )Nr{  rR  )r[  r   rS  rB  TrW  zT{b:a:xxxi:b:3b:c:xi:d:}rW  r	  s     r)   %test_padding_with_array_inside_structz6TestPEP3118Dtype.test_padding_with_array_inside_struct`  s)    XX  	.3r+   c                6    | j                  dddidfdd       y )Nz@T{^i}xir  )r   r   r   )r   rW   rC  rF  rS   s    r)   test_byteorder_inside_structz-TestPEP3118Dtype.test_byteorder_inside_structg  s&     	Jx(8!'<'/!1 	2r+   c                    t        j                  d      j                  t        j                  d      j                  }fd}| j	                  dt        dgdgdg ||dz               df       y )	Nr   c                     d| dz
  z  z   z  S ri  rd   rJ  s    r)   r   z4TestPEP3118Dtype.test_intra_padding.<locals>.alignedr  s    1!e|+,-r+   z(3)T{ix}r  r   r3   r;	  rS  )r#   r/   r:   r@   rA  r  )rT   rH   r   rG   s      @r)   test_intra_paddingz#TestPEP3118Dtype.test_intra_paddingm  sj    ''xx}%%	. 	J&ECTAX&	"

 ! 	r+   c                    t        j                  d      }| j                  d|       t        j                  ddg      }| j                  d|       y )Nr[  )r  S1r<  )r8  r|   4c4srW  r	  s     r)   test_char_vs_stringz$TestPEP3118Dtype.test_char_vs_string|  s?    XXc]CXX)<89FBr+   c                T    | j                  dddg       | j                  dddg       y )Nz(0)I:a:f:b:)rR   r  r  r   z(0)I:b:f:a:)r   r  r  r  rF  rS   s    r)   test_field_orderz!TestPEP3118Dtype.test_field_order  s*    M$4j#ABM$4j#ABr+   c                    | j                  dddg       | j                  dddg       | j                  dd       | j                  ddg       y )Nii)r  r   )r8  r   zii:f0:r   zi:f0:rF  rS   s    r)   test_unnamed_fieldsz$TestPEP3118Dtype.test_unnamed_fields  sF    D{K89H{K89CGk]+r+   N)ra   rb   rc   rA  rD  rG  rP  rX  r[  r]  r`  rd  rf  ri  rd   r+   r)   r=  r=  %  s=    E
3G
?.
I42 C
,r+   r=  c            
         e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zej$                  j'                  ddg ej(                   ej,                  ddge      ed       ej(                   edd      ed      g      d        Zd Zd Zd Zej$                  j=                  d       ej>                  dd      fd       Z ej$                  j=                  d      ej$                  jC                   ej>                  d d!"      jD                  jF                   d#       ej>                  d$      fd%              Z$d& Z%d' Z&ej$                  jN                  d(        Z(d) Z)d* Z*d+ Z+d, Z,ej$                  j'                  d ej>                  d-       ej>                  dd.      d/   g      d0        Z-d1 Z.y2)3TestNewBufferProtocolz Test PEP3118 buffers c                F   t        j                  |      }t        |      }t        j                  |      }t        j                  |      }t	        |j
                  j                          t	        |j
                  j                         t        |j                  |j                         t        |j                  |j                         t        ||       t        |j                  |j                         t        |j                  |j                         t        ||       y r"   )r#   rn   r   r  r   rY   r   r   r/   rF   r   )rT   r   r  r/  r  s        r)   _check_roundtripz&TestNewBufferProtocol._check_roundtrip  s    jjosOJJqMXXa[AGGOO#$  !QWWcii(QWWcii(3"RXXsyy)RXXsyy)3#r+   c                d   t        j                  g dd      }| j                  |       t        j                  ddgddggt         j                        }| j                  |       t        j                  dt         j
                        d d d	d d f   }| j                  |       d
ddddddddddt         j                  fdt         j                  fdt         j                  fdt         j                  fdt         j                  fdt         j                  fdddddt         j                  fg}t        j                  dg|      }| j                  |       t        j                  ddgddggfd t        d!ffg      }| j                  |       t        j                  g d"d#      }| j                  |       t        j                  g d"d$      }| j                  |       t        j                  g d"d%      }| j                  |       t        j                  g d"d&      }| j                  |       t        j                  g d"d'      }| j                  |       t        j                  d(k(  r_t        j                  g d"d)      }t!        t"        | j                  |       t        j                  g d"d*      }| j                  |       y t        j                  g d"d)      }| j                  |       t        j                  g d"d*      }t!        t"        | j                  |       y )+Nr  r   r   r3   r2   r   r   r  r   r{  r   rT  rA  r   r   dxrS  r  rt   r  Hr  r  rT  LhxQr   r  rS  rK  jxkxr   r|   r  U4r  rJ  rz  r  r  )r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3      aaaabbbbs   xxxTr6  rR   r4  rV  r  r  r  r  z>qr  z>gz<g)r#   r  rm  r   r9   r  r<  r>  r  r=  r?  r@  halfr
  r  r  r	   r8   )rT   r  rL  s      r)   r  z$TestNewBufferProtocol.test_roundtrip  s   HH_D1a HHq!fq!f%RZZ8a HHYbjj1!Qq&9a BIIBIIBMM"RZZ RZZ R^^$BGGn), HH8 9 	a HH1v1v&(#V}1E0FGa HHYe,a HHYe,a HHYe,a HHYe,a  HHYd+a  ==H$$/A*d&;&;Q?$/A!!!$$/A!!!$$/A*d&;&;Q?r+   c                    dddddddt        d      t        d	      d
g
}t        j                  |d      }| j                  |       t        j                  |d      }| j                  |       y )Nr6  r  g     @g      ?g      p>r5  g       z+infz-infg     T?z>er   z<e)r  r#   r  rm  )rT   	half_listr  s      r)   test_roundtrip_halfz)TestNewBufferProtocol.test_roundtrip_half  sm    &M&M
	 HHYd+a HHYd+a r+   c                   t         j                  j                         D ]  }t        j                  |      }|j                  dv r'|j                  dk(  r7t        j
                  d|      }| j                  |       |j                  dvsn|j                  d      }t        j
                  d|      }| j                  |       |j                  d      }t        j
                  d|      }| j                  |        y )NMmr)  r   r   qQgGr  r  )r#   
sctypeDictr   r/   r  r9   rm  r  )rT   typr/   r  rL  s        r)   test_roundtrip_single_typesz1TestNewBufferProtocol.test_roundtrip_single_types  s    =='')CHHSMEzzT!zzS %(A!!!$zz''',HHQb)%%a('',HHQb)%%a() *r+   c                &    | j                  d       y r	  )rm  rS   s    r)   test_roundtrip_scalarz+TestNewBufferProtocol.test_roundtrip_scalar  s    a r+   c                    t        j                  ddg      }t        j                  d|      }t        t        t
        ft        |       t        t        t
        ft        t        j                  dd             y )N)rR   r   )r   M8[s]r   r  )r#   r/   rA   r	   r8   r  r   r  )rT   rL  rR   s      r)   test_invalid_buffer_formatz0TestNewBufferProtocol.test_invalid_buffer_format  sS     XX78HHQOz;/Q?z;/RXXq7=STr+   c                T   t        j                  g dd      }t        |      }t        |j                  d       t        |j
                  d       t        |j                  d       t        |j                  d       t        |j                  d       t        |j                  d       y )	Nr  r   r   r

  r3   r<  rd   r   
r#   r  r   r   rH  rF   r   r   
suboffsetsr@   r  s      r)   test_export_simple_1dz+TestNewBufferProtocol.test_export_simple_1d  so    HH_C0qMQXXs#QWWd#QVVQQYY%Q\\2&QZZ#r+   c                x   t        j                  ddgddggt         j                        }t        |      }t	        |j
                  d       t	        |j                  d       t	        |j                  d       t	        |j                  d       t	        |j                  d	       t	        |j                  d
       y )Nr3   r2   r   r   r   r   r4  )r   r   rd   r   )r#   r  r   r   r   rH  rF   r   r   r  r@   r  s      r)   test_export_simple_ndz+TestNewBufferProtocol.test_export_simple_nd)  s    HHq!fq!f%RZZ8qMQXXs#QWWf%QVVQQYY(Q\\2&QZZ#r+   c                   t        j                  dt         j                        d d dd d f   }t        |      }t	        |j
                  d       t	        |j                  d       t	        |j                  d       t	        |j                  d       t	        |j                  d       t	        |j                  d	       y )
Nr  r   r   r  rW  r2   )r  r   rd   r   )r#   r9   r  r   r   rH  rF   r   r   r  r@   r  s      r)   test_export_discontiguousz/TestNewBufferProtocol.test_export_discontiguous3  s~    HHYbjj1!Qq&9qMQXXs#QWWf%QVVQQYY(Q\\2&QZZ#r+   c                   ddddddddd	d
dt         j                  fdt         j                  fdt         j                  fdt         j                  fdt         j
                  fdt         j                  fdddddt         j                  fg}t        j                  dg|      }t        |      }t        |j                  d       t        |j                  d       t        |j                  d       t        |D cg c]$  \  }}t        j                  |      j                   & c}}      }t        j                  d      j                   dk(  rt        |j"                  d       nt        |j"                  d       t        j$                  d      j&                  d   t        j(                  t         j*                        j,                  k(  st        |j&                  |f       t        |j                   |       y c c}}w ) Nr{  ro  rA  rp  rq  rs  rt  rv  rw  ry  r   r  rS  rK  r|  r}  r~  r  r  r  r  )r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r  r  s      Tr6  r   r  r3   rd   r   r   zjT{b:a:=h:b:i:c:l:d:q:dx:B:e:@H:f:=I:g:L:h:Q:hx:f:i:d:j:^g:k:=Zf:ix:Zd:jx:^Zg:kx:4s:l:=4w:m:3x:n:?:o:@e:p:}zjT{b:a:=h:b:i:c:q:d:q:dx:B:e:@H:f:=I:g:Q:h:Q:hx:f:i:d:j:^g:k:=Zf:ix:Zd:jx:^Zg:kx:4s:l:=4w:m:3x:n:?:o:@e:p:}r   )r#   r<  r>  r  r=  r?  r@  r  r  r   r   rF   r   r  rI  r/   r@   rH  rK  r   r<  r7  r   )rT   rL  r  r/  rR   r   szs          r)   test_export_recordz(TestNewBufferProtocol.test_export_record=  s   BIIBIIBMM"RZZ RZZ R^^$BGGn), HH8 9 qMQWWd#QVVQQ\\2&26241a"((1+&&26788C=!!Q&  $P  Q  $P  Q
""1%"''):)>)>>RE*QZZ$ 7s   7)G5
c                `   t        j                  ddgddggfdg      }t        |      }t        |j                  d       t        |j
                  d       t        |j                  d	       t        |j                  d       t        |j                  d       t        |j                  d
       y )Nr3   r2   r   r   )rR   )r   r4  r   zT{(2,2)i:a:}rd   r   r   r  r  s      r)   test_export_subarrayz*TestNewBufferProtocol.test_export_subarrayg  s    HH1v1v&(1E0FGqMQXX~.QWWb!QVVQQYY#Q\\2&QZZ$r+   c                   t        j                  g dd      }t        |      }t        j                  dk(  rt        |j                  d       nt        |j                  d       t        j                  g dd      }t        |      }t        j                  dk(  rt        |j                  d       y t        |j                  d       y )NrV  z>ir   r  r   z<i)r#   r  r   r  r  r   rH  r  s      r)   test_export_endianz(TestNewBufferProtocol.test_export_endianq  s    HHYd+qM==H$4(3'HHYd+qM==H$3'4(r+   c                v    t        t        t        j                  t	        j
                  d      d d d   d       y )NrW   r2   )SIMPLE)r	   r8   r  get_buffer_infor#   r%   rS   s    r)   test_export_flagsz'TestNewBufferProtocol.test_export_flags  s+    j'77yy|CaC(+	7r+   r   r   r3   r2   r   r  r/  r1  c                   t        j                  |      5  t        j                  |d       d d d        t        j                  |d       t	        j
                  |      }t	        j                  |      }t        ||       y # 1 sw Y   VxY w)N)
STRIDED_ROFORMAT)r  )r   rB  r  r  r   r   r   r   )rT   r   r   
pickle_objrY  s        r)   !test_export_and_pickle_user_dtypez7TestNewBufferProtocol.test_export_and_pickle_user_dtype  si    
 ]]5!--c3KL " 	))#? \\#&
ll:&3$ "!s   BBc                    t        d      D ]4  }t        j                  ddgdt        |fi      }| j	                  |       6 y )Nr   r  r  r  r   )r   r#   r  r
  rm  )rT   r  r  s      r)   test_paddingz"TestNewBufferProtocol.test_padding  s;    qA$dS!H-=>A!!!$ r+   c                T   t         r-t        j                  t        j                  j
                        }t        j                  d      }t        |      }t        j                  |      }t         r9t        j                  t        j                  j
                        }t        |       ~y )Nr   )
r   r  r  r#   r   	_internalr9   r   rn   r   )rT   count_1rR   r   r[  count_2s         r)   test_reference_leakz)TestNewBufferProtocol.test_reference_leak  sh    oobgg&7&78GHHQKqMJJqMoobgg&7&78G'*r+   c                   t        j                  dddt        j                  d      fdgd      }t        j                  |j                  t         j                        j                  |      }| j                  |       t        j                  g d	d      }t        j                  |j                  t         j                        j                  |      }| j                  |       t        j                  ddd
dddt        j                  dd      fg      }t        j                  |j                  t         j                        j                  |      }| j                  |       y )Nr{  rR  r  rS  rA  TrW  r   rZ  rT  rU  rV  )r#   r/   r%   r@   r   rm   rm  )rT   rP  r  rQ  r  dt3r  s          r)   test_padded_struct_arrayz.TestNewBufferProtocol.test_padded_struct_array  s   hhZ%%)A:N YYs||277388=b!hhF YYs||277388=b!hhZZd(C DFG YYs||277388=b!r+   z$leaks buffer info cache temporarily.r   r
  r)  c                >   d|_         t        t        |      j                   dk(         t        j                         }|j                  |j                         |j                  }t        t        |      j                   dk(         t        j                  d      }|j                  j                  rnt        j                  |dg      \  }}t        |d   dk(         t        j                  dd	
      }t        j                  |dg      \  }}t        |d   dk(         y y )N)r5   rb  r   )   rb  r   )r   rb  r  r9  F_CONTIGUOUSr   r   r  rZ  r6   C_CONTIGUOUSr5   )r   r   r   r  r  rv   r4   rM  r#   rK  rY   rf  r  r  )rT   r[  r  r  r'   rF   r   s          r)   test_relaxed_stridesz*TestNewBufferProtocol.test_relaxed_strides  s      	
1%%56 ZZ\
##
7#++|;<ggg99!!.>>.)+NE7GAJ!O$'''-C.>>.)+NE7GBK1$% "r+   r  r,   r6   z8Test is unnecessary (but fails) without relaxed strides.r9  c                    t        d      D ]D  }t        j                  |dg      \  }}|dk(  sJ t        j                  |dg      \  }}|dk(  rDJ  y)aE  Test that alternating export of C- and F-order buffers from
        an array which is both C- and F-order when relaxed strides is
        active works.
        This test defines array in the signature to ensure leaking more
        references every time the test is run (catching the leak with
        pytest-leaks).
        rQ   r  )r   r   r  )rb  r   N)r   r  r  )rT   r'   r   r  r   s        r)   %test_relaxed_strides_buffer_info_leakz;TestNewBufferProtocol.test_relaxed_strides_buffer_info_leak  s\     rA$44S>:JKDAq;;$44S>:JKDAq<<	 r+   c                    t        j                  t        ddgddgddgd            }t        j                  d|      }t	        t
              5  t        |       d d d        y # 1 sw Y   y xY w)	Nr  r   r   r   r   r   r/  r.  r0  r@   r3   )r#   r/   r  rA   r	   r8   r   )rT   rL  r'   s      r)   test_out_of_order_fieldsz.TestNewBufferProtocol.test_out_of_order_fields  s[    XXdEN%.F	
  hhq"o:&sO '&&s   A##A,c                P    t        j                  d      }| j                  |       y )N) r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   )r#   rK  rm  r   s     r)   test_max_dimsz#TestNewBufferProtocol.test_max_dims  s    GGIa r+   c                   d } |dt         j                        }t         |             }t        |j                  d       t        t        dt        j                  |       ~~t        d      D ]  }t        j                         dk(  s y  y )Nc                .    |}| d d d   D ]  }||z  }	 |S )Nr5   rd   )rF   scalar_typer.  r  s       r)   
make_ctypezBTestNewBufferProtocol.test_error_too_many_dims.<locals>.make_ctype  s'    ATrT{!G #Hr+   )!r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   r3   !   r   r   )r  c_uint8r   r   r   r   r  r#   r  r   gccollect)rT   r  c_u8_33dr  r   s        r)   test_error_too_many_dimsz.TestNewBufferProtocol.test_error_too_many_dims  so    	 gv~~6xz"QVVR &HHa	 arAzz|q  r+   c                    t        t        j                  t        j                                     }t	        d|j
                  v        t        t        dt        j                  |       y )N&zformat string)
r   r  pointerr  r   rH  r   r8   r#   r  )rT   r  s     r)   test_error_pointer_typez-TestNewBufferProtocol.test_error_pointer_type   sB    v~~fnn&678qxx HHa	r+   c                   t         j                  dz  }t        t              5 }t	        j
                   |              d d d        j                  }t        t        d      5  |j                  # 1 sw Y   2xY w# 1 sw Y   y xY w)Nr   z(Unrepresentable .* 'u' \(UCS-2 strings\))
r  c_wcharr	   r8   r#   r  	exceptionr   r}  	__cause__)rT   r.  cmr  s       r)   test_error_message_unsupportedz4TestNewBufferProtocol.test_error_message_unsupported   sg     NNQ:&"HHQSM ' ll 7
 -- '&
 
s   A/"A;/A8;Bc                2   t         j                  t         j                  t         j                  hD ]Y  } |d      }t	        j
                  d      5  t	        j                  ddt               t        j                  |       d d d        [ y # 1 sw Y   fxY w)Nr  Tr   r   .*\bctypes\b)
r  c_intc_long
c_longlongr   r   r   rt  r#   rn   )rT   	c_integerr2  s      r)   "test_ctypes_integer_via_memoryviewz8TestNewBufferProtocol.test_ctypes_integer_via_memoryview"   sf     ,,v7H7HIIbME((5''/>R

5! 65 J55s   1BB	c                h    G d dt         j                        } |dd      }t        j                  d      5  t        j                  dd	t
               t        j                  |      }d d d        t        d
   d       t        |d   d       d|_	        t        |d
   d       y # 1 sw Y   >xY w)Nc                  D    e Zd Zdej                  fdej
                  fgZy)DTestNewBufferProtocol.test_ctypes_struct_via_memoryview.<locals>.foorR   r   N)ra   rb   rc   r  r  c_uint32_fields_rd   r+   r)   r(  r  ,   s    fnn-V__/EFHr+   r(  r3   r2   r{  Tr   r   r  rR   r   r   )
r  	Structurer   r   r   rt  r#   rn   r   rR   )rT   r(  r  r'   s       r)   !test_ctypes_struct_via_memoryviewz7TestNewBufferProtocol.test_ctypes_struct_via_memoryview*   s    	G&"" 	G!qM$$D1##Ho~N**Q-C 2 	SXq!SXq!SXq! 21s   1B((B1r   r3  rd   c                    t        j                  |       t        |      }t        j                  t
        d| d      5  t        |       ddd       t        j                  |       y# 1 sw Y   xY w)a  
        If a user extends a NumPy array before 1.20 and then runs it
        on NumPy 1.20+. A C-subclassed array might in theory modify
        the new buffer-info field. This checks that an error is raised
        if this happens (for buffer export), an error is written on delete.
        This is a sanity check to help users transition to safe code, it
        may be deleted at any point.
        z.*z appears to be C subclassedr@  N)r  corrupt_or_fix_bufferinfor  r   rB  r  r   )rT   r   r  s      r)   -test_error_if_stored_buffer_info_is_corruptedzCTestNewBufferProtocol.test_error_if_stored_buffer_info_is_corrupted9   sa     	33C8Cy]]<tf$?@BsOB 	33C8	B Bs    A**A3c                   	 dd l }dD ]  }t	        t        t        j                  |                  }|j                  ||d|j                        }d}t        j                  t        |      5  t        j                  |       d d d        t        j                  t        |      5  t        j                  |g       d d d        t        j                  t              5  t        j                  |       d d d         y # t        $ r t        j                  d      w xY w# 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   <xY w)Nr   z_testbuffer is not available)r  r  r   )rH  rY   z,NumPy currently does not support.*suboffsetsr@  )_testbufferImportErrorr   skipr  r   r#   r  rE   ND_PILrB  r  rn   r}   )rT   r  rF   r4   r  r&  s         r)   test_no_suboffsetsz(TestNewBufferProtocol.test_no_suboffsetsL   s    	> )Ebggen-.D ((uS/:/A/A ) CF@C{#6

6" 7{#6

F8$ 7 {+f% ,+ )  	>++<==	> 7666 ,+s/   D  .D"'D.D: D"D+	.D7	:E	N)/ra   rb   rc   r  rm  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r#   r  r   r8   r)  r  r  r  r  valgrind_errorrK  r  r   rY   rf  r  r  r  r  r  r  r  r  r  r  r  rd   r+   r)   rk  rk    s    $ D@L!&).!U$$$(%T%)7 [[eW-FLL1a&9:'RFLL!Qx@0B C
%C
%%
	"& [['MN%,RWW[%E & O&0 [['MN[[GBGGG37==JJJM  O8?8H  O O ! [[ . "" [[UWRWWQZ%1H1L$MN9 O9$&r+   rk  c                     e Zd Z G d d      Zdej
                  j                  ej                  gZdej
                  j                  ej                  gZd Zd Zd Zd Zd	 Zej$                  j'                  d
 ej(                  d       ej*                  d      j-                  d      g      ej$                  j'                  dg d      ej$                  j'                  dg d      d                      Zd Zy)TestArrayCreationCopyArgumentc                      e Zd Zd Zy))TestArrayCreationCopyArgument.RaiseOnBoolc                    t         r"   rl  rS   s    r)   __bool__z2TestArrayCreationCopyArgument.RaiseOnBool.__bool__e   s    r+   Nra   rb   rc   r  rd   r+   r)   RaiseOnBoolr  c   s    	r+   r  TFc                   t         j                  d   D ]Q  }t        j                  d|      }|d   }|j                  d      }t	        t
        t         j                  |t         j                  j                         t	        t
        t         j                  |t         j                  j                         t	        t
        t         j                  || j                                t	        t
        t        j                  dg       t        j                  t
              5  t        j                  |t         j                  t         j                  j                         d d d        T y # 1 sw Y   `xY w)NrV  rd   r   r   rW  r3   )r/   rX  )r#   r#  r9   r  r	   r8   r  	_CopyModeNEVERr  r  npy_ensurenocopyr   rB  r   )rT   r/   r'   r1  pyscalars        r)   test_scalarsz*TestArrayCreationCopyArgument.test_scalarsk   s    \\%(E((2U+CWFxx{H *bhh!#!3!35*bhh!#!3!35*bhh!%!1!1!35*&7&H&HC! z*8J8JK +* ) +*s   ?E**E4	c           	        dd} |       D ]  } |d      D ]  }t        j                  d|      }| j                  D ]B  }t        j                  |||      }||ur|j                  j
                  sJ t        ||       D ||k(  r| j                  D ]/  }t        j                  |||      }||u r |j                  |u r/J  t        j                  |t         j                  j                  |      }||u r|j                  |u rJ | j                  D ]B  }t        j                  |||      }||ur|j                  j
                  sJ t        ||       D t        t        t         j                  |t         j                  j                  |       t        t        t         j                  |d |         y )Nc              3     K   t         j                  d   t         j                  d   z   }|D ]A  }t        j                  |       | st        j                  |      j                          C y w)NIntegerUnsignedInteger)r#   r#  r/   r  )r  	int_typesint_types      r)   r   zETestArrayCreationCopyArgument.test_compatible_cast.<locals>.int_types   sZ     i0&789I%hhx((((8,99;; &s   AA1	(A1TrQ   r   )rX  r/   )F)r#   r%   	true_valsr  rY   r   r   
false_valsr   r  r  r	   r8   )rT   r   int1int2r'   rX  rY  s          r)   test_compatible_castz2TestArrayCreationCopyArgument.test_compatible_cast   st   	< KD!$ii$/ NND((3T>Cc>cii.?.???&sC0 +
 4< $ hhsTB"czSXX_<< !0 ((3(*(:(:)-/C #:S88 !% hhsTB"#~#))2C2CCC*34 !0
 "*bhh"%BLL,>,>(,. "*bhh"%D(,.; (  r+   c                   t        j                  d      }t        |      }| j                  D ]1  }t        j                  ||      }t        j
                  ||      s1J  | j                  D ]1  }t        j                  ||      }t        j
                  ||      r1J  t        j                  |t         j                  j                        }t        j
                  ||      sJ y )NrQ   rW  )	r#   r%   r   r  r  r  r  r  r  )rT   r'   rm   rX  rY  s        r)   test_buffer_interfacez3TestArrayCreationCopyArgument.test_buffer_interface   s     iim# NND((4d+C**3444 # OOD((4d+C&&sC000 $ hht",,"4"45""3,,,r+   c                b   t        j                  d       G fdd      } |       }dt         j                  j                  d fd|ft         j                  j                  |ft         j                  j
                  |ffD ],  \  }}t        j                  ||      }|j                  |u r,J  y )NrQ   c                  (    e Zd ZW  j                  Zy)FTestArrayCreationCopyArgument.test_array_interfaces.<locals>.ArrayLikeNra   rb   rc   rC   base_arrs   r)   	ArrayLiker     s    "*">">r+   r  )TNFrW  )r#   r%   r  ALWAYS	IF_NEEDEDr  r  r   )rT   r  r'   rX  r  rY  r  s         @r)   test_array_interfacesz3TestArrayCreationCopyArgument.test_array_interfaces   s    99R=	? 	? k&)<)<d(C #,)?)?(E<<--s35ID# ((3T*C88s?"?	5r+   c                   t        j                  d       G fdd      } |       }| j                  D ]+  }t        j                  ||      }t	        |       |ur+J  | j
                  D ]+  }t        j                  |d      }t	        |       |u r+J  t        j                  t              5  t        j                  |t         j                  j                         d d d        y # 1 sw Y   y xY w)NrQ   c                      e Zd Z fdZy)?TestArrayCreationCopyArgument.test___array__.<locals>.ArrayLikec                    S r"   rd   )rT   r  s    r)   r  zITestArrayCreationCopyArgument.test___array__.<locals>.ArrayLike.__array__   s
      r+   Nr  r  s   r)   r  r     s     r+   r  rW  F)r#   r%   r  r  r   r  r   rB  r8   r  r  )rT   r  r'   rX  rY  r  s        @r)   r  z,TestArrayCreationCopyArgument.test___array__   s    99R=	  	  kNND((3T*CsH- h&&& # OOD((3U+CsH-(?"? $
 ]]:&HHSr||112 '&&s   70C00C9r'   rd   Q   )r  r  order1r,   rZ  Norder2r  c                   |j                  |      }|dk(  r|j                  j                  sSJ |dk(  r|j                  j                  s6J |j                  dk7  r%|d d dd d df   }|j                  j
                  rJ |dk(  r|j                  j                  }n|dk(  r|j                  j                  }nd}|t        |      fD ]  }| j                  D ]B  }t        j                  |||      }||ur|j                  j                  sJ t        ||       D |r| j                  D ]@  }t        j                  |||      }t        r"||u r'|j                  j                  |u r@J  t        j                  |t        j                   j"                  |      }t        r||u r|j                  j                  |u rJ | j                  D ]&  }t        j                  |||      }t        ||       ( t%        t&        t        j                  |t        j                   j"                  |       t%        t&        t        j                  |d |        y )Nr,   rZ  r   r2   Tr[  )rX  rY   re  rf  r   r   r   r  r#   r  r   r   r  r   r   r   r  r  r	   r8   )rT   r'   r  r  no_copy_necessaryrm   rX  rY  s           r)   test_order_mismatchz1TestArrayCreationCopyArgument.test_order_mismatch   s    hhvS=99))))s]99))))XX]cc3Q3h-Cyy~~%% S= #		 6 6s] #		 6 6 !% *S/*Dhht$f=#~#))*;*;;;"3, '
 ! OOD((4d&AC""czSXX\\S-@@@	 , hht",,*<*<%+-#:)<<< OOD((3T@C&sC0 , j"(("););$*, j"(("$*,1 +r+   c                n   t        j                  g dg dg      }t        t        t         j                  |j                  t         j
                  j                  d       t        t        t         j                  |j                  t         j
                  j                  dt         j                         t        t        t         j                  |t         j
                  j                  d       t        t        t         j                  |t         j
                  j                  dt         j                         y )N)r3   r2   r   r  r,   r[  )rX  r0   r/   rZ  )r#   r  r	   r8   rM  r  r  r   rj   s     r)   test_striding_not_okz2TestArrayCreationCopyArgument.test_striding_not_ok#!  s    hh	9-.j"((ee",,"4"4	! 	j"((ee",,"4"4rxx	1 	j"(( 2 2	! 	j"(( 2 2rxx	1r+   N)ra   rb   rc   r  r#   r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   rK  r%   r   r  r  rd   r+   r)   r  r  a   s     
 r||**BHH5I//;JL(,.\-"#36 [[GBGGBK2!6!6v!>?A[[X'78[[X';<5, = 9A5,n1r+   r  c                  $    e Zd Zd Zd Zd Zd Zy)TestArrayAttributeDeletionc                    t        j                  d      }g d}t               5 }|j                  t        d       |D ]  }t        t        t        ||        	 d d d        y # 1 sw Y   y xY w)Nr2   )rF   r   r4   r/   r  r  r  zAssigning the 'data' attribute)r#   rK  r   rs  r   r	   r  delattr)rT   rR   attrrv  r   s        r)   ,test_multiarray_writable_attributes_deletionzGTestArrayAttributeDeletion.test_multiarray_writable_attributes_deletion5!  sP    GGAJL CJJ)+KLngq!<  !  s   4A""A+c                p    t        j                  d      }g d}|D ]  }t        t        t        ||        y )Nr2   )r   rY   r@   rH   r   r   r  rM  rC   r   r  r	  )r#   rK  r	   r  r#  rT   rR   r$  r   s       r)   0test_multiarray_not_writable_attributes_deletionzKTestArrayAttributeDeletion.test_multiarray_not_writable_attributes_deletion>!  s0    GGAJ< A.'1a8 r+   c                    t        j                  d      j                  }g d}|D ]  }t        t        t
        ||        y )Nr2   )r   updateifcopyr   rZ   r#   rK  rY   r	   r  r#  r'  s       r)   1test_multiarray_flags_writable_attribute_deletionzLTestArrayAttributeDeletion.test_multiarray_flags_writable_attribute_deletionF!  s2    GGAJJA.'1a8 r+   c                    t        j                  d      j                  }g d}|D ]  }t        t        t
        ||        y )Nr2   )r  re  rf  r  r   r   r   r   r   r   r   r+  r'  s       r)   5test_multiarray_flags_not_writable_attribute_deletionzPTestArrayAttributeDeletion.test_multiarray_flags_not_writable_attribute_deletionL!  s6    GGAJ A.'1a8 r+   N)ra   rb   rc   r%  r(  r,  r.  rd   r+   r)   r!  r!  3!  s    =999r+   r!  c                      e Zd Z G d d      Z ed      Zej                  j                  dei dfegi dgfeegi ddgfeddidfeddiefeddidggfedd	ie	fed
didfed
d	ie	fed
diefg
      d        Z
y)TestArrayInterfacec                  (    e Zd Zd Zd Zed        Zy)TestArrayInterface.Fooc                $    || _         ddi| _        y Ntypestrr:  )r2  iface)rT   r2  s     r)   rk   zTestArrayInterface.Foo.__init__W!  s    DJ#T*DJr+   c                ,    t        | j                        S r"   )r  r2  rS   s    r)   	__float__z TestArrayInterface.Foo.__float__[!  s    $$r+   c                    | j                   S r"   )r6  rS   s    r)   rC   z*TestArrayInterface.Foo.__array_interface__^!  s    ::r+   N)ra   rb   rc   rk   r8  r@  rC   rd   r+   r)   Foor2  V!  s     	+	% 
	 
	r+   r:  r  zval, iface, expectedrF   rd   Nr  r  r   r   c                *   ddi| j                   _        | j                   j                  j                  |       t        r(t	        j
                  t        j                  d            }t        |t              rt        |t        j                  |       nFt        j                  |      }t        t        j                  |      |       |j                  dk(  sJ ~t        r5t	        j
                  t        j                  d            }t        |       y y r4  )r  r6  updater   r  r  r#   r/   r   r  r	   r  r   )rT   r  r6  r  pre_cntr%  post_cnts          r)   test_scalar_interfacez(TestArrayInterface.test_scalar_interfacee!  s     "4(E"oobhhtn5Gh%(BHHc2XXc]F#1<<4'''rxx~6H(+ r+   )ra   rb   rc   r:  r  r   r   r   r)  r8   r?  rd   r+   r)   r0  r0  U!  s    
 
 	CA[[3	
B
b3%
Qc3Z 	
WbM3	
WdOY'	
Wfw'	
WdOZ(	
YOS!	
Yz*	
YOY'6
 ,,r+   r0  c                 `     G d d      } t        t        j                   |              d       y )Nc                  H    e Zd Z ej                  d      Zej
                  Zy)*test_interface_no_shape.<locals>.ArrayLiker3   N)ra   rb   rc   r#   r  rC   rd   r+   r)   r  rB  !  s    #77r+   r  r3   )r   r#   r  )r  s    r)   test_interface_no_shaperC  !  s#    8 8 )+&*r+   c                 :   t        j                  ddgddgddgdd      } t        j                  d| 	      }t        j                  |j                  d
         }t        j                  |j                  d         }t	        |j
                  |j
                         y )Nr  rt   r  r   r   r   r;	  rQ   r   descrr5  )r#   r/   rK  rC   r   r@   )my_dtyperR   descr_t	typestr_ts       r)   test_array_interface_itemsizerI  !  s    xx3*$%&F< =H
(#Ahhq,,W56G..y9:I!!9#5#56r+   c                    t        j                  g d      } t        | j                        dd<    G fdd      }t              | d   j	                         d<    G fdd	      }t        j
                   |             }t        j
                   |             }| d d
 j                  d      }t        ||       t        ||       y )NrV  rd   rF   c                      e Zd ZW  Zy)5test_array_interface_empty_shape.<locals>.DummyArray1Nr  )
interface1s   r)   DummyArray1rL  !  	    (r+   rN  r   r4   c                      e Zd ZW  Zy)5test_array_interface_empty_shape.<locals>.DummyArray2Nr  )
interface2s   r)   DummyArray2rQ  !  rO  r+   rS  r3   )r#   r  r  rC   r  rn   r   r   )r'   rN  rS  r  r  arr3rM  rR  s         @@r)    test_array_interface_empty_shaperU  !  s    
((9
Cc--.JJw) ) j!JQ)Jv) ) ::km$D::km$Dr7??2Dttr+   c                     t        j                  g dd      } t        | j                        t	        |       d<   dd<   dd<    G fd	d
      }t        j
                   |             }t        || dd         y )NrV  r   r   r4   r  rF   r   rK   c                      e Zd ZW  Zy)/test_array_interface_offset.<locals>.DummyArrayNr  	interfaces   r)   
DummyArrayrX  !  	    'r+   r[  r3   )r#   r  r  rC   r   rn   r   )r'   r[  r  rZ  s      @r)   test_array_interface_offsetr]  !  sq    
((9G
,CS,,-I"3IfIgIh( ( ::jl#Ds12wr+   c                    t        j                  g dd      } t        | j                        dd<    G fdd      }t	        j
                  t              5  t        j                   |              d d d        y # 1 sw Y   y xY w)NrV  r   r   u   ✓r5  c                      e Zd ZW  Zy)8test_array_interface_unicode_typestr.<locals>.DummyArrayNr  rY  s   r)   r[  r`  !  r\  r+   r[  )r#   r  r  rC   r   rB  r)  rn   )r'   r[  rZ  s     @r)   $test_array_interface_unicode_typestrra  !  s_    
((9G
,CS,,-I+Ii( ( 
y	!


:<  
"	!	!s   A>>Bc                     t        j                  d      j                  } 	 | d= | dd= y # t        $ r Y y t        $ r t
        w xY w)Nr   r3   r2   )r#   rK  r  r)  r  r  )r  s    r)   test_flat_element_deletionrc  !  sJ    	BqEqsG  s   * 	AAc                 r    t        j                  dddg      } t        t        | d   j                  d       y )Nr2   )r  r
  )r/  r
  r   r   r  )r#   r9   r	   r8   __delitem__r   s    r)   test_scalar_element_deletionrf  !  s-    
<67A*ad..4r+   c                      e Zd Zd Zy)TestMapIterc                   t        j                  d      j                  d      j                  t              }g dg df}g d}t        j                  |||       t        |g dg dg dg       t        j                  d	      j                  t              }t        j                  g d
      f}g d}t        j                  |||       t        |g d       y )Nr}  r  )r3   r3   r2   r   )r   r   r2   r   )r  r  r   r   )r5  r6  r  g      3@)g      Z@ri  rv	  rx	  )r_  r  g      D@g      &@r   )r3   r2   r   )r  r   fffffY@)rj  g     I@rv	  r  r  ri  )	r#   r%   r   r  r  r  test_inplace_incrementr   r  )rT   rR   rn  rx   r   s        r)   test_mapiterzTestMapIter.test_mapiter!  s     IIbM!!&)00700E4@Q---/ 	0 IIaL&)$&00E4@Q=>r+   N)ra   rb   rc   rl  rd   r+   r)   rh  rh  !  s    ?r+   rh  c                      e Zd Zd Zd Zd Zy)TestAsCArrayc                    t        j                  dt         j                        }t        j                  |d      }t        |d   |       y )Nr  r   r   )r#   r%   r>  r  test_as_c_arrayr   rT   r  from_cs      r)   test_1darrayzTestAsCArray.test_1darray!  s6    		"BII."225!<U1Xv&r+   c                    t        j                  dt         j                        j                  dd      }t	        j
                  |dd      }t        |d   |       y )Nr  r   r   r   r2   r   )r2   r   r#   r%   r>  r   r  rp  r   rq  s      r)   test_2darrayzTestAsCArray.test_2darray!  sE    		"BII.66q!<"225!Q?U4[&)r+   c                    t        j                  dt         j                        j                  ddd      }t	        j
                  |ddd      }t        |d   |       y )Nr  r   r2   r   r   r3   rV  ru  rq  s      r)   test_3darrayzTestAsCArray.test_3darray!  sI    		"BII.66q!Q?"225!QBU7^V,r+   N)ra   rb   rc   rs  rv  rx  rd   r+   r)   rn  rn  !  s    '
*
-r+   rn  c                      e Zd Zd Zd Zd Zy)TestConversionc           
        t         j                  d   D ]  }t        dt        j                  d|      kD  d|d       t        dt        j                  d|      k   d|d       t         j                  d   D ]  }t        t        j                  d|      t        j                  d|      kD  d|d|d       t        t        j                  d|      t        j                  d|      k   d|d|d         dD ]D  }t        d	t        j                  d|      k  d|d       t        d	t        j                  d|      kD   d|d       t        d	t        j                  d|      k7  d|d       d
D ]  }t        t        j                  d|      t        j                  d	|      kD  d|d|d       t        t        j                  d|      t        j                  d	|      k   d|d|d       t        t        j                  d|      t        j                  d	|      k7  d|d|d        G dt         j                  d   z   D ]X  }t        dt        j                  d	|      kD  d|d       t        dt        j                  d	|      k   d|d       t        d	t        j                  d	|      k(  d|d       dt         j                  d   z   D ]  }t        t        j                  d|      t        j                  d	|      kD  d|d|d       t        t        j                  d|      t        j                  d	|      k   d|d|d       t        t        j                  d	|      t        j                  d	|      k(  d|d|d        [ y )Nr  r3   r   r   ztype z failedz and BHILQPr5   bhilqpbhlqpr   )r#   r#  r   r  )rT   rP  rQ  s      r)   &test_array_scalar_relational_operationz5TestConversion.test_array_scalar_relational_operation!  s   <<-CA#..C0IJBHHQc2224MN||L1#.!31GG36<>BHHQc2RXXas5KKK36<> 2	 . CB!3//S1JKRXXas3335NOB"((1C00c2KL  #."C1HH36<>BHHQc2RXXb5LLL36<>#."((2S2II36<>    R\\'22CA3//S1JKBHHRs3335NOB"((2S11s3LMg!66#."C1HH36<>BHHQc2RXXb5LLL36<>3/288Bc3JJ36<> 7 3r+   c                   t        t        t        j                  dg            d       t        t        t        j                  dg            d       t        t        t        j                  dgg            d       t	        t
        t        t        j                  ddg              G d d      }t	        t        t        t        j                   |                    t	        t        t        t        j                   |       g             t        rt        j                  d       t        j                  d g      }||d	<   t        }t	        |t        |       d |d	<   y )
NFTr  r3   r2   c                      e Zd Zd Zy):TestConversion.test_to_bool_scalar.<locals>.NotConvertiblec                    t         r"   r|  rS   s    r)   r  zCTestConversion.test_to_bool_scalar.<locals>.NotConvertible.__bool__."  r~  r+   Nr  rd   r+   r)   NotConvertibler  -"  r  r+   r  z"Pyston disables recursion checkingr   )r   rL  r#   r  r	   r8   r}  r   r   r  RecursionError)rT   r  self_containingErrors       r)   test_to_bool_scalarz"TestConversion.test_to_bool_scalar'"  s    T"((E7+,e4T"((D6*+T2T"((RD6*+T2j$!Q(89	* 	* 	)4.:J1KL)4>;K:L1MNKK<=((D6*,eT?3!r+   c                   t         d f}|D ];  }t         |t        j                  d            d       t	        t
              5  t         |t        j                  dg            d       d d d        t	        t
              5  t         |t        j                  dgg            d       d d d        t        t        |t        j                  ddg             t        d |t        j                  d                   t        d |t        j                  d	                   t        d
 |t        j                  d                   t        j                  dk  rx G d d      }t        d |t        j                   |                          t	        t
              5  t        d |t        j                   |       g                   d d d        n	  G d d      }t        t        |t        j                   |                    t	        t
              5  t        t        |t        j                   |       g             d d d        > y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w)Nc                "    | j                         S r"   )__int__r  s    r)   r  z3TestConversion.test_to_int_scalar.<locals>.<lambda>@"  s
    AIIKr+   r   r3   r  r2   r   4rW      5r   6)r   r?  c                      e Zd Zd Zy)3TestConversion.test_to_int_scalar.<locals>.HasTruncc                     yr  rd   rS   s    r)   	__trunc__z=TestConversion.test_to_int_scalar.<locals>.HasTrunc.__trunc__R"  s     r+   N)ra   rb   rc   r  rd   r+   r)   HasTruncr  Q"  s    !r+   r  r   c                      e Zd Zd Zy)9TestConversion.test_to_int_scalar.<locals>.NotConvertiblec                    t         r"   r|  rS   s    r)   r  zATestConversion.test_to_int_scalar.<locals>.NotConvertible.__int__["  s    --r+   N)ra   rb   rc   r  rd   r+   r)   r  r  Z"  s    .r+   r  )r
  r   r#   r  r
   r   r	   r)  r  r  r  version_infor}  )rT   	int_funcsint_funcr  r  s        r)   test_to_int_scalarz!TestConversion.test_to_int_scalar>"  s   /0	!H"((1+.201Xbhhsm4a8 201Xbhhv&67< 2)XrxxA/?@ HRXXc]34HRYYt_56HRWWS\23 ')! ! Q(*)= >?!"45 HRXXxzl-C$DE 65 . . -"((>#346011bhh(8'9:< 21= "1111  65 21s0   'I(I,I&+I2I	I#	&I/	2I<	N)ra   rb   rc   r  r  r  rd   r+   r)   rz  rz  !  s    '>R".#<r+   rz  c                  H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)	TestWherec                   t         t        j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  g}|D ][  }t        j                  dt               }t        t        j                  | |d       |d             |d             t        t        j                  |  |d       |d             |d             t        t        j                  d |d       |d             |d             t        t        j                  d |d       |d             |d             t        j                  |      j                  |      }t        j                  |      }|j                  |      }d|d<   |d   |d<   t        t        j                  |||      |       t        t        j                  |||      |       t        t        j                  |||d         |       t        t        j                  ||d   |      |       t        t        j                  |d d d   |d d d   |d d d         |d d d          t        t        j                  |dd d   |dd d   |dd d         |dd d          t        t        j                  |d d d	   |d d d	   |d d d	         |d d d	          t        t        j                  |dd d	   |dd d	   |dd d	         |dd d	          t        t        j                  |d d d
   |d d d
   |d d d
         |d d d
          t        t        j                  |d d d   |d d d   |d d d         |d d d          t        t        j                  |dd d   |dd d   |dd d         |dd d          ^ y )N5   r   r   r3   TFr  r2   r   r  r  )rL  r#   r   r   r   r>  r  r  r@  rK  r   r  	ones_liker  rZ  )rT   dtsrL  r[  r   r  r  s          r)   r  zTestWhere.test_basice"  s%   RXXrxx299bmm}}bnn.B$'A1beRU3RU;1"beRU3RU;$1r!u5r!u=%A161>Q&&r*Aa AAAaDQ4AaD!Q*A.!Q*A.!Q!-q1!QqT1-q1!CaC&!CaC&!CaC&91SqS6B!ADqD'1QTT7AaddG<a1gF!CaC&!CaC&!CaC&91SqS6B!ADqD'1QTT7AaddG<a1gF!DbD'1TrT7AddG<a"gF!DbD'1TrT7AddG<a"gF!AErE(AaeeHa2h?15b5J+ r+   c                   t        t        j                  dd d       t        j                  d              t        j                  g t              j                  dd      }t        j                  g t        j                        j                  dd      }t        t        j                  |d|      t        j                  g       j                  dd             t        j                  g d      }t        d      }t        j                  dd|d	||d
d||d||d||d|ddgt              }t        j                  g dt              }|d d  }|t        j                  |         |t        j                  |      <   t        t        j                  |||      |       |d d  }|t        j                  |          |t        j                  |       <   t        t        j                  |||      |       t        t        j                  |||      |       t        j                  ddgt        j                        }t        d      }t        t        j                  d||      j                  t        j                         t        d      }t        t        j                  d||      j                  t        j                         t        d      }t        t        j                  d||      j                  t        j                         t        d      }t        t        j                  d||      j                  t        j                         y )NTr   r   r   )gq=
ףpg{GzĿgHzGgףp=
ӿg{Gzgffffffr5  gx&1?g/$?g
ףp=
ǿgx&1?gh|?5?g/$?gףp=
?g|?5^?gh|?5?gʡE?gZd;O?g=
ףp=g^I+?NaN5z0lWzXqcsQNFdkp36r  )r   r   r3   r   r3   r3   r   r   r3   r3   r   r3   r3   r   r3   r3   r   r3   r   r   r6  r  Infinityz	-InfinitygP.5_)r   r#   r  r  rL  r   r   r  r7   r  r   r/   )rT   r  r   r   r-  r  r  s          r)   test_exoticzTestWhere.test_exotic"  s_   288D$5rxx~FHHRt$,,Q2HHRrzz*221a8288Aq!,bhhrl.B.B1a.HI HH 2 3 ElHHdD#tS#tT33T3T3dL!# HH 4;?A aD288A;"((1+288Aq!,a0aDBHHaRL/"((A2,288Aq!,a0288Aq!,a0 HHb"XRZZ0%LRXXdAq)//<*RXXdAq)//<+RXXdAq)//<%LRXXdAq)//<r+   c                   ddg}t        j                  d      }t        j                  d      }t        j                  t        j                  |      d d t         j
                  f   ||      }t        |d   |d          t        |d   |d          |j                  }|j                  }t        j                  |||      }t        |d d df   |d d df          t        |d d df   |d d df          y )NTF)r2   r;  r   r3   )r#   r9   rK  r  r  r  r   rM  )rT   r[  rR   r   r  s        r)   	test_ndimzTestWhere.test_ndim"  s    5MHHWGGGHHRXXa[2::.151Q41&1Q41&CCCCHHQ11QqS61QqS6*1QqS61QqS6*r+   c                   t        j                  g d      }t        j                  d      }t        j                  g dt         j                        }t        j                  g dt         j                        }t	        t        j
                  |||      |       |j                  t         j                        }|j                  t         j                        }t	        t        j
                  |||      |       |j                  t              }d||dk7  <   t	        t        j
                  |||      |       |dk7  }d||dk(  <   d||<   t	        t        j
                  |||      |       y )	NFTFFFFTFFFTFr3   ri  r5  r  r  r        r5        $rw	  r6  r5  r  r   ri  r6  r  r  r  r  r6  r  rw	  r6  r6  r  i
r   iau)
r#   r  r   r   r   r  r  r  r   r
  )rT   r[  rR   r   r  tmpmasks         r)   test_dtype_mixzTestWhere.test_dtype_mix"  s   HH 0 1IIaLHHJJJ(HHJ::'RXXaA&*HHRZZ HHRXXRXXaA&* HHSM!q&	RXXaA&*q&!q&	'
RXXaA&*r+   c                j   t        j                  g d      }t        j                  g dt         j                        }t        j                  dd      }t        j                  g dt         j                        }t	        t        j
                  |||      |       |j                  d      }t	        t        j
                  |||      |       |j                  d      }t	        t        j
                  |||      |       |j                  d      }t	        t        j
                  |||      |       y )	Nr  r  r   r3   r  r  r  r  )r#   r  r   rK  r   r  r  )rT   r[  r  rR   r   s        r)   test_foreignzTestWhere.test_foreign"  s    HH 0 1HHJ::'GGAU#HHJ::'RXXaA&*HHUORXXaA&*HHUORXXaA&*HHUORXXaA&*r+   c                    ddg}t        j                  d      }t        j                  d      }t        t        t         j                  |||       t        t        t         j                  |d   ||       y )NTr   r  r   )r#   rK  r	   r8   r  )rT   r[  rR   r   s       r)   
test_errorzTestWhere.test_error"  sQ    4LGGFOGGFOj"((Aq!4j"((AaD!Q7r+   c                   t        j                  d      }t        j                  d      }t        t        j                  d||      d       t        t        j                  d||      d       t        j                  d      }t        j                  d      }t        t        j                  d||      d       t        t        j                  d||      d       y )Nr    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTFabcdxxxxxxxx)r#   r  r   r  r  s      r)   r  zTestWhere.test_string"  s    HHUOHHYRXXdAq)51RXXeQ*E2 HHVHHWRXXdAq)62RXXeQ*F3r+   c           	        t        j                  d      }t        j                  t        j                  |dk(              }t	        |t        j
                  t        j                  g g gt         j                                     y )Nr  g     X@r   )r#   r9   vstackr  r   
atleast_2dr  r7  )rT   r  ibads      r)   test_empty_resultzTestWhere.test_empty_result"  sW     HHVyy!s(+,4==2b')IJ	Lr+   c                    g d}t         j                  j                  d       t        j                  j                  | }t	        d      D ].  }|j                         }|j                         }t        ||       0 y )N)rQ   r2   r   r   rW   r   r2   rQ   )r#   rp  rn  rr  r   nonzeror   )rT   rF   r  r   	benchmarkr%  s         r)   test_largedimzTestWhere.test_largedim"  sW    #
		q		&rAI]]_Fy&1 r+   c                    t        j                  d      }t        t              5  t        j                  |||       d d d        y # 1 sw Y   y xY w)Nr3   r  )r#   r9   r	   r)  r  r   s     r)   r  zTestWhere.test_kwargs#  s3    HHQK9%HHQ!q! &%%s   AAN)ra   rb   rc   r  r  r  r  r  r  r  r  r  r  rd   r+   r)   r  r  d"  s7    K4'=R++0+&84L	2"r+   r  c                  R    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ed	        Zd
 Zy)
TestSizeOfc                p    t        j                  g       }t        t        j                  |      dkD         y r	  )r#   r  r   r  	getsizeofr<  s     r)   test_empty_arrayzTestSizeOf.test_empty_array#  s%    ACMM!$q()r+   c                     |d      j                   }dD ]=  }t        j                  ||      }t        t	        j
                  |      ||z  kD         ? y )Nr   )rQ   r  r^  i  r   )r@   r#   r%   r   r  r  )rT   r/   	elem_sizerm  r  s        r)   check_arrayzTestSizeOf.check_array#  sF    a))I,IIfE2a(6I+==> -r+   c                B    | j                  t        j                         y r"   )r  r#   r   rS   s    r)   test_array_int32zTestSizeOf.test_array_int32#      RXX&r+   c                B    | j                  t        j                         y r"   )r  r#   r   rS   s    r)   test_array_int64zTestSizeOf.test_array_int64 #  r  r+   c                B    | j                  t        j                         y r"   )r  r#   r  rS   s    r)   test_array_float32zTestSizeOf.test_array_float32##      RZZ(r+   c                B    | j                  t        j                         y r"   )r  r#   r   rS   s    r)   test_array_float64zTestSizeOf.test_array_float64&#  r  r+   c                    t        j                  d      }t        t        j                  |d         t        j                  |      k         y )Nr^  .)r#   rK  r   r  r  rh  s     r)   r  zTestSizeOf.test_view)#  s2    ACMM!C&)CMM!,<<=r+   c           
         t        j                  d      }t        t        j                  |      t        j                  |j                  ddd      j                               k         y )Nr^  r3   )r#   rK  r   r  r  r   rX  rh  s     r)   r  zTestSizeOf.test_reshape-#  sD    ACMM!$s}}QYYsAq5I5N5N5P'QQRr+   c                    t        j                  d      }t        j                  |      }|j	                  d       t        |t        j                  |      kD         |j	                  d       t        |t        j                  |      k         y )Nr^  r     )r#   rK  r  r  r  r   )rT   r   olds      r)   r  zTestSizeOf.test_resize1#  s_    A--"CHHRLC#--**+HHSMC#--**+r+   c                d    t        j                  d      }t        t        |j                  d       y )Nr^  rR   )r#   rK  r	   r)  
__sizeof__rh  s     r)   r  zTestSizeOf.test_error:#  s    A)Q\\37r+   N)ra   rb   rc   r  r  r  r  r  r  r  r  r   r  r  rd   r+   r)   r  r  #  sD    	*	?	'	'	)	)	>	S 
	, 
	,	8r+   r  c                      e Zd Zd Zd Zy)TestHashingc                X    t        j                  d      }t        t        t        |       y r  )r#   rK  r	   r)  r   r<  s     r)   test_arrays_not_hashablez$TestHashing.test_arrays_not_hashableA#  s    GGAJiq)r+   c                    t        j                  g       }t        t        |t        j
                  j                                y r"   )r#   r  r   r   collectionsr  Hashabler<  s     r)   test_collections_hashablez%TestHashing.test_collections_hashableE#  s+    HHRLJq+//":":;;<r+   N)ra   rb   rc   r  r  rd   r+   r)   r  r  ?#  s    *=r+   r  c                  6   e Zd ZeZej
                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                   ej                  ej"                  ej$                  ej&                  ej(                  ej*                  ej,                  gZ G d dej2                        Z G d dej2                        Z G d d      Zd Zd Zd	 Zd
 Z y)TestArrayPriorityc                      e Zd ZdZd Zy)TestArrayPriority.Foor  c                J    t        j                  |i |j                  |       S r"   r#   r  rm   r	  rz  r  s      r)   r	  zTestArrayPriority.Foo.__new__W#  !    88T,V,11#66r+   Nra   rb   rc   r  r	  rd   r+   r)   r:  r  T#      !	7r+   r:  c                      e Zd ZdZd Zy)TestArrayPriority.Barg     @Y@c                J    t        j                  |i |j                  |       S r"   r  r  s      r)   r	  zTestArrayPriority.Bar.__new__]#  r  r+   Nr  rd   r+   r)   Barr  Z#  r  r+   r  c                      e Zd ZdZd ZexZZexZZexZ	Z
exZZexZZexZZexZZexZZexZZexZZexZZexZZexZZeZeZ eZ!eZ"eZ#eZ$y)TestArrayPriority.Otherg     @@c                "    | j                         S r"   r  rg  s     r)   _allzTestArrayPriority.Other._allc#  s    >>##r+   N)%ra   rb   rc   r  r  r	  r?  r	  __rsub__rs  r	  ry  r{  rv  __rdiv____mod____rmod____truediv____rtruediv____floordiv____rfloordiv____and____rand____xor____rxor____or____ror__
__lshift____rlshift__
__rshift____rrshift__r|  r}  r~  r  ri  r  rd   r+   r)   Otherr  `#  s    "	$ "!(!!(!!(!!(!!(!!(%))l'++}!!(!!(#''
[#''
[r+   r  c           	     ,   t        j                  ddg      }| j                  ddg      }| j                  D ][  }t	        |      }t        t         |||      | j                        |       t        t         |||      | j                        |       ] y Nr3   r2   )r#   r  r  
binary_opsr  r   r   rT   rR   r   r  r&  s        r)   test_ndarray_subclassz'TestArrayPriority.test_ndarray_subclassz#  ss    HHaVHHaVAq'CJqAw137JqAw137 !r+   c           	     &   t        j                  ddg      }| j                         }| j                  D ][  }t	        |      }t        t         |||      | j                        |       t        t         |||      | j                        |       ] y r  )r#   r  r  r  r  r   r   r  s        r)   test_ndarray_otherz$TestArrayPriority.test_ndarray_other#  sl    HHaVJJLAq'CJqAw

3S9JqAw

3S9 !r+   c           	     $   | j                  ddg      }| j                  ddg      }| j                  D ][  }t        |      }t	        t         |||      | j                        |       t	        t         |||      | j                        |       ] y r  )r:  r  r  r  r   r   r  s        r)   test_subclass_subclassz(TestArrayPriority.test_subclass_subclass#  ss    HHaVHHaVAq'CJqAw137JqAw137 !r+   c           	        | j                  ddg      }| j                         }| j                  D ][  }t        |      }t	        t         |||      | j                        |       t	        t         |||      | j                        |       ] y r  )r:  r  r  r  r   r   r  s        r)   test_subclass_otherz%TestArrayPriority.test_subclass_other#  sl    HHaVJJLAq'CJqAw

3S9JqAw

3S9 !r+   N)!ra   rb   rc   r>   r  r  r  r  r?   r  r  r  and_or_r  r  r  gtgeltler  r  r  r#   rE   r:  r  r  r  r  r  r  rd   r+   r)   r  r  J#  s     
B
RZZ
BIIrvvruu
ruubeeRUUBEE
J7bjj 77bjj 7 48:8:r+   r  c                  $    e Zd Zd Zd Zd Zd Zy)TestBytestringArrayNonzeroc                P    t        t        j                  dgt                      y Nr  r   )r   r#   r  r  rS   s    r)   "test_empty_bstring_array_is_falseyz=TestBytestringArrayNonzero.test_empty_bstring_array_is_falsey#  s    BHHbT--.r+   c                ^    t        j                  dgt              }d|d<   t        |        y )Nr  r       r   r#   r  r  r   r   s     r)   'test_whitespace_bstring_array_is_falseyzBTestBytestringArrayNonzero.test_whitespace_bstring_array_is_falsey#  s&    HHfXS)!Ar+   c                ^    t        j                  dgt              }d|d<   t        |        y )Nr  r       r   r)  r   s     r)   %test_all_null_bstring_array_is_falseyz@TestBytestringArrayNonzero.test_all_null_bstring_array_is_falsey#  s&    HHfXS)!Ar+   c                \    t        j                  dgt              }d|d<   t        |       y )Nr  r       r   r)  r   s     r)   (test_null_inside_bstring_array_is_truthyzCTestBytestringArrayNonzero.test_null_inside_bstring_array_is_truthy#  s$    HHfXS)!
r+   N)ra   rb   rc   r&  r*  r-  r0  rd   r+   r)   r#  r#  #  s    /

r+   r#  c                  "    e Zd ZdZd Zd Zd Zy)TestUnicodeEncodingz_
    Tests for encoding related bugs, such as UCS2 vs UCS4, round-tripping
    issues, etc
    c                    t        j                  dd      }t        dt        j                  dz         D ]1  }t        |      }||d<   |d   |k(  sJ |j                         |k(  r1J  y)z; Tests that GETITEM, SETITEM, and PyArray_Scalar roundtrip rd   U1r  r3   N)r#   r9   r   r  
maxunicoderN  r  )rT   r'   r   r  s       r)   test_round_tripz#TestUnicodeEncoding.test_round_trip#  sf     hhRt,q#..1,-A1vHCGr7h&&&88:)))	 .r+   c                ~    t        j                  ddg      }t        j                  d      |d d  t        |ddg       y Naabbcc)r#   r  r  r   rT   r   s     r)   test_assign_scalarz&TestUnicodeEncoding.test_assign_scalar#  s3    HHdD\"wwt}!Qt%r+   c                    t        j                  ddg      }|j                  t        j                  d             t	        |ddg       y r8  )r#   r  rD   r  r   r<  s     r)   test_fill_scalarz$TestUnicodeEncoding.test_fill_scalar#  s6    HHdD\"	rwwt}Qt%r+   N)ra   rb   rc   r  r6  r=  r?  rd   r+   r)   r2  r2  #  s    *&&r+   r2  c                  $    e Zd Zd Zd Zd Zd Zy)TestUnicodeArrayNonzeroc                d    t        t        j                  dgt        j                                y r%  )r   r#   r  r  rS   s    r)   "test_empty_ustring_array_is_falseyz:TestUnicodeArrayNonzero.test_empty_ustring_array_is_falsey#  s    BHHbT112r+   c                r    t        j                  dgt         j                        }d|d<   t        |        y )Neggsr   r(  r   r#   r  r  r   r   s     r)   'test_whitespace_ustring_array_is_falseyz?TestUnicodeArrayNonzero.test_whitespace_ustring_array_is_falsey#  s*    HHfXRWW-!Ar+   c                r    t        j                  dgt         j                        }d|d<   t        |        y )NrE  r   r,  r   rF  r   s     r)   %test_all_null_ustring_array_is_falseyz=TestUnicodeArrayNonzero.test_all_null_ustring_array_is_falsey#  s*    HHfXRWW-!Ar+   c                p    t        j                  dgt         j                        }d|d<   t        |       y )NrE  r   r/  r   rF  r   s     r)   (test_null_inside_ustring_array_is_truthyz@TestUnicodeArrayNonzero.test_null_inside_ustring_array_is_truthy#  s(    HHfXRWW-!
r+   N)ra   rb   rc   rC  rG  rI  rK  rd   r+   r)   rA  rA  #  s    3

r+   rA  c                      e Zd Zd Zd Zd Zy)
TestFormatc                    t        j                  t         j                        }t        dj	                  |      d       t        dj	                  |d         d       y )Nz{:0.3g}z3.14rd   )r#   r  pir   rH  r   s     r)   test_0dzTestFormat.test_0d#  sA    HHRUUOY%%a(&1Y%%ae,f5r+   c                    t        j                  t         j                  g      }t        dj	                  |      t        |             y )Nz{})r#   r  rO  r   rH  r  r   s     r)   test_1d_no_formatzTestFormat.test_1d_no_format#  s,    HHbeeWT[[^SV,r+   c                    t        j                  t         j                  g      }t        t        dj
                  |       y )Nz{:30})r#   r  rO  r	   r)  rH  r   s     r)   test_1d_formatzTestFormat.test_1d_format#  s&    HHbeeWi3r+   N)ra   rb   rc   rP  rR  rT  rd   r+   r)   rM  rM  #  s    6
-4r+   rM  )r   c                     e Zd Zd Zd Zd Zej                  j                  d e	j                  g d       e	j                  ddgdd	gg       e	j                  d
d       e	j                  d e	j                   eddgddgddgd                   e	j                  dge       e	j                  g        e	j                  d       e e	j                  g d            gg d      d        Zd Zy)
TestCTypesc                    t        j                  g dg dg      }t        t        |j                  j                         t        t        |j                  j                        d       y )NrV  r  r  )r#   r  r   r  _ctypesr  rF   )rT   test_arrs     r)   test_ctypes_is_availablez#TestCTypes.test_ctypes_is_available#  sB    88Y	23VX__445U8??0016:r+   c                D   ddl m} d |_        	 t        j                  g dg dg      }t        t        |j                  j                  |j                               t        t        |j                  j                        d       t        |_        y # t        |_        w xY w)Nr   )r  rV  r  r  )
numpy.corer  r  r#   r  r   r   rX  _missing_ctypesr   r  rF   )rT   r  rY  s      r)   test_ctypes_is_not_availablez'TestCTypes.test_ctypes_is_not_available#  ss    (		&xxI 67HJx66(88: ;x445v>%IvIs   A7B Bc                (    d| j                   _        | S )NF)rY   rZ   r  s    r)   _make_readonlyzTestCTypes._make_readonly$  s    !r+   r'   rV  r   r   r   fourr  r#	  r   r  r  rR   r   r   r2   r   r  Nr!  )r
  2d
structuredoverlappingr7   rA   zempty-2dr   r
  c                $   |j                         }t        j                  |      }|j                  j	                  t        j
                        }~t                t         |       d ud       ~t        r
t                t         |       d u d       y Nz,ctypes pointer did not hold onto a referencez3unknowable whether ctypes pointer holds a reference)	rX  r  r  r  data_asc_void_pr   r   r   rT   r'   arr_ref
ctypes_ptrs       r)   #test_ctypes_data_as_holds_referencez.TestCTypes.test_ctypes_data_as_holds_reference$  sr    : hhj++c"ZZ''8
 	%'UV  N	T!#XYr+   c                &   t        j                  d g      j                         }t        j                  |      }|j
                  j                  }~t                t         |       d ud       ~t        r
t                t         |       d u d       y rf  )
r#   r  rX  r  r  r  _as_parameter_r   r   r   ri  s       r)   (test_ctypes_as_parameter_holds_referencez3TestCTypes.test_ctypes_as_parameter_holds_reference<$  ss    hhv##%++c"ZZ..
 	%'UV N	T!#XYr+   )ra   rb   rc   rZ  r^  r`  r   r   r   r#   r  r9   r/   r  r7   rA   rl  ro  rd   r+   r)   rV  rV  #  s   ;
& [[U5%.7F"345w'BHHTCjA	 	
 	$v&xrxx	*+% 	!  4Z54Z.Zr+   rV  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ej                  j                  d      d        Zd Zy)TestWritebackIfCopyc                    t        j                  d      }t        j                  dd      }t        j                  |d|      }t	        |t        d             y NrW   r  r   r   r  )r#   r  rA   r6  r   r   rT   rW	  r  rY  s       r)   test_argmax_with_outz(TestWritebackIfCopy.test_argmax_with_outQ$  s?    ffQihhq%iiQC(S%(#r+   c                    t        j                  d       }t        j                  dd      }t        j                  |d|      }t	        |t        d             y rs  )r#   r  rA   r7  r   r   rt  s       r)   test_argmin_with_outz(TestWritebackIfCopy.test_argmin_with_outW$  sA    vvayjhhq%iiQC(S%(#r+   c           	     2   t        j                  d      j                  dd      j                  }t        j                  ||dkD  ddg       t        |t        j                  ddgddgddgg             t        t        t         j                  ||dkD  g        y )	Nr   r2   r   ,   r>  r   r3   r   )	r#   r%   r   rM  placer   r  r	   r8   r   s     r)   test_insert_noncontiguousz-TestWritebackIfCopy.test_insert_noncontiguous]$  sx    IIaL  1%''
AaC"b"Q1b'Ar7QG!<=>j"((AqtR8r+   c           	         t        j                  d      j                  dd      j                  }t        j                  |ddgddg       t        |t        j                  ddgddgddgg             y )	Nr   r2   r   r   ry  r>  r   rW   )r#   r%   r   rM  r  r   r  r   s     r)   test_put_noncontiguousz*TestWritebackIfCopy.test_put_noncontiguouse$  s`    IIaL  1%''
q1a&2r(#Q2q'B7QF!;<=r+   c           	         t        j                  d      j                  dd      j                  }t        j                  ||dkD  |dz         t        |t        j                  ddgddgddgg             y )	Nr   r2   r   r   r  r3   r   r;  )r#   r%   r   rM  r  r   r  r   s     r)   test_putmask_noncontiguousz.TestWritebackIfCopy.test_putmask_noncontiguousj$  s`    IIaL  1%''


1ac1a4 Q1a&1b'Ar7!;<=r+   c                    t        j                  dd      }t        j                  dd      }t        j                  |ddg|d       t	        |t        j
                  ddg             y )Nr   r
  r   r2   r   raiser  )r#   r%   rA   r  r   r  )rT   rR   r  s      r)   test_take_mode_raisez(TestWritebackIfCopy.test_take_mode_raisep$  sO    IIau%hhq&
Aq6s1S"((Aq6*+r+   c           	         t        j                  g dg dg dg      }t        j                  dd      }ddg}t        j                  |||d	       t	        |t        j                  g d
g dg d
g             y )Nr  r  rW  r
  r   rQ   r  r  )rQ   r  rQ   )r  rQ   r  )r#   r  rA   r  r   )rT   rR   r  choicess       r)   test_choose_mod_raisez)TestWritebackIfCopy.test_choose_mod_raisev$  sd    HHiI67hhuE*)
		!W#G4S"((O$3$3$5 6 	7r+   c                    t        j                  d      j                  dd      }|j                  j                  }|j                         }~y )Nr  r   )r#   r%   r   rM  r  r  rf  s       r)   test_flatiter__array__z*TestWritebackIfCopy.test_flatiter__array__$  s7    IIaL  1%CCHHKKMr+   c           	         t        j                  dt              j                  dd      }t        j                  |||      }t        |t        j                  g dg dg dg             y )Nr  r   r   r  )r  rx  r  )r  6   B   )E   Z   o   )r#   r%   r  r   re  r   r  r  s      r)   test_dot_outz TestWritebackIfCopy.test_dot_out$  sK    IIau%--a2FF1aQQ,m!LMNr+   c                   ddl m}m} t        j                  d      j                  dd      j                  } ||      }t        |j                  j                         t        |j                  |u        d|d<    ||       t        |d       t        |j                  j                  dk7         t        |j                  d        d|d<   t        |d       y )Nr   )npy_create_writebackifcopynpy_resolver  r   r  .r^  )r   r  r  r#   r%   r   rM  r   rY   r   r   r   r  r4   )rT   r  r  r'   arr_wbs        r)   test_view_assignz$TestWritebackIfCopy.test_view_assign$  s    Xiil""1a(**+C0,,-s"#sFS$""a'(V[[$'sS$r+   z9increments self in dealloc; ignore since deprecated path.r   c                .   t               5 }|j                  t               t        j                  d      j                  dd      }|j                  }t        j                  |       t        |j                        dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr  r   r3   )r   r   rt  r#   r%   r   rM  r  npy_abuse_writebackifcopyr&   log)rT   rv  r'   r   s       r)   test_dealloc_warningz(TestWritebackIfCopy.test_dealloc_warning$  sk      CJJ~&))A,&&q!,CA77:sww<1$$$ !  s   A6BBc                R   ddl m}m} t        j                  d      j                  dd      j                  }|j                         }t        rt        j                  |      } ||      }t        |j                  j                         t        |j                  |u        d|d<    ||       t        ||       t        |j                   j"                  dk7         t        |j                  d        t        rt        t        j                  |             d|d<   t        ||       y )Nr   )r  npy_discardr  r   r  .r^  )r   r  r  r#   r%   r   rM  rX  r   r  r  r   rY   r   r   r   r  r4   )rT   r  r  r'   r  arr_cntr  s          r)   test_view_discard_refcountz.TestWritebackIfCopy.test_view_discard_refcount$  s    Xiil""1a(**xxzooc*G+C0,,-s"#sFS$""a'(V[[$'#//#"67sS$r+   N)ra   rb   rc   ru  rw  r{  r}  r  r  r  r  r  r  r   r   rM  r  r  rd   r+   r)   rq  rq  O$  sg    $$9>
>,7O $ [[!!N " P%P% r+   rq  c                      e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  dg d      d	        Zd
 Zd Ze	j                  j                  dg d      d        Zy)
TestArangec                b    t        t        dt        j                  dt        j                         y )Nzsize exceededr   )r   r8   r#   r%   r  rS   s    r)   test_infinitezTestArange.test_infinite$  s    IIq"&&	
r+   c                d    t        t        dt        j                  ddt        j                         y )Nzcannot compute lengthr   r3   )r   r8   r#   r%   r-  rS   s    r)   test_nan_stepzTestArange.test_nan_step$  s!    /IIq!RVV	
r+   c                   t        t        t        j                  ddd       t        t        t        j                  ddd       t        t        t        j                  ddd       t        t        t        j                  ddd       y )Nr   rQ   r5  rw	  )r	   ZeroDivisionErrorr#   r%   rS   s    r)   test_zero_stepzTestArange.test_zero_step$  sX    'Ar1='CsC 	'Aq!<'CcBr+   c                    t        t        t        j                         t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       y )Nr   )rV  r   r   r   )start)r	   r)  r#   r%   rS   s    r)   test_require_rangezTestArange.test_require_range$  s@    i+i3i':i!4r+   c                   t        j                  d      }t        j                  dd      }t        j                  dd      }t        |      dk(  sJ t        |      dk(  sJ t        |      dk(  sJ t        ||       y )Nr   )stopr   )r  r  r  r   )r#   r%   r&   r   )rT   keyword_stopkeyword_zerotostopkeyword_start_stops       r)   test_start_stop_kwargz TestArange.test_start_stop_kwarg$  sx    yya(YYQQ7YYQQ7< A%%%%&!+++%&!+++<);<r+   c                   t        j                  dt              }t        |t        j                  g d             t        j                  dd      }t        |dg       t        j                  dd      }t        |ddg       t        j                  ddd      }t        |ddg       t        j                  t              5  t        j                  dd       d d d        y # 1 sw Y   y xY w)	NFr   rL  Tr2   r   r   r   )r#   r%   rL  r   r  r   rB  r)  )rT   rY  s     r)   test_arange_booleanszTestArange.test_arange_booleans$  s     iiT*36 :;iiF+3(ii(3. ii1F+3t-]]9%IIav& &%%s   C&&C/r/   )r  r_  5ic                   t        j                  |      }t        j                  t	        t        |                  }t        j                  t        d|       5  t        j                  d|       d d d        y # 1 sw Y   y xY w)N'arange\(\) not supported for inputs .* r@  r2   r   )
r#   r/   reescaper  r  r   rB  r)  r%   )rT   r/   
DType_names      r)   test_rejects_bad_dtypesz"TestArange.test_rejects_bad_dtypes$  s`    YYs4;/0
]]9@MOIIau%O O Os   A<<Bc           	        t        j                  t        t        t	        j
                  d      j                                    }t        j                  t        d|       5  t	        j                  dd       d d d        y # 1 sw Y   y xY w)NrR   r  r@  r   )r  r  r  r  r#   r  r/   r   rB  r)  r%   )rT   r  s     r)   test_rejects_stringszTestArange.test_rejects_strings%  sb    YYs4(;(;#<=>
]]9@MOIIc3O O Os   #BBc                    t        j                  ddd      }t        j                  ddd      }|j                  dk(  sJ |j                  dk(  sJ t        ||       y )Nr3   r   r  r   r  )r#   r%   r/   r   )rT   res_beres_les      r)   test_byteswappedzTestArange.test_byteswapped%  sT    1d%01d%0||u$$$||u$$$66*r+   whichru  c                (   g d}t        j                  d      ||<   t        j                  | j                  t         j                  k(  sJ d g g||<   t	        j
                  t              5  t        j                  |  d d d        y # 1 sw Y   y xY w)Nru  r  )r#   r   r%   r/   r   rB  r8   )rT   r  rz  s      r)   test_error_paths_and_promotionz)TestArange.test_error_paths_and_promotion%  sl    jjnUyy$%%333 RjU]]:&IIt '&&s   ,BBN)ra   rb   rc   r  r  r  r  r  r  r   r   r   r  r  r  r  rd   r+   r)   r  r  $  sv    

C5='( [[W&78& 9& + [[Wi0
 1
r+   r  c                  4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	TestArrayFinalizez Tests __array_finalize__ c                     G d dt         j                        }t        j                  d      j                  |      }t	        |j
                  |j                  u        y )Nc                      e Zd Zd Zy)7TestArrayFinalize.test_receives_base.<locals>.SavesBasec                &    | j                   | _        y r"   )r   
saved_baser  s     r)   r	  zJTestArrayFinalize.test_receives_base.<locals>.SavesBase.__array_finalize__#%  s    "&))r+   Nra   rb   rc   r	  rd   r+   r)   	SavesBaser  "%  s    ,r+   r  r3   )r#   rE   r  rm   r   r  r   )rT   r  rR   s      r)   test_receives_basez$TestArrayFinalize.test_receives_base %  sA    	,

 	, HHQKY'&'r+   c                     G d dt         j                        }t        j                  t        d      5  t        j
                  d      j                  |       d d d        y # 1 sw Y   y xY w)Nc                      e Zd Zed        Zy)?TestArrayFinalize.test_bad_finalize1.<locals>.BadAttributeArrayc                    t        d      Nboohoo!r  rS   s    r)   r	  zRTestArrayFinalize.test_bad_finalize1.<locals>.BadAttributeArray.__array_finalize__+%  s    "9--r+   N)ra   rb   rc   r@  r	  rd   r+   r)   BadAttributeArrayr  *%  s    . .r+   r  znot callabler@  rQ   r#   rE   r   rB  r)  r%   rm   rT   r  s     r)   test_bad_finalize1z$TestArrayFinalize.test_bad_finalize1)%  sE    	.

 	.
 ]]9N;IIbM01 <;;   %A##A,c                     G d dt         j                        }t        j                  t        d      5  t        j
                  d      j                  |       d d d        y # 1 sw Y   y xY w)Nc                      e Zd Zd Zy)?TestArrayFinalize.test_bad_finalize2.<locals>.BadAttributeArrayc                    t        d      r  r  rS   s    r)   r	  zRTestArrayFinalize.test_bad_finalize2.<locals>.BadAttributeArray.__array_finalize__4%      "9--r+   Nr  rd   r+   r)   r  r  3%      .r+   r  ztakes 1 positionalr@  rQ   r  r  s     r)   test_bad_finalize2z$TestArrayFinalize.test_bad_finalize22%  sG    	.

 	. ]]9,@AIIbM01 BAAr  c                     G d dt         j                        }t        j                  t        d      5  t        j
                  d      j                  |       d d d        y # 1 sw Y   y xY w)Nc                      e Zd Zd Zy)?TestArrayFinalize.test_bad_finalize3.<locals>.BadAttributeArrayc                    t        d      r  r  r  s     r)   r	  zRTestArrayFinalize.test_bad_finalize3.<locals>.BadAttributeArray.__array_finalize__<%  r  r+   Nr  rd   r+   r)   r  r  ;%  r  r+   r  r  r@  rQ   )r#   rE   r   rB  r  r%   rm   r  s     r)   test_bad_finalize3z$TestArrayFinalize.test_bad_finalize3:%  sE    	.

 	. ]]<y9IIbM01 :99r  c                (    G d dt         j                        } G d d      }t        j                   |             }t        j                  |d         }t        t              5 }|j                  |       d d d        j                  j                  d   }~t        t        ||             t                t         |       d ud       ~t                t         |       d ud       ~t                t         |       d u d	       y # 1 sw Y   xY w)
Nc                      e Zd Zd Zy)BTestArrayFinalize.test_lifetime_on_error.<locals>.RaisesInFinalizec                    t        |       r"   r  r  s     r)   r	  zUTestArrayFinalize.test_lifetime_on_error.<locals>.RaisesInFinalize.__array_finalize__E%  s    o%r+   Nr  rd   r+   r)   RaisesInFinalizer  D%  s    &r+   r  c                      e Zd Zy)7TestArrayFinalize.test_lifetime_on_error.<locals>.DummyNr`   rd   r+   r)   Dummyr  J%  s    r+   r  rd   r   z!object should not already be deadz*obj_arr should not hold the last referencezno references should remain)r#   rE   r  r  r  r	   r  rm   r  rz  r   r   r   )rT   r  r  r~  obj_refr  obj_subarrays          r)   test_lifetime_on_errorz(TestArrayFinalize.test_lifetime_on_errorB%  s    	&rzz 	& 	 ((57#++gbk* 9%LL)* & {{''*
<)9:; 		%'JK	%'ST	T!#@A# &%s   %DDc                     G d dt         j                        }t        j                  d      j                  |      }t	        |j
                  d u        y )Nc                       e Zd Z fdZ xZS );TestArrayFinalize.test_can_use_super.<locals>.SuperFinalizec                .    t         |   |      | _        y r"   )superr	  saved_result)rT   r   r  s     r)   r	  zNTestArrayFinalize.test_can_use_super.<locals>.SuperFinalize.__array_finalize__f%  s    $)G$>s$C!r+   )ra   rb   rc   r	  __classcell__r  s   @r)   SuperFinalizer  e%  s    D Dr+   r  r3   )r#   rE   r  rm   r   r  )rT   r  rR   s      r)   test_can_use_superz$TestArrayFinalize.test_can_use_superd%  s?    	DBJJ 	D HHQK]+$&'r+   N)
ra   rb   rc   r  r  r  r  r  r  r  rd   r+   r)   r  r  %  s%    $(222 BD(r+   r  c                 f    t        j                  d      } t        t        | j                  d       y )NrW      âr6   )r#   r%   r	   r8   r5  r   s    r)   2test_orderconverter_with_nonASCII_unicode_orderingr  m%  s    
		!A*aiiv6r+   c                     G d d      }  G d d|       } G d d|       }t        j                  ddgd	
      }||fD ]E  } |       }t        ||k(  d       t        ||k(  d       t        ||k7  d       t        ||k7  d       G y )Nc                      e Zd Zd Zd Zy)*test_equal_override.<locals>.MyAlwaysEqualc                     y)Nr  rd   rg  s     r)   r|  z1test_equal_override.<locals>.MyAlwaysEqual.__eq__x%      r+   c                     y)Nr  rd   rg  s     r)   r}  z1test_equal_override.<locals>.MyAlwaysEqual.__ne__{%  r  r+   N)ra   rb   rc   r|  r}  rd   r+   r)   MyAlwaysEqualr  w%  s    		r+   r  c                      e Zd ZdZy)-test_equal_override.<locals>.MyAlwaysEqualOldr  NrD  rd   r+   r)   MyAlwaysEqualOldr  ~%  s    "r+   r  c                      e Zd ZdZy)-test_equal_override.<locals>.MyAlwaysEqualNewNrN  rd   r+   r)   MyAlwaysEqualNewr  %  s    r+   r  r`  r  r#	  r   r  r  r  )r  r  r  r  my_always_equal_clsmy_always_equals         r)   test_equal_overrider  s%  s     #= #=  HHff%W5E/1AA-/_-t4Uo-t4_-t4Uo-t4  Br+   r  rP  rQ  )r  r   )M8r   )r   r   c                *    G d dt         j                        }t        j                  d|      }t        j                  d|      j                  |      }t	         | ||            |u sJ t	         | ||            |u sJ |j
                  dk(  sJ y )Nc                  "     e Zd ZdZ fdZ xZS ).test_equal_subclass_no_override.<locals>.MyArrr   c                ^    t        |       xj                  dz  c_        t        |   |      S ri  )r  called_wrapr  __array_wrap__)rT   r  r  s     r)   r  z=test_equal_subclass_no_override.<locals>.MyArr.__array_wrap__%  s(    J""a'"7)#..r+   )ra   rb   rc   r  r  r  r  s   @r)   r   r  %  s    	/ 	/r+   r   rW   r   r2   )r#   rE   r9   rm   r  r  )r  rP  rQ  r   	numpy_arrmy_arrs         r)   test_equal_subclass_no_overrider  %  s    /

 / #&IXXas#((/F9f%&%///69%&%///!!!r+   ))zM8[ns]r   )r  r   )zm8[ns]r   )r  r  )rX  rY  c                   t         j                  j                  dd      j                  |       }t         j                  j                  dd      d d t         j                  f   j                  |      }||k(  }|j
                  dk(  sJ |j                  t        k(  sJ |j                         rJ ||k7  }|j
                  dk(  sJ |j                  t        k(  sJ |j                         sJ t         j                  j                  dd      j                  |      }t        j                  t              5  ||k(   d d d        t        j                  t              5  ||k7   d d d        t        j                  t         j                  j                  j                        5  ||kD   d d d        y # 1 sw Y   vxY w# 1 sw Y   [xY w# 1 sw Y   y xY w)NrW   r^  r!  r  )r  r^  )r#   rp  rq  r  r  rF   r/   rL  rJ  r  r   rB  r8   r   r@  _UFuncNoLoopError)rP  rQ  r  r  rY  s        r)   $test_no_loop_gives_all_true_or_falser  %  so    99QS)005D99QR(BJJ7>>sCD
$,C99	!!!99wwy=
$,C99	!!!997799 99QR(//4D	z	" 
# 
z	" 
# 
rww**<<	=t 
>	= 
#	" 
#	" 
>	=s$   9F4 G %G4F= G	Gc                \    G d d      }t        j                  t        d      5   | t        j                  d       |              d d d        t        j                  t        d      5   |  |       t        j                  d             d d d        y # 1 sw Y   OxY w# 1 sw Y   y xY w)Nc                      e Zd Zd Zy)1test_comparisons_forwards_error.<locals>.NotArrayc                    t        d      )Nrun you foolsrx  rS   s    r)   r  z;test_comparisons_forwards_error.<locals>.NotArray.__array__%  s    O,,r+   Nr  rd   r+   r)   NotArrayr  %  s    	-r+   r  r  r@  r2   )r   rB  r)  r#   r%   )r  r  s     r)   test_comparisons_forwards_errorr  %  ss    - - 
y	8
299Q<$ 
9 
y	8
8:ryy|$ 
9	8 
9	8 
9	8s   "B+"B"B"B+c                     t        j                  d      dk(  du sJ t        j                  d      dk7  du sJ t        j                  d      dk(  du sJ t        j                  d      dk7  du sJ y )Nr   rR   FT)r#   r  r   rd   r+   r)   0test_richcompare_scalar_boolean_singleton_returnr  %  sp     HHQK35(((HHQK34'''HHQK35(((HHQK34'''r+   c                >   t        j                  dt        j                  g d      gt              }t        j                  dt        j                  g d      gt              }t        j                  t
        d      5   | ||       d d d        y # 1 sw Y   y xY w)Nr3   rV  r   zThe truth value.*ambiguousr@  )r#   r  r7   r   rB  r8   )r  rR   r   s      r)   test_ragged_comparison_failsr   %  se    
 	!RXXi()8A
!RXXi()8A	z)E	F
1a 
G	F	Fs    
BBfunnpfunr  r/  r  c                `     |t        ||            } | |      } ||      }t        ||       y r"   )rc  r   )r!  r"  r  r/  r  r  gotr  s           r)   test_npymath_complexr%  %  s0     	71a=!A
a&CQxHC"r+   c            
        ddl m} m}m}m}m} | t        j                  |t        j                  |t        j                  |t        j                  |t        j                  i}dt        j                  t        j                   t        j                  f}t        j                  t        j                  t        j                   f}t        j"                  d      5  |j%                         D ]G  \  }}	t'        j(                  ||      D ])  \  }
} ||
      } ||      } |	|      }t+        ||       + I 	 d d d        y # 1 sw Y   y xY w)Nr   )	npy_log10npy_coshnpy_sinhnpy_tannpy_tanhr3   ignore)r  )r   r'  r(  r)  r*  r+  r#   log10coshsinhtantanhr  r-  r  r   r  errstater  rK  r  r   )r'  r(  r)  r*  r+  rV	  rx   r   r!  r"  r  r.  r  r$  r  s                  r)   test_npymath_realr3  &  s    : : rwwrwwbffrww	 E
 rvvw'DZZR]]3E		"++-JC!))$61aD!f 8X.	 7 ( 
#	"	"s   AD<<Ec                 "   t        j                  dd      } t        j                  dd      }t        j                  ddgd| gdd      }t        t        j                  d	| 
      d   j                  d   d       t        t        j                  d	|
      d   j                  d   d       t        t        j                  d	d
      d   j                  d   d       t        j                         }t        | ||g|      D ]4  \  }\  }}t        |j                  |       t        |j                  |       6 t        j                  d| 
      d   }t        j                  |       t        j                  dd
      }|d d d	f   |d d d	f<   y )Nzu1,c8TrW  zu4,c8rR   r   ry   r$	  r3   r   r8  ALIGNEDFr4  c8)r#   r/   r   r9   rY   r  get_struct_alignmentsr	  r:   r@   rx  )	r  r  d3r   r   r:   rH   r  dsts	            r)    test_uintalignment_and_alignmentr:  &  sF    
'	&B	'	&B	S#JD":>d	KB!2&t,229=tD!2&t,229=tD!7+D177	BEJ 	//1A #R2J 2ItQ[[),QZZ& !3 ((5
#D
)CFF3K ((5
%C1Q3xC!Hr+   c                      e Zd Zd Zd Zd Zy)TestAlignmentc                t   t        ||||f      }t        ||||      }|t        j                  |      j                  }t        |j                  d   d   |z  d       t        |d      rt        |j                  ||       nt        |j                  |f|       t        |j                  |       |dk(  r!t        |j                  j                  |       y |dk(  r1|j                  dkD  r!t        |j                  j                  |       y y |!t        |j                  j                  |       y t               )NrW  r4   r   r1   r,   rZ  )r  rL   r#   r/   r:   r   rC   r;   rF   r   rY   re  rH   rf  r8   )rT   rF   r/   r0   rG   r   r  s          r)   r+  zTestAlignment.checkA&  s    ueU345%e<=HHUO--EQ**6215=qA5)$%15(G4QWWe$C<AGG(('2c\vvz,,g6 ]AGG(('2,r+   c                    dD ]o  }dD ]h  }dD ]a  }t        t        j                  d         dgz   D ]<  }|dk(  r	|ddd	|ffD ])  }| j                  |t        j                  |      ||       + > c j q y )
N)
r3   r2   r   r   r   r}  r   r   r   N)r   r3   r   r?  r  rV  zi4,i4,i4r,  r3   r2   r   )r  r#   r#  r+  r/   )rT   rG   r  r0   r/   rF   s         r)   test_various_alignmentsz%TestAlignment.test_various_alignmentsV&  s{    :E"-E!%bll5&9!:j\!I C<$&'!Q1%6E JJubhhuoueL &7	 "J . # ;r+   c                0   dD ]  }t        dt        j                        }t        dt        j                  |      }t        dt        j                  |      }t               5 }|j                  t        j                  d       |j                  d       d d d        |j                  t        j                         ||z   }|j                  d       |j                  t        j                         ||z   }||z   }|j                         |d d  |j                         |d d  |j                         |d d  |d d d   j                         |d d d<   |d d d   j                         |d d d<   |d d d   j                         |d d d<    y # 1 sw Y   xY w)N)r3   r2   r   r   r}  r   Nr   rW  zCasting complex valuesr:  r2   )
rL   r#   r   r   r  r   rs  rg
  r  rX  )rT   rG   xf64xc64xf128rv  r  s          r)   test_strided_loop_alignmentsz*TestAlignment.test_strided_loop_alignmentsa&  sG    0E!!RZZ0D!!R\\?D"1bmm5AE #$

2,,.FGD! % KK%$;DLLKK&4<D4<D iikDGiikDGzz|E!HSqS	(D1ISqS	(D1Iss*E#A#J7 0 %$s   #2FF	N)ra   rb   rc   r+  r?  rD  rd   r+   r)   r<  r<  ;&  s    *	M+r+   r<  c                    t        j                  dd      } t        j                  dk(  rd}d}nd}d}| j	                  d|      }t        ||        | j	                  d|      }t        |d       t        j                  t        | j                  dd	       t        j                  t        | j                  dd
       t        j                  t        | j                  dd       y )Nr   r   r   r  r   r3   r   rB   r5   r   r   )	r#   r%   r  r  getfieldr   r   rB  r8   )rR   r   r  r   s       r)   test_getfieldrG  &  s    
		"H%A
}} 	

61AA	

61AA
MM*ajj'26
MM*ajj'26
MM*ajj(A6r+   c                  4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	TestViewDtypezP
    Verify that making a view of a non-contiguous array works as expected.
    c                B   t        j                  dd      d d d   }t        j                  t        d      5  |j                  d       d d d        ddgddgd	dgd
dgddgg}t        |d d t         j                  f   j                  d      |       y # 1 sw Y   KxY w)NrQ   r  r   r2    the last axis must be contiguousr@  r  r   r   r   r   )r#   r%   r   rB  r8   rm   r   r  rT   r  r  s      r)   test_smaller_dtype_multiplez)TestViewDtype.test_smaller_dtype_multiple&  s    IIb&ss+]]:!CEFF5ME FQFQFQFQF;1Q

]+007B	E Es   BBc                   t        j                  dd      d d d   }t        j                  t        d      5  |j                  d       d d d        t        j                  t        d      5  |d d t         j                  f   j                  d       d d d        d	gd
gdgg}t        |d d t         j                  f   j                  d      |       y # 1 sw Y   xY w# 1 sw Y   NxY w)NrW   r  r   r2   rK  r@  r  z When changing to a smaller dtyper+         r|   )r#   r%   r   rB  r8   rm   r  r   rL  s      r)   test_smaller_dtype_not_multiplez-TestViewDtype.test_smaller_dtype_not_multiple&  s    IIau%cc*]]:!CEFF4LE ]]:!CEam!!$'E
 EG9wi01Q

]+006AE EE Es   C.'C"C"C+c                    t        j                  dd      j                  dd      d d dd d f   }t        j                  dgdgdgd	gd
ggd      }t	        |j                  d      |       y )Nr   r  r   rQ   r2      i  i 	 i  i  r  )r#   r%   r   r  r   rm   rL  s      r)   test_larger_dtype_multiplez(TestViewDtype.test_larger_dtype_multiple&  sj    IIb&..r15cc1f=88eWvh$Xy29>@166%=(3r+   c                6   t        j                  dd      j                  dd      d d dd d f   }t        j                  t
        d      5  |j                  d       d d d        d	gd
gdgdgdgg}t        |j                  d      |       y # 1 sw Y   1xY w)Nr   r  r   rQ   r2   zWhen changing to a larger dtyper@  r  s     s    s    	s    s    r|   )r#   r%   r   r   rB  r8   rm   r   rL  s      r)   test_larger_dtype_not_multiplez,TestViewDtype.test_larger_dtype_not_multiple&  s    IIb&..r15cc1f=]]:!BDFF4LD %%'8=/"Oo%68166$<2D Ds   BBc                    t        j                  dd      j                  dd      j                  }t	        j
                  t        d      5  |j                  d       d d d        y # 1 sw Y   y xY w)	Nr}  r  r   r   r   rK  r@  r  )r#   r%   r   rM  r   rB  r8   rm   r<  s     r)   test_f_contiguouszTestViewDtype.test_f_contiguous&  sU    IIe5)11!Q799]]:!CEFF5ME E Es   A((A1c                    t        j                  dd      j                  ddd      j                  ddd      }d	d
gddggddgddggddgddggg}t	        |j                  d      |       y )Nr  r  r   r2   r   r   r3   r   rn  i  i  i  i  i  i  i  i	  i
  i  i  r  )r#   r%   r   r  r   rm   rL  s      r)   test_non_c_contiguousz#TestViewDtype.test_non_c_contiguous&  s{    IIit,GAq!$YYq!Q%7 	
3Z$.D\D$<0D\D$<02 	166%=(3r+   N)
ra   rb   rc   r  rM  rQ  rT  rV  rX  rZ  rd   r+   r)   rI  rI  &  s'    CB4	34r+   rI  zgh-22982r   rI  i   r/   )r  r  r   c           	        t         j                  j                  d       dt         j                  j                  |       j	                  |      z   }t         j
                  |t         j                  j                  |j                  d   d      <   t        t        j                  |d      t        j                  |d             t         j                  t        j                  | |      z  }d	|t         j                  j                  |j                  d   d
      <   t        t        j                  |d      t        j                  |d             t         j                   t        j                  | |      z  }d|t         j                  j                  |j                  d   d
      <   t        t        j                  |d      t        j                  |d             t         j                  t        j                  | |      z  }t         j                   |t         j                  j                  |j                  d   t        | dz              <   t        t        j                  |d      t        j                  |d             y )Nr        r   r   quickr0  heapr   r  rW   r6  r2   )r#   rp  rn  sampler  r-  r  rF   r   r$   r  rK  r
  )rI  r/   r'   infarr	neginfarrs        r)   test_sort_floatrb  &  s    IINN2
!!!$++E2
2C-/VVC		1q)*7+RWWSv-FG VVBGGAU++F37F299FLLOQ/0g.V0LM //I9<Ibiiyq1156102 VVBGGAU++F=?VVGF299FLLOc1Q3Z89g.V0LMr+   c                    t        j                  dt         j                        } t        j                  | j	                         t         j
                        }t        j                  |      }t         j                  j                  |       |}t        t        j                  |d      t        j                  |d             y )NrS  r   r]  r0  r^  )r#   r%   r   r}   r  r  rX  rp  r  r   r$   )r'   tempr4   data_backups       r)   test_sort_float16rf  &  sw    
))E
*C==bjj9D774=DIIdKG,GGKf-/r+   )rT  ru  r   r  r   rx  c                   t        j                  |      j                  }t        j                  |      j                  }t         j                  j                  ||dz
  | |      }||t         j                  j                  |j                  d   d      <   ||t         j                  j                  |j                  d   d      <   t        t        j                  |d      t        j                  |d             y )Nr3   lowhighrH   r/   r   rQ   r]  r0  r^  )
r#   r<  r-  r   rp  rq  r  rF   r   r$   )rI  r/   minvmaxvr'   s        r)   test_sort_intrm  &  s     88E?D88E?D
))

46

GC.2C		1r*+.2C		1r*+7+RWWSv-FGr+   c                    t         j                  j                  d      } d}t        j                  t         j                        j
                  }| j                  d||      j                  d      }||t         j                  j                  |j                  d   d      <   t        t        j                  |d      t        j                  |d	             y )
Nr  i  r   )ri  rj  rH   r   rQ   r]  r0  r^  )r#   rp  r
  r<  r   r   r
  r  r  rF   r   r$   )rngrI  rl  r'   s       r)   test_sort_uintrp  '  s    
))


#CA88BII""D
,,14a,
0
7
7
AC.2C		1r*+7+RWWSv-FGr+   c                 8    t        t               t              sJ y r"   )r   r   r
  rd   r+   r)   "test_private_get_ndarray_c_versionrr  '  s    ,.444r+   c                   t         j                  j                  d      }d|j                  |       j                  |      z   }t         j                  ||j                  |j                  d   d      <   t        |t        j                  |d             d|j                  |       j                  |      z   }t         j                  || dz
  <   t        |t        j                  |d             y )Ni r\  r   r   r]  r0  r3   )r#   rp  RandomStater  r-  r  rF   r*   r  rr  r  )rI  r/   rndr'   s       r)   test_argsort_floatrv  '  s     ))


'C
A%%e,
,C')vvC

399Q<#$c2::c89 !##E*
*CvvC!Hc2::c89r+   c                   t         j                  j                  d      }t        j                  |      j                  }t        j                  |      j
                  }|j                  ||| |      }|j                  | dd      \  }}|||<   |||<   t        |t        j                  |d             |j                  ||| |      }||| dz
  <   t        |t        j                  |d             y )	NiArh  r2   F)replacer]  r0  r3   )
r#   rp  rt  r<  r-  r   rq  r  r*   r  )rI  r/   ru  rk  rl  r'   r   r  s           r)   test_argsort_intry   '  s     ))



+C88E?D88E?D
++$T+
?C::aE:*DAqCFCFc2::c89 ++$T+
?CC!Hc2::c89r+   r  c                 v   d} t        j                  | gdz  t              }t        j                  |       }t        j
                  t        j                  dt              |g|       t        j
                  t        j                  dt              |g|       t        j                  |       }||z
  dk  sJ y )Ng(9M@r  r   r  rQ   )r#   r  r7   r  r  r  r9   r
  )r   rR   
refc_startrefc_ends       r)   test_gh_22683r}  4'  s    A
!uF+A#JIIbhhuC(1#15IIbhhuC(1#15q!Hj 2%%%r+   c                     t        j                  dt         j                        } t        j                  t
              5  t        j                  | ddg       d d d        y # 1 sw Y   y xY w)N)r  r   r   r   r5   )r#   r9   r   r   rB  r)  r  r   s    r)   test_gh_24459r  ?'  s@    


+A	y	!
		!aW 
"	!	!s   A!!A*)
__future__r   collections.abcr  r  r  r   r>   r  rK  r<   r  rj  r  r  r  r   
contextlibr   numpy.compatr   rN  rk  rX  r   r  numpyr#   r   r   r  numpy.core._rational_testsr   numpy.testingr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   numpy.testing._private.utilsr   r   numpy.core.tests._localesr   numpy.lib.recfunctionsr   r	  r   r    r   r*   r  rL   rN   r   r   rF  rs  r  r  r  r  r  r^  r  r  r  r  r  r  r  r  r  r  r  rP  r  r  r  r  r  r  r  r  r  r  r  r  r	  r@	  rE	  rH	  rL	  rN	  r	  r	  r:
  rd
  r
  r
  r
  r
  r
  r
  r  r   r   r  r  r'  r,  numpy.core._internalr;  r=  rk  r7   r  r!  r0  rC  rI  rU  r]  ra  rc  rf  rh  rn  rz  r  r  r  r  r#  r2  rA  rM  rV  rq  r  r  r  r  r  r  r  r  r!  r   r  r  r  r  r   npy_cabsabsolutenpy_cargangler  r-  complexfloating__subclasses__r%  r3  r:  r<  rG  rI  r  r%   rb  rf  rm  rp  rr  r  r   rv  r   r   r   r   ry  r   r}  r  rd   r+   r)   <module>r     sz   "   
   	    	 	 	   %       8 8 /     F = 0 8 )4 !&S !Hp! p!f@ @,E EPj jZr2 r2jV V,e2 e2P]) ])@V# V#r
k/ k/ZW1 W1t]@ ]@@}1 }1~99 9
J JZc cL* *Z/ /I0 I0X3G 3GlI I>j& j&XM( M(^L( L(\+ +41 1K- K-\ .L; L;^? ?D5; 5;n}* }*@# #JE( E(P` `F{- {-z
5 
5o& o&d9< 9<xr% r%j	V$ V$re ePN N4<+ <+~	JE JEZ9 9<". ".L qa1M
 w/gx5HIR! R! JR!lT! T!l	$ 	$! !8 5h, h,VN& N&bO1F O1d9 9D+, +,Z+72 
!5
? ?,- -"d< d<Ng" g"T ,8 ,8^= =N: N:b *& &8 *4 4  "YZ YZxn  n bZ ZzM( M(`754 X[[9:%

|$*
 
" ;"& % * : X[[(++x{{HKK  	%	%( X[[(++x{{HKK   
G		#	#R[[1		#	#RXX. q"&&266'266:;q"&&266'266:;r'9'9'H'H'JK# L < <#/*"HE+ E+N7"<4 <4~ =4ibii3/0/2N 3 1 5N./ ibii3/0"@AH B 1HH5 ibii3/02::rzz":;: < 1: ibii3/0288RYY"))"LM: N 1:$ $-EF& G&r+   