+
    0il                       R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t
 ^ RIt^ RIHtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIt^ RIHtHtHtHtH t H!t! ^ RI"H#t# ^ RI$H%t% ^ RI&t'^ RI(H)t) ^ RI(H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t< ^ RI=H>t> ^ R	I?H@t@HAtAHBtBHCtCHDtD ^ R
IEHFtFHGtGHHtH R]P                  9   tJR}R ltKR tL]M! R.4      tNRtOR tPR~R ltQR tR ! R R4      tS ! R R4      tT ! R R4      tU ! R R4      tV ! R R4      tW ! R R4      tX ! R  R!4      tY]P                  P                  R"R#7       ! R$ R%4      4       t\ ! R& R'4      t] ! R( R)4      t^ ! R* R+4      t_]P                  R, 4       ta ! R- R.4      tb ! R/ R04      tc ! R1 R24      td ! R3 R44      te ! R5 R64      tf ! R7 R84      tgRR: lthRR; lti ! R< R=4      tj ! R> R?]j]i! 4       4      tk]kP                  4         ! R@ RA]V]k4      tmRB tn]mP                  4         ! RC RD]j]i! 4       4      to]oP                  4         ! RE RF]V]o4      tp]pP                  4         ! RG RH]i! RRRI7      4      tq ! RJ RK]V]q4      tr]qP                  4        ]rP                  4         ! RL RM]i! RRN7      4      ts ! RO RP]V]s4      tt]sP                  4        ]tP                  4         ! RQ RR4      tu ! RS RT]u]i! R9R9R9R9R9RU7      4      tv ! RV RW]V]u]i! RRRRRRU7      4      tw]vP                  4        ]wP                  4        RX tx ! RY RZ]i! RRRRRRRR[7      4      ty ! R\ R]]V]y4      tz]yP                  4        ]zP                  4         ! R^ R_]i! RRRRRRR`7      4      t{ ! Ra Rb]V]{4      t|]{P                  4        ]|P                  4        Rc t} ! Rd Re4      t~ ! Rf Rg]~4      t ! Rh Ri]4      t ! Rj Rk]]k4      t ! Rl Rm]]m4      t ! Rn Ro]]o4      t ! Rp Rq]]p4      t ! Rr Rs]]{4      t ! Rt Ru]]|4      t ! Rv Rw]~4      t ! Rx Ry]]v4      t ! Rz R{]]w4      tR| tR# )zTest functions for sparse matrices. Each class in the "Matrix class
based tests" section become subclasses of the classes in the "Generic
tests" section. This is done by the functions in the "Tailored base
class for generic tests" section.

N)raises)arangezerosarraydotasarrayvstackndarray	transposediagkroninf	conjugateint8)assert_equalassert_array_equalassert_array_almost_equalassert_almost_equalassert_assert_allclose)ComplexWarning)GenericAlias)
csc_matrix
csr_matrix
dok_matrix
coo_matrix
lil_matrix
dia_matrix
bsr_matrix	csc_array	csr_array	dok_array	coo_array	lil_array	dia_array	bsr_arrayeyeissparseSparseEfficiencyWarningsparrayspmatrix)_formats)supported_dtypesisscalarlikeget_index_dtypeasmatrixmatrix)spluexpminvzgoogle.colabc                 B    Ve   TMV : RV: 2p\        W9   VR7       R # )Nz not found in )msg)r   )member
collectionr5   messages   &&& Z/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/sparse/tests/test_base.py	assert_inr:   4   s%    _cVJnZN*SGF g.    c                 b    \        V P                  VP                  8H  4       \        W3/ VB  R # N)r   dtyper   )xykwargss   &&,r9   assert_array_equal_dtyperB   9   s$    AGGqwwq&v&r;   dokzChanging the sparsity structurec                     R  pV! V 4       F2  pV! V4       F#  p\         P                  ! W44      '       g   K!    R# 	  K4  	  R# )c                     . pV P                   P                  4        FK  p\        V\        P                  \        P
                  ,          4      '       g   K:  VP                  V4       KM  	  V# r=   )__dict__values
isinstancenpr	   genericappend)r?   arraysas   &  r9   _underlying_arrays3sparse_may_share_memory.<locals>._underlying_arraysE   sM     ""$A!RZZ"**455a  % r;   TF)rI   may_share_memory)ABrN   rM   bs   &&   r9   sparse_may_share_memoryrT   B   s@      "#A&A""1(( ' # r;   Fc                >  a aaaaa S f   \         P                  ! ^
4      o M\         P                  ! S 4      o V'       d   RR loMESe
   RV3R lloM8V'       d)   \         P                  P                  R4      oRV3R lloMRV 3R lloSe   V3R loVVV3R lpV# )	zv
Monkeypatch the maxval threshold at which scipy.sparse switches to
64-bit index arrays, or make it (pseudo-)random.

c                 8   \        WV4      p\        \        P                  ! V4      P                  \        P                  ! \        P
                  4      P                  4       \        V\        P
                  8H  ;'       g    V\        P                  8H  4       V# r=   )r.   r   rI   iinfomaxint32r   intc)rL   maxvalcheck_contentstps   &&& r9   new_get_index_dtype4with_64bit_maxval_limit.<locals>.new_get_index_dtypee   s^     @B"))288BHH+=+A+ABB"((N33bBGGm4Ir;   c                    < S# r=    )rL   r[   r\   fixed_dtypes   &&&r9   r^   r_   k   s	    r;     c                 p   < \         P                  \         P                  3SP                  ^4      ,          #    )rI   rY   int64integers)rL   r[   r\   rngs   &&&r9   r^   r_   o   s#    HHbhh'Q88r;   c                    < \         P                  pVe   VS8  d   \         P                  pV  F  p\         P                  ! V4      pVP                  \         P                  8  g   K:  V'       dz   VP
                  ^ 8X  d   KU  \         P                  ! VP                  \         P                  4      '       d2   VP                  4       pVP                  4       pVS) 8  d
   VS8:  d   K  \         P                  pK  	  V# r=   )
rI   rY   rg   r   r>   size
issubdtypeintegerrX   min)rL   r[   r\   r>   arrminvalmaxval_limits   &&&   r9   r^   r_   r   s    HHE!L(HHEjjo99rxx'%88q=$]]399bjjAA%(WWYF%(WWYF%,66\;Q (HHE  Lr;   c                    < V P                  4       S8  d   \        R 4      hV P                  \        P                  4      # )zdowncast limited)rX   AssertionErrorastyperI   intp)ro   downcast_maxvals   &r9   new_downcast_intp_index8with_64bit_maxval_limit.<locals>.new_downcast_intp_index   s0    wwy?*$%788::bgg&&r;   c           
      R  <a aa . o\         P                  P                  \         P                  P                  \         P                  P                  \         P                  P
                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P                  \         P                  P                  .
o\        P                  ! S 4      VVV VVV3R  l4       pV# )c            
      f  <  S Fa  pSP                  VR \        VR R4      34       \        VR S
4       Sf   K5  SP                  VR\        VRR4      34       \        VRS	4       Kc  	  S! V / VB S F  w  r#pVf   K  \        W#V4       K  	  #   S F  w  r#pTf   K  \        Y#T4       K  	  i ; i)r.   Ndowncast_intp_index)rK   getattrsetattr)rM   kwmodnameoldfuncbackuprv   funcmodulesrw   r^   s   *,   r9   wrapper;with_64bit_maxval_limit.<locals>.decorator.<locals>.wrapper   s    4"CMM)%6=# 
 C!24GH&21#C)>E' 
  %:<ST #  Q~"~*0&Cw*73 +1&&Cw*73 +1s   2B 7B 
B0B0)scipysparse_bsr_coo_csc_csr_dia_dok_lil_sputils_compressed
_construct	functoolswraps)r   r   r   r   rv   rw   r^   s   f @@r9   	decorator*with_64bit_maxval_limit.<locals>.decorator   s    <<$$ell&7&79J9J<<$$ell&7&79J9J<<$$ell&;&;<<++U\\-D-DF
 
		4 	4 
	4. r;   )ra   NF)rI   rg   randomdefault_rng)	rq   r   rb   rv   assert_32bitr   rw   r^   ri   s	   f&ff& @@@r9   with_64bit_maxval_limitr   V   s     xx| xx-	
 
	 	 		ii##D)	9 	9	* "	'
@ r;   c                     \        V \        P                  4      '       g   \        V 4      '       d   V # V P	                  4       # r=   )rH   rI   r	   r-   toarray)rM   s   &r9   r   r      s,    !RZZ  LOO99;r;   c                   P   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	tV tR
# )BinopTesterc                    R # matrix on the rightra   selfmats   &&r9   __add__BinopTester.__add__       $r;   c                    R # r   ra   r   s   &&r9   __mul__BinopTester.__mul__   r   r;   c                    R # r   ra   r   s   &&r9   __sub__BinopTester.__sub__   r   r;   c                    R # matrix on the leftra   r   s   &&r9   __radd__BinopTester.__radd__       #r;   c                    R # r   ra   r   s   &&r9   __rmul__BinopTester.__rmul__   r   r;   c                    R # r   ra   r   s   &&r9   __rsub__BinopTester.__rsub__   r   r;   c                    R # r   ra   r   s   &&r9   
__matmul__BinopTester.__matmul__   r   r;   c                    R # r   ra   r   s   &&r9   __rmatmul__BinopTester.__rmatmul__   r   r;   ra   N)__name__
__module____qualname____firstlineno__r   r   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r9   r   r      s2     %%%$$$%$ $r;   r   c                   b   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tRtV tR# )BinopTester_with_shapec                    Wn         R # r=   _shape)r   shapes   &&r9   __init__BinopTester_with_shape.__init__   s    r;   c                    V P                   # r=   r   r   s   &r9   r   BinopTester_with_shape.shape   s    {{r;   c                ,    \        V P                  4      # r=   )lenr   r   s   &r9   ndimBinopTester_with_shape.ndim   s    4;;r;   c                    R # r   ra   r   s   &&r9   r   BinopTester_with_shape.__add__   r   r;   c                    R # r   ra   r   s   &&r9   r   BinopTester_with_shape.__mul__   r   r;   c                    R # r   ra   r   s   &&r9   r   BinopTester_with_shape.__sub__   r   r;   c                    R # r   ra   r   s   &&r9   r   BinopTester_with_shape.__radd__   r   r;   c                    R # r   ra   r   s   &&r9   r   BinopTester_with_shape.__rmul__   r   r;   c                    R # r   ra   r   s   &&r9   r   BinopTester_with_shape.__rsub__   r   r;   c                    R # r   ra   r   s   &&r9   r   !BinopTester_with_shape.__matmul__   r   r;   c                    R # r   ra   r   s   &&r9   r   "BinopTester_with_shape.__rmatmul__   r   r;   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r9   r   r      sA      %%%$$$%$ $r;   r   c                   D   a  ] tR t^t o R tR tR tR tR tR t	Rt
V tR# )	ComparisonTesterc                    R # )eqra   r   others   &&r9   __eq__ComparisonTester.__eq__       r;   c                    R # )nera   r   s   &&r9   __ne__ComparisonTester.__ne__   r   r;   c                    R # )ltra   r   s   &&r9   __lt__ComparisonTester.__lt__   r   r;   c                    R # )lera   r   s   &&r9   __le__ComparisonTester.__le__   r   r;   c                    R # )gtra   r   s   &&r9   __gt__ComparisonTester.__gt__  r   r;   c                    R # )gera   r   s   &&r9   __ge__ComparisonTester.__ge__  r   r;   ra   N)r   r   r   r   r   r   r   r   r   r  r   r   r   s   @r9   r   r      s(      r;   r   c                   b   a  ] tR tRt o Rt]t]t]	t
]t]t]t]t]! ]4      tR tR tR tRtV tR# )_MatrixMixini  z8mixin to easily allow tests of both sparray and spmatrixc                "   \        V P                  P                  ^4      P                  4       V P                  ^.R3,          4       \        V P                  P                  R4      P                  4       V P                  R.R3,          4       R#    NNNN)r   datspgetrowr   datr   s   &r9   test_getrow_MatrixMixin.test_getrow  sd    4::,,Q/779488QCF;KL4::,,R088:DHHbT1W<MNr;   c                "   \        V P                  P                  ^4      P                  4       V P                  R^.3,          4       \        V P                  P                  R4      P                  4       V P                  RR.3,          4       R# r  )r   r  getcolr   r  r   s   &r9   test_getcol_MatrixMixin.test_getcol  sd    4::,,Q/779488AsF;KL4::,,R088:DHHQW<MNr;   c                   V P                  \        ^RR7      P                  ^^4      4      p\        VP	                  4       P
                  \        P
                  ! R4      4       \        VP	                  4       P                  VP                  4       \        VP                  R4      P	                  4       P
                  \        P
                  ! R4      4       \        VP                  R4      P	                  4       P
                  \        P
                  ! R4      4       VP	                  4       pVP	                  4       p\        W#J 4       R# )   rY   r>   float64int16float32
complex128N)
	spcreatorr   reshaper   asfptyper>   rI   formatrt   r   r   rQ   rR   Cs   &   r9   test_asfptype_MatrixMixin.test_asfptype"  s    NN6!'2::1Q?@QZZ\''))<=QZZ\((!((3QXXg&//177)9LMQXXl+446<<bhh|>TUJJLJJLr;   ra   N)r   r   r   r   __doc__r   bsr_containerr   coo_containerr   csc_containerr   csr_containerr   dia_containerr   dok_containerr   lil_containerstaticmethodr/   asdenser  r  r!  r   r   r   s   @r9   r  r    sK     BMMMMMMM8$GOO
 
r;   r  c                     a  ] tR tRt o Rt]t]t]	t
]t]t]t]t]t]t]R 4       tR tR tR tR tR tR	 tR
 tR t R t!R t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1]2Pf                  Ph                  R 4       t5R t6R t7R  t8R! t9R" t:R# t;R$ t<R% t=R& t>R' t?R( t@R) tAR* tBR+ tCR, tDR- tER. tFR/ tGR0 tHR1 tIR2 tJR3 tKR4 tLR5 tMR6 tNR7 tOR8 tPR9 tQR: tRR; tSR< tTR= tUR> tVR? tWR@ tXRA tYRB tZRC t[RD t\RE t]RF t^RG t_RH t`RI taRJ tbRK tcRL tdRM teRN tfRO tgRP thRQ tiRR tjRS tkRT tlRU tmRV tnRW toRX tpRY tqRZ trR[ tsR\ ttR]tuV tvR^# )__TestCommoni1  z6test common functionality shared by all sparse formatsc                   \        . RO. RO. RO.R4      V n        V P                  V P                  4      V n        \	        \
        4      P                  V P                  4      V n        / V n	        / V n
        V P                   Fb  pV P                  P                  V4      V P                  V&   V P                  V P                  P                  V4      4      V P                  V&   Kd  	  \        V P                  V P                  \        P                  ,          4       \        V P                  P                  4       V P                  \        P                  ,          P                  4       4       \!        V P                  \"        4      V n        R# )r  dN)r      r1  rf   )   r1  r  r1  )r1  rf   r1  r1  )r   r  r  r  setr,   unionmath_dtypeschecked_dtypes
dat_dtypesdatsp_dtypesrt   r   rI   r  r   rH   r)   is_array_test)clsr>   s   & r9   
init_class_TestCommon.init_class>  s    |\BCHMM#''*	
 !!1288I''E$'GGNN5$9CNN5!&)mmCGGNN54I&JCU# ( 	SWWcnnRZZ89SYY&&(%%bjj199;	= 'syy':r;   c                   a  V 3R  lp\        S \        4      '       d   \        P                  ! R4       S P                   F  pV! V4       K  	  R# )c                    < SP                   V ,          p\        \        \        V4       \	        SP                  ^..4      4       \	        SP                  ^ ..4      '       * 4       R# r  N)r8  assert_raises
ValueErrorboolr   r  )r>   r  r   s   & r9   check$_TestCommon.test_bool.<locals>.checkW  sL    %%e,E*dE2DNNQC5)*u--.r;   z%Cannot create a rank <= 2 DOK matrix.N)rH   TestDOKpytestskipr6  r   rC  r>   s   f  r9   	test_bool_TestCommon.test_boolV  s;    	/ dG$$KK?@((E%L )r;   c                    \        R R..4      pV P                  V4      p\        ^
4       F  pW",           pW,           pK  	  \        WP	                  4       4       R# )TFN)r   r  ranger   r   )r   r  r  _s   &   r9   test_bool_rollover_TestCommon.test_bool_rolloverc  sN     dE]O$s#rAME)C  	30r;   c                   a  V 3R  lpS P                   P                  R9  d   \        P                  ! R4       S P                   F  pV! V4       K  	  R# )c                 L  < \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \         P                  ! R \        4       S	P
                  V ,          pS	P                  V ,          pVP                  4       p^ VR&   S	P                  V4      pS	P                  V4      pS	P                  V4      pS	P                  V4      pS	P                  V4      p\        W8H  W$8H  P                  4       4       \        W8H  WT8H  P                  4       4       \        W8H  Wd8H  P                  4       4       \        W8H  Wt8H  P                  4       4       \        W8H  W8H  P                  4       4       \        W8H  WA8H  4       \        V^ 8H  V^ 8H  P                  4       4       \        V^8H  V^8H  P                  4       4       \        V\        P                   8H  V\        P                   8H  P                  4       4       RRR4       R#   + '       g   i     R# ; iignoreNr	  r1  )warningscatch_warningssimplefilterr(   r   r7  r8  copyr  r$  r'  r&  r*  rB   r   rI   nan)
r>   r  r  dat2datsp2datbsrdatcsrdatcscdatlilr   s
   &        r9   rC  "_TestCommon.test_eq.<locals>.checkp  s   ((**%%h0GH%%h?ooe,))%0xxzS	-++C0++C0++C0++C0 )u6O6O6QR(v7G6P6P6RS(v7G6P6P6RS(v7G6P6P6RS(v7G6P6P6RS(F(EQJ3G3G3IJ(EQJ3G3G3IJ(*/266/)B)B)DF3 +***s   G)HH#	8Bool comparisons only implemented for BSR, CSC, and CSR.Nbsrcsccsrr  r  rF  rG  r6  rH  s   f  r9   test_eq_TestCommon.test_eqn  sB    	F: ::$99KKRS((E%L )r;   c                   a  V 3R  lpS P                   P                  R9  d   \        P                  ! R4       S P                   F  pV! V4       K  	  R# )c                   < \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \         P                  ! R \        4       S	P
                  V ,          pS	P                  V ,          pVP                  4       p^ VR&   S	P                  V4      pS	P                  V4      pS	P                  V4      pS	P                  V4      pS	P                  V4      p\        W8g  W$8g  P                  4       4       \        W8g  WT8g  P                  4       4       \        W8g  Wd8g  P                  4       4       \        W8g  Wt8g  P                  4       4       \        W8g  W8g  P                  4       4       \        W8g  WA8g  4       \        V^ 8g  V^ 8g  P                  4       4       \        V^8g  V^8g  P                  4       4       \        ^ V8g  ^ V8g  P                  4       4       \        ^V8g  ^V8g  P                  4       4       \        V\        P                   8g  V\        P                   8g  P                  4       4       RRR4       R#   + '       g   i     R# ; irR  )rU  rV  rW  r(   r   r7  r8  rX  r  r$  r&  r'  r*  rB   r   rI   rY  )
r>   r  r  rZ  r[  r\  r^  r]  r_  r   s
   &        r9   rC  "_TestCommon.test_ne.<locals>.check  s   ((**%%h0GH%%h?ooe,))%0xxzS	-++C0++C0++C0++C0 )u6O6O6QR(v7G6P6P6RS(v7G6P6P6RS(v7G6P6P6RS(v7G6P6P6RS(F(EQJ3G3G3IJ(EQJ3G3G3IJ(cAJ3G3G3IJ(cAJ3G3G3IJ(*/266/)B)B)DF7 +***s   H)II#	ra  Nrb  rf  rH  s   f  r9   test_ne_TestCommon.test_ne  sB    	F> ::$99KKRS((E%L )r;   c                   V P                   P                  R9  d   \        P                  ! R4       V P                   V P                   P                  8H  RJ g   Q hV P                   V P                   P                  8g  RJ g   Q hR# )rc  ra  FTNrb  )r  r  rF  rG  Tr   s   &r9   test_eq_ne_different_shapes'_TestCommon.test_eq_ne_different_shapes  s`    ::$99KKRS

djjll*u444

djjll*t333r;   c                   a  V 3R  lpS P                   P                  R9  d   \        P                  ! R4       S P                   F  pV! V4       K  	  R# )c           	      R  < \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \         P                  ! R \        4       SP
                  V ,          pSP                  V ,          pVP                  4       p^ VR&   SP                  V4      pVP                  \        4      pRVR&   SP                  V4      pSP                  V4      pSP                  V4      pSP                  V4      p	SP                  V4      p
\        W8  W$8  P!                  4       4       \        WS8  Wd8  P!                  4       4       \        W8  Wt8  P!                  4       4       \        W8  W8  P!                  4       4       \        W8  W8  P!                  4       4       \        W8  W8  P!                  4       4       \        W18  WG8  P!                  4       4       \        W18  WH8  P!                  4       4       \        W18  WI8  P!                  4       4       \        W18  WJ8  P!                  4       4       \        W8  W#8  4       \        WS8  Wc8  4       R FU  p\"        P$                  ! V4      p\        W+8  P!                  4       W8  4       \        W8  P!                  4       W8  4       KW  	  \"        P&                  ! R R7      ;_uu_ 4        \        V\"        P(                  8  P!                  4       V\"        P(                  8  4       RRR4       SP
                  V ,          pSP                  V ,          pVP                  4       p^ VR&   SP                  V4      p\        W8  W#8  4       RRR4       R#   + '       g   i     Lv; i  + '       g   i     R# ; irS  invalidNrT        ?      ?)rf   r  r1  r
  rU  rV  rW  r(   r   r7  r8  rX  r  rt   complexr$  r&  r'  r*  rB   r   rI   rg   errstaterY  r>   r  r  rZ  r[  
datcomplexdatspcomplexr\  r^  r]  r_  valr   s   &           r9   rC  "_TestCommon.test_lt.<locals>.check  s   ((**%%h0GH%%h?ooe,))%0xxzS	- ZZ0
"(
3#~~j9++C0++C0++C0++C0 )en5M5M5OP():*6*?)H)H)JL )fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(U\B():L<OP,C((3-C,ek-B-B-DciP,ck-B-B-DciP -
 [[22,ebffn-E-E-G-0266\; 3
 ooe,))%0xxzS	- )u|Di +*P 32Q +**%   J8N=N	A$NNNN&	ra  Nrb  rf  rH  s   f  r9   test_lt_TestCommon.test_lt  sC    5	En ::$99KKRS((E%L )r;   c                   a  V 3R  lpS P                   P                  R9  d   \        P                  ! R4       S P                   F  pV! V4       K  	  R# )c           	      R  < \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \         P                  ! R \        4       SP
                  V ,          pSP                  V ,          pVP                  4       p^ VR&   SP                  V4      pVP                  \        4      pRVR&   SP                  V4      pSP                  V4      pSP                  V4      pSP                  V4      p	SP                  V4      p
\        W8  W$8  P!                  4       4       \        WS8  Wd8  P!                  4       4       \        W8  Wt8  P!                  4       4       \        W8  W8  P!                  4       4       \        W8  W8  P!                  4       4       \        W8  W8  P!                  4       4       \        W18  WG8  P!                  4       4       \        W18  WH8  P!                  4       4       \        W18  WI8  P!                  4       4       \        W18  WJ8  P!                  4       4       \        W8  W#8  4       \        WS8  Wc8  4       R FU  p\"        P$                  ! V4      p\        W+8  P!                  4       W8  4       \        W8  P!                  4       W8  4       KW  	  \"        P&                  ! R R7      ;_uu_ 4        \        V\"        P(                  8  P!                  4       V\"        P(                  8  4       RRR4       SP
                  V ,          pSP                  V ,          pVP                  4       p^ VR&   SP                  V4      p\        W8  W#8  4       RRR4       R#   + '       g   i     Lv; i  + '       g   i     R# ; irt  ry  r|  s   &           r9   rC  "_TestCommon.test_gt.<locals>.check  s   ((**%%h0GH%%h?ooe,))%0xxzS	- ZZ0
"(
3#~~j9++C0++C0++C0++C0 )en5M5M5OP():*6*?)H)H)JL )fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(fo5N5N5PQ(U\B():L<OP,C((3-C,ek-B-B-DciP,ck-B-B-DciP -
 [[22,ebffn-E-E-G-0266\; 3
 ooe,))%0xxzS	- )u|Dg +*N 32O +**r  ra  Nrb  rf  rH  s   f  r9   test_gt_TestCommon.test_gt  sC    4	El ::$99KKRS((E%L )r;   c                   a  V 3R  lpS P                   P                  R9  d   \        P                  ! R4       S P                   F  pV! V4       K  	  R# )c                 d  < \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \         P                  ! R \        4       SP
                  V ,          pSP                  V ,          pVP                  4       p^ VR&   SP                  V4      pVP                  \        4      pRVR&   SP                  V4      pSP                  V4      pSP                  V4      pSP                  V4      p	SP                  V4      p
\        W8*  W$8*  P!                  4       4       \        WS8*  Wd8*  P!                  4       4       \        Wt8*  P!                  4       W8*  4       \        W8*  P!                  4       W8*  4       \        W8*  P!                  4       W8*  4       \        W8*  P!                  4       W8*  4       \        WG8*  P!                  4       W18*  4       \        WH8*  P!                  4       W18*  4       \        WI8*  P!                  4       W18*  4       \        WJ8*  P!                  4       W18*  4       \        W#8*  W8*  4       \        Wc8*  WS8*  4       R FU  p\"        P$                  ! V4      p\        W+8*  P!                  4       W8*  4       \        W8*  P!                  4       W8*  4       KW  	  SP
                  V ,          pSP                  V ,          pVP                  4       p^ VR&   SP                  V4      p\        W8*  W#8*  4       RRR4       R#   + '       g   i     R# ; irS  NrT  rw  )rf   r  r
  rx  rU  rV  rW  r(   r   r7  r8  rX  r  rt   rz  r$  r&  r'  r*  rB   r   rI   rg   r|  s   &           r9   rC  "_TestCommon.test_le.<locals>.check8     ((**%%h0GH%%h?ooe,))%0xxzS	- ZZ0
"(
3#~~j9++C0++C0++C0++C0 )u6O6O6QR();*6*@)I)I)KM )&*:)C)C)Es{S(&*:)C)C)Es{S(&*:)C)C)Es{S(&*:)C)C)Es{S(&*:)C)C)Et{S(&*:)C)C)Et{S(&*:)C)C)Et{S(&*:)C)C)Et{S(D()=z?QR)C((3-C,el-C-C-EszR,cl-C-C-EszR * ooe,))%0xxzS	- )F_ +***   K5LL/	ra  Nrb  rf  rH  s   f  r9   test_le_TestCommon.test_le7  C    0	Gd ::$99KKRS((E%L )r;   c                   a  V 3R  lpS P                   P                  R9  d   \        P                  ! R4       S P                   F  pV! V4       K  	  R# )c                 d  < \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \         P                  ! R \        4       SP
                  V ,          pSP                  V ,          pVP                  4       p^ VR&   SP                  V4      pVP                  \        4      pRVR&   SP                  V4      pSP                  V4      pSP                  V4      pSP                  V4      p	SP                  V4      p
\        W8  W$8  P!                  4       4       \        WS8  Wd8  P!                  4       4       \        Wt8  P!                  4       W8  4       \        W8  P!                  4       W8  4       \        W8  P!                  4       W8  4       \        W8  P!                  4       W8  4       \        WG8  P!                  4       W18  4       \        WH8  P!                  4       W18  4       \        WI8  P!                  4       W18  4       \        WJ8  P!                  4       W18  4       \        W#8  W8  4       \        Wc8  WS8  4       R FU  p\"        P$                  ! V4      p\        W+8  P!                  4       W8  4       \        W8  P!                  4       W8  4       KW  	  SP
                  V ,          pSP                  V ,          pVP                  4       p^ VR&   SP                  V4      p\        W8  W#8  4       RRR4       R#   + '       g   i     R# ; ir  r  r|  s   &           r9   rC  "_TestCommon.test_ge.<locals>.checkp  r  r  ra  Nrb  rf  rH  s   f  r9   test_ge_TestCommon.test_geo  r  r;   c                   \        V P                  R4      P                  4       \        R4      4       \        V P                  R4      P                  ^ 4       \        V P                  R4      P                  4       ^ 4       V P                  P                  R9   d9   \        V P                  R4      P                  ^ R7      \        . RO4      4       R# R# )r2  axisNr2  r2  coore  rd  lilr1  r1  r1  )	r   r  r   r   nnzcount_nonzeror  r  r   r   s   &r9   
test_empty_TestCommon.test_empty  s    T^^F+335uV}ET^^F+//3T^^F+99;Q?:: <</==1=EuYGWX =r;   c                   V P                   P                  R9   pV'       d   . ROMR.pV P                   V P                   P                  3 FN  pV FE  p\        P                  ! VP                  4       VR7      p\        VP	                  VR7      V4       KG  	  KP  	  V'       gA   \        \        RR7      ;_uu_ 4        V P                   P	                  ^ R7       RRR4       R# R#   + '       g   i     R# ; i)r  Nr  znot implemented .* formatmatchr  )Nr1  r  r
  rx  )	r  r  ro  rI   r  r   r   r@  NotImplementedError)r   axis_supportaxesrQ   axexpecteds   &     r9   test_count_nonzero_TestCommon.test_count_nonzero  s    zz((,HH'3#$**djjll+A++AIIKbAQ__"_5x@  ,
 2:UVV

((a(0 WV VVVs   >C''C8	c                    \        \        V P                  R4       \        \        V P                  R4       \        \        V P                  R4       R# )r  Nr
  r2  r2  r
  r
  r
  )r@  rA  r  r   s   &r9   test_invalid_shapes_TestCommon.test_invalid_shapes  s2    j$..&9j$..&9j$..':r;   c                r   V P                  . RO. RO. RO.4      pVP                  R8X  d   RMVP                  R8X  d   RMRp\        VP                  ,          w  r4V P                  '       d   RMRpRV R	V R
VP                   RVP
                   RV RVP                   R2p\        V4      V8X  g   Q hR# )r  dia(1 diagonals) rc  (blocksize=1x1)  r   r0   < sparse  of dtype ''
	with  stored elements 
and shape >Nr  r1  r1  r  r1  r1  rx  )r  r  r+   r9  r>   r  r   reprr   r  extrarM  fmt
sparse_clsr  s   &      r9   	test_repr_TestCommon.test_repr  s    	9jAB % 5',||u'<# 	
 %,,' $ 2 2 2W
uHZLEKK= Aii[ 1%
5;;-qR 	 E{h&&&r;   c           	     v   V P                  \        P                  ! ^K4      P                  ^^4      4      pVP                  ^28X  g   Q h\        \        V4      P                  R4      4      ^68X  g   Q h\        P                  ! ^4      P                  ^^4      pV P                  V4      pVP                  R8X  d   ^MVP                  pV P                  V^R7      p\        \        V4      P                  R4      4      V^,           8X  g   Q h\        \        V4      P                  R4      4      ^
8X  g   Q hV P                  VR
RR^R7      pV P                  VR
RR^R7      p\        P                  ! \        RR7      ;_uu_ 4        V P                  VR
RR^4       R	R	R	4       R	#   + '       g   i     R	# ; i)K   
r  )maxprintiF)r   r>   rX  r  z'positional argument|unpack non-iterabler  N)   r2  )r  rI   r   r  r  r   strsplitr  r  rF  r   	TypeError)r   r  r  	nnz_small	datsp_mp6s   &    r9   test_str_maxprint_TestCommon.test_str_maxprint  sZ   ryy}44Q;<~~###3u:##D)*f444iim##Aa(s#,,%/BUYY	NN3N3	3u:##D)*i!m;;;3y>''-.%777 s&%RSTsFCC]]9,UVVNN3UA6 WVVVs   F''F8	c                   V P                  . RO. RO. RO.4      pVP                  ^8w  d   R# VP                  R8X  d   RMVP                  R8X  d   RMRp\        VP                  ,          w  r4V P                  '       d   RMRpR	V R
V RVP
                   RVP                   RV RVP                   R2p\        V4      V8X  g   Q hR# )r  Nr  r  rc  r  r  r   r0   r  r  r  r  r  r  z(>
  Coords	Values
  (0, 0)	1
  (2, 2)	-2r  r  r  )r  r  r  r+   r9  r>   r   r  r  s   &      r9   test_str_TestCommon.test_str  s    	9jAB99> % 5',||u'<# 	
 %,,' $ 2 2 2W
uHZLEKK= Aii[ 1%
5;;- P 	 5zX%%%r;   c                   Rp\         P                  ! R4      \         P                  ! R4      \         P                  ! R4      \         P                  ! R4      \         P                  ! R4      3 F  pV P                  WR7      pW3,           p^V,          pW3P                  4       ,          pW3P	                  4       ,          pW3P                  4       ,          pW4WVWx3 Fz  p	\        V	P                  4       VP                  4       VP                  4       ,          4       \        V	P                  V4       \        V	P                  4       P                  V4       K|  	  K  	  R# )	r  rY   r  r  	complex64r  r  Nr  r  )rI   r>   r  tocsctocsrtocoor   r   )
r   r   mytyperM   rS   cr0  efms
   &         r9   test_empty_arithmetic!_TestCommon.test_empty_arithmetic  s    xx("((9*=#RXXk%:&(F u3AAAAGGIAGGIAGGIA!a]QYY[!))+aiik*ABQWWV,QYY[..v6	 #(r;   c                    \        . RO. RO. RO. RO.R4      p\        \        V4      \        V P                  V4      4      P	                  4       4       R# )r  r0  Nr
  r1     r1  r1  r  r1  r  )r   r   absr  r   r   rQ   s   & r9   test_abs_TestCommon.test_abs
  s<    ;
J	BCHSVS!23;;=>r;   c                    ^p\        RR.RR..R4      p\        \        P                  ! W!R7      \	        V P                  V4      VR7      P                  4       4       R# )	r  gQ?g     @1@r0  )decimals)ndigitsNggQ)r   r   rI   aroundroundr  r   )r   decimalrQ   s   &  r9   
test_round_TestCommon.test_round  sP    E4=5%.137RYYq34>>!,g>FFH	Jr;   c                   \        . RO. RO. RO.R4      p\        \        P                  ! V^4      V P	                  V4      P                  ^4      P                  4       4       \        \        V P	                  V4      P                  V4       R# )   r0  N)r  rx  r
  r1  r  rf   r2  r  )r   r   rI   powerr  r   r@  r  r  s   & r9   test_elementwise_power"_TestCommon.test_elementwise_power  sd    <Y7=RXXa^T^^A%6%<%<Q%?%G%G%IJ 	)4>>!+<+B+BAFr;   c                    \        . RO. RO. RO. RO.R4      p\        V) V P                  V4      ) P                  4       4       \        . RO. RO.4      p\	        \
        V P                  V4      P                  4       R# )	r  r0  Nr  r  r  r  )TFF)FFT)r   r   r  r   r@  r  __neg__r  s   & r9   test_neg_TestCommon.test_neg  se    ;
J	BCHaR4>>!,,5578 ')=>?)4>>!+<+D+DEr;   c                    \        RR..4      pV P                  V4      p\        VP                  P	                  4       VP                  4       R# r  N      ?      @y       @      )r   r  r   realr   r   DrQ   s   &  r9   	test_real_TestCommon.test_real#  ;    FF#$%NN1QVV^^%qvv.r;   c                    \        RR..4      pV P                  V4      p\        VP                  P	                  4       VP                  4       R# r  )r   r  r   imagr   r	  s   &  r9   	test_imag_TestCommon.test_imag(  r  r;   c           
     >   . pVP                  . RO.4       VP                  ^.^ .^..4       VP                  ^ ^.^ ^.^ ^..4       VP                  . RO. RO. RO.4       VP                  ^^ .^ ^ ..4       VP                  \        V^ ,          ^^..4      4       VP                  \        V^ ,          ^.^..4      4       VP                  \        V^,          ^^.^^..4      4       VP                  \        V^,          ^^.^^..4      4       VP                  \        V^,          ^^.^^..4      4       VP                  \        V^,          . RO.4      4       V F  p\        V4      P                  w  r4V P	                  V4      p\        V) ^,
          V^,           4       F)  p\        VP                  VR7      \        W&R7      4       K+  	  \        VP                  ^
R7      \        V^
R7      4       \        VP                  RR7      \        VRR7      4       K  	  \        V P	                  R	4      P                  4       \        P                  ! ^(4      4       \        V P	                  R
4      P                  4       \        P                  ! ^ 4      4       \        V P	                  R4      P                  4       \        P                  ! ^ 4      4       \        V P	                  R4      P                  ^
4      \        P                  ! ^ 4      4       R# )r  kNr  r1  rf   r1  r1  r  )r1  r1  rf   r1  r2  r1  r  rf   r2  r  i)(   i?  r1  r1  )   r1  r1  r  )rK   r   r   r   r  rL  r   diagonalr   rI   r   empty)r   matsr  rowscols
sparse_matr  s   &      r9   test_diagonal_TestCommon.test_diagonal-  sg   WIaS!aSM"aUAa5!A'(WWW-.aUAa5M"Da1Q%)*Da1#qc+,Da1Q%1/0Da1Q%1/0Da1Q%1/0Da)-.AqJD*JD57DF+Z00105tA|D , ,,r,2DbMB,,s,3T!s^D  	T^^K099;RXXb\J 	T^^F+446DT^^G,557!ET^^F+44R8"((1+Fr;   c                   \         P                  ! . RO. RO. RO.4      pV P                  V4      p\        R^4       F/  p\	        VP                  VR7      VP                  VR7      4       K1  	  \         P                  ! . RO. RO.4      pV P                  V4      p\        R^4       F/  p\	        VP                  VR7      VP                  VR7      4       K1  	  R# )r  )offsetNr  rf   r2  r  r  r  )      	   rx  r
  )rI   r   r  rL  r   trace)r   rQ   rR   r  s   &   r9   
test_trace_TestCommon.test_traceN  s    HHiI67NN1r1A*AGG1G,=>  HHi+,NN1r1A*AGG1G,=> r;   c           
     $   V P                  . RO. R	O. R
O. RO.4      pR FT  pR FK  p\        VP                  W2R7      P                  4       VP                  4       P                  W2R7      4       KM  	  KV  	  V P                  . RO. RO. RO.4      pVP                  R4      p. RO. RO.p\        VP                  4       V4       VP                  R4      p\        VP                  4       V4       VP                  R4      p\        VP                  4       V4       \	        \
        VP                  R4       VP                  ^^4      p\        VP                  4       V4       \	        \        VP                  ^^^R7       VP                  R4      p\        WAJ 4       VP                  RRR7      p\        WAJ4       \        VP                  R4       V P                  '       d+   \	        \        RR7      ;_uu_ 4        RVn        RRR4       M!RVn        \        VP                  4       V4       \	        \
        VP                  VP                  34       \	        \
        VP                  ^VP                  ^34       R#   + '       g   i     L`; i)r  order)
not_an_argTrX  zhas no setter|n't set attributer  N)r  r1  r)  r  r  )r1  r1  r  )r   F))   r  )r  r5  r1  
   r1  r1  r1  r1  r1  r1  r1        r  rf   r  )r1  r7  r1  r1  r1  r1  )r1  r1  r1  r:  r;  r  rf   r
  )r
  r  r  r2  r  )r  r   r  r   r@  rA  r  r   r   r9  AttributeErrorrk   )r   r?   r1  sr@   desireds   &     r9   test_reshape_TestCommon.test_reshape[  s   NNIy)YGHE'"199Q9#<#D#D#F#$99;#6#6q#6#FH (   NNM<IJIIf&(=>199;0 IIg199;0IIg199;0j!))X6 IIaO199;0iAqQ? IIfIIf4I(
 	177F+~5VWW  XW AGqyy{G4 	j!))affY7j!))a^< XWs   =I??J	c                  a V3R  loV3R lp\         P                  P                  R4       . ROp\         P                  \         P                  3 F  pV F  w  rE\         P
                  ! V) ^,           V^,
          4      pV F}  p\         P                  ! WE3VR7      pV P                  WE3VR7      p	V! WV4       \         P                  P                  V\        \        V4      ^4      R7       F  p
V! WV
4       K  	  K  	  K  	  K  	  R# )c                   < \         P                  ! V4      pV^ 8  d   \        V P                  ^ ,          V P                  ^,          V,
          4      pVP                  ^ 8w  d   \        V\        V4      4      pVRV p\         P                  ! ^ V4      p\         P                  ! W"V,           4      pWWE3&   R# V^ 8  d   S! V P                  W) 4       R# R# r1  N)rI   r   rn   r   r   r   r   ro  )rM   vr  nr  jdense_setdiags   &&&   r9   rJ  =_TestCommon.test_setdiag_comprehensive.<locals>.dense_setdiag  s    

1AAv
AGGAJN366Q;As1vA"1AIIaOIIaQ'!#Qacc1b) r;   c                   < R\        \        P                  ! W4      4      ^^3 EFN  pV^ 8  d+   \        P                  P	                  \        ^^4      4      pM"\        P                  P                  ^^VR7      pS! WV4       \        P                  ! 4       ;_uu_ 4        \        P                  ! R\        \        4       VP                  WB4       RRR4       \        P                  ! W4      p\        P                  ! V4      P                  ^ 8X  d   \        WTRR7       M2\!        \        V4      \        V4      4      p\        VRV VRV RR7       \        VP#                  4       V RR7       EKQ  	  R#   + '       g   i     L; i)r  rk   rS  Nz	{msg} {r}err_msgr
  )r   rI   r   r   choicerL  randintrU  rV  filterwarningsWMSGr(   setdiagr   r   r   rn   r   )rM   rS   r  rrG  r0  rH  rJ  s   &&&    r9   check_setdiag=_TestCommon.test_setdiag_comprehensive.<locals>.check_setdiag  s    #bggam,a4q5		((q"6A		))!Ra)8AaA&,,..++Hd<STIIaO /
 GGAM::a=%%*&q[ACFCF+A&q!uae[I"199;;GG' 5 /.s   "2E::F
rc   r  rM  N)r  r  r1  r  r  r  r  r  )rI   r   seedr   r  r   r   r  rP  rn   r   )r   rV  shapesr>   r  rH  ksr  rM   rS   k2rJ  s   &          @r9   test_setdiag_comprehensive&_TestCommon.test_setdiag_comprehensive  s    	*	H2 			t4ggrzz*EYYr!tQqS)A!u5AvU;A!!* !ii..rCGQ.H%aB/ I   +r;   c                   V P                  \        P                  ! ^4      4      pV P                  R4      p. ROp\        P                  ! 4       ;_uu_ 4        \        P
                  ! R\        \        4       \        \        VP                  V^R7       VP                  V4       \        VP                  4       V4       VP                  V^R7       \        VP                  4       \        P                  ! . RO. RO. R	O.4      4       VP                  VR
R7       \        VP                  4       \        P                  ! . RO. RO. RO.4      4       VP                  R^R7       \        VP                  4       R,          ^	4       VP                  RR
R7       \        VP                  4       R,          ^	4       VP                  ^.^R7       \        VP                  4       ^ ,          . RO4       VP                  ^^.^R7       \        VP                  4       R,          . RO. RO.4       RRR4       R#   + '       g   i     R# ; i)r2  rS  r  Nrf   NNr  r  )r2  rf   r  )r2  r2  r1  )r1  rf   rf   r  rx  r2  r1  r  )r+  r1  rf   rf   r1  r1  r1  r  r1  )r1  r1  r1  r  )r  rI   r&   rU  rV  rR  rS  r(   r@  rA  rT  r   r  r   r   )r   r  m2rG   s   &   r9   test_setdiag_TestCommon.test_setdiag  s   NN266!9%^^F#$$&&##Hd4KL*aii1=IIfqzz|V4IIfI"qyy{BHHi6?6?6A -B C IIfI#qyy{BHHi6?6?6A -B C IIdaI qyy{3/3IIdbI!qyy{3/3JJsaJ rzz|A=JJ1vJ#rzz|B/,2>2@ A- '&&&s   GH::I	c                >   \        . RO. RO. RO.4      pV P                  V4      p\        VP                  4       4       Uu0 uF  p\	        V4      kK  	  pp\        VP                  4       4       Uu0 uF  p\	        V4      kK  	  pp\        WE4       R# u upi u upi r  Nr  r1  r  r1  r  r  r  )r   r  r
   nonzerotupler   r   rQ   AspijA_nzAsp_nzs   &     r9   test_nonzero_TestCommon.test_nonzero  s{    9Yy12nnQ$-aiik$:;$:bb	$:;&/&>?&>%)&>?T" <?s   B2Bc                V   \        . RO. RO. RO.4      pV P                  V4      p\        \        P                  ! V4      4       Uu0 uF  p\        V4      kK  	  pp\        \        P                  ! V4      4       Uu0 uF  p\        V4      kK  	  pp\        WE4       R# u upi u upi rl  )r   r  r
   rI   ro  rp  r   rq  s   &     r9   test_numpy_nonzero_TestCommon.test_numpy_nonzero  s    9i34nnQ$-bjjm$<=$<bb	$<=&/

3&@A&@%)&@AT" >As   B!>B&c                  a a	 \         P                  P                  R 4       \         P                  ! . RO. RO. RO.4      p\         P                  P	                  ^^4      p\         P                  ! . .4      p\         P
                  ! R4      p\        P                  ! ^^RR7      P                  4       pWW4V.o	V	V 3R lpS P                   F&  p\        \        S	4      4       F  pV! Wx4       K  	  K(  	  R# )	rc   g{Gz?)densityc           
        < SP                  SV,          V R 7      pSP                  W R 7      p\        P                  ! RR7      ;_uu_ 4        \	        VP                  4       VP                  4       4       \        VP                  4       P                  VP                  4       P                  4       \        \        P                  ! VP                  RR7      4      4       \	        VP                  RR7      VP                  RR7      4       \        VP                  RR7      P                  VP                  RR7      P                  4       \	        VP                  ^ R7      VP                  ^ R7      4       \        VP                  ^ R7      P                  VP                  ^ R7      P                  4       \	        VP                  ^R7      VP                  ^R7      4       \        VP                  ^R7      P                  VP                  ^R7      P                  4       \	        VP                  RR7      VP                  RR7      4       \        VP                  RR7      P                  VP                  RR7      P                  4       \	        VP                  RR7      VP                  RR7      4       \        VP                  RR7      P                  VP                  RR7      P                  4       \	        VP                  RR7      VP                  RR7      4       \        VP                  RR7      P                  VP                  RR7      P                  4       RRR4       R#   + '       g   i     R# ; i)r  rS  )overNr  rx  r
  r1  r  )
r,  r  rI   r{  r   sumr   r>   r   isscalar)r>   rI  r  r  matricesr   s   &&  r9   rC  #_TestCommon.test_sum.<locals>.check  s]   ,,x{%,8CNN3N4E(++)#'')UYY[ASWWY__eiik.?.?@EII4I$89:)#''t'*<eiiTi>RSSWW$W/55uyydy7K7Q7QR)#''q'/599!9;LMSWW!W_22EII1I4E4K4KL)#''q'/599!9;LMSWW!W_22EII1I4E4K4KL)#''r'*:EII2I<NOSWW"W-33UYYBY5G5M5MN)#''r'*:EII2I<NOSWW"W-33UYYBY5G5M5MN)#''v'*>		v	@VWSWW&W1779O9U9UV ,+++s   LM33N	Nr1  r  rf   r2  r  r  r)  r+  )r  r  )rI   r   r[  r   randr   r   r   r6  rL  r   )
r   dat_1dat_2dat_3dat_4dat_5rC  r>   rI  r  s
   f        @r9   test_sum_TestCommon.test_sum  s    
		t)""$ % 		q!$""Aq$/779%6	W( ((E3x=)e * )r;   c                   \         P                  ! R	4      p\        . R
O. RO. RO.4      pV P                  V4      p\	        \
        RR7      ;_uu_ 4        VP                  ^R7       RRR4       \	        \
        RR7      ;_uu_ 4        VP                  RR7       RRR4       \	        \        RR7      ;_uu_ 4        VP                  RR7       RRR4       \	        \
        RR7      ;_uu_ 4        VP                  ^VR7       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lm; i  + '       g   i     R# ; ir  zaxis out of ranger  r  Nzaxis must be an integer      ?z&do.*n.t match.*shape|wrong.*dimensionsr  outr  r2  r  r  r  r1  r2  )	rI   r   r   r  r@  rA  r  r  meanr   r  r  r  s   &   r9   test_sum_invalid_params#_TestCommon.test_sum_invalid_params  s    hhvY! " s#:-@AAII1I B:-@AAII6I" B9,EFFII3I G :-UVVJJA3J' WV BAAAFF WVVs0   D	D"=D51ED	"D2	5E	E	c                   aa \        . RO. RO. RO.4      oV P                  S4      oVV3R lpV P                   F  pV! V4       K  	  R# )r1  c                    < SP                  V R 7      pSP                  V R 7      p\        W4       \        VP                  VP                  4       R# r  N)r  r   r   r>   )r>   dat_sum	datsp_sumr  r  s   &  r9   rC  )_TestCommon.test_sum_dtype.<locals>.check,  s=    ggEg*G			.I%g9	8r;   Nr  r  r  r   r  r6  r   rC  r>   r  r  s   &  @@r9   test_sum_dtype_TestCommon.test_sum_dtype&  sH    Y! " s#	9 ((E%L )r;   c                T   V P                   '       * p\        . RO. R	O. R
O.4      pV P                  V4      pV P                   '       d   \        ^ 4      M\        ^ ..4      pV P                   '       d   \        ^ 4      M\        ^ ..4      pVP	                  WAR7       VP	                  VR7       \        WE4       V P                   '       d   \        P                  ! R4      M\        P                  ! R4      pV P                   '       d   \        P                  ! R4      M\        \        P                  ! R4      4      pVP	                  ^WAR7       VP	                  ^VR7       \        WE4       \        \        RR7      ;_uu_ 4        VP	                  \        ^ .4      R7       RRR4       \        \        RR7      ;_uu_ 4        TP	                  \        V P                   '       d   ^ ..M^ 4      R7       RRR4       R#   + '       g   i     Le; i  + '       g   i     R# ; i)r1  r  keepdimsr  r  r  r  r  zoutput parameterr  Nr  r  r  r2  r2  r  )
r9  r   r  r0   r  r   rI   r   r@  rA  r   keepr  r  dat_out	datsp_outs   &     r9   test_sum_out_TestCommon.test_sum_out6  s   %%%Y! " s#"000%(eaSEl $ 2 2 2E!Hu	G+		i	 !'5$($6$6$6"((4.BHHV<L&*&8&8&8BHHTNfRXXfEU>V	QG3		qi	(!'5 :-?@@II%*I% A:-?@@II%);););!CID A@ A@@@@   	H2HH	H'	c                    \        . RO. RO. RO.4      pV P                  V4      p\        P                  ! V4      p\        P                  ! V4      p\	        W44       \        VP                  VP                  4       R# r1  Nr  r  r  )r   r  rI   r  r   r   r>   )r   r  r  r  r  s   &    r9   test_numpy_sum_TestCommon.test_numpy_sumQ  s]    Y! " s#&&+FF5M	!'5W]]IOO4r;   c                D   \        . RO. RO. RO.4      pV P                  V4      p\        VP                  4       4      '       g   Q hV P                  '       d   \
        M\        P                  p\        VP                  ^ R7      V4      '       g   Q h\        VP                  ^R7      V4      '       g   Q h\        VP                  4       4      '       g   Q h\        VP                  ^ R7      V4      '       g   Q h\        VP                  ^R7      V4      '       g   Q hR# r1  r  Nr  r  r  )
r   r  r-   r  r9  r	   rI   r0   rH   r  )r   r  r  matrix_or_arrays   &   r9   test_sum_mean_container_type(_TestCommon.test_sum_mean_container_type^  s    Y! " s#EIIK((((%)%7%7%7'RYY%)))+_====%)))+_====EJJL))))%**!*,o>>>>%**!*,o>>>>r;   c                p   a a S P                   '       * oVV 3R  lpS P                   F  pV! V4       K  	  R# )c                   < \        . RO. RO. RO.V R7      pSP                  WR7      p\        VP                  4       VP                  4       4       \	        VP                  4       P
                  VP                  4       P
                  4       \        \        P                  ! VP                  RR7      4      4       \        VP                  RSR7      VP                  RR7      4       \	        VP                  RR7      P
                  VP                  RR7      P
                  4       \        VP                  ^ SR7      VP                  ^ R7      4       \	        VP                  ^ R7      P
                  VP                  ^ R7      P
                  4       \        VP                  ^SR7      VP                  ^R7      4       \	        VP                  ^R7      P
                  VP                  ^R7      P
                  4       \        VP                  RSR7      VP                  RR7      4       \	        VP                  RR7      P
                  VP                  RR7      P
                  4       \        VP                  R	SR7      VP                  R	R7      4       \	        VP                  R	R7      P
                  VP                  R	R7      P
                  4       \        VP                  R
SR7      VP                  R
R7      4       \	        VP                  R
R7      P
                  VP                  R
R7      P
                  4       R# )r1  r  Nr  r  r  r  )r2  r  r  )r  r)  r+  rx  r
  r  )	r   r  r   r  r   r>   r   rI   r  )r>   r  r  r  r   s   &  r9   rC  $_TestCommon.test_mean.<locals>.checko  su   ""$+02C NN3N4E%chhj%**,?))5::<+=+=>BKK


 567%dT2EJJDJ4I t,22EJJDJ4I4O4OP%a$/1C q)//1C1I1IJ%a$/1C q)//1C1I1IJ%b40%**"*2E r*00%**"*2E2K2KL%b40%**"*2E r*00%**"*2E2K2KL%ft4ejjfj6M v.44ejjfj6M6S6STr;   N)r9  r6  )r   rC  r>   r  s   f  @r9   	test_mean_TestCommon.test_meanm  s1    %%% 	UF ((E%L )r;   c                   V P                  \        P                  ! R	4      4      p\        . R
O. RO. RO.4      pV P	                  V4      p\        \        RR7      ;_uu_ 4        VP                  ^R7       RRR4       \        \        RR7      ;_uu_ 4        VP                  RR7       RRR4       \        \        RR7      ;_uu_ 4        VP                  RR7       RRR4       \        \        RR7      ;_uu_ 4        VP                  ^VR7       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lm; i  + '       g   i     R# ; ir  )	r,  rI   r   r   r  r@  rA  r  r  r  s   &   r9   test_mean_invalid_param#_TestCommon.test_mean_invalid_param  s    ll288F+,Y! " s#:-@AAJJAJ B:-@AAJJFJ# B9,EFFJJCJ  G :-UVVJJA3J' WV BAAAFF WVVs0   $DD1E ED.	1E	E	E(	c                   aa \        . RO. RO. RO.4      oV P                  S4      oVV3R lpV P                   F  pV! V4       K  	  R# )r1  c                    < SP                  V R 7      pSP                  V R 7      p\        W4       \        VP                  VP                  4       R# r  )r  r   r   r>   )r>   dat_mean
datsp_meanr  r  s   &  r9   rC  *_TestCommon.test_mean_dtype.<locals>.check  s?    xxex,H%0J%h;)9)9:r;   Nr  r  r  r  r  s   &  @@r9   test_mean_dtype_TestCommon.test_mean_dtype  sH    Y! " s#	; ((E%L )r;   c                T   V P                   '       * p\        . RO. R	O. R
O.4      pV P                  V4      pV P                   '       d   \        ^ 4      M\        ^ ..4      pV P                   '       d   \        ^ 4      M\        ^ ..4      pVP	                  WAR7       VP	                  VR7       \        WE4       V P                   '       d   \        P                  ! R4      M\        P                  ! R4      pV P                   '       d   \        P                  ! R4      M\        \        P                  ! R4      4      pVP	                  ^WAR7       VP	                  ^VR7       \        WE4       \        \        RR7      ;_uu_ 4        VP	                  \        ^ .4      R7       RRR4       \        \        RR7      ;_uu_ 4        TP	                  \        V P                   '       d   ^ ..M^ 4      R7       RRR4       R#   + '       g   i     Le; i  + '       g   i     R# ; i)r1  r  r  r  r  z"output parameter.*wrong.*dimensionr  Nr  r  r  r  r  )
r9  r   r  r0   r  r   rI   r   r@  rA  r  s   &     r9   test_mean_out_TestCommon.test_mean_out  s   %%%Y! " s#"000%(eaSEl $ 2 2 2E!Hu	W,

y
!!'5$($6$6$6"((4.BHHV<L&*&8&8&8BHHTNfRXXfEU>V	aW4

y
)!'5 :-QRRJJ5!:J& S:-QRRJJ5$*<*<*<1#!DJE SR SRRRRr  c                    \        . RO. RO. RO.4      pV P                  V4      p\        P                  ! V4      p\        P                  ! V4      p\	        W44       \        VP                  VP                  4       R# r  )r   r  rI   r  r   r   r>   )r   r  r  r  r  s   &    r9   test_numpy_mean_TestCommon.test_numpy_mean  s_    Y! " s#773<WWU^
!(7X^^Z%5%56r;   c                *   \        . RO. RO. R	O.\        4      pV P                  VR
\        R7      p\        P                  P                  V4      p\        . RO. RO. RO.4      pV P                  VR
\        R7      p\        P                  P                  V4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        P                  ! RR\        4       \        P                  ! RR\        4       \        V4      P                  4       p\        V4      P                  4       pRRR4       \        XV,
          \        R
4      4       \        XV,
          \        R
4      4       R#   + '       g   i     LJ; i)r  r   r>   rS  &splu converted its input to CSC formatCspsolve is more efficient when sparse b is in the CSC matrix format.spsolve requires A be CSC or CSR matrix formatNr  r1  r1  r2  r  r  r  r  )      @              ?)r         @r  )r  r  r  )r   floatr  r   linalgr2   rU  rV  rR  r(   r   r   r   )	r   MsMMexpNsNNexpsMexpsNexps	   &        r9   	test_expm_TestCommon.test_expm  s(   9i4e<^^AU%^8||  #<|<=^^AU%^8||  #$$&&##8'
 ##U'
 ##@'
 H$$&EH$$&E# '& 	"54<%-@!54<%-@) '&s   9BFF	c                @   a  V 3R  lp\         3 F  pV! V4       K  	  R# )c                 .  < \        . RO. RO. R	O.V 4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        P                  ! RR\        4       \        P                  ! RR\        4       SP                  VR
V R7      p\        V4      pRRR4       \        XP                  X4      P                  4       \        P                  ! ^4      4       \        \        \        V4       R#   + '       g   i     Ld; i)r  rS  r  r  r  r  Nr  r  r  r  )r   rU  rV  rR  r(   r  r3   r   r   r   rI   r&   r@  r  )r>   r  r  sMinvr   s   &   r9   rC  #_TestCommon.test_inv.<locals>.check  s    y)Z8%@A((**''D+
 ''2+	 ''<+
 ^^AU%^@B% +& &eiim&;&;&=rvvayI)S!,) +*s   A4DD	N)r  rH  s   f  r9   test_inv_TestCommon.test_inv  s    	-. WE%L r;   c           	        \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \	        . RO. RO. RO. RO.4      p\        V P                  V4      P                  4       V4       \	        . RO. R	O. RO.4      p\        V P                  V4      P                  4       V4       \        V P                  VRR7      P                  4       VP                  R4      4       RRR4       R#   + '       g   i     R# ; i
rS  r  r  Nr  r  )r1  r  r1  r  )r  r1  r1  )r1        @r1  )	rU  rV  rW  r   r   r   r  r   rt   r  s   & r9   test_from_array_TestCommon.test_from_array  s    $$&&!!(N;wwww78At~~a088:A>'& " #A t~~a088:A>q088:188G;LN '&&&   CC;;D	c           	     6   \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       V P	                  . RO. RO. RO. RO.4      p\        V P                  V4      P                  4       V4       V P	                  . RO. R	O. RO.4      p\        V P                  V4      P                  4       V4       \        V P                  VRR7      P                  4       VP                  R4      4       RRR4       R#   + '       g   i     R# ; ir  )	rU  rV  rW  r   r,  r   r  todensert   r  s   & r9   test_from_matrix_TestCommon.test_from_matrix&  s    $$&&!!(N;iIyIJAt~~a088:A>.-') *A t~~a088:A>q088:AHHW<M '&&&s   CDD	c           	        \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       . RO. RO. RO. RO.p\	        V P                  V4      P                  4       V4       . RO. R	O. RO.p\	        V P                  V4      P                  4       \        V4      4       \	        V P                  VRR7      P                  4       \        V4      P                  R4      4       RRR4       R#   + '       g   i     R# ; ir  )	rU  rV  rW  r   r   r  r   r   rt   r  s   & r9   test_from_list_TestCommon.test_from_list4  s    $$&&!!(N;1At~~a088:A>! A t~~a088:E!HEq088:E!HOOG<T '&&&r  c           	        \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \	        . RO. RO. RO. RO.4      pV P                  V4      p\        V P                  V4      P                  4       V4       V P                  V4      p\        V P                  V4      P                  4       V4       \	        . RO. R	O. RO.4      pV P                  V4      p\        V P                  V4      P                  4       V4       \        V P                  VRR7      P                  4       VP                  R4      4       V P                  V4      p\        V P                  V4      P                  4       V4       \        V P                  VRR7      P                  4       VP                  R4      4       RRR4       R#   + '       g   i     R# ; ir  )
rU  rV  rW  r   r   r'  r   r  r   rt   r   r
  Ss   &  r9   test_from_sparse_TestCommon.test_from_sparseB  sa   $$&&!!(N;wwww78A""1%At~~a088:A>q!At~~a088:A>'& " #A ""1%At~~a088:A>t~~aw~?GGI xx02q!At~~a088:A>t~~aw~?GGI xx02# '&&&s   F#GG	c                   V P                   P                  4       p\        YP                  '       d   \        P
                  M\        P                  4      '       g   Q h\        WP                  4       \        VP                  P                  VP                  P                  8g  4       V P                   P                  R R7      p\        WP                  4       \        VP                  P                  4       \        VP                  P                  '       * 4       V P                   P                  RR7      p\        WP                  4       \        VP                  P                  '       * 4       \        VP                  P                  4       \        P                  ! V P                   P                  V P                   P                  R7      pV P                   P                  VR7      p\        V P                  V4       \        V P                  V4       \        P                   ! W4      '       g   Q hV P#                  \        P                  ! V P                   P                  V P                   P                  R7      4      pV P                   P                  VR7      p\        V P                  V4       \        V P                  V4       \        P                   ! W4      '       g   Q h\%        . RO.4      pW0P                  ,          pW0P                   P                  4       ,          p\        WE4       \%        . RO.4      P&                  pV P                  V,          pV P                   P                  4       V,          p\        WG4       V P)                  V P                  \*        R7      pV P                  P-                  \*        4      p	\        VP                  4       V	4       R# )r   r0  r4  r  r  Nr  r  r  r  r  r        @)r  r  rH   r9  rI   r	   r0   r   r  r   flagsc_contiguousf_contiguousr   r   r>   rP   r,  r   ro  r  rB  rt   )
r   chkr  rM   dense_dot_denserC  rS   check2spboolmatbools
   &         r9   test_todense_TestCommon.test_todense[  s   jj  "#-?-?-?rzzRYYOOOO3)		&&#))*@*@@Ajj  s +3)		&&'CII***+jj  s +3)CII***+		&&'hhtzz''tzz/?/?@jj  S )488S)488S)""3,,,,ll288DJJ$4$4DJJ<L<LMNjj  S )488S)488S)""3,,,,:,hh,JJ&&((?2=/"$$((Q,##%)?35((//$'6>>+W5r;   c                n   \        V P                  4      pV P                  P                  4       p\	        W!4       \        VP                  P                  VP                  P                  8g  4       V P                  P                  R R7      p\	        W!4       \        VP                  P                  4       \        VP                  P                  '       * 4       V P                  P                  RR7      p\	        W!4       \        VP                  P                  '       * 4       \        VP                  P                  4       \        P                  ! V P                  P                  V P                  P                  R7      pV P                  P                  VR7       \	        W!4       RVR&   V P                  P                  VR7       \	        W!4       \        . RO4      p\        WA4      p\        W@P                  P                  4       4      p\	        WV4       \        . R	O4      p\        W4      p\        V P                  P                  4       V4      p\	        WX4       V P                  V P                  \         R7      p	VP#                  \         4      p
\	        V	P                  4       V
4       R# )
r   r0  r4  r  r  r  .Nr  r  )r   r  r  r   r   r   r  r  r  rI   r   r   r>   r   r   r  rB  rt   )r   r  r  r  rM   r	  rC  rS   r
  r  arrbools   &          r9   test_toarray_TestCommon.test_toarray  s   dhhjj  "3$		&&#))*@*@@Ajj  s +3$		&&'CII***+jj  s +3$CII***+		&&'hhtzz''tzz/?/?@

s#3$C

s#3$*a+Azz))+,?2- c+TZZ'')1-?35**T"6>>+W5r;   c           
       aa	 \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \	        . RO. R	O. R
O.4      pV P                  V4      p\         EF=  pVP                  V4      pR Fo  pVP                  W5R7      o\        SP                  VP                  4       \        SP                  4       V4       \        SP                  VP                  4       Kq  	  \        SP                  VRR7      SJ 4       SP                  VRR7      o	\        S	SJ4       VV	3R lpSP                  R9   d   R F  pV! V4       K  	  K  SP                  R8X  d   R F  pV! V4       K  	  EK  SP                  R8X  g   EK,  R F  pV! V4       K  	  EK@  	  RRR4       R#   + '       g   i     R# ; i)rS  TFr3  c                    < \        SV 4      p\        SV 4      p\        W4       \        WJ4       RVP                  ,          pW#,          pW#,          '       * W#&   \        W,          W#,          8g  4       WBV&   R# )r1  Nr1  )r|   r   r   r   )	attributerM   rS   r  b_iS_castedS_copieds   &    r9   (check_equal_but_not_same_array_attributeI_TestCommon.test_astype.<locals>.check_equal_but_not_same_array_attribute  sc    )4A)4A&q,AJ'qvvA$C t8ADADADL)aDr;   r  r  Ny       @      @r1  r1  r1  y      @      @r1  r  )TFre  rd  rc  )indicesindptrdata)rowcolr!  )offsetsr!  )rU  rV  rW  r   r   r  r,   rt   r   r>   r   r  r   )
r   r
  r  r?   D_castedrX  r  r  r  r  s
   &       @@r9   test_astype_TestCommon.test_astype  sb   $$&&!!(N;'' " #A q!A%%88A;)D xxx5H @ !1!1!3X> !((;	 * 6(BC#??14?801	 ??&;;%B	@K &C__-%;	@K &<__-%8	@K &9? & '&&&s   E-F3F33G	c                   \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       \	        . RO. RO. RO.4      pV P                  V4      p\        VR4      '       d   RVP                  P                  n	        VP                  R9   d7   RVP                  P                  n	        RVP                  P                  n	        \         FE  pVP                  V4      pVP                  V4      p\        VP                   VP                   4       KG  	  RRR4       R#   + '       g   i     R# ; i)rS  r!  FNr  r  r  r  )rU  rV  rW  r   r   r  hasattrr!  r  	writeabler  r   r  r,   rt   r   r>   )r   r
  r  r?   r%  r  s   &     r9   test_astype_immutable!_TestCommon.test_astype_immutable  s    $$&&!!(N;'' " #A q!Aq&!!).&xx00+0(,1		)%88A;88A;X^^X^^< & '&&&s   DD,,D=	c                J   a  V 3R  lpS P                    F  pV! V4       K  	  R# )c                    < SP                   V ,          pSP                  V ,          p\        V^,          V^,          P                  4       4       \        VR,          VR,          P                  4       4       R# rf   L1@Nr7  r8  r   r   r>   r  r  r   s   &  r9   rC  *_TestCommon.test_mul_scalar.<locals>.check  sW    //%(C%%e,Es1uuQw&7&7&9:s4x%*)=)=)?@r;   Nr5  rH  s   f  r9   test_mul_scalar_TestCommon.test_mul_scalar  "    	A %%E%L &r;   c                J   a  V 3R  lpS P                    F  pV! V4       K  	  R# )c                    < SP                   V ,          pSP                  V ,          p\        ^V,          ^V,          P                  4       4       \        RV,          RV,          P                  4       4       R# r/  r1  r2  s   &  r9   rC  +_TestCommon.test_rmul_scalar.<locals>.check  sW    //%(C%%e,Equqw&7&7&9:tCx$u*)=)=)?@r;   Nr4  rH  s   f  r9   test_rmul_scalar_TestCommon.test_rmul_scalar  r7  r;   c                    V P                   \        P                  ,          p\        \        4      ;_uu_ 4        R V,           R R R 4       R #   + '       g   i     R # ; ir=   )r8  rI   r  r@  r  )r   r  s   & r9   test_rmul_scalar_type_error'_TestCommon.test_rmul_scalar_type_error  s7    !!"**-9%%5L &%%%s   
AA	c                J   a  V 3R  lpS P                    F  pV! V4       K  	  R# )c                   < SP                   V ,          pSP                  V ,          pVP                  4       pR VR&   TpWC,           p\        WTP	                  4       V,           4       WDP                  4       ,           p\        VP	                  4       VP	                  4       VP	                  4       ,           4       WC^ ,          ,           p\        WTP	                  4       V^ ,          ,           4       R# r  Nre  )r7  r8  rX  r   r   r  r>   r  r  rM   rS   r  r   s   &     r9   rC  #_TestCommon.test_add.<locals>.check  s    //%(C%%e,E
AAcFAAq))+/2GGIAqyy{ yy{QYY[8: aDAq))+!"45r;   Nr4  rH  s   f  r9   test_add_TestCommon.test_add   s!    	6$ %%E%L &r;   c                J   a  V 3R  lpS P                    F  pV! V4       K  	  R# )c                    < SP                   V ,          pSP                  V ,          pVP                  4       pR VR&   TpW4,           p\        WSVP	                  4       ,           4       R# rB  )r7  r8  rX  r   r   rC  s   &     r9   rC  $_TestCommon.test_radd.<locals>.check  sS    //%(C%%e,E
AAcFAAqaiik/2r;   Nr4  rH  s   f  r9   	test_radd_TestCommon.test_radd  s!    	3 %%E%L &r;   c                   a  V 3R  lpS P                    F(  pV\        P                  ! R4      8X  d   K   V! V4       K*  	  R# )c                 z  < SP                   V ,          pSP                  V ,          p\        W",
          P                  4       \        P
                  ! R4      4       \        V^ ,
          P                  4       V4       SP                  \        P                  ! . RO. RO. RO.R4      4      p\        W#,
          P                  4       WP                  4       ,
          4       \        W2,
          P                  4       VP                  4       V,
          4       \        W!^ ,          ,
          W^ ,          ,
          4       R# )r2  r0  Nr>  r  r1  r1  r  r
  r1  r1  r1  r1  r*  r1  r  )r7  r8  r   r   rI   r   r  r   r>   r  r  rQ   r   s   &   r9   rC  #_TestCommon.test_sub.<locals>.check%  s    //%(C%%e,E668"((6:JK	224c:,}EsKA 	224cIIK6GH	224aiikC6GH u1v~sV|<r;   rB  Nr5  rI   r>   rH  s   f  r9   test_sub_TestCommon.test_sub$  s5    	=  %%E((%L &r;   c                   a  V 3R  lpS P                    F(  pV\        P                  ! R4      8X  d   K   V! V4       K*  	  R# )c                   < SP                   V ,          pSP                  V ,          p\        W,
          . RO. RO. RO.4       \        W!,
          . RO. RO. RO.4       \        ^ V,
          P                  4       V) 4       SP	                  . RO. RO. RO.RR7      p\        W,
          WP                  4       ,
          4       \        W1,
          VP                  4       V,
          4       \        VP                  4       V,
          VP                  4       V,
          4       \        W#P                  4       ,
          WP                  4       ,
          4       \        V^ ,          V,
          V^ ,          V,
          4       R# )r1  r0  r  Nr8  rN  rO  rP  )r7  r8  r   r   r  rQ  s   &   r9   rC  $_TestCommon.test_rsub.<locals>.check=  s    //%(C%%e,Ei	)-LMi	)-LME	224sd;	*Z@sKA#		*;<!))+*;<qyy{U2AIIK#4EFuyy{2C))+4EF s1v~s1v|<r;   rB  NrS  rH  s   f  r9   	test_rsub_TestCommon.test_rsub<  s5    	=" %%E((%L &r;   c                J   a  V 3R  lpS P                    F  pV! V4       K  	  R# )c                   < SP                   V ,          pSP                  V ,          p\        V^ ,           P                  4       V4       \	        \        ^^4       Uu. uF  q3V,          NK  	  up4      p\	        \        ^^4       Uu. uF  q3V,          NK  	  up4      p\        VP                  4       V4       R# u upi u upi rF  )r7  r8  r   r   r  rL  r   )r>   r  r  r  sumSsumDr   s   &     r9   rC  $_TestCommon.test_add0.<locals>.checkV  s    //%(C%%e,E 	224c:5A;7;aE		;78Dq!5AC56D5 85s   B;C Nr4  rH  s   f  r9   	test_add0_TestCommon.test_add0U  s!    		6 %%E%L &r;   c                   \        . RO. RO.4      p\        . RO. RO.4      pV P                  V4      pV P                  V4      pVP                  R9   d   VP                  MRpVP                  V4      P                  V8X  g   Q h\	        VP                  V4      P                  4       W,          4       \	        VP                  V4      P                  4       W,          4       \        . RO. R	O.4      p\        . R
O. RO.4      pV P                  V4      pV P                  V4      p	\	        VP                  V	4      P                  4       Wg,          4       \	        VP                  V4      P                  4       Wg,          4       \	        VP                  V	4      P                  4       W,          4       \	        VP                  V4      P                  4       W,          4       R# )r  re  N)r  r1  r+  )rf   r  r  )r1  r)  r1  )r1  r  r1  )rd  r  rc  y      ?       y              @y              y      @      y            @r  y      @       @y      @      y             ?y              y             @r+  )r   r  r  multiplyr   r   )
r   rQ   rR   rr  Bspout_fmtr   r
  CspDsps
   &         r9   test_elementwise_multiply%_TestCommon.test_elementwise_multiplyd  sa   78$%78$%nnQnnQ #

.C C#**S!))W444CLL-557=CLLO335qs; $^45$^45nnQnnQCLL-557=CLLO335qs; 	CLL-557=CLLO335qs;r;   c                T   \        ^.4      p\        R..4      p\        . RO4      p\        . RO.4      p\        ^.^.^..4      p\        . RO. RO. RO.4      p. ROp\        P                  ! R	4      pVP                  p	\        ^ ..4      p
\        ^^.^ ^...4      pV P	                  V4      pV P	                  V4      pV P	                  V4      pV P	                  V4      pV P	                  V4      pV P	                  VR
,          4      pV P	                  V	4      pV P	                  V	R,          4      pV P	                  V
4      pWW4WVWxWV.pWWVVVVV.	pV F]  pV FT  p VP                  4       VP                  4       ,          pTP                  T4      p\        TP                  4       T4       KV  	  K_  	  V Fo  pV Ff  p VP                  4       V,          p TP                  T4      p\        T4      '       d   \        TP                  4       T4       KZ  \        TT4       Kh  	  Kq  	  R#   \         d     \        \        TP                  T4        K  i ; i  \         d     K  \         d     \        \        TP                  T4        K  i ; i  \         d     K  i ; i)r  Nr  r
  r1  )r)  r+  ro  )r*  r  r2  )r  r2  rf   )r  r  r  r'  r>  rF  r	  r1  N)r   rI   onesro  r  r   rA  r@  rg  r   r  r'   )r   rQ   rR   r   r
  Er4  GHJKLrh  rk  EspFspHspHsppJspJsppKspr  
spmatricesr  rI  
dense_multsp_mults   &                          r9   #test_elementwise_multiply_broadcast/_TestCommon.test_elementwise_multiply_broadcast|  s^   1#JB4&M(O8*A3sA3- 78G,-GGFOCCA3%LQqE1Q%=/" nnQnnQnnQnnQnnQ~~ai(nnQ~~ak*nnQ!aA!4#tS$D
 A!"qyy{!:J **Q-#GOO$5zB    A!"qJjjmG G$$'(9:F'<   " !*ajj!< ! ! !*ajj!<
 " sB   "%H1IJ1&IIJ,J5JJJ'&J'c           
        ^\         P                  \         P                  ^.^\         P                  ^\         P                  .\         P                  ^\         P                  \         P                  ..p\        \        V P                  V P                  ,          4      V4       V P                  . R	O. R
O. RO.RR7      p^\         P                  \         P                  R.R\         P                  \        \         P                  .\         P                  R\         P                  ^ ..p\        \        V P                  V,          4      V4       \        . RO. RO.4      p\        . RO. RO.4      pV P                  V4      pV P                  V4      p\        \        WV,          4      W4,          4       \        . RO. RO.4      p\        . RO. RO.4      pV P                  V4      pV P                  V4      p\         P                  ! RR7      ;_uu_ 4        \        \        WV,          4      W4,          4       RRR4       \        ^ ^.^^ ..4      p\        ^^ .^^ ..4      pV P                  V4      pV P                  V4      p\         P                  ! RRR7      ;_uu_ 4        \        \         P                  ! \        WV,          4      4      W4,          4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  r0  r        ?g      ?rS  )divideN)r  rv  rN  rO  rP  r  rc  rd  re  rf  r'  )r  rf   r  r  )r1  rx  r2  )
rI   rY  r   r   r  r  r   r   r   r{  )r   r  denomrQ   rR   rr  rh  s   &      r9   test_elementwise_divide#_TestCommon.test_elementwise_divide  s%   rvvbffQ'rvva'VVAbffRVV,. 	74::

#:;XF	*Z@sKrvvbffS)s266*VVD*, 	74::#56A $^45$^45nnQnnQGCI.4 78$%78$%nnQnnQ[[))wsy1159 * Aa5!A- Aa5!A- nnQnnQ[[(;;rxx	(:;QUC <; *) <;;s   "K%%6K8%K5	8L		c                   \        . RO. RO. RO. RO.4      pV P                  V4      pV P                  '       d   R FM  pW#,          pW,          p\        VP	                  4       V4       \        VP                  VP                  4       KO  	  \        \        VP                  ^ 4       \        \        VP                  R4       V P                  VR,          4      p\        V^,          P	                  4       VP	                  4       4       R# R	 Fd  pW#,          p\        P                  P                  W4      p\        VP	                  4       V4       \        VP                  VP                  4       Kf  	  R
 F  p\        \        VP                  V4       K   	  V P                  VR,          4      p\        \        VP                  ^4       R# )r  Nr  r1  rf   r1  )r1  r2  r  r1  )r1  r  r1  r1  )r1  r  r)  r*  )r  rf   皙@r2  r  r
  )Nr2  Nr	  r1  r  rf   r2  )r
  r  r  )r   r  r9  r   r   r   r>   r@  r  __pow__rA  rI   r  matrix_powerr  )r   rQ   rR   exponentret_spret_nps   &     r9   test_pow_TestCommon.test_pow  sD   <|\JKNN10"6>>#3V<V\\6<<8	 1 -qyy!<*aii4 qw'A!Q$)199;7%//<"6>>#3V<V\\6<<8	 & .j!))X> . qw'A)QYY2r;   c                   V P                  . RO. RO. RO. RO.4      p\        . ROV,          \        . ROVP                  4       4      4       \	        . RO.4      p\        W!,          W!P                  4       ,          4       R# )r2  Nr2  r1  r1  r1  r  r1  rf   r1  r  rf   r2  r1  r  )r  r   r   r   r   )r   r  r"  s   &  r9   test_rmatvec_TestCommon.test_rmatvec  sU    NNGGIg>?!)a-Y		1LMYK !#'3+<=r;   c                h   V P                  ^.^.^..4      p\        \        V\        ^4      ,          4      4       \	        V\        ^4      ,          P                  4       ^.^.^..4       \	        V\        ^.4      ,          \        . RO4      4       \	        V\        ^..4      ,          \        ^.^.^..4      4       \	        V\        P                  ! R4      ,          \        ^.^.^..4      4       \	        V\        P                  ! R4      ,          \        P                  ! R4      4       R# )r  Nr'  r  r  r  r1  r2  r1  )r  r   r'   r   r   r   rI   rr  r  s   & r9   test_small_multiplication%_TestCommon.test_small_multiplication   s    NNQCQC=)U1X&'a%(l++-aS1#?Qs^U9%56Qu%uqcA3_'=>Q(%!qcA3*@AQ("''&/:r;   c                j   \         P                  ! ^.^.^..4      pV P                  V4      pV P                  '       dd   \	        V\         P
                  ! R4      ,          P                  4       V4       \	        V\        ^..4      ,          P                  4       V4       R# \        V\        ^.4      ,          \        . RO4      4       \        V\        ^..4      ,          \        ^.^.^..4      4       \        V\         P
                  ! R4      ,          \         P
                  ! R4      4       R# )r  Nr  r'  r  r  )rI   r   r  r9  r   rr  r   r   )r   rQ   rr  s   &  r9   -test_star_vs_at_sign_for_sparray_and_spmatrix9_TestCommon.test_star_vs_at_sign_for_sparray_and_spmatrix  s    HHqcA3_%nnQ%sRWWV_'<&E&E&GK%sUQC5\'9&B&B&DaHuaSz)5+;<uqcU|+UQC!qc?-CDrwwv.@r;   c                h   V P                  ^.^.^..4      p\        4       p\        W,           R4       \        W,
          R4       \        W,          R4       \        W!,           R4       \        W!,
          R4       \        W!,          R4       \        W,          R4       \        W!,          R4       R# )r  r   r   N)r  r   r   r   rQ   rR   s   &  r9   test_binop_custom_type"_TestCommon.test_binop_custom_type  s    
 NNQC!qc?+MQU01QU01QU01QU12QU12QU12QU01QU12r;   c                j   V P                  ^.^.^..4      p\        R4      p\        W,           R4       \        W,
          R4       \        W,          R4       \        W!,           R4       \        W!,
          R4       \        W!,          R4       \        W,          R4       \        W!,          R4       R# )r  r   r   Nr  )r  r   r   r  s   &  r9   !test_binop_custom_type_with_shape-_TestCommon.test_binop_custom_type_with_shape*  s    NNQC!qc?+"5)QU01QU01QU01QU12QU12QU12QU01QU12r;   c                    ! R  R4      p^pV P                  ^.^.^..4      pV! V4      pW2,          pW4,          p\        VP                  4       VP                  4       4       \        VP                  VP                  4       R# )c                   ,   a  ] tR tRt o R tR tRtV tR# )0_TestCommon.test_mul_custom_type.<locals>.Customi8  c                    Wn         R # r=   scalar)r   r  s   &&r9   r   9_TestCommon.test_mul_custom_type.<locals>.Custom.__init__9  s    $r;   c                &    WP                   ,          # r=   r  r   s   &&r9   r   9_TestCommon.test_mul_custom_type.<locals>.Custom.__rmul__<  s    {{**r;   r  N)r   r   r   r   r   r   r   r   r   s   @r9   Customr  8  s     %+ +r;   r  N)r  rB   r   r   r  )r   r  r  rQ   r  A_scalarA_cs   &      r9   test_mul_custom_type _TestCommon.test_mul_custom_type7  so    	+ 	+ NNQCQC=)6N:e !1!1!3S[[]CX__cjj1r;   c                    V P                  ^.^.^..4      p\        4       p\        W8H  R4       \        W8g  R4       \        W8  R4       \        W8  R4       \        W8  R4       \        W8*  R4       R# )r  r   r   r   r   r   r  N)r  r   r   r  s   &  r9   test_comparisons_custom_type(_TestCommon.test_comparisons_custom_typeG  sl    NNQC!qc?+QVT"QVT"QUD!QVT"QUD!QVT"r;   c           	         V P                  \        . RO. RO. RO. RO.4      4      p^
pVP                  V4      pW,          p\        VP	                  4       VP	                  4       4       R# )r2  Nr  r  r  r  )r  r   r   r   r   )r   r  r  actualr  s   &    r9   test_dot_scalar_TestCommon.test_dot_scalarQ  sQ    NN5'')G!DEFv:((*:*:*<=r;   c           	        V P                  \        . RO. RO. RO. RO.4      4      pV P                  \        ^ ^.^^ .^ ^..R4      4      p\        . RO.4      P                  p\        P                  p\        V! W4      VP                  4       V,          4       \        V! W4      P                  4       W,          P                  4       4       \        V! VP                  4       V4      W,          P                  4       4       \        V! WP                  4       4      W,          P                  4       4       \        \        WA^4       \        \        V^V4       R# )r2  r0  Nr  r  r  r  r'  )	r  r   ro  operatormatmulr   r   r@  rA  )r   r  rR   r#  r  s   &    r9   test_matmul_TestCommon.test_matmulY  s    NN5'')G!DEFNN51Q%1qe!4S9:WI  !&.!))+2CD 	"&,"6"6"815//:KL!&a"815//:KL!&IIK"815//:KL 	j&Q/j&!Q/r;   c           
        V P                  . RO. RO. RO. RO.4      p\        . RO.4      P                  p\        W,          VP	                  4       V,          4       \        V\        . RO4      ,          P                  R4       \        V\        ^.^.^..4      ,          P                  R4       \        V\        ^.^.^..4      ,          P                  R4       \        \        V\        . RO4      ,          \        4      4       V P                  '       d   \        M\        P                  p\        \        V\        . RO4      P                  ,          V4      4       \        ^^.4      \        . R	O4      \        ^.^..4      \        . RO4      \        ^.^..4      .pV F  p\        \        VP                  V4       K   	  \!        V\        . RO4      ,          \#        VP	                  4       . RO4      4       \!        V^.^.^..,          \        P$                  ! \#        VP	                  4       . RO4      4      P                  4       R# )
r2  Nr  r  r  r  r'  )r  )r  r  r  )r  r   ro  r   r   r   r   r0   r   rH   r	   r9  rI   r@  rA  r   r   r   
atleast_2d)r   r  r#  r  bad_vecsr?   s   &     r9   test_matvec_TestCommon.test_matveck  s   NNGGIg>?WI  !!'199;+<= 	a%.(//5a%!aS!..55e<a&1#qc1#//66u= 	
1uW~-w78%)%7%7%7'RYY
1vg000/BC 1Q%L%	"2EA3s)4D7OVaS!I%68A*allA6 
 	AeGn,c!))+g.FGAsA3smOR]]3qyy{7;S-T-V-VWr;   c                d   \        . RO. RO. RO. RO.4      p\        . RO. RO. RO. RO.4      p\        ^ ^.^^ .^ ^..R4      pV P                  V4      pV P                  V4      p\        WE,          P	                  4       W,          4       \        WC,          W,          4       \        W,          W,          4       \        W%,          W,          4       VP                  4       pTpW,          p\        WF,          P	                  4       V4       \        WG,          V4       \        W,          V4       \        W&,          V4       VP                  4       p\        WF,          P	                  4       V4       \        WG,          V4       \        W,          V4       \        W&,          V4       VP                  4       p\        WF,          P	                  4       V4       \        WG,          V4       \        W,          V4       \        W&,          V4       ^p	Rp
\        P                  ! ^ 4       \        V	^34      p\        V	4       F>  p\        ^4       F,  p\        P                  ! 4       pW8  g   K   W,          WV3&   K.  	  K@  	  V P                  V4      pWP                  ,          p\        VP	                  4       VP	                  4       VP                  P	                  4       ,          4       \        VP	                  4       VP	                  4       VP	                  4       P                  ,          4       V P                  ^^.^^..4      pV P                  ^^.^^.^^..4      p\        \        VP                  V4       V P                   '       d   \        \        VP"                  V4       R# R# )r2  r0  g333333?Nr  r  r  r  )r0   r   r  r   r   r  r  r  r   r[  r   rL  ro  r@  rA  r   r9  r   )r   rM   a2rS   aspbspcspr  wantrx  fracrQ   r  rI  rU  rR   s   &               r9   test_matmat_sparse_TestCommon.test_matmat_sparse  s   GGIg67GGIg67QqE1Q%1&s+nnQnnQ!39"5"5"7?!#'151!!'151!"(AE2 iiku!39"5"5"7>!#'40!!'40!"(D1iik!39"5"5"7>!#'40!!'40!"(D1iik!39"5"5"7>!#'40!!'40!"(D1 A1Q%LqA1XMMO8VAcF   NN1G!!))+qyy{QSS[[]/JK!!))+qyy{QYY[]]/JK NNQqE1Q%=)NNQqE1Q%1./j!,,2*aii3 r;   c           	     v   . RO. RO. RO. RO.pV P                  V4      p\        ^^.^^.^^..4      \        ^^.^^.^^..4      .pV Fk  pW$,          p\        \	        YPP
                  '       d   \        M
\        V4      4      4       \        VP                  R4       \        V\        W4      4       Km  	  R# )r2  Nr  r  r  r  r  rf   )r  r   r0   r   rH   r9  r	   typer   r   r   )r   rM   r  bsrS   results   &     r9   test_matmat_dense_TestCommon.test_matmat_dense  s    WYw/nnQ aUAa5!A'(&1Q%1qe1D*EFAWFJv2D2D2Dw$q'RSu-Q*	 r;   c                @   \         P                  ! . RO. RO. RO.^^.^ ^..4      pVP                  4       pV P                  V4      pR F  pVP	                  V4      p\        VP                  V4       \        VP                  4       V4       V P                  VR,           4      P	                  V4      p\        VP                  V4       \        VP                  4       VR,           4       V P                  V4      P	                  V4      p\        VP                  V4       \        VP                  4       V4       K  	  R FX  pVP	                  V4      p\        WB4       V P                  VR,           4      P	                  V4      p\        WRR,           4       KZ  	  R# )r                @Nr  r1  r2  r  )r  r1  r1  )rc  r  rd  re  r  rC   r  )r   dense)r   r   r   r  asformatr   r  r   )r   rQ   r
  r  rM   rS   r  s   &      r9   test_sparse_format_conversions*_TestCommon.test_sparse_format_conversions  s6   KK1QqE1Q%=AIIKNN1AF

6"A&)qyy{A.qt$--f5A&)qyy{AbD1q!**62A&)qyy{A. B )F

6"Aq$qt$--f5AqB$' )r;   c           	     (   \        . RO. RO. RO.4      p\        . RO. RO.4      p\        W4      pV P                  V4      pR	 FJ  p\        VRV,           4      pR
 F.  pR F%  p\	        V! Wx3R7      P                  4       V4       K'  	  K0  	  KL  	  R# )r  to	blocksizeNr  r8  r1  r1  r  r  r  r2  r1  r  )rc  )r  rf   r2  r  )r  rf   r2  r  r  r5  )r   r   r  r|   r   r   )	r   r?   r@   rQ   rr  r  fnXYs	   &        r9   
test_tobsr_TestCommon.test_tobsr  s    9Yy1277#$InnQFdVm,B!,A qf!5!=!=!?C - " r;   c                  a a S P                   p\        P                  ! . .4      pW.oVV 3R  lpS P                  R4      p\	        \        P
                  ! V4      P                  4       \        P
                  ! \        R4      4      4       \	        VP                  P                  4       \        R4      4       \        \        VP
                  ^ R7       S P                   F&  p\        \        S4      4       F  pV! WV4       K  	  K(  	  R# )c                   < \        SV,          V R 7      pSP                  V4      pVP                  4       pVP                  4       p\        VP	                  4       V4       \        VP                  4       P	                  4       V4       \        VP                  RR7      P	                  4       V4       \        VP                  VP                  4       R# )r  r  Nr  )r   r  r
   r   r   r   r>   )r>   rI  r  r  rM   rS   r  r   s   &&    r9   rC  )_TestCommon.test_transpose.<locals>.check  s    51CNN3'E!AAqyy{A.q{{}446<uF;CCEqI!''*r;   r  Nr>  r  r2  )r  rI   r   r  r   r
   r   r   ro  r@  rA  r6  rL  r   )r   r  r  rC  r  r>   rI  r  s   f      @r9   test_transpose_TestCommon.test_transpose  s    ">
	+ v&2<<.668<<f6	8577??,eFm<j%//:((E3x=)e * )r;   c                J   a  V 3R  lpS P                    F  pV! V4       K  	  R# )c                    < SP                   V ,          pSP                  V ,          pW,           p\        W1V,           4       W!,           p\        WAV,           4       R # r=   )r7  r8  r   r>   r  r  sum1sum2r   s   &    r9   rC  )_TestCommon.test_add_dense.<locals>.check  sI    //%(C%%e,E ;Dt3Y/;Dt3Y/r;   Nr4  rH  s   f  r9   test_add_dense_TestCommon.test_add_dense  s!    	0 %%E%L &r;   c                   a  V 3R  lpS P                    F(  pV\        P                  ! R4      8X  d   K   V! V4       K*  	  R# )c                   < SP                   V ,          pSP                  V ,          pVP                  \        8X  d7   W,
          p\	        W1V,
          4       W!,
          p\	        WAV,
          4       R # W,           V,           V,
          p\	        W1V,           4       W",           V,           V,
          p\	        WAV,           4       R # r=   )r7  r8  r>   rB  r   r  s   &    r9   rC  )_TestCommon.test_sub_dense.<locals>.check   s    //%(C%%e,E yyD {"4s3{"4s3 	C50"4s3-4"4s3r;   rB  NrS  rH  s   f  r9   test_sub_dense_TestCommon.test_sub_dense  s5    	4$ %%E((%L &r;   c           	       a aaa \         P                  ! . RO. RO. RO.4      o\         P                  ! . RO. RO. RO.4      o\         P                  ! . RO. R	O. R
O.4      oVVVV 3R lpS P                   Ft  p\         P                  \         P                  \         P
                  3 F>  pR F5  pV! \         P                  ! V4      \         P                  ! V4      V4       K7  	  K@  	  Kv  	  R# )r  c                 @  < \         P                  ! V \         P                  4      '       d"   SP                  S
P	                  V 4      4      pM SP                  S	P	                  V 4      4      pVR 8X  d   VP                  ^4      pMdVR8X  d   VP                  R4      pMKVR8X  d   SP	                  V4      pM2VR8X  d"   SP                  SP	                  V4      4      pM
\        4       h\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       VP                  V4      pVP                  V4      pRRR4       \         P                  ! \        V4      \        V4      4      p\        \        X4      V4       \        VP                   VP                   4       \         P                  ! \        V4      \        V4      4      p\        \        X4      V4       \        VP                   VP                   4       R#   + '       g   i     L; i)r  scalar2r  r   rS  zTTaking (maximum|minimum) with a (positive|negative) number results in a dense matrixNr
  )rI   rl   complexfloatingr  rt   r  rA  rU  rV  rR  r(   maximumminimumr   r   r   r>   )r>   dtype2btyperQ   rR   max_smin_smax_dmin_dA_denseA_dense_cpxB_denser   s   &&&      r9   rC  /_TestCommon.test_maximum_minimum.<locals>.check?  su   }}UB$6$677NN;#5#5e#<=NN7>>%#89 KKN)#KKO'!NN6*("NN7>>&#9: l"((**''0+	 		!		! + JJwqz71:6Ewu~u5ekk2JJwqz71:6Ewu~u5ekk2# +*s   ?HH	N)r  r1  r2  )r1  r  r  r  )r  r  rf   )r1  r2  r  rp  )r1  y      @       @r  )r1                ?y             )r  r  r  r   )rI   r   r5  r   r  r  r>   )r   rC  r>   r	  r
  r  r  r  s   f    @@@r9   test_maximum_minimum _TestCommon.test_maximum_minimum9  s    ((Iy)<=((Iy*=>hh	<FG!	3 !	3F %%E77BJJ>EE"((5/288F+;UC F ? &r;   c                   V P                   p\        VP                  4       P                  VP                  4       \        VP	                  VR R7      P                  VP                  4       \        VP	                  VRR7      P                  VP                  4       \        VP                  4       P                  4       VP                  4       4       \        VP	                  VR R7      P                  4       VP                  4       4       \        VP	                  VRR7      P                  4       VP                  4       4       \        VRVP                  ,           4      p\        V! 4       VJ 4       \        V! RR7      VJ 4       \        V! R R7      P                  VP                  4       \        V! R R7      P                  4       VP                  4       4       \        \        VP                  4       V4      '       * 4       R# )Tr3  Fr  N)	r  r   rX  r  	__class__r   r|   r   rT   )r   rQ   toselfs   &  r9   	test_copy_TestCommon.test_copyg  sZ   JJ 	QVVX__ahh/Q[[[-44ahh?Q[[[.55qxx@QVVX%%'5Q[[[.668!))+FQ[[[/779199;G 4!((?+AE"a'(V&--qxx8V&..0!))+> 	+AFFHa889r;   c                    V P                  \        P                  ! ^24      P                  ^^
4      4      pV P	                  V4      p\        W!4       F  w  r4\        VP                  4       V4       K!  	  R# )2   N)r,  rI   r   r  r  zipr   r   )r   rR   rQ   r?   r@   s   &    r9   test_iterator_TestCommon.test_iterator  sS    LL2..q"56NN1IDAa( r;   c                v   \        . 4      pVP                  R4      pVP                  R4      pVP                  R4      pVP                  R4      pVP                  R4      p\        P                  ! ^^.4      pV P	                  V4      pV P	                  V4      p	V P	                  V4      p
V P	                  V4      pV P	                  V4      pV P	                  V4      p\        VP                  V4      P                  4       \        P                  ! W"4      4       \        V	P                  V4      P                  4       \        P                  ! W54      4       \        VP                  V	4      P                  4       \        P                  ! WS4      4       \        V
P                  V4      P                  4       \        P                  ! WF4      4       \        V
P                  V4      P                  4       \        P                  ! WG4      4       \        VP                  V
4      P                  4       \        P                  ! Wd4      4       \        VP                  V
4      P                  4       \        P                  ! WT4      4       \        VP                  V4      P                  4       \        P                  ! Wv4      4       \        \        VP                  V4       \        \        VP                  V4       \        VP                  V4      P                  4       \        P                  ! W"4      4       \        V	P                  V	4      P                  4       \        P                  ! W34      4       \        VP                  V4      P                  4       \        P                  ! WU4      4       \        VP                  V4      P                  4       \        P                  ! W"4      4       \        V	P                  V4      P                  4       \        P                  ! W34      4       \        VP                  V4      P                  4       \        P                  ! WU4      4       \        VP                  ^4      P                  4       \        P                  ! V^4      4       \        V	P                  ^4      P                  4       \        P                  ! V^4      4       \        VP                  ^4      P                  4       \        P                  ! V^4      4       \        \        VP                  V4       \        \        VP                  V4       \        VP                  V4      P                  4       VP                  V4      4       \        V	P                  V	4      P                  4       VP                  V4      4       \        VP                  V4      P                  4       VP                  V4      4       \        \        VP                  V4       \        \        V	P                  V4       R# )r1  Nr  r  r  r  rX  )r   r  rI   rr  r  r   r   r   r@  rA  rg  r   )r   r   rM   rS   r  r0  r  r  r  r  r  dspespfsps   &             r9    test_size_zero_matrix_arithmetic,_TestCommon.test_size_zero_matrix_arithmetic  s    BiKKKKKKKKKKGGQFOnnQnnQnnQnnQnnQnnQ 	3773<//1266!<@3773<//1266!<@3773<//1266!<@3773<//1266!<@3773<//1266!<@3773<//1266!<@3773<//1266!<@3773<//1266!<@ 	j#''1-j#''1- 	3<<,446A8IJ3<<,446A8IJ3<<,446A8IJ3<<?224bkk!6GH3<<?224bkk!6GH3<<?224bkk!6GH3<<?224bkk!Q6GH3<<?224bkk!Q6GH3<<?224bkk!Q6GH 	j#,,2j#,,2 	3;;s+335qyy|D3;;s+335qyy|D3;;s+335qyy|D 	j#++s3j#++s3r;   c                   \        . 4      pVP                  R4      pVP                  R4      pVP                  R4      pW#V3 EF  pV P                  V4      p\        VP	                  4       P                  4       V4       \        VP                  4       P                  4       V4       \        VP                  4       P                  4       V4       \        VP                  4       P                  4       V4       \        VP                  4       P                  4       V4       \        VP                  4       P                  4       V4       EK  	  R# )r1  Nr  r  rX  )r   r  r  r   r  r   r  r  toliltodoktobsr)r   r   rM   rS   r  r  spms   &      r9   test_size_zero_conversions&_TestCommon.test_size_zero_conversions  s    BiKKKKKKA..#Csyy{224a8syy{224a8syy{224a8syy{224a8syy{224a8syy{224a8 r;   c                   \         P                  ! . RO. RO.\         P                  R7      p\        \        RR7      ;_uu_ 4        V P                  V4       RRR4       V P                  VP                  \         P                  4      4      p\        \        RR7      ;_uu_ 4        V P                  V\         P                  R7       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)      @r  zdoes not support dtyper  N)r.  r1  g?r  )rI   r   float16r@  rA  r  rt   r  )r   rM   A32s   &  r9   test_dtype_check_TestCommon.test_dtype_check  s    HHmY/rzzB:-EFFNN1 G nnQXXbjj12:-EFFNN3bjjN1 GF	 GF GFFs   C'"C&C#	&C7	c                .   a a ^ RI oVV 3R lpV! 4        R# )r1  Nc            
        < \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        4       SP                  P                  4       p \        SP                  4       EFo  pSP                  SP                  WR7      4      p\        V P                  VP                  4       \        V P                  4       VP                  4       4       \        V P                  VP                  4       V P                  P!                  4        F  w  r4\#        V\$        P&                  4      '       d   \        WBP                  V,          4       KC  \#        V\(        4      '       dN   V'       dF   \#        V^ ,          \$        P&                  4      '       d   \        WBP                  V,          4       K  \+        WBP                  V,          8H  4       K  	  EKr  	  RRR4       R#   + '       g   i     R# ; i)rS  )protocolN)rU  rV  rW  r(   r  rX  rL  HIGHEST_PROTOCOLloadsdumpsr   r   r   r   r  rF   itemsrH   rI   r	   rp  r   )r  r5  sploadedkeyr  pickler   s        r9   rC  &_TestCommon.test_pickle.<locals>.check  s9   ((**%%h0GH

) %f&=&= >H%||FLLL,RSH hnn=&u}}8H8H8JK x? %*NN$8$8$:%c2::66.s4E4Ec4JK(e44",SVRZZ"@"@.s4E4Ec4JK#C+<+<S+A$AB %; !? +***s   EG(2A,G((G9	)r<  )r   rC  r<  s   f @r9   test_pickle_TestCommon.test_pickle  s    	C, 	r;   c                6   a  V 3R  lpR F  pV! V4       K  	  R# )c                   < V R 8X  d   \         P                  ! R4       SP                  P                  R9   d   \         P                  ! R4       \	        \
        V 4      pSP                  \
        P                  ! ^4      P                  ^^4      R,          4      pV! VP                  4       4      pV! V4      p\        VP                  4       V4       R# )signz2sign conflicts with comparison op support on Numpyz%Unary ops not implemented for dok/lil      4@N)rC   r  )rF  rG  r  r  r|   rI   r  r   r  r   r   )r   ufuncr  X0X2r   s   &    r9   rC  5_TestCommon.test_unary_ufunc_overrides.<locals>.check  s    v~ / 0zz  N2CDB%Eryy}44Q:S@AAqyy{#BqBrzz|R0r;   N)sintanarcsinarctansinhtanharcsinharctanhrintrB  expm1log1pdeg2radrad2degfloorceiltruncsqrtr  ra   )r   rC  r   s   f  r9   test_unary_ufunc_overrides&_TestCommon.test_unary_ufunc_overrides  s    	1D $K	r;   c                   \         P                  ! . RO. RO. RO.4      pV P                  V4      p\        VP	                  R4      RJ 4       \        VP                  4       ^^ .^^ .^^ ..4       VP	                  R4       \        VP                  4       ^^ .^^ ..4       VP	                  R4       \        VP                  4       ^^ .^^ .^ ^ ..4       VP	                  R4       \        VP                  4       . RO. R	O. R
O.4       VP	                  R4       \        VP                  4       . RO. R	O. R
O.4       VP	                  ^^4       \        VP                  4       ^^ .^^ .^ ^ ..4       V P                  '       d$   VP                  R9   d   VP	                  ^4       M&\        \        \        \        3VP                  ^4       R F  p\        \        VP                  V4       K   	  R# )r  Nr  r1  r2  r  rf   r1  r1  r1  r2  r1  r1  r1  r2  rf   rf   rf   r  r  )rf   r1  r1  r  )r  re  ))r
  rf   r=  r'  )rI   r   r  r   resizer   r   r9  r  r@  rA  r  
IndexError)r   r
  r  	bad_shapes   &   r9   test_resize_TestCommon.test_resize	  s   HHl""$ % NN1 D()199;!Q*+Q*+Q)1 	2 	
199;!Q*+Q)1 	2	199;!Q*+Q*+Q)1 	2 	
199;)2)2)4 	5 	
199;)2)2)4 	5
 	
A199;!Q*+Q*+Q)1 	2 !((n"<HHQK:':JGSTU6I*ahh	: 7r;   c                P   V P                   pVP                  pVP                  VR R7      p\        VP	                  4       VP	                  4       4       V\
        9  d   \        \        W4      4       VP                  WP                  R R7      p\        VP	                  4       VP	                  4       4       V\
        9  d   \        \        W4      4       VP                  V\        P                  R R7      p\        VP	                  4       VP	                  4       4       VP                  VRR7      p\        VP	                  4       VP	                  4       4       \        \        W4      '       * 4       R F  pWB8X  d   K  VP                  V4      pVP                  VR R7      p\        VP	                  4       VP	                  4       4       VP                  VRR7      p\        VP	                  4       VP	                  4       4       \        \        WS4      '       * 4       K  	  R# )Fr3  )r>   rX  TN)re  rd  r  r  rC   r  )r  r  r  rB   r   NON_ARRAY_BACKED_FORMATSr   rT   r>   rI   r  r   r  )r   rQ   self_formatr   other_formatrR   s   &     r9   test_constructor1_base"_TestCommon.test_constructor1_base0	  s   JJhhKKK& aiik:66+A12KKuK5 aiik:66+A12KK%K8199;		4KKK% aiik:+A112FL*

<(AAE*A$QYY[!))+>AD)A$QYY[!))+>/556 Gr;   ra   N)wr   r   r   r   r#  r,   r5  r%   r$  r"   r%  r   r&  r    r'  r$   r(  r!   r)  r#   r*  r   r,  classmethodr;  rI  rN  rg  rl  rp  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r-  rB  rF  markslowr_  ri  rv  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r+  r5  r;  r>  rE  rJ  rT  rY  r`  rl  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r+  r1  r>  rY  rd  rj  r   r   r   s   @r9   r.  r.  1  sG    @"KMMMMMMMG; ;.	1"H#J4;z:x6p6pY1;
'7(&(7$?JGF/
/
GB?-=^ [[40 40lA<##! F(" E65?&P(" F67A>6N22'6R#6J(LT="		
,02<08=t!DF3B>
;A3"32 #>0$X>64p+(2
D 86,D\:0)84t924*';R7 7r;   r.  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )_TestInplaceArithmeticiR	  c                   \         P                  ! R4      pV P                  V4      pVP                  4       pVP                  4       pW1,          pWB,          p\	        W44       VP                  4       pVP                  4       pW1,          pWB,          p\	        W44       V P
                  '       d   VP                  4       pVP                  4       p\        \        RR7      ;_uu_ 4        W2P                  ,          pRRR4       W1,          pWB,          p\	        W4P                  4       4       MVP                  4       pVP                  4       p\        \        RR7      ;_uu_ 4        W2,          pRRR4       VP                  VP                  4      pWBP                  ,          p\	        W44       VP                  4       pWBP                  ,          pVP                  4       pVP                  4       p\        \        RR7      ;_uu_ 4        W2,          pRRR4       VP                  VP                  4      pWBP                  ,          p\	        W44       \        \        RR7      ;_uu_ 4        W2,          pRRR4       R#   + '       g   i     EL; i  + '       g   i     EL-; i  + '       g   i     L; i  + '       g   i     R# ; i)r2  inconsistent shapesr  Nzdimension mismatchunsupported operandr>  )rI   rr  r  rX  r   r9  r@  rA  ro  r   r   r  )r   rM   rS   r?   r@   s   &    r9   test_inplace_dense)_TestInplaceArithmetic.test_inplace_denseS	  s   GGFONN1FFHFFH		1 FFHFFH		1 AAz1FGGSS HAFAq))+. AAz1EFF Gacc
AHAq$ FFH	SSFFHFFH:-ABBFA CEE!##J	SS1  9,ABBGA CB7 HGG GFF CB CBBs0   )J '	J	J(-	J; J	J%	(J8	;K	c                J   a  V 3R  lpS P                    F  pV! V4       K  	  R# )c                   < SP                   V ,          pSP                  V ,          p\        P                  ! \        V R R7      '       dL   VP                  4       pV^,          pVP                  4       pV^,          p\        WCP                  4       4       \        P                  ! \        V R R7      '       dN   VP                  4       pVR,          pVP                  4       pVR,          p\        WCP                  4       4       R# R# 	same_kind)castingr0  N	r7  r8  rI   can_castintrX  r   r   r  r>   r  r  rM   rS   r   s   &    r9   rC  6_TestInplaceArithmetic.test_imul_scalar.<locals>.check	  s    //%(C%%e,E {{3{;;JJLQHHJQ"1iik2{{5%==JJLT	HHJT	"1iik2 >r;   Nr4  rH  s   f  r9   test_imul_scalar'_TestInplaceArithmetic.test_imul_scalar	  s!    	3& %%E%L &r;   c                   a  V 3R  lpS P                    FB  p\        P                  ! V\        P                  ! \        4      4      '       d   K:  V! V4       KD  	  R# )c                   < SP                   V ,          pSP                  V ,          p\        P                  ! \        V R R7      '       dL   VP                  4       pV^,          pVP                  4       pV^,          p\        WCP                  4       4       \        P                  ! \        V R R7      '       dN   VP                  4       pVR,          pVP                  4       pVR,          p\        WCP                  4       4       R# R# rx  r{  r~  s   &    r9   rC  6_TestInplaceArithmetic.test_idiv_scalar.<locals>.check	  s    //%(C%%e,E{{3{;;JJLQHHJQ"1iik2{{5%==JJLT	HHJT	"1iik2 >r;   N)r5  rI   r|  r>   r}  rH  s   f  r9   test_idiv_scalar'_TestInplaceArithmetic.test_idiv_scalar	  s<    	3$ %%E ;;ubhhsm44e	 &r;   c                D   V P                  \        P                  ! ^4      4      pV P                  \        P                  ! ^4      4      pV P                  \        P                  ! ^4      4      pW!,          pW1,           p\        VP	                  4       VP	                  4       4       V P
                  '       d9   W!,          pW1,          p\        VP	                  4       VP	                  4       4       W!,          pW1,          p\        VP	                  4       VP	                  4       4       W!,          pW1,
          p\        VP	                  4       VP	                  4       4       \        \        RR7      ;_uu_ 4        W,          pRRR4       R#   + '       g   i     R# ; i)r  rs  r  N)r  rI   r&   r   r   r9  r@  r  )r   rM   rS   bps   &   r9   test_inplace_success+_TestInplaceArithmetic.test_inplace_success	  s    NN266!9%NN266!9%^^BFF1I&	V		RZZ\2FABAIIK6	V		RZZ\2	V		RZZ\29,ABBGA CBBBs   ;	FF	ra   N)
r   r   r   r   rt  r  r  r  r   r   r   s   @r9   rp  rp  R	  s     0d.2 r;   rp  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	_TestGetSeti	  c                f   a  V 3R  lp\          F  pV! \        P                  ! V4      4       K!  	  R# )c                   < \        . RO. RO. RO. RO.V R7      pSP                  V4      pVP                  w  r4\        V) V4       F3  p\        V) V4       F  p\	        W%V3,          WV3,          4       K!  	  K5  	  \	        \        VR,          4      V 4       R F$  p\        \        \        3VP                  V4       K&  	  R# )	r  r  Nr  r  r2  r1  r1  rf   r1  r  r  r  r  )r  r1  r  )r  r
  r'  )
r   r  r   rL  r   r  r@  rb  r  __getitem__)	r>   r
  rQ   r  r  r  rI  rs  r   s	   &       r9   rC  *_TestGetSet.test_getelement.<locals>.check	  s    w  (-.A q!A''CAA2q\r1A Q3Q30 & " afu-Bz95q}}bI Cr;   Nr,   rI   r>   rH  s   f  r9   test_getelement_TestGetSet.test_getelement	  s%    	J$ &E"((5/" &r;   c                   a  V 3R  lpR \         P                  R .pV F-  p\         F   pV! \         P                  ! V4      V4       K"  	  K/  	  R# )c                 B  < SP                  RV R7      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        \
        4       V! V P                  ^ 4      4      VR&   V! V P                  R4      4      VR	&   V! V P                  ^4      4      VR
&   V! V P                  R4      4      VR&   V! V P                  ^4      4      VR&   V! V P                  ^4      4      VR&   V! V P                  ^4      4      VR
&   RRR4       V \        P                  8w  d$   \        VP                  4       . RO. RO. RO.4       R F  p\        \        VP                  VR4       K!  	  . RO\        . RO4      3 F  p\        \        VP                  RV4       K!  	  \        P                   ! V \        P"                  4      '       g?   V \        P                  8w  d(   R F  p\        \$        VP                  RV4       K!  	  R# R# R#   + '       g   i     EL; i)r2  r  rS  r  r  Ng     ^@r>  r  r  rf   r  rf  r1  r
  r
  rx  )r1  r  r1  r*  )r1  r1  r  r1  )rf   r1  r)  r1  ))r1  r  )r
  r  r  r>  r  r'  )r  )r  rU  rV  rR  rS  r(   r  rI   bool_r   r   r@  rb  __setitem__r   rA  rl   r  r  )r>   scalar_containerrQ   rs  rG  r   s   &&   r9   rC  *_TestGetSet.test_setelement.<locals>.check	  s   vU3A((**''$8OP*5::a=9$*5::c?;$*5::a=9$*5::c?;$+EJJqM:%,UZZ];&	*5::a=9$ +  "IIK,l!K Aj!--UC A  y!12j!--C 3 ==(:(:;;@QA!)Q]]FAF  AR;+ +**s   CHH	c                 D    \        \        P                  ! V ..4      4      # r=   )r    rI   r   r?   s   &r9   <lambda>-_TestGetSet.test_setelement.<locals>.<lambda>
  s    i1#0r;   c                     V # r=   ra   r  s   &r9   r  r  
  s    ar;   N)rI   r   r,   r>   )r   rC  scalar_containersr  r>   s   f    r9   test_setelement_TestGetSet.test_setelement	  sH    	G8 1"((K
 !2)bhhuo'78 * !2r;   c                r   a  V 3R  lpS P                    F  pV! \        P                  ! V4      4       K!  	  R# )c                   < SP                  RV R7      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        \
        4       ^VR&   RRR4       \        VR,          ^4       R#   + '       g   i     L%; i)r2  r  rS  N)r2  r7  )r1  r  )r  rU  rV  rR  rS  r(   r   r>   rQ   r   s   & r9   rC  9_TestGetSet.test_negative_index_assignment.<locals>.check
  s^    we4A((**''$8OP% + 51% +*s   &A55B	NrS  rH  s   f  r9   test_negative_index_assignment*_TestGetSet.test_negative_index_assignment
  s*    	& %%E"((5/" &r;   c           	        a aa ^^
uooVVV 3R lpRRR\        R4      R3R\        R4      3\        R4      \        R4      33 F  w  r#V! W#^4       K  	  R# )r  c                 h  < V : R V: R V: 2pSP                  SS34      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        \
        4       ^W@V3&   RRR4       \        VP                  4       W#R7       \        W@V3,          ^VR7       R#   + '       g   i     LC; i)z ; rS  NrN  )r  rU  rV  rR  rS  r(   r   r  )r  rI  nitemsr5   rQ   r  rH  r   s   &&&  r9   	_test_set3_TestGetSet.test_scalar_assign_2.<locals>._test_set
  s    EQEVJ/C1v&A((**''$8OPQ$ +  =Q$C8	 +*s   'B!!B1	Nrf   r2  r
  r
  r*  rx  r  )r   r   r  r  rI  r  rH  s   f   @@r9   test_scalar_assign_2 _TestGetSet.test_scalar_assign_2
  sX    21	9 WhrB"eBiBir+-DAaA-r;   c                l   V P                  R4      p\        P                  ! R4      p\        P                  ! 4       ;_uu_ 4        \        P
                  ! R\        \        4       W3 F  p^VR&   ^VR&   ^	VR&   K  	  RRR4       \        VP                  4       V4       R#   + '       g   i     L,; i)r  rS  Nr  r  r  
r  rI   r   rU  rV  rR  rS  r(   r   r   r  s   &   r9   test_index_scalar_assign$_TestGetSet.test_index_scalar_assign)
  s    NN6"HHV$$&&##Hd4KLV###  ' 	199;* '&s   :B##B3	ra   N)r   r   r   r   r  r  r  r  r  r   r   r   s   @r9   r  r  	  s$     #,!9F#"	+ 	+r;   r  zfails in parallelreasonc                   &   a  ] tR tRt o R tRtV tR# )
_TestSolvei5
  c                   ^p\         P                  P                  ^ 4       \        W3\        R7      p\         P                  P                  V4      p\         P                  P                  V^,
          4      R\         P                  P                  V^,
          4      ,          ,           p\         P                  P                  V4      p\        \        V4      4       F  pW6,          W&V3&   K  	  \        \        V4      4       F2  pWF,          W&V^,           3&   \        WF,          4      W&^,           V3&   K4  	  V P                  V4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! RR\        4       \        V4      P                  V4      pRRR4       \!        W#,          V4       R#   + '       g   i     L$; i)r:  r  r  rS  r  N)rI   r   r[  r   rz  r  rL  r   r   r  rU  rV  rR  r(   r1   solver   )r   rH  rQ   r?   r@   rU  r  s   &      r9   
test_solve_TestSolve.test_solve7
  s9    
		q1%w'IINN1IINN1Q3299>>!A##6 66IINN1s1vATAcF s1vAtA!eH Ac!eH  NN1$$&&##B') Qa A	 '
 	AE!$ '&s   )7F<<G	ra   N)r   r   r   r   r  r   r   r   s   @r9   r  r  5
  s     % %r;   r  c                      a  ] tR tRt o R tR tR tR tR tR t	R t
]P                  P                  ^4      R	 4       tR
 tR tR tR tR tRtV tR# )_TestSlicingiN
  c                V   \        V P                  R\        P                  R7      R,          P                  \        P                  4       \        V P                  R\        P
                  R7      R,          P                  \        P
                  4       \        V P                  R\        P                  R7      R,          P                  \        P                  4       \        V P                  R\        P                  R7      R,          P                  \        P                  4       R# )r  r  Nr  r7  )r1  r  r  N)r   r  rI   r  r>   rY   r  r  r   s   &r9   test_dtype_preservation$_TestSlicing.test_dtype_preservationO
  s    T^^F"((^;EBHH"((ST^^F"((^;EBHH"((ST^^F"**^=eDJJBJJWT^^F"**^=eDJJBJJWr;   c                   \         P                  \         P                  \         P                  \         P                  3 F  pV P                  RVR7      p\        VR,          P                  V4       \        VR,          P                  V4       \        VR,          P                  V4       \        VR,          P                  V4       K  	  R# )r2  r  Nr_  )r	  r1  r1  rf   )r  r	  )r1  r  )r  r1  rI   r  rY   r  r  r  r   r>   r   dtrQ   s   &  r9   #test_dtype_preservation_empty_slice0_TestSlicing.test_dtype_preservation_empty_sliceU
  s     88RXXrzz2::>BvR0A8**B/8**B/8**B/8**B/ ?r;   c           	        V P                  \        R 4      P                  ^^
4      4      pV P                  V4      pV P                  '       d   RM^ .^.^.3w  r4p\        WR3,          VR,          P                  4       4       \        WR3,          VR,          P                  4       4       V P                  . RO. R	O. R
O. RO.4      pV P                  V4      p\        WdR3,          VR,          P                  4       4       V P                  . RO. RO. R
O. RO.4      pV P                  V4      p	\        WR3,          V	R,          P                  4       4       \        WRR13,          V	^RR13,          P                  4       4       \        \        VP                  \        R4      ^34       \        \        VP                  ^\        ^^4      34       R# )      I@r	  rf   r  Nr  r2  NNr  r  r	  )r  r  r  rf   r  r  r1  r  r  r  r  r  r  r1  r1  rx  )r,  r   r  r  r9  r   r   r@  rb  r  slice)
r   rR   rQ   r0r1r2r   r
  rs  r4  s
   &         r9   test_get_horiz_slice!_TestSlicing.test_get_horiz_slice_
  sj   LL,,Qr23NN1"&"4"4"4YA3aS/
1U8QtW__%671W:qy'8'8':;LL)Y	9EFNN11W:qy'8'8':; LL)Y	9EFNN11W:qy'8'8':;1W:qBCy'8'8':; 	j!--%+r1BCj!--!U1a[1ABr;   c           	        \        R 4      P                  ^^
4      pV P                  V4      pV P                  '       d   RM^ .^.^.3w  r4p\	        VRV3,          VR,          P                  4       4       \	        VRV3,          VR,          P                  4       4       \        . RO. R	O. R
O. RO.4      pV P                  V4      p\	        VRV3,          VR,          P                  4       4       \	        VRV3,          VR,          P                  4       4       \        . RO. RO. R
O. RO.4      pV P                  V4      p	\	        VRV3,          V	R,          P                  4       4       \	        VRR1V3,          V	RR1^3,          P                  4       4       \        \        VP                  \        R4      ^34       \        \        VP                  ^\        ^^4      34       R# )r  r  r	  r  Nr  )r  r1  )r	  r  r  r  r  r  r  r  r	  rf   rm  r  rx  )r   r  r  r9  r   r   r   r@  rb  r  r  )
r   rR   rQ   c0c1c2r   r
  rs  r4  s
   &         r9   test_get_vert_slice _TestSlicing.test_get_vert_slicet
  s~   3K2&NN1"&"4"4"4YA3aS/
1S"W:qy'8'8':;1QU8QtW__%679iI>?NN11S"W:qy'8'8':;1QU8QtW__%67 9iI>?NN11QU8QtW__%671RS"W:qay'8'8':; 	j!--%+r1BCj!--!U1a[1ABr;   c                ^   \        R 4      P                  ^^
4      pV P                  V4      p\        VR,          P	                  4       VR,          4       \        VRRR13,          P	                  4       VRRR13,          4       \        VRR1R3,          P	                  4       VRR1R3,          4       \        . RO. RO. RO. RO.4      pV P                  V4      p\        VR	,          VR	,          P	                  4       4       \        VR
,          VR
,          P	                  4       4       R# )r  r  NNN)r  :r1  r2  Nr
  rm  r  r  r  r  rf   Nr  )r	  r  )r   r  r  r   r   r   )r   rR   rQ   rs  r4  s   &    r9   test_get_slices_TestSlicing.test_get_slices
  s    3K2&NN11X;..0!H+>1R"W:--/2ss7<1SbS"W:--/3B37< 9iI>?NN11X;((;(;(=>1U8QuX%5%5%78r;   c                   \         P                  P                  ^2^24      p V P                  V4      R,          p\        TP                  4       TR,          4       R#   \         d    \
        P                  ! R4      hi ; i)r  feature not implementedN):r1     rf   :rf   r;  r2  )	rI   r   r  r  rA  rF  rG  r   r   )r   v0rG  s   &  r9    test_non_unit_stride_2d_indexing-_TestSlicing.test_non_unit_stride_2d_indexing
  sf    YY^^B#	9r">2A
 	199;>(:;	  	9++788	9s   A "A?c                   V P                  \        ^24      P                  ^^
4      4      pV P                  V4      p\	        VR,          VR,          4       \	        VR,          VR,          4       \	        VR	,          VR	,          4       \	        V\        R4      R3,          VR	,          4       \	        VR\        R4      3,          VR	,          4       \	        V\        R4      \        R4      3,          VR	,          4       \	        VR
,          P                  4       VR
,          4       \	        V^^R13,          P                  4       V^^R13,          4       \	        V\        ^4      ^R13,          P                  4       V^^R13,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        V^R1^3,          P                  4       V^R1^3,          4       \	        V^R1\        ^4      3,          P                  4       V^R1^3,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        V^R1R3,          P                  4       V^R1R3,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        V\        R4      R3,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        V^R P                  4       V^R 4       \        \        ^4      \        ^4      R4      p\	        W#R3,          P                  4       VR,          4       \	        VRV3,          P                  4       VR,          4       R# )r  r	  r  r  NNr  NNr  r
  r  rx  r  )rf   r	  r  )r2  r  Nr+  )r  r  r  )r  NNr2  NN):Nr  Nr  r  )rx  r	  rf   r  Nr	  r	  r  )	r,  r   r  r  r   r   r   r  r   )r   rR   rQ   r@  s   &   r9   test_slicing_2_TestSlicing.test_slicing_2
  s<   LL++Ab12NN1 	QsVQsV$QtWag&QuXah'QuRy|_QuX.Qr%)|_QuX.QuRyr*+AeH5 	QtW__&$0Qq!B$wZ'')1Q"W:6QuQx2~&..0!AqtG*= 	QtW__&$0QvY&&(!F)4QwZ'')1W:6QqtQwZ'')1QrT1W:6QqtU1X~&..0!AbD!G*= 	Qx[((*AhK8QvY&&(!F)4QvY&&(!F)4QqtRx[((*AadBhK8 	QtW__&$0QuX%%'52QuRy!|_,,.%9 	QsV^^%qv.QqW__&!B0 $q'$q'$'Q!tW__&&	2Qq!tW__&&	2r;   c                @  aa V P                  \        ^24      P                  ^^
4      4      oV P                  S4      o\        P
                  pVR,          VR,          VR,          VR,          VR,          VR,          V^^R1,          V^RR1,          VR^R1,          ^ ^VR,          VR	,          RRR\        R4      \        P                  ! R4      .pVV3R
 lp\        V4       F  w  rEV! V4       K  	  VV3R lp\        V4       F!  w  ru\        V4       F  w  rHV! WX4       K  	  K#  	  . p	\        P                  ! R.^,          !   F*  w  rXp
V
^ 8X  d   K  V	P                  \        WXV
4      4       K,  	  V	 F  pV! WU4       V! VR4       V! RV4       K  	  R# )r  rb  r  r  r2  Nrf   :r  r:  N:r2  rf   NNr	  r  c                   < SV ,          pSV ,          pVP                   R8X  d   \        W\        V 4      4       R# VP                  ^ 8X  d   VP                  ^ 8X  d   R# \	        VP                  4       V\        V 4      4       R# r1  Nra   )r   r   r  rk   r   r   )rM   r?   r@   rQ   rR   s   &  r9   check_1,_TestSlicing.test_slicing_3.<locals>.check_1
  s\    !A!Aww"}Q47+66Q;166Q;&qyy{AtAw?r;   c                   < \        V \        P                  4      '       d   \        V 4      pMT p\        V\        P                  4      '       d   \        V4      pMTpSW3,          pSW#3,          pVP                  R8X  d   \        WE\        W34      4       R# VP                  ^ 8X  d   VP                  ^ 8X  d   R# \        VP                  4       V\        W34      4       R# r  )
rH   rI   r	   r}  r   r   r  rk   r   r   )rM   rS   aibir?   r@   rQ   rR   s   &&    r9   check_2,_TestSlicing.test_slicing_3.<locals>.check_2
  s     !RZZ((V!RZZ((V!$A"&	Aww"}Q4<066Q;166Q;&qyy{AtQF|Dr;   r
  rx  r  r  )
Nr1  r  rf   r  r  r
  rx  r  i)r,  r   r  r  rI   s_r   r   	enumerate	itertoolsproductrK   r  )r   r  slicesr  rI  rM   r	  r  rS   extra_slicesr  rQ   rR   s   &          @@r9   test_slicing_3_TestSlicing.test_slicing_3
  s|   LL++Ab12NN1UUR&"S'2b62d8U)RWQqV*bBiEQrEQ1r#wB)RWWR[	*		@ f%DAAJ &	E0 f%DA!&) * &
  (( -= ,>>?,@ BGA!AvaA/	B AAMArNBN r;   c                	   V P                  \        ^24      P                  ^^
4      4      pV P                  V4      pVR,          P                  ^ 8X  g   Q hVR,          P
                  R8X  g   Q hVR,          P
                  R8X  g   Q hVR,          P
                  R8X  g   Q hVR,          P
                  R8X  g   Q hVR	,          P
                  R8X  g   Q hVR
,          P
                  R8X  g   Q hVR,          P
                  R8X  g   Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hV P                  '       Ed   VR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hR# VR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hVR,          P
                  VR,          P
                  u;8X  d	   R8X  g   Q h Q hR# )r  Nr  )Nr  r  )Nr  rf   Nr  )Nr  r  r?  )Nr  r	  )r  Nr	  )r  r	  N)r7  r  )Nr  rf   )r  Nrf   rf   r  )r  rf   N)r  Nr  )r  r  N)r  rf   re   )r  r  )Nr  rf   )r  )r  Nrf   )r  rf   N)r,  r   r  r  r   r   r9  r   rR   rQ   s   &  r9   test_None_slicing_TestSlicing.test_None_slicing  s   LL++Ab12NN1w||q   $$...!"((F222 z7***z7***}""g---}""g---}""g---$$,(=(=GGGGGG$$,(=(=GGGGGG$$,(=(=GGGGGG$$,(=(=GGGGGG$$,(=(=GGGGGG$$,(=(=GGGGGG V9??aioo======V9??aioo======Z=&&!J-*=*=EEEEEEZ=&&!J-*=*=EEEEEEZ=&&!J-*=*=EEEEEEV9??aioo??????V9??aioo??????Z=&&!J-*=*=GGGGGGZ=&&!J-*=*=GGGGGGZ=&&!J-*=*=GGGGGGr;   c                D	   V P                  \        ^24      P                  ^^
4      4      pV P                  V4      p\	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR	,          P                  4       VR	,          4       \        P                  ! \        RR7      ;_uu_ 4        VR
,           RRR4       \        P                  ! \        RR7      ;_uu_ 4        VR,           RRR4       \        P                  ! \        RR7      ;_uu_ 4        VP                  R	,           RRR4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \	        VR,          P                  4       VR,          4       \        VR,          VR,          4       \        VR,          VR,          4       R#   + '       g   i     EL=; i  + '       g   i     EL; i  + '       g   i     EL; i)r  .zindex .5. out of ranger  Nzindex .10. out of range).)r  .).r  ).r  )r  .).r7  )r  .).r  )rb  .).rb  )r  .).r  )r  NN.).r  )r7  NN.).r  )r  r  .)r  .r  ).r  r  )rb  r  .)r  .rb  ).r  rb  )r  r  .)r  .r  )r,  r   r  r  r   r   rF  r   rb  ro  r   r   rS   rM   s   &  r9   test_ellipsis_slicing"_TestSlicing.test_ellipsis_slicing6  s   LL++Ab12NN11S6>>+QsV41T7??,ag61V9,,.&	:1V9,,.&	:1V9,,.&	:]]:-EFFfI G]]:-FGGgJ H]]:-EFFCCK G 	1W:--/7<1W:--/7<1W:--/7<1W:--/7< 	1W:--/7<1W:--/7<1W:--/7<1W:--/7<1X;..0!H+>1X;..0!H+> 	1Z=002AjMB1Z=002AjMB1Z=002AjMB1Z=002AjMB1Z=002AjMB1Z=002AjMBQy\1Y<0Qy\1Y<0; GFFGGGFFFs$   (
Q&
Q:R&Q7	:R	R	c                d   V P                  \        ^24      P                  ^^
4      4      pV P                  V4      p. ROpR.^,          V,           pW3,           pV.^,          p\	        \        W&R3,          4      WR3,          4       \	        \        VRV3,          4      VRV3,          4       \	        \        W#R3,          4      WR3,          4       \	        \        VRV3,          4      VRV3,          4       \	        \        W#RV3,          4      WRV3,          4       \	        \        VRW43,          4      VRW43,          4       \	        \        W#VR3,          4      WVR3,          4       \        \        RR7      ;_uu_ 4        W#V3,           RRR4       R#   + '       g   i     R# ; i)r  F.shape mismatchr  N)TFTFT)r,  r   r  r  r   r   r@  rb  )r   numpy_arM   ix5ix10
ix10_6Truefull_ixs   &      r9   test_ellipsis_fancy_bool%_TestSlicing.test_ellipsis_fancy_bool_  sX   ,,vbz11!R89NN7#.w{S Y
&1*71c\?3Wc\5JK71S'\?3WS'\5JK71#X;/c1BC71S$Y<0'#t)2DE71#t^#45wC~7NO71S#^#45wsC~7NO71$^#45wD#~7NO:-=>>:o ?>>>s   	FF/	c           	     <   V P                  \        ^24      P                  ^^
4      4      pV P                  V4      p\	        V^.R3,          P                  4       V^.R3,          4       \	        V^^.R3,          P                  4       V^^.R3,          4       \	        VR^.3,          P                  4       VR^.3,          4       \	        VR^^.3,          P                  4       VR^^.3,          4       \	        V^.^R3,          P                  4       V^.^R3,          4       \	        V^^.^R3,          P                  4       V^^.^R3,          4       \	        V^.R^3,          P                  4       V^.R^3,          4       \	        VR^.^3,          P                  4       VR^.^3,          4       \	        \        V^^.R^^.3,          4      V^^.R^^.3,          4       \	        \        VR^^.^^.3,          4      VR^^.^^.3,          4       R# )r  .N)r,  r   r  r  r   r   r  s   &  r9   test_ellipsis_fancy_slicing(_TestSlicing.test_ellipsis_fancy_slicingu  s   LL++Ar23NN11aS#X;..0!QCH+>1aVS[>113Q1vs{^D1S1#X;..0!C!H+>1S1a&[>113QsQF{^D1aS!S[>113QsAs{^D1aVQ^,4461a&!S.8IJ1aS#q[>113QsC{^D1S1#q[>113QsQC{^D71aVS1a&%8#9:Aq!fcAq6>Q<RS71S1a&1a&%8#9:AcAq6Aq6>Q<RSr;   c                   V P                  \        ^4      P                  ^^4      4      p\        P                  ! \
        RR7      ;_uu_ 4        VR,           RRR4       \        P                  ! \
        RR7      ;_uu_ 4        VR,           RRR4       R#   + '       g   i     LH; i  + '       g   i     R# ; i)r  z(an index can only have a single ellipsisr  N)..).r  .)r  r   r  rF  r   rb  r   rM   s   & r9   test_multiple_ellipsis_slicing+_TestSlicing.test_multiple_ellipsis_slicing  s    NN6!9,,Q23]]:!KM MhKM ]]:!KM MkNM MM MM M Ms   
B
B,B)	,B=	ra   N)r   r   r   r   r  r  r  r  r  r  r  rF  rm  	fail_slowr  r  r  r%  r(  r,  r   r   r   s   @r9   r  r  N
  st     X0C*C,9	<+3Z [[1@ @D"HH'1R,T" r;   r  c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )_TestSlicingAssigni  c                   V P                  R4      p\        P                  ! R4      p\        P                  ! 4       ;_uu_ 4        \        P
                  ! R\        \        4       W3 F!  p^VR&   ^VR&   ^	VR&   ^VR&   ^	V^RR	1R3&   K#  	  RRR4       \        VP                  4       V4       R#   + '       g   i     L,; i)
r  rS  r  Nr  ):r1  r  Nr  ):r2  r1  Nr1  )r  r1  )r1  r  r
  r  r  s   &   r9   test_slice_scalar_assign+_TestSlicingAssign.test_slice_scalar_assign  s    NN6"HHV$$&&##Hd4KLV%%%$!%R%(  ' 	199;* '&s   A	B22C	c                   a aa ^^
uooVVV 3R lp^\        ^4      3^\        R^
^4      3^\        ^R4      3\        ^4      \        ^R4      33 F  w  r#V! W#4       K  	  R# )r  c                 r  < R V : RV: 2pSP                  SS34      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        \
        4       ^W0V3&   RRR4       \        P                  ! SS34      p^W@V3&   \        VP                  4       WBR7       R#   + '       g   i     LK; i)zi=z; j=rS  NrN  )
r  rU  rV  rR  rS  r(   rI   r   r   r   )r  rI  r5   rQ   rR   r  rH  r   s   &&   r9   r  9_TestSlicingAssign.test_slice_assign_2.<locals>._test_set  s    qe4u%C1v&A((**''$8OPQ$ + !Q AAdG%aiik1B +*s   'B&&B6	Nrx  )r  r   r  s   f   @@r9   test_slice_assign_2&_TestSlicingAssign.test_slice_assign_2  se    21	C q]QdB(:$;aq"=NAha-/DAaO/r;   c                
   V P                  R4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        \
        4       ^VR&   ^VR&   ^VR&   ^
VR&   V^
,          pVR,          VR&   \        VR,          P                  4       VR,          P                  4       4       V^
,          pVR	,          VR
&   \        \        P                  ! R4      VR,          ,           VP                  4       4       V^
,          pVR,          P                  VRR1^ 3&   \        VR,          P                  4       P                  VRR1^ 3,          P                  4       4       RRR4       R#   + '       g   i     R# ; i)r  rS  Nr  r  r  r  r  r1  r	  )Nr  Nr;  r	  r	  Nr1  r	  r
  )r  rU  rV  rR  rS  r(   r   r   rI   r   ro  r  s   &  r9   test_self_self_assignment,_TestSlicingAssign.test_self_self_assignment  s$   NN5!$$&&##Hd4KLAcFAcFAcFAcFBAsVAcFqv~~/31ABBAuXAcFrxx37EBA{}}Acrc!eHqv~~/111SbSU83C3C3EF# '&&&s   D8E11F	c                   V P                  R4      p\        . RO. RO. RO. RO.4      p^^ .^ ^..p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\
        \        4       ^VR&   ^VR	&   ^VR
&   W,           VR&   \        VP                  4       V4       V P                  \        V4      4      VR&   \        VP                  4       R,          V4       RRR4       R#   + '       g   i     R# ; i)r  rS  Nr  r7  r1  r1  )r1  r1  r  )r1     r1  r  r  r  r  r<  )rb  rb  )
r  r   rU  rV  rR  rS  r(   r   r   r&  )r   rR   r  blocks   &   r9   test_slice_assignment(_TestSlicingAssign.test_slice_assignment  s    NN5!(!"!# $ A!u$$&&##Hd4KLAcFAcFAcFSAcFqyy{H5))%,7AeHqyy{62E: '&&&s   BC++C<	c                   V P                  R4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        \
        4       ^VR&   ^VR&   ^VR&   ^
VR&   V P                  \        P                  ! ^4      4      VR&   RRR4       \        . R	O. R
O. RO. RO.4      p\        VP                  4       V4       R#   + '       g   i     LC; i)r  rS  r  Nr  r  r  r  r  r  r  r  rA  )r  rU  rV  rR  rS  r(   r'  rI   r&   r   r   r   )r   rR   r  s   &  r9   "test_sparsity_modifying_assignment5_TestSlicingAssign.test_sparsity_modifying_assignment  s    NN5!$$&&##Hd4KLAcFAcFAcFAcF&&rvvay1AbE ' '''(;<199;1 '&s   ACC	c                   V P                  R
4      p\        \        R
\        4      4      p\        P
                  pVR,          VR,          VR,          VR,          V^^R1,          V^RR1,          VR^R1,          ^ ^VR,          VR,          RRR\        R4      \        P                  ! R4      .p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        \        4       \        V4       F1  w  rVWQV&   WRV&   \        VP                  4       V\        V4      4       K3  	  \        V4       F  w  rv\        V4       Fn  w  rX^
V,          R	V^,           ,          ,           WV3&   ^
V,          R	V^,           ,          ,           W&V3&   \        VP                  4       V\        Wh34      4       Kp  	  K  	  \!        ^^
^4      VR&   \!        ^^
^4      VR&   \        VP                  4       V4       \        P"                  ! ^^^4      R,          VR&   \        P"                  ! ^^^4      R,          VR&   \        VP                  4       V4       RRR4       \%        \&        VP(                  R\+        \!        ^d4      4      4       \%        \&        VP(                  R\#        ^d4      4       \%        \&        VP(                  ^ \-        R4      3\+        \!        ^d4      4      4       \%        \&        VP(                  \-        R4      ^3\+        \!        ^d4      4      4       \%        \&        VP(                  \-        R4      ^3VP/                  4       4       \%        \&        VP(                  . RO. RO.. RO3. RO4       \%        \0        VP(                  . RO. RO. RO.. RO. RO.3. RO4       \%        \&        VP(                  \-        ^4      ^ 3^^.^^..4       R#   + '       g   i     EL; i)r  rb  r  r  r  Nr	  r  rS    r  r7  r
  rx  r  r  )r1  :r  r7  rf   r	  N):r  r  rf   r1  r  r'  r  r  )r  r  r2  r  rf   r  )r1  r  r2  r  )r  r   r   r  rI   r  r   rU  rV  rR  rS  r(   r  r   r   r  rL  r   r@  rA  r  listr  rX  rb  )	r   rQ   rR   r  r  rI  rM   r  rS   s	   &        r9   test_set_slice!_TestSlicingAssign.test_set_slice  s   NN6"%'(UUR&"S'2b62d8QqV*bBiEQrEQ1r#wB)RWWR[*
 $$&&##Hd4KL!&)!!"199;47; *
 "&)%f-DATD!A#J.AcFTD!A#J.AcF&qyy{AtQF|D . * !B?AiL B?AiLqyy{A.))Aq!,W5AhK))Aq!,Q/AhKqyy{A.% '* 	j!--eCj9IJj!--Ej!--!U4[1A5:&	(j!--%+q1A5:&	(j!--%+q1A1668Lj!--!9-y9<	Ij!--!9i8!9-/09	; 	j!--%(A1v1v&	(C '&&s   F
O!!O2	c                    V P                  \        P                  ! R4      4      pV P                  R4      pW!R&   \        VP	                  4       . RO. RO.4       R# )rf   Nr  r  )r  rb  r  r  r  r  )r  rI   rr  r   r   r  s   &  r9   test_assign_empty$_TestSlicingAssign.test_assign_empty  sD    NN2776?+NN6" %199;I(>?r;   c                    V P                  \        P                  ! R4      4      p\        P                  ! ^4      pW!R&   W!R&   \	        VP                  4       . RO. RO. RO.4       R# )r2  Nr  rT  r  rn  r  )r  rI   rr  r   r   r   r   rQ   r?   s   &  r9   test_assign_1d_slice'_TestSlicingAssign.test_assign_1d_slice  sJ    NN2776?+HHQK$$199;Iy(IJr;   ra   N)r   r   r   r   r2  r7  r>  rD  rG  rO  rS  rW  r   r   r   s   @r9   r0  r0    s7     +"G,;&2+(Z@K Kr;   r0  c                   f   a  ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tR tR tR tRtV tR# )_TestFancyIndexingi#  z~Tests fancy indexing features.  The tests for any matrix formats
that implement these features should derive from this class.
c                   \         P                  \         P                  \         P                  \         P                  3 F  pV P                  RVR7      p\        VRRR.3,          P                  V4       \        V. ROR3,          P                  V4       \        VR. 3,          P                  V4       \        V. R3,          P                  V4       K  	  R# )r2  r  r	  FNr_  )FFFr  r  s   &  r9   #test_dtype_preservation_empty_index6_TestFancyIndexing.test_dtype_preservation_empty_index(  s     88RXXrzz2::>BvR0A1uen,-33R80!34::B?1b5,2q5, ?r;   c                `   V P                  \        P                  ! ^^.4      4      p\        \        VP
                  R4      P                  R4       \        \        VP
                  R4      P                  R4       . RO. RO3p\        \        VP
                  V4      P                  R4       R# )r  foozIndex dimensionr  Nrf   r_  r'  r  )r  rI   r   r@  rb  r  r  )r   rQ   idxs   &  r9   test_bad_index!_TestFancyIndexing.test_bad_index2  s{    NN288QF+,j!--7==>OPj!--<BBCTU,'j!--5;;<LMr;   c           
        V P                  \        ^24      P                  ^^
4      4      pV P                  V4      p\	        V^.,          P                  4       V^.,          4       \	        V^^.,          P                  4       V^^.,          4       \	        V^^.3,          P                  4       V^^.3,          4       \	        V^^^.3,          P                  4       V^^^.3,          4       \	        VR
^R.3,          P                  4       VR
^R.3,          4       \	        V\        R
4      ^R.3,          P                  4       VR
^R.3,          4       \	        VR
\        ^R.4      3,          P                  4       VR
^R.3,          4       \	        V\        R
4      \        ^R.4      3,          P                  4       VR
^R.3,          4       \	        VR. RO3,          P                  4       VR. RO3,          4       \	        VR^	.3,          P                  4       VR^	.3,          4       \	        VRR
R.3,          P                  4       VRR
R.3,          4       \	        VR\        R
R.4      3,          P                  4       VRR
R.3,          4       \	        V^.^3,          P                  4       V^.^3,          4       \	        V^^.^3,          P                  4       V^^.^3,          4       \	        V^R.R3,          P                  4       V^R.R3,          4       \	        V\        ^R.4      R3,          P                  4       V^R.R3,          4       \	        V^R.\        R4      3,          P                  4       V^R.R3,          4       \	        V\        ^R.4      \        R4      3,          P                  4       V^R.R3,          4       \	        V^.R3,          P                  4       V^.R3,          4       \	        V^^.R3,          P                  4       V^^.R3,          4       \	        V^R.^R
13,          P                  4       V^R.^R
13,          4       \	        V\        ^R.4      ^R
13,          P                  4       V^R.^R
13,          4       \	        \        V^.^.3,          4      V^.^.3,          4       \	        \        V^^.^^.3,          4      V^^.^^.3,          4       \	        \        VR
R.^R.3,          4      VR
R.^R.3,          4       \	        \        V\        R
R.4      ^R.3,          4      VR
R.^R.3,          4       \	        \        VR
R.\        ^R.4      3,          4      VR
R.^R.3,          4       \	        \        V\        R
R.4      \        ^R.4      3,          4      VR
R.^R.3,          4       \	        V^.^..^^.3,          P                  4       V^.^..^^.3,          4       \	        VR
.R.R..^R.3,          P                  4       VR
.R.R..^R.3,          4       \	        V\        R
.R.R..4      ^R.3,          P                  4       VR
.R.R..^R.3,          4       \	        VR
.R.R..\        ^R.4      3,          P                  4       VR
.R.R..^R.3,          4       \	        V\        R
.R.R..4      \        ^R.4      3,          P                  4       VR
.R.R..^R.3,          4       \	        V^^.,          P                  4       V^^.,          4       \	        VR
R.,          P                  4       VR
R.,          4       \	        V\        R
R.4      ,          P                  4       VR
R.,          4       \	        V^.R3,          R^.3,          P                  4       V^.R3,          R^.3,          4       \	        V^^.R3,          R^^.3,          P                  4       V^^.R3,          R^^.3,          4       \	        VR
R.R3,          R^R.3,          P                  4       VR
R.R3,          R^R.3,          4       \	        V\        R
R.4      R3,          R\        ^R.4      3,          P                  4       VR
R.R3,          R^R.3,          4       \	        V^^^..3,          ^ ^ ..^3,          P                  4       V^^^..3,          ^ ^ ..^3,          4       \	        V^R
R..3,          ^ R
..^3,          P                  4       V^R
R..3,          ^ R
..^3,          4       VP                  R8X  df   \	        VR^^..3,          P                  4       VR^^..3,          4       \	        V^ ^ ..R3,          P                  4       V^ ^ ..R3,          4       Mv\        P                  ! \        RR7      ;_uu_ 4        VR^^..3,           RRR4       \        P                  ! \        RR7      ;_uu_ 4        V^ ^ ..R3,           RRR4       \	        VR^^.3,          ^^.R3,          P                  4       VR^^.3,          ^^.R3,          4       \	        VRR
R.3,          ^R.R3,          P                  4       VRR
R.3,          ^R.R3,          4       \	        VR\        R
R.4      3,          \        ^R.4      R3,          P                  4       VRR
R.3,          ^R.R3,          4       \        \        ^4      \        ^4      R4      p\	        W#R3,          P                  4       VR,          4       \	        VRV3,          P                  4       VR,          4       \        P                  ! ^..\        R	7      p\	        W$V3,          P                  4       WV3,          4       \	        V. .. .3,          P                  4       V. .. .3,          4       R#   + '       g   i     EL; i  + '       g   i     EL; i)r  r	  r  r  r  r;  z"Only 1D or 2D|>2D is not supportedr  Nr  r
  r  )rf   r*  r2  r
  r  r  rx  r  r  )r,  r   r  r  r   r   r   r  rF  r   rb  r  r   rI   r}  )r   rR   rQ   r@  r  s   &    r9   test_fancy_indexing&_TestFancyIndexing.test_fancy_indexing9  s   LL++Ab12NN1 	QsV^^%q!v.Q1vY&&(!QF)4 	Qq1#vY&&(!AsF)4Qq1a&y\))+Qq1a&y\:QrAr7{^++-qaW~>QuRy1b')*224aQGnEQr5!R>)*224aQGnEQuRy%B.0199;QrAr7{^L 	Qq-'(002Aa6F4GHQsQCx[((*AcA3hK8QsRH}%--/3R=1ABQsE2r(O+,446#Bx-8HI 	QsAvY&&(!QCF)4Q1vqy\))+Q1vqy\:Q2w{^++-q!R"~>QuaW~r)*224aBnEQ2wb	)*224aBnEQuaW~uRy0199;Q2w{^L 	QsAvY&&(!QCF)4Q1vqy\))+Q1vqy\:Q2w"}%--/Ar7AbD=1ABQuaW~qt+,4461b'1R4-8HI 	WQsQCx[)1aS1#X;7WQ1v1v~./Aq6Aq6>1BCWQBx!R012Ar2hB6G4HIAeRHo2w./0!RHq"g4E2F	
 	Ar2hq"g./0!RHq"g4E2F	
 	AeRHouaW~567B8aW;L9M	

 	QaSzAq6)*224a!qc
QF8J6KLtbTB4 1b')*224tbTB4 1b')*	
 	ebTB4"&'!R0199;tbTB4 1b')*	
 	tbTB4 %B.0199;tbTB4 1b')*	
 	ebTB4"&'2w78@@BtbTB4 1b')*	
 	Q1vY&&(!QF)4QBx[((*Ar2hK8Qub"X'//11b"X;? 	QsAvYq1#v&..0!QCF)AsF2CDq!faiLQF#++-q!Q|A1vI/F	
 	r2hkN1q"g:&..0!RHaK.QG2L	
 	eRHoq !!UAr7^"34<<>r2hkN1q"g:&	

 	a1a&kNQF8Q;'//11Q!Q[>Aq6(A+3N	
 	a2r(mq"gY\*224aRH:6FByRS|6T	
 88u2Ax<002AbAq6(lODQF8R<002A1vhlODz1UVV"1vh, Wz1UVVAq6(B, W 	a!QiL!Q#++-qQF|QFAI/F	
 	a"bkNAr7A:&..0!ABxK.!R!2L	
 	aBx !%B.!"34<<>a"bkNAr7A:&	
 $q'$q'$'Q!tW__&&	2Qq!tW__&&	2 HHqcU#&Q!tW__&Q$0 	QtbTz]**,ard
m<9 WVVVVVs   p5q	5q		q	c                   \         P                  P                  R 4       ^2p^p^pV P                  \         P                  P	                  W#4      4      p\         P
                  ! WDR8  4      p\         P                  P                  V) ^,           W!R7      p\         P                  P                  V) ^,           W1R7      pV P                  V4      pWuV3,          p\        V4      '       d   VP                  4       p\        WWV3,          4       WR,           p	Wc,
          p
\        \        VP                  W34       \        \        VP                  WZ34       R# )rc   r  rM  N)rI   r   r[  r,  r  rg  rQ  r  r'   r   r   r@  rb  r  )r   NUM_SAMPLESr  r  r
  Irv  r  SIJI_badJ_bads   &          r9   test_fancy_indexing_randomized1_TestFancyIndexing.test_fancy_indexing_randomized  s    
		tLL,-KKs7#IIqb1fa:IIqb1fa:NN1!fC==++-CSAC&!j!--%;j!--!;r;   c                   ^^
r!V P                  \        W,          4      P                  W4      4      pV P                  V4      p\        P
                  ! V^,           \        R7      p\        P
                  ! V^,
          \        R7      p\        P
                  ! V^,           \        R7      p\        P
                  ! V^,
          \        R7      pRp	\        P                  ! WV\        R4      3Wx\        R4      34       Fj  w  r\        V
\        4      '       d   \        V\        4      '       d   K3  \        P                  ! \        V	R7      ;_uu_ 4        WJV3,          pRRR4       Kl  	  R#   + '       g   i     K  ; i)r  r  z(bool index .* has shape .* instead of .*Nr  )r,  r   r  r  rI   rr  rB  r  r  r  rH   rF  r   rb  )r   r  r  rR   rQ   row_long	row_shortcol_long	col_shortr  r  rI  rM  s   &            r9   test_missized_masking(_TestFancyIndexing.test_missized_masking  s
   "1LL..q45NN1 771q5-GGAE.	771q5-GGAE.	8%%%+.%+.
DA !U##
1e(<(<z77dG 87
 877s   E//F c                   \         P                  P                  R 4       V P                  \	        ^24      P                  ^^
4      4      pV P                  V4      p\         P                  ! \         P                  P                  ^ ^^R7      \        R7      p\         P                  ! \         P                  P                  ^ ^^
R7      \        R7      p\         P                  ! \         P                  P                  ^ ^RR7      \        R7      p\        \        W#,          4      W,          4       \        \        VRV3,          4      VRV3,          4       \        \        W%,          4      W,          4       \        \        W!^	8  ,          4      W^	8  ,          4       \         P                  ! . RO4      p\         P                  ! . RO4      p\        \        W#V3,          4      WV3,          4       \         P                  ! R	\        R7      p\         P                  ! R	\        R7      pRVR
&   \         P                  ! R	\        R7      pRVR&   \        \        VP                  V4       \        \        VP                  V4       \        \        VP                  V4       \        \        \         3VP                  V^34       R# )rc   rM  r  r	  TNrK  )TFTTF)
FTTFTFFFFF)r     r  )r
  r1  )rI   r   r[  r,  r   r  r  r   rQ  rB  r   r   r   r@  rb  r  rA  )	r   rR   rQ   ri  rv  r  Z1Z2Z3s	   &        r9   test_fancy_indexing_boolean._TestFancyIndexing.test_fancy_indexing_boolean  s   
		tLL++Ab12NN1HHRYY&&q!!&4DAHHRYY&&q!"&5TBHHRYY&&q!'&:$GWQT]AD)WQq!tW%qAw/WQT]AD)WQ1uX&a%1HH56HH 9 : 	WQ!tW%qAw/XXgT*XXgT*4XXgT*4j!--4j!--4j!--4z:.1vFr;   c                   \         P                  P                  R 4       V P                  \	        ^24      P                  ^^
4      4      pV P                  V4      p\         P                  ! \         P                  P                  ^ ^RR7      \        R7      pV P                  V4      p\        \        W$,          4      W,          4       \        \        W"^	8  ,          4      W^	8  ,          4       \         P                  ! \         P                  P                  ^ ^RR7      \        R7      p\         P                  ! \         P                  P                  ^ ^RR7      \        R7      pV P                  V4      pV P                  V4      p\        \        VP                  V4       \        \        VP                  V4       \        \        \         3VP                  V^34       R# )rc   rM  r  NrK  )r  rw  )r  r7  )rI   r   r[  r,  r   r  r  r   rQ  rB  r'  r   r   r@  rb  r  rA  )	r   rR   rQ   r  XspZr  ZspYsps	   &        r9   "test_fancy_indexing_sparse_boolean5_TestFancyIndexing.test_fancy_indexing_sparse_boolean	  sG   
		tLL++Ab12NN1HHRYY&&q!'&:$G  #WQV_ad+WQ1uX&a%1HHRYY&&q!'&:$GHHRYY&&q!'&:$G  #  #j!--5j!--5z:.QxHr;   c                    V P                  \        . RO. RO. RO.4      4      p\        P                  ! VP	                  ^ 4      4      ^ 8  p\        VRV3,          P                  4       ^^ .^ ^.^^ ..4       R# )r  r	  Nr  r  )r  r   rI   ravelr  r   r   )r   r   desired_colss   &  r9   #test_fancy_indexing_regression_30876_TestFancyIndexing.test_fancy_indexing_regression_3087   sf    nnUIw#@ABxx
+a/SL)113q!fq!fq!f5MNr;   c           	         V P                  \        ^^ .^ ^..4      4      p\        \        VP                  R\
        P                  ! ^^.4      4       R# )r  Nr  )r  r   r@  rA  r  rI   r   s   & r9   test_fancy_indexing_seq_assign1_TestFancyIndexing.test_fancy_indexing_seq_assign%  s@    nnUQFQF#345j#//6288QqE?Kr;   c                p   V P                  \        ^^ .^^..4      4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\
        \        4       V^^ .^ ^ .3,          V^ ^.^^.3&   RRR4       \        \        V4      \        ^^.^^..4      4       R#   + '       g   i     L6; i)r  rS  N)	r  r   rU  rV  rR  rS  r(   r   r   r   s   & r9   test_fancy_indexing_2d_assign0_TestFancyIndexing.test_fancy_indexing_2d_assign)  s    nnUQFQF#345$$&&##Hd4KL"%q!fq!fn"5CAA ' 	WS\51a&1a&)9#:; '&s   9B%%B5	c                   V P                  \        ^24      P                  ^^
4      4      p^ VR&   ^ VR&   ^ VR&   V P                  V4      p\        P
                  ! . RO4      p\        \        W#,          4      W,          4       \        P
                  ! . \        R7      p\        \        W#,          4      W,          4       \        \        W#V3,          4      WV3,          4       \        P
                  ! . RO\        R7      R,          p\        \        W#V3,          4      WV3,          4       \        \        W$V3,          4      WV3,          4       R# 	r  r  Nr  r  r2  r  )FFFFFr1  r  rf   r2  r  rL  	r,  r   r  r  rI   r   r   r   r}  r   rR   rQ   rw  rv  s   &    r9   test_fancy_indexing_empty,_TestFancyIndexing.test_fancy_indexing_empty1  s    LL++Ab12###NN1HH89WQT]AD)HHRs#WQT]AD)WQ!tW%qAw/HH_C08WQ!tW%qAw/WQ!tW%qAw/r;   ra   N)r   r   r   r   r#  r\  rb  re  rm  rt  r{  r  r  r  r  r  r   r   r   s   @r9   rZ  rZ  #  sN     -N~=@<4,G@I.O
L<0 0r;   rZ  c              #     "   \        V R4      '       d   V P                  '       g   Rx  R# Rx  V P                  P                  4       pRV n        V P	                  4        \        WP                  R4       R# 5i)zIChecks that sorted indices property is retained through an operation
    has_sorted_indicesNFz'Expected sorted indices, found unsorted)r)  r  r  rX  sort_indicesr   )r  r  s   & r9   check_remains_sortedr  B  s]      1*++13G3G3G	iinnG ANNw		@Bs   $A:AA:c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	_TestFancyIndexingAssigniQ  c                    V P                  \        P                  ! ^^.4      4      p\        \        \
        \        3VP                  R^4       \        \        \
        \        3VP                  R^4       R# )r  r_  Nr`  )r  rI   r   r@  rb  rA  r  r  r  s   & r9   test_bad_index_assign._TestFancyIndexingAssign.test_bad_index_assignR  sQ    NN288QF+,z:y91==%QRSz:y91==*VWXr;   c                V  a aa ^^
uooVVV 3R lpR\        R^
^4      3\        P                  ! ^4      \        ^R4      3\        ^^4      \        ^R4      33 F  w  r#V! W#4       K  	  \        P                  ! ^4      \        P                  ! ^4      3R3 F  w  r#V! W#4       K  	  R# )r  c           	        < SP                  SS34      pSP                  \        P                  ! SS34      4      p\        P
                  ! 4       ;_uu_ 4        \        P                  ! R \        \        4       ^W0V3&   \        V4      ;_uu_ 4        ^W V3&   RRR4       RRR4       \        VP                  4       V4       R#   + '       g   i     L4; i  + '       g   i     L?; irS  N)r  r,  rI   r   rU  rV  rR  rS  r(   r  r   r   r  rI  rQ   rR   r  rH  r   s   &&  r9   _test_set_sliceI_TestFancyIndexingAssign.test_fancy_indexing_set.<locals>._test_set_sliceZ  s    1v&ARXXq!f-.A((**''$8OPQ$)!,,AdG - +
 &aiik15 -, +*s$   :CC	CCCC)	Nr  rx  )r  rM  )r  rI   r   r   r  r  rI  r  rH  s   f   @@r9   test_fancy_indexing_set0_TestFancyIndexingAssign.test_fancy_indexing_setW  s    21	6  tR!34iilE!RL1Aqk5B<02DA A!2 iilBIIaL13IJDAA! Kr;   c                f   a  V 3R  lp\          F  pV! \        P                  ! V4      4       K!  	  R# )c           	        < SP                  RV R7      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        \
        4       V P                  ^4      V^ ^.^ ^.3&   \        VP                  4       V P                  ^4      ^,          4       V P                  R4      VR&   \        VP                  4       V P                  ^4      ^,          4       V P                  R4      VR&   \        VP                  4       V P                  ^4      ^,          V P                  ^4      ,           4       RRR4       R#   + '       g   i     R# ; i)r  r  rS  r  Nr  )r1  rf   Nr  r`  )	r  rU  rV  rR  rS  r(   r  r   r  r  s   & r9   rC  D_TestFancyIndexingAssign.test_fancy_assignment_dtypes.<locals>.checkl  s    vU3A((**''$8OP!&A1Q%1+QUUWejjmAo6"ZZ_'
QUUWejjmAo6C#QUUWejjmAo

1&EF +***s   D	EE	Nr  rH  s   f  r9   test_fancy_assignment_dtypes5_TestFancyIndexingAssign.test_fancy_assignment_dtypesk  s%    		G &E"((5/" &r;   c           
        V P                  R4      pV P                  \        ^^4      4      p. ROpRp\        V4      p\        P                  ! 4       ;_uu_ 4        \        P
                  ! R\        \        4       \        V4      ;_uu_ 4        W#^ 3,          P                  V^ V3&   W$^3,          P                  V^V3&   W%^3,          P                  V^V3&   RRR4       \        VP                  4       VP                  P                  4       4       V P                  R4      p\        V4      ;_uu_ 4        ^
^.VR&   RRR4       \        VP                  4       . RO. RO.4       V P                  R	4      p\        V4      ;_uu_ 4        ^
.^..VR
&   RRR4       \        VP                  4       ^ ^ .^ ^
.^ ^..4       V P                  R4      pV P                  \        P                  ! R4      4      p\        V4      ;_uu_ 4        W3 F  p. ROV. RO. RO3&   K  	  RRR4       \        VP                  4       V4       V P                  R4      p\        V4      ;_uu_ 4        . ROVR&   RRR4       \        VP!                  4       ^4       V P                  \        P                  ! R4      4      p. ROVR&   \        VP                  4       V4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL}; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)r  rS  Nr  r  r  r  r  )r1  r7  r:  r_  r  r  r(  r'  )r'  r  )r  r&   r   rU  rV  rR  rS  r(   r  ro  r   r   r,  rI   r   r   r  )r   rQ   rR   i0i1i2r   s   &      r9   test_sequence_assignment1_TestFancyIndexingAssign.test_sequence_assignmentz  s|   NN5!NN3q8$2Y$$&&##Hd4KL%a((qD'))!B$qD'))!B$qD'))!B$ ) qyy{ACCKKM: u%A%a((r7% )qyy{Y,DE u%A%a((D";% )qyy{aVaWq"g,FG u%ARXXe_-A%a((A*1Agw&'   ) qyy{A. v&A%a((*3&' )+RXXf-.A&/A"#qyy{A.G '&((( )(( )(( )(( )(= '&&s   4MAK#	AM9K7	AM
L	A4ML	#AM)L3	1A(M#K4.	M7L	ML	ML0*	M3M>MM	c                R   V P                  \        ^24      P                  ^^
4      4      p^ VR&   ^ VR&   ^ VR&   V P                  V4      p\        P
                  ! . RO4      p^*W#&   \        \        V4      V4       \        P
                  ! . \        R7      p^*W#&   \        \        V4      V4       ^*W#V3&   \        \        V4      V4       \        P
                  ! . RO\        R7      R,          p^*W#V3&   \        \        V4      V4       ^*W$V3&   \        \        V4      V4       R# r  r  r  s   &    r9   test_fancy_assign_empty0_TestFancyIndexingAssign.test_fancy_assign_empty  s    LL++Ab12###NN1HH89WQZ#HHRs#WQZ#A#WQZ#HH_C08A#WQZ#A#WQZ#r;   ra   N)r   r   r   r   r  r  r  r  r  r   r   r   s   @r9   r  r  Q  s%     Y
"(#+/Z$ $r;   r  c                   &   a  ] tR tRt o R tRtV tR# )_TestFancyMultidimi  c           
        \         P                  ! ^.^.^..4      \         P                  ! . RO4      3\         P                  ! ^.^.^..4      \         P                  ! . RO.4      3\         P                  ! . RO.4      \         P                  ! ^.^.^..4      3\         P                  ! . RO4      \         P                  ! ^.^.^..4      3\         P                  ! . RO. RO.4      \         P                  ! . RO. RO.4      3.p\         P                  P                  R4       V P	                  \         P                  P                  ^^4      4      pV P                  V4      pVP                  R8X  dX   VP                  \         P                  ! ^.^.^..^.^.^...4      \         P                  ! ^.^.^..^.^.^...4      34       V EF6  w  rEW4V3,          pW$V3,          p\        \        V4      V4       V^,           pV^,           p	\        \        VP                  W34       \        \        VP                  WI34       VP                  R8w  dQ   \        \        VP                  WD.\        R4      34       \        \        VP                  \        R4      WU.34       K  \        W4V.R3,          P                  4       W$V.R3,          4       \        VRWU.3,          P                  4       VRWU.3,          4       EK9  	  R# )	r  rc   r  Nr	  r2  r  rf   r'  r  r  r2  rf   r2  r  )rI   r   r   r[  r,  r  r  r  rK   r   r   r@  rb  r  r  )
r   IandJr
  r  ri  rv  rj  DIJrk  rl  s
   &         r9   test_fancy_indexing_ndarray._TestFancyMultidim.test_fancy_indexing_ndarray  so   XXsQC!o&(;<XXsQC!o&)(=>XXyk"BHHqcA3_$=>XXi "((QC!qc?";<XXy),-rxxI8N/OP
 			tLL1-.NN1 88uLLQC!qc?aS1#sO<=QC!qc?aS1#sO<=?
 DAqD'CqD'Cs+EEEE*ammeZ@*ammaZ@xx5 j!--1&%+9NOj!--%+v9NOQ1vqy\113Q1vqy\BQq1&y\113Qq1&y\B! r;   ra   N)r   r   r   r   r  r   r   r   s   @r9   r  r    s     $C $Cr;   r  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )_TestFancyMultidimAssigni  c                   \         P                  P                  R 4       V P                  \         P                  P	                  ^^4      4      pV P                  V4      p\         P                  P	                  ^^4      p\         P                  ! . RO. RO.4      p\         P                  ! . RO. RO.4      p\        V4      ;_uu_ 4        W2WE3&   RRR4       W1WE3&   \        VP                  4       V4       V^,           pV^,           p. ROp\        V4      ;_uu_ 4        WWE3&   RRR4       WWE3&   \        VP                  4       V4       \        V4      ;_uu_ 4        ^W$V3&   RRR4       ^WV3&   \        VP                  4       V4       \        \        VP                  We3V4       \        \        VP                  WG3V4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; irc   Nr'  r  r  r  )rI   r   r[  r,  r  r  r   r  r   r   r@  rb  r  )	r   r
  r  r  ri  rv  rk  rl  r   s	   &        r9   test_fancy_assign_ndarray2_TestFancyMultidimAssign.test_fancy_assign_ndarray  sn   
		tLL1-.NN1IINN1a HHi+,HHi+,!!$$acF %!#QYY[!$AA!!$$acF %!#QYY[!$!!$$AcF %A#QYY[!$j!--%A>j!--!A>+ %$$ %$
 %$s$   G!G !G3G	 G0	3H	c                   a aa ^^
uooVVV 3R lp\         P                  ! ^^.^^..4      ^^.3\         P                  ! ^ ^.4      ^ ^.^^..3. RO. RO.. RO. RO.33 F  w  r#V! W#4       K  	  R# )r  c           	        < SP                  SS34      p\        V4      ;_uu_ 4        \        P                  ! 4       ;_uu_ 4        \        P                  ! R \
        \        4       ^W V3&   RRR4       RRR4       SP                  \        P                  ! SS34      4      p^W0V3&   \        VP                  4       V4       R#   + '       g   i     La; i  + '       g   i     Ll; ir  )r  r  rU  rV  rR  rS  r(   r,  rI   r   r   r   r  s   &&  r9   r  R_TestFancyMultidimAssign.test_fancy_indexing_multidim_set.<locals>._test_set_slice  s    1v&A%a(((*A*A*C*C''$8OPQ$ +D( RXXq!f-.AAdG%aiik15 +D*C((s#   C'C	-CCCC)	Nr'  r1  rf   r  )r1  r  r2  )r  r  rf   )rI   r   r  s   f   @@r9    test_fancy_indexing_multidim_set9_TestFancyMultidimAssign.test_fancy_indexing_multidim_set	  s    21	6 hhAA/01a&91a&)QFQF+;<#Y/)Y1GHJDA A!Jr;   c           	     H   \         P                  P                  R 4       V P                  \         P                  P	                  ^^4      4      pV P                  V4      p\         P                  P	                  ^^4      p. RO. RO.p. RO. RO.pW2WE3&   W1WE3&   \        VP                  4       V4       V UUu. uF  qf Uu. uF  qw^,           NK  	  upNK  	  pppV U	U
u. uF  q U
u. uF  q^,           NK  	  up
NK  	  pp	p
. ROpWWE3&   WWE3&   \        VP                  4       V4       ^W$V3&   ^WV3&   \        VP                  4       V4       \        \        VP                  W3V4       \        \        VP                  WK3V4       R# u upi u uppi u up
i u up
p	i r  )rI   r   r[  r,  r  r  r   r   r@  rb  r  )r   r
  r  r  ri  rv  r  iirk  rI  jjrl  r   s   &            r9   test_fancy_assign_list/_TestFancyMultidimAssign.test_fancy_assign_list  sX   
		tLL1-.NN1IINN1a 	"	"!#!#QYY[!$/01q!1%1Rq&&1%q1/01q!1%1Rq&&1%q1!#!#QYY[!$A#A#QYY[!$j!--%A>j!--!A> &1%1s0   9FFF!F)F:FFFc                "   \         P                  P                  R 4       V P                  \         P                  P	                  ^^4      4      pV P                  V4      p. ROp. ROpV Uu. uF  qU^,           NK  	  ppV Uu. uF  qw^,           NK  	  pp. ROp	\         P                  ! ^4      R,          p
\        \        VP                  V\        R4      3V	4       \        \        VP                  \        R4      V3V
4       R# u upi u upi )rc   N)r  rf   r2  r2  r  rf   )r  r  r2  rf   r2  r  )r  rf   r2  r  r  r  r)  rL  )rI   r   r[  r,  r  r  r   r@  rb  r  r  )r   r
  r  ri  rv  r  rk  r  rl  C1C2s   &          r9   test_fancy_assign_slice0_TestFancyMultidimAssign.test_fancy_assign_slice7  s    
		tLL1-.NN1"#$!Ba!$"#$!Ba!$"YYq\'"j!--%t1ErJj!--%+u1ErJ %$s   ,DDra   N)
r   r   r   r   r  r  r  r  r   r   r   s   @r9   r  r    s!     ?B""?:K Kr;   r  c                   r   a  ] tR tRt o RtR t]P                  P                  ^4      R 4       t	R t
RtV tR# )_TestArithmeticiI  z
Test real/complex arithmetic
c                .   \        . RO. RO. RO. RO.R4      p\        . RO. R	O. R
O. RO.R4      p\        . RO. RO. RO. RO.R4      Vn        \        V^,          P                  R4      ^V,          4       \        VP                  ^,          P                  R4      ^VP                  ,          4       \        VP                  ^,          P                  R4      ^VP                  ,          4       V P                  V4      pV P                  V4      pWW43# )r  r  r  rY   )g      g      @r1        @r1  r1  )g      	@g     g      ?r1  r1  r1  )r1  r1        r  r1  r1  )r1  r1  g      @r1  r1  r1  )g      ?r1  r1  r1  r  g      @)g     ,@g      r1  r1  r  r1  )r1  g      @r1  r1  r1  r1  )g     2@      r1  r1  r1  r1  )g      ?r1  r1  r1  r  g      )r       @r1  r1  r1  g      @)r1  r  r1  r1  r1  r1  )r  r1  r1  r1  r1  r1  )r   r  r   rt   r  r  )r   _TestArithmetic__A_TestArithmetic__B_TestArithmetic__Asp_TestArithmetic__Bsps   &    r9   __arith_init_TestArithmetic.__arith_initM  s    /9302 4=> .9/57 9EF 4;579 ;DE 	CF??73BsF;CHHRK//8CHHECHHRK//8CHHEs#s#%%r;   c           	        V P                  4       w  rr4\        W4,           P                  4       W,           4       \         EF  p\        P
                  ! R R7      ;_uu_ 4        VP                  V4      pRRR4       V P                  X4      p\         EF  p\        P                  ! V\        P                  4      '       gE   \        P
                  ! R R7      ;_uu_ 4        VP                  P                  V4      p	RRR4       MVP                  V4      p	V P                  X	4      p
Wi,           pWz,           p\        VP                  VP                  4       \        VP                  4       V4       \        Wy,           V4       \        Wj,           V4       \        P                  ! R4      WX39   d   EK"  Wi,
          pWz,
          p\        VP                  VP                  4       \        VP                  4       V4       \        Wy,
          V4       \        Wj,
          V4       EK  	  EK  	  R#   + '       g   i     EL; i  + '       g   i     EL=; i)rS  ru  NrB  )_TestArithmetic__arith_initr   r   r,   rI   r{  rt   r  rl   r  r  r   r>   r   r  r  r  r  r?   rQ   rr  r@   rR   rh  D1S1s   &            r9   test_add_sub_TestArithmetic.test_add_sube  s   !%!2!2!4% 	]##%sy	

 "!AX..JJqM /..#C%%}}Q(:(:;;X66HHOOA. 76 

1AnnQ' UYRXXbhh/"2::<4"372."172. 88F#v-UYRXXbhh/"2::<4"372."172.9 &	 "...
 766s   #H0"I	0IIc           
        V P                  4       w  rr4\        W4P                  ,          P                  4       WP                  ,          4       \         EFl  p\
        P                  ! R R7      ;_uu_ 4        VP                  V4      pRRR4       V P                  X4      p\         EF  p\
        P                  ! V\
        P                  4      '       d   VP                  V4      p	MC\
        P                  ! R R7      ;_uu_ 4        VP                  P                  V4      p	RRR4       V P                  X	4      p
WiP                  ,          pWzP                  ,          p\        VP                  4       VR\        V4      P                  4       ,          R7       \        VP                   VP                   4       EK  	  EKo  	  R#   + '       g   i     ELG; i  + '       g   i     L; i)rS  ru  Ng+=)atol)r  r   ro  r   r,   rI   r{  rt   r  rl   r  r  r   r  rX   r   r>   r  s   &            r9   test_mu_TestArithmetic.test_mu  s;   !%!2!2!4% 	EGGO446%%K	) "!AX..JJqM /..#C%%==B$6$677

1AX66HHOOA. 7nnQ'W55[

b%*3r7;;=%8:RXXbhh/ &	 "... 76s   7GG	GG+ra   N)r   r   r   r   r#  r  rF  rm  r.  r  r  r   r   r   s   @r9   r  r  I  s=     &0 [[2)/ )/V0 0r;   r  c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )_TestMinMaxi  c                   \         P                  \         P                  \         P                  \         P                  \         P
                  3 EFU  p\         P                  ! ^VR7      P                  ^^4      pV P                  V4      p\        VP                  4       ^ 4       \        VP                  4       ^4       \        VP                  4       P                  V4       \        VP                  4       P                  V4       VR,          pV P                  V4      p\        VP                  4       R4       \        VP                  4       ^ 4       V^,          pV P                  V4      p\        VP                  4       R4       \        VP                  4       ^4       EKX  	  V P                  \         P                  ! ^^
4      P                  ^^4      4      p\        VP                  4       ^4       \        VP                  4       P                  VP                  4       \        VP                  RR7      ^4       V) p\        VP                  4       R4       \        VP                  RR7      R4       V P                  \         P                  ! R4      4      p\        VP                  4       ^ 4       \        VP                  4       ^ 4       \        VP                  4       P                  VP                  4       \         P                  ! ^\        R7      P                  ^^4      p^ VR	&   V P                  V4      p\        VP                  4       ^ 4       \        VP                  4       ^4       \         P                  ! R
4      \         P                  ! R4      \         P                  ! R4      3 FH  pV P                  V4      p\        \         VP                  4       \        \         VP                  4       KJ  	  R# )r:  r  TexplicitNr
  iir  )r  r	  r  r1  r7  r7  r1  )rI   r  r  rY   rg   r  r   r  r  r   rn   rX   r>   r   r  r@  rA  )r   r>   r
  r  r  s   &    r9   test_minmax_TestMinMax.test_minmax  s   jj"**bhh"--PE		"E*221Q7Aq!A!$"%..GAq!A#&!$FAq!A#&!$# Q( NN299Q+33Aq9:QUUWa QUUW]]AGG,QUUDU)1-BQUUWb!QUUDU)2. NN288F+,QUUWa QUUWa QUUW]]AGG, IIb&..q3&	NN1QUUWa QUUWb! ((6"BHHW$5rxx7HIAq!A*aee,*aee, Jr;   c           	        V P                   '       * p\        P                  ! ^24      P                  ^^
4      p^ VR&   ^ VR&   ^ VR	&   R
VR&   V P	                  V4      p^ R.p^R
.pWT,            Fw  p\        VP                  VR7      P                  4       VP                  WaR7      4       \        VP                  VR7      P                  4       VP                  WaR7      4       Ky  	  V F  p\        VP                  VRR7      P                  4       V P                  . RO4      4       \        P                  ! VP                  ^ 8H  4      '       d   V P                  . RO4      pMV P                  . RO4      p\        VP                  VRR7      P                  4       V4       K  	  V F  p\        P                  ! . RO4      p\        P                  ! . RO4      p	V P                   '       g#   VP                  R4      pV	P                  R4      p	\        VP                  VRR7      P                  4       V4       \        VP                  VRR7      P                  4       V	4       K  	  \        P                  ! ^^34      P                  ^
^4      pV P	                  V4      pWT,            Fw  p\        VP                  VR7      P                  4       VP                  WaR7      4       \        VP                  VR7      P                  4       VP                  WaR7      4       Ky  	  \        VP                  RR7      VP                  RVR7      4       V F  pVR,          pVR,          p	V P                   '       g   VR,          pVR,          p	\        VP                  VRR7      P                  4       V4       \        VP                  VRR7      P                  4       V	4       K  	  V F  pVR,          pVR,          p	V P                   '       g   VR,          pVR,          p	\        VP                  VRR7      P                  4       V4       \        VP                  VRR7      P                  4       V	4       K  	  V P                  \        P                  ! R4      4      pV P	                  V4      pWE,            Fy  p\        VP                  VRR7      P                  4       VP                  VR7      4       \        VP                  VRR7      P                  4       VP                  VR7      4       K{  	  V P                  \        P                  ! R4      4      pV P	                  V4      pRR.p
\        \         P"                  ! WJ4      4      p\        \         P"                  ! WZ4      4      pV F=  w  rm\%        \&        VP                  WmR7       \%        \&        VP                  WmR7       K?  	  V Fy  w  rm\        VP                  WmR7      P                  4       VP                  VR7      4       \        VP                  WmR7      P                  4       VP                  VR7      4       K{  	  V P                  \        P                  ! R4      4      pV P	                  V4      pV F=  w  rm\%        \&        VP                  WmR7       \%        \&        VP                  WmR7       K?  	  V Fy  w  rm\        VP                  WmR7      P                  4       VP                  VR7      4       \        VP                  WmR7      P                  4       VP                  VR7      4       K{  	  R# )r  r  r  Tr  r  NFr  r	  r+  r  r
  r`  rx  )
r  )   *   +   ,   -   .   /   0   r1  )
r:  r  r
  r2  r  r  r1  r)  r*  r1  )
r:  r  r
  r2  r  r  r  r)  r*  r1  )r*  r1     &   r  )r  r1  r
  r;  r  rZ  r  )r
  r	  r:  )Nr
  r	  r=  )r	  r
  rT  )r	  r
  Nrq  )r7  r  r  r  )r9  rI   r   r  r  r   rX   r   rn   r   r,  anyr!  r   r   rN  r  r  r@  rA  )r   r  r
  r  	axes_evenaxes_oddr  r  expected_maxexpected_minexplicit_valueseven_explicit_pairsodd_explicit_pairsexs   &             r9   test_minmax_axis_TestMinMax.test_minmax_axis  s   %%%IIbM!!!R($$$$NN1G	r7((D4 ((*AEEtE,K 4 ((*AEEtE,K	 ) D4$/779DE vvaffk""<<(HI<<(HID48@@BHM  D88$67L88$67L%%%+33F;+33F;D48@@BLQD48@@BLQ  IIa$$R+NN1((D4 ((*AEEtE,K 4 ((*AEEtE,K	 ) 	QUUU'FT)JKDU8LT7L%%% ~ }D48@@BLQD48@@BLQ  DU8LT7L%%% ~ }D48@@BLQD48@@BLQ  LL'*+NN1((DD48@@BAEEtEDTUD48@@BAEEtEDTU )
 LL'*+NN1-"9#4#4Y#PQ!)"3"3H"NO+HD*aee$D*aee$D , +HDD6>>@!%%T%BRSD6>>@!%%T%BRS + LL'*+NN1*HD*aee$D*aee$D + ,HDD6>>@!%%T%BRSD6>>@!%%T%BRS ,r;   c                   \        . RO. RO. RO.4      pV P                  V4      pV P                  '       d   \        M\        P
                  pV P                  '       d   \        M\        p\        VP                  4       4      '       g   Q h\        VP                  ^ R7      V4      '       g   Q h\        VP                  ^R7      V4      '       g   Q h\        VP                  4       4      '       g   Q h\        VP                  ^ R7      V4      '       g   Q h\        VP                  ^R7      V4      '       g   Q h\        VP                  4       4      '       g   Q h\        VP                  ^ R7      V4      '       g   Q h\        VP                  ^R7      V4      '       g   Q h\        VP                  4       4      '       g   Q h\        VP                  ^ R7      V4      '       g   Q h\        VP                  ^R7      V4      '       g   Q h\        VP                  4       4      '       g   Q h\        VP                  ^ R7      V4      '       g   Q h\        VP                  ^R7      V4      '       g   Q h\        VP                  4       4      '       g   Q h\        VP                  ^ R7      V4      '       g   Q h\        VP                  ^R7      V4      '       g   Q hR# r  )r   r  r9  r	   rI   r0   r)   r*   r-   rn   rH   rX   nanminnanmaxargminargmax)r   r  r  r  spmatrix_or_sparrays   &    r9   test_minmax_container_type&_TestMinMax.test_minmax_container_typeD  sL   Y! " s#%)%7%7%7'RYY)-);););gEIIK((((%)))+-@AAAA%)))+-@AAAAEIIK((((%)))+-@AAAA%)))+-@AAAAELLN++++%,,A,.0CDDDD%,,A,.0CDDDDELLN++++%,,A,.0CDDDD%,,A,.0CDDDDELLN++++%,,A,.@@@@%,,A,.@@@@ELLN++++%,,A,.@@@@%,,A,.@@@@r;   c           	     n   V P                  \        P                  ! ^24      P                  ^^
4      \        R7      p^ VR&   ^ VR&   ^ VR&   RVR&   \        P
                  VR	&   \        P
                  VR
&   V P                  V4      pVP                  4       p\        P                  ! V4      '       g   Q hV\        P                  ! V4      8X  g   Q hVP                  4       p\        P                  ! V4      '       g   Q hV\        P                  ! V4      8X  g   Q hVP                  RR7      p\        P                  ! V4      '       g   Q hV\        P                  ! VRR7      8X  g   Q h. ROpV F  pVP                  VR7      p\        VP                  4       \        P                  ! WR7      4       \        WpP                  4      '       g   Q hVP                  VR7      p\        VP                  4       \        P                  ! WR7      4       \        WP                  4      '       d   K  Q h	  R# )r  r  r  Nr  r  r  r
  r`  r  )r  r  r  )rx  r
  r1  r  )r,  rI   r   r  r  rY  r  r  r  r  r   r   rH   r%  )	r   r
  r  X_nan_maximumX_nan_minimumr  r  X_nan_maximaX_nan_minimas	   &        r9   test_nanminmax_TestMinMax.test_nanminmaxd  s   LL2..q4ELB$$$$&&$&&$NN1
{{=))))		!,,,
{{=))))		!,,,f-{{=))))		!& 9999D888.LL002BIIa4KLl,>,>????888.LL002BIIa4KLl,>,>???? r;   c                0   \        . RO. RO. RO.4      pV P                  V4      pR Fj  p\        W4      p\        W#4      p\        \        V^R7       \        \
        VRR7       \        \        V^^R7       \        V! R	R7      V! R	R7      4       Kl  	  R# )
r1  r  r  r  Nr  r  r  )rn   rX   r  )r   r  r|   r@  rA  r  r   )r   r  r  fnamedatfuncr   s   &     r9   test_minmax_invalid_params&_TestMinMax.test_minmax_invalid_params  s    Y! " s##Ec)G5(D*d3)T4*d:6*G,@A $r;   c                f   ^ RI Hp \        . RO. RO. RO.4      pV P                  V4      p\	        W1P
                  4      '       dk   \        \        P                  ! V4      \        P                  ! V4      4       \        \        P                  ! V4      \        P                  ! V4      4       R# R# )r1  _dataNr  r  r  )
scipy.sparser'  r   r  rH   _minmax_mixinr   rI   rn   rX   )r   r'  r  r  s   &   r9   test_numpy_minmax_TestMinMax.test_numpy_minmax  sz     	'Y! " s# e0011rvve}bffSk:rvve}bffSk: 2r;   c           	     .   ^ RI Hp \        P                  ! . RO. RO. RO. RO. RO.4      pVP	                  4       p\        P                  ! ^^.^^..4      p\        P                  ! ^^.^^ ..4      p\        P                  ! . RO. RO. RO.4      pW#WEV3 EFg  pV P                  V4      pV P                  V4      p\        WP                  4      '       g   KC  \        VP                  4       \        P                  ! V4      4       \        VP                  4       \        P                  ! V4      4       \        VP                  ^ R7      \        P                  ! V^ R7      4       \        VP                  ^ R7      \        P                  ! V^ R7      4       \        VP                  ^R7      \        P                  ! V^R7      4       \        VP                  ^R7      \        P                  ! V^R7      4       EKj  	  V P                  V P                  V4      4      p\        VP                  RR7      ^4       \        V) P                  RR7      ^4       \        VP                  RR7      ^4       \        V) P                  RR7      ^4       V P                  \        P                  ! R4      4      p	V P                  \        P                  ! R4      4      p
RR.p\        P                  ! W.. ROV4       EF#  w  rpVe   VP                  V,          ^ 8X  d   \         P"                  ! \$        RR7      ;_uu_ 4        VP                  WR	7       RRR4       \         P"                  ! \$        RR7      ;_uu_ 4        VP                  WR	7       RRR4       K  V P&                  '       d   \        P(                  ! ^ 4      pM\        P(                  ! V^8X  d   RMR4      p\        VP                  WR	7      V4       \        VP                  WR	7      V4       EK&  	  V P                  V4      p\        VP                  ^ RR	7      V P                  . RO4      4       \        VP                  ^ RR	7      V P                  . RO4      4       \        P                  ! . RO4      p\        P                  ! . RO4      pVP*                  ^8w  d   ^VR
&   V P&                  '       g#   VP-                  R4      pVP-                  R4      p\        VP                  ^RR	7      V4       \        \/        VP                  ^RR	7      4      V4       \        P(                  ! R4      pV P                  V4      pVP*                  ^ 8w  d=   \        VP                  RRR	7      ^ 4       \        VP                  RRR	7      ^ 4       R# \         P"                  ! \$        RR7      ;_uu_ 4        VP                  RRR	7       RRR4       \         P"                  ! \$        RR7      ;_uu_ 4        VP                  RRR	7       RRR4       R#   + '       g   i     EL; i  + '       g   i     EKn  ; i  + '       g   i     L{; i  + '       g   i     R# ; i)r1  r&  r  Tr  FNzCannot applyr  r  r
  )r
  r  rf   r2  )r1  r1  r
  rx  )r
  rx  r  r  r  )r  rf   r1  r1  )r  r  r2  )r  r+  r7  )r2  r  r+  r  rX  )Nr1  r  r  r  )r2  r1  r2  r2  )r1  rf   rf   rf   )r  rf   r1  r2  r  )r1  r2  r2  r1  r1  rZ  r`  )r(  r'  rI   r   r
   r,  r  rH   r)  r   r  r  r  r  r  r   rF  r   rA  r9  r   r  r  r   )r   r'  r  D2D3D4D5r
  r   D6D7	explicitsr  r  r  r	  r
  s   &                r9   test_argmax_TestMinMax.test_argmax  s   &XX
  \\^XX1v1v&'XX1v1v&'XXy*i89""%AQA..#Cc#6#677ryy|4ryy|4+RYYqq-AB+RYYqq-AB+RYYqq-AB+RYYqq-AB &  nnT\\"-.SZZZ.2sd]]D]115SZZZ.2sd]]D]115 ^^BHHV,-^^BHHV,-5M	&..xyQMCr|syy!3]]:^DDJJDJ6 E]]:^DDJJDJ6 ED %%%!xx{H!xx$!)HHSZZTZ?JSZZTZ?J R nnR SZZQZ6\8RSSZZQZ6\8RSxx0xx077b= L!!!'//7L'//7LSZZQZ6EWSZZQZ>?N HHVnnQ77a<=qA=qA z@@

t
4 Az@@

t
4 A@O EDDDDDF A@@@@s0   YY)Y0)ZYY-0Z 	Z	ra   N)r   r   r   r   r  r  r  r  r#  r*  r4  r   r   r   s   @r9   r  r    s8     /-bdTLA@@@B;$T5 T5r;   r  c                   &   a  ] tR tRt o R tRtV tR# )_TestGetNnzAxisi  c                   \        ^ ^.^^.R^	..4      pVP                  \        4      pV P                  V4      p\        P
                  \        P                  3pV P                  '       d   VP                  MVP                  p\        VP                  RR7      V! RR7      4       \        VP                  4       V! 4       4       \        VP                  ^ R7      V! ^ R7      4       \        V! ^ R7      P                  V4       \        VP                  ^R7      V! ^R7      4       \        V! ^R7      P                  V4       \        VP                  RR7      V! RR7      4       \        V! RR7      P                  V4       \        VP                  RR7      V! RR7      4       \        V! RR7      P                  V4       \        \        V^R7       R# )r1  Nr  r  rx  r
  )r   rt   rB  r  rI   rY   rg   r9  r  getnnzr   r  r:   r>   r@  rA  )r   r  bool_datr  accepted_return_dtypesr9  s   &     r9   test_getnnz_axis _TestGetNnzAxis.test_getnnz_axis  sb   aVV!W  ::d#s#"$((BHH!5(,(:(:(:$$8<<T<2F4EF8<<>6848<<Q</Q@&a.&&(>?8<<Q</Q@&a.&&(>?8<<R<0&b/B&b/'')?@8<<R<0&b/B&b/'')?@j&q1r;   ra   N)r   r   r   r   r<  r   r   r   s   @r9   r7  r7    s     2 2r;   r7  Tc                "   V'       d   V # R p\        V P                  4      pV P                  P                  4        F(  w  rEVP                  R4      '       g   K  V! V4      W4&   K*  	  \	        V P
                  R,           V P                  V4      # )zy
Construct a class that either runs tests as usual (require=True),
or each method skips if it encounters a common error.
c                 F   a  \         P                  ! S 4      V 3R  l4       pV# )c                     <  S! V / VB #   \         \        \        \        \        3 d    \
        P                  ! R 4      hi ; i)r  )r  r  rA  rb  r?  rF  rG  )rM   r~   fcs   *,r9   r   6_possibly_unimplemented.<locals>.wrap.<locals>.wrapper!  sF    Aq<B<'+Y
"N4 A ++&?@@As	    7A)r   r   )rA  r   s   f r9   wrap%_possibly_unimplemented.<locals>.wrap   s'    __R A !A Nr;   test_NotImplemented)dictrF   r9  
startswithr  r   	__bases__)r:  requirerC  new_dictr   r   s   &&    r9   _possibly_unimplementedrL    sy    
 
		 %,,,,.JDw''!%d / CLL#33MM 	r;   c	                n   \         \        \        V 4      \        \        \
        \        \        V4      \        \        V4      \        \        V4      \        \        V4      \        \        T;'       d    T4      \        \        T;'       d    T4      \        \        V4      \        \        V4      3p	/ p
V	 Fp  pVP                   F]  pVP                  R4      '       g   K  V
P!                  V4      pVe)   \#        RVP$                   RV RVP$                   24      hWV&   K_  	  Kr  	  \'        RV	/ 4      # )z|
Construct a base class, optionally converting some of the tests in
the suite to check that the feature is not implemented.
rE  zTest class z overloads test z defined in TestBase)r.  rL  r  r  rp  r  r  r0  rZ  r  r  r  r  r7  rF   rH  getrA  r   r  )getsetslicingslicing_assignfancy_indexingfancy_assignfancy_multidim_indexingfancy_multidim_assignminmaxnnz_axisbasesnamesr:  r   old_clss   &&&&&&&&&     r9   sparse_test_classr\  4  s#    $[&9#$\7;$%7H$%7H$%=%13$%7%3%O%O8OQ$%=%:%K%K|M$[&9$_h?AE$ ELLD??7++iioG" ;s||n<L$(6g6F6F5G"I J J$K !  
E2&&r;   c                   2   a  ] tR tRt o R tR tR tRtV tR# )_CompressedMixini`  c                \   V P                  V4      pR Vn        VP                  4        VP                  '       g   Q h\        V4      ;_uu_ 4        VP	                  ^4       RRR4       \
        P                  ! VP                  4       ^8H  4      '       g   Q hR#   + '       g   i     LA; i)FN)r  r  r  r  rT  rI   allr  r	  s   && r9   _test_setdiag_sorted%_CompressedMixin._test_setdiag_sorteda  sx    NN1$	#####!!$$IIaL %vvajjla'(((( %$s   BB+	c                    R p\         P                  ! ^V^,           4      p\         P                  . RO,          V,          p^pRV^V) R13&   . ROpV P                  W53W3R7      pV P	                  V4      # )  r  Nr   r
  rf   r  r  rI   r   c_r(  ra  )r   r  valsdiagsN_newr$  r
  s   &      r9   test_setdiag_noconvert'_CompressedMixin.test_setdiag_noconvertl  sy     yyAE"j!D( a%j/v>((++r;   c                    R p\         P                  ! ^V^,           4      p\         P                  . RO,          V,          pRVR&   . ROpV P                  W43W3R7      pV P	                  V4      # )rd  r  re  rf  )r  r  r  rg  )r   r  ri  rj  r$  r
  s   &     r9   test_setdiag_cooconvert(_CompressedMixin.test_setdiag_cooconvert}  si    
 yyAE"j!D(e/v>((++r;   ra   N)	r   r   r   r   ra  rl  ro  r   r   r   s   @r9   r^  r^  `  s     	),", ,r;   r^  c                      a  ] tR tRt o ]R 4       t]P                  ]P                  ]P                  ]P                  .tR tR tR tR tR tR tR	 tR
 tR tR tR tR tR tR tR tR tR tRtV tR# )TestCSRi  c                    \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        \        4       \        V/ VB uuRRR4       #   + '       g   i     R# ; ir  )rU  rV  rR  rS  r(   r    r:  argsrA   s   &*,r9   r  TestCSR.spcreator  @    $$&&##Hd4KLd-f- '&&&   +AA%	c                n   \        . RO. RO. RO.R4      pV P                  V4      p\        VP                  . RO4       \	        VP
                  . RO4       \	        VP                  . R	O4       \        VP                  ^4       \        VP                  R4       \	        VP                  4       V4       R# )
r1  r0  re  N)r1  r  r1  r  r  )r  r2  rf   rm  r  )r   r'  r   r!  r   r  r   r   r  r  r   r   rS   r  s   &  r9   test_constructor1TestCSR.test_constructor1  s    9"$   #!#((733;;w/3::i0SWWQSZZ&3;;=!,r;   c                
   \        RR4      p^VR&   V P                  V4      p\        VP                  ^.4       \	        VP
                  ^.4       \	        VP                  . RO4       \        VP                  4       V4       R# )r  r0  Nr  r  r>  )r1  r1  r1  r1  r  r  r  )r   r'  r   r!  r   r  r   r   rz  s   &  r9   test_constructor2TestCSR.test_constructor2  se    %#  #!#((A3/3;;s+3::o6!#++-3r;   c                   \        ^^ .^ ^.^^ ..R4      pV P                  V4      p\        VP                  . RO4       \	        VP
                  . RO4       \	        VP                  . RO4       \        VP                  4       V4       R# )r  r0  Nr'  r  r  )r   r'  r   r!  r   r  r   r   rz  s   &  r9   test_constructor3TestCSR.test_constructor3  st    Aq6q6q6!   #!#((733;;w/3::i0!#++-3r;   c                   \        . RO4      p\        . RO4      p\        . RO4      p\        W34      pV P                  W43R4      p\        \	        ^4      P                  ^^4      VP                  4       4       V P                  R^.^ ^.^ ^.33\        P                  R7      p\        R^ .^ ^..\        P                  R7      p\        WeP                  4       4       V P                  . RO. R	O. R
O334      pVP                  ^8X  g   Q hR# )rf   r  Nrf   r2  r  r2  r1  r  r2  r1  rf   r  rf   r1  r  r1  r1  r  r  rf   rf   rf   rf   r        @g      $@r        "@r  r  g      &@r         @      @r  r             r  r  r  r  r1  rf   rf   r1  r1  r  r  r1  )
r   r   r'  r   r   r  r   rI   uint64r  )r   r"  r#  r!  rs  re  r  s   &      r9   test_constructor4TestCSR.test_constructor4  s    5656 3 4 SI  $516":--a3S[[]C   9a.Aq6Aq62B!C299 U	1~1v.bii@5++-0   )i-C!DEww!||r;   c                    \        . RO4      p\        . RO4      p\        . RO4      pV P                  W2V34      p\        VP                  R4       R# r1  Nr1  r  r2  r2  r1  r  r  rf   r  r  )r   r'  r   r   r   r   r  r!  re  s   &    r9   test_constructor5TestCSR.test_constructor5  C    y!	"Y  $!89399U+r;   c                    . ROp. ROp. ROpV P                  W2V34      p\        VP                  R4       \        \        P
                  ! VP                  \        P                  4      4       R# r  )r'  r   r   r   rI   rl   r>   signedintegerr  s   &    r9   test_constructor6TestCSR.test_constructor6  sQ      $!89399e,cii)9)9:;r;   c                2   \        ^4      ^,           p\        . RO\        P                  R7      p\        . RO\        P                  R7      pV P	                  WV3RR7      p\        . RO. R	O. R
O.R4      p\        P
                  ! V P                  '       d   \        P                  M\        P                  4      p\        VP                  P
                  V4       \        VP                  P
                  V4       \        VP                  4       V4       R# )r  r  re  r0  N)r  rf   r  r1  r1  rf   r1  rf   r  r  r  r  r  )r  r1  r  )r   r   rI   rg   r'  r>   r9  rY   r   r   r  r   r   )r   r!  r#  ptrrM   rS   expected_dtypes   &      r9   test_constructor_smallcol!TestCSR.test_constructor_smallcol  s    ay1}&bhh7L13/v>9"$
 d.@.@.@"((bhhOQXX^^^4QYY__n5199;*r;   c           	        \        ^4      ^,           p\        P                  ! \        P                  4      P                  ^d,           p\        ^ ^^W"^,           V^,           .\        P                  R7      p\        . RO\        P                  R7      pV P                  WV34      p\        VP                  P                  \        P                  ! \        P                  4      4       \        VP                  P                  \        P                  ! \        P                  4      4       \        VP                  ^\	        V4      ^,           34       R# )r  r  Nr  )r   rI   rW   rY   rX   r   rg   r'  r   r   r>   r  r   r   )r   r!  larger#  r  rM   s   &     r9   test_constructor_largecol!TestCSR.test_constructor_largecol  s    ay1}"&&,Q1e1WeAg6bhhGL13/0QXX^^RXXbhh%78QYY__bhhrxx&89177QC
O4r;   c                :   \        ^4      p\        . RO4      p\        . RO4      pV P                  WV3RR7      pVP                  4       pVP	                  4        \        VP                  . RO4       \        VP                  4       VP                  4       4       R# )r  re  Nr)  rf   r  r  r  r1  r2  r  rf   r7  r  rf   r)  r  r  )r   r   r'  rX  r  r   r  r   r   r!  r  r   r  r  s   &     r9   test_sort_indicesTestCSR.test_sort_indices  st    ay(y!  $!8 Ghhj3;;73;;=#++-8r;   c                j   \        . RO4      p\        . RO4      p\        . RO4      pV P                  WV3RR7      pVP                  4       pVP                  4        \	        VP
                  ^4       \	        VP                  . RO4       \	        VP                  4       VP                  4       4       R# )r  re  Nr  r1  r1  r1  rf   r1  r2  r1  r  rf   r2  r  r  r  r)  r*  r1  r2  r*  r  r'  )r   r'  rX  eliminate_zerosr   r  r!  r   r  s   &     r9   test_eliminate_zerosTestCSR.test_eliminate_zeros      -.01y!  $!8 Ghhj377A&388I.3;;=#++-8r;   c                (   V P                  \        P                  ! ^4      P                  ^^4      R,          4      pR F  p\	        \        V P                  V4      R4       \        W4      ! 4       p\	        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  4       \        \        V4      ! VP                  4       4      4       K  	  R# )r:  rC  TNrH  rI  rJ  rK  rL  rM  rN  rO  rP  rB  rQ  rR  rS  rT  rU  rV  rW  rX  )r'  rI   r   r  r   r)  r  r|   r   r   r  r   r   r   r  r  rF  s   &   r9   test_ufuncsTestCSR.test_ufuncs      ryy}44Q:S@AJA Q/6B"((+qyy"**5qxx3rzz|WR^AIIK-HIJr;   c                t   \        ^4      p\        . RO4      p\        . RO4      pV P                  WV3RR7      p\        ^4      p\        . RO4      p\        . RO4      pV P                  WV3RR7      p\        WE,           P	                  4       VP	                  4       VP	                  4       ,           4       R# )r  re  Nr  r  r  r*  r  r  r)  rf   r  r1  rf   r  )r   r   r'  r   r   r  s   &     r9   test_unsorted_arithmetic TestCSR.test_unsorted_arithmetic      ay(y!  $!8 Gay*+y!  $!8 Gci((*CKKMCKKM,IJr;   c                   \         P                  ! ^.^.^..4      p\         P                  ! . RO4      p\         P                  P                  R4       V P	                  \         P                  P                  ^^4      4      pV P                  V4      pWAV3,          p\        V4      '       d   VP                  4       p\        WSW3,          4       R# r  rc   Nr  
rI   r   r   r[  r,  r  r  r'   r   r   r   ri  rv  r
  r  rj  s   &     r9   test_fancy_indexing_broadcast%TestCSR.test_fancy_indexing_broadcast#      HHqcA3_%HHY
		tLL1-.NN1!fC==++-CSAC&!r;   c                R   \         P                  ! ^ ^.4      p\         P                  ! ^^ .4      p\         P                  ! ^^.4      p\         P                  ! ^ ^.4      pV P                  W1V34      P                  4       p\	        RVP
                  4       \        VP
                  \        4      '       g   Q hV P                  W2V34      P                  4       p\	        RVP
                  4       VP                  4        \	        RVP
                  4       \        VP                  V4       V P                  W2V34      P                  4       pRVn        \	        RVP
                  4       \        VP                  V4       VP                  4        \        VP                  V4       R# )z@Ensure has_sorted_indices memoizes sorted state for sort_indicesTFN)rI   r   r'  rX  r   r  rH   rB  r  r   r  )r   sorted_indsunsorted_indsr!  r   r  s   &     r9   test_has_sorted_indicesTestCSR.test_has_sorted_indices1  sG   hh1v&!Q(xxA1a&!6:;@@BT1//0!..5555V<=BBDUA001 	
T1//0199k2V<=BBD#T1//0199m4 	
199m4r;   c                	   \         P                  ! ^.4      \         P                  ! ^ .4      \         P                  ! ^ ^.4      3p\         P                  ! ^^.4      \         P                  ! ^ ^ .4      \         P                  ! ^ ^.4      3pV P                  V4      p\        RVP                  4       V P                  V4      P                  4       p\        RVP                  4       \        VP                  \        4      '       g   Q hVP                  4        \        RVP                  4       \        ^\        VP                  4      4       V P                  V4      P                  4       pRVn        \        RVP                  4       \        ^\        VP                  4      4       VP                  4        \        ^\        VP                  4      4       RVn        VP                  4        \        ^\        VP                  4      4       \        RVP                  4       RVn        \        RVP                  4       V P                  VP                  VP                  VP                  34      p\        RVP                  4       VP                  4        \        RVP                  4       V P                  \         P                  ! ^.4      \         P                  ! ^.4      \         P                  ! . RO4      34      p\        VP                  R4       \        P                  ! 4       ;_uu_ 4        \        P                   ! R\"        \$        4       ^VR&   VR;;,          ^,          uu&   ^VR	&   RRR4       \        RVP                  4       V P                  VP                  VP                  VP                  34      p\        RVP                  4       V P                  V4      pVw  Vn        Vn
        Vn        \        RVP                  4       \        ^\        VP                  4      4       V P                  V4      pVP                   Vw  Vn        Vn
        Vn        \        RVP                  4       \        ^\        VP                  4      4       VP                  4        \        ^\        VP                  4      4       R#   + '       g   i     ELb; i)
=Ensure has_canonical_format memoizes state for sum_duplicatesTFrS  N)r1  r  r  r  r  r  r  re  )rI   r   r'  r   has_canonical_formatrX  rH   rB  sum_duplicatesr   r  r!  r   r   rU  rV  rR  rS  r(   )r   info_no_dupsinfo_with_dupsr  Mchecks   &    r9   test_has_canonical_format!TestCSR.test_has_canonical_formatM  s    !rxx}bhh1v6FG((Aq6*BHHaV,<bhh1v>NO|,T1112~.335UA223!00$7777 	
T1112QAII' ~.335!%T1112QAII'	QAII'!&	QAII'T1112 "'UA223##QVVQYY$ABT6667	T1112 !rxx}bhh|>TUVQWWf%$$&&##Hd4KLAdGdGqLGAdG	 '
 	T1112##QVVQYY$ABT6667 |,&4#	18UA223QAII' |,	&4#	18T1112QAII'	QAII'- '&&s   8A SS"	c                N   \         P                  ! ^\         P                  R7      p\         P                  ! ^ \         P                  R7      p\         P                  ! ^ 4      pV P                  W2V3RR7      pV P                  W2V3RR7      p\         P                  ! R\         P                  R7      pV P                  W63RR7      pV P                  W63RR7      pV P                  R4      p	V P                  R4      p
\	        VP
                  P                  \         P                  4       \	        VP
                  P                  \         P                  4       \	        VP
                  P                  \         P                  4       \	        VP
                  P                  \         P                  4       \	        V	P
                  P                  \         P                  4       \	        V
P
                  P                  \         P                  4       WEWxW3 F  pW,            K  	  R# )rf   r  re  Nr  r          rf  )rI   r   rY   r'  r   r   r>   rg   r   r   r  ri  rM   rS   rs  r  r0  r  r  r?   s   &           r9   test_scalar_idx_dtypeTestCSR.test_scalar_idx_dtype  m    !288,((1BHH-xx{v6lKv6jIXXfBHH-z>z<|,z*QXX^^RXX.QXX^^RXX.QXX^^RXX.QXX^^RXX.QXX^^RXX.QXX^^RXX. a#AEE $r;   c                    V P                  . RO.4      pV P                  . RO.4      pW,           P                  ^8X  g   Q hVP                  V4      P                  ^8X  g   Q hR# )r1  Nr  r  r  r1  )r'  r  rg  r   rM   rS   s   &  r9   test_binop_explicit_zeros!TestCSR.test_binop_explicit_zeros  sX     	{+	{+{{azz!}  A%%%r;   ra   N)r   r   r   r   rl  r  rI   r  int_r  r  r5  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   s   @r9   rr  rr    s     . . 88RWWbjj"--@K
-44(,<+$59	9
J	K"58B(H0& &r;   rr  c                   0   a  ] tR tRt o ]R 4       tRtV tR# )TestCSRMatrixi  c                    \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        \        4       \        V/ VB uuRRR4       #   + '       g   i     R# ; ir  )rU  rV  rR  rS  r(   r   rt  s   &*,r9   r  TestCSRMatrix.spcreator  @    $$&&##Hd4KLt.v. '&&&rx  ra   Nr   r   r   r   rl  r  r   r   r   s   @r9   r  r         / /r;   r  c                      \         \        P                  ,          p \        V \        4      '       g   Q hV P
                  \         J g   Q hV P                  \        P                  38X  g   Q hR # r=   )r   rI   r   rH   r   
__origin____args__r  s    r9   test_spmatrix_subscriptabler    sO     Ffl++++
***??rwwj(((r;   c                      a  ] tR tRt o ]R 4       t]P                  ]P                  ]P                  ]P                  .tR tR tR tR tR tR tR	 tR
 tR tR tR tR tRtV tR# )TestCSCi  c                    \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        \        4       \        V/ VB uuRRR4       #   + '       g   i     R# ; ir  )rU  rV  rR  rS  r(   r   rt  s   &*,r9   r  TestCSC.spcreator  rw  rx  c                z   \        . RO. RO. RO.R4      pV P                  V4      p\        VP                  . RO4       \	        VP
                  . RO4       \	        VP                  . R	O4       \        VP                  ^4       \        VP                  VP                  4       \        VP                  R4       R# )
r  r0  rd  Nr  r1  r1  r1  rg  r1  rf   r1  r2  )r  rf   r  r2  )r1  rf   r  rf   r  )r   r&  r   r!  r   r  r   r   r  r   r  rz  s   &  r9   r{  TestCSC.test_constructor1  s}    <|<cB  #!#((953;;y13::k2SWWQSYYqww'SZZ&r;   c                    \        RR4      p^VR&   V P                  V4      p\        VP                  ^.4       \	        VP
                  ^.4       \	        VP                  . RO4       R# )r  r0  Nr~  rf   r  )r1  r1  r1  r1  r1  r  r  )r   r&  r   r!  r   r  r   rz  s   &  r9   r  TestCSC.test_constructor2  sU    %#  #!#((A3/3;;s+3::o6r;   c                    \        ^^ .^ ^ .^ ^..R4      pV P                  V4      p\        VP                  ^^.4       \	        VP
                  ^ ^.4       \	        VP                  . RO4       R# )r  r0  Nr  )r   r&  r   r!  r   r  r   rz  s   &  r9   r  TestCSC.test_constructor3  sc    Aq6Aq6Aq6*C0  #!#((Aa513;;!u-3::g.r;   c                T   \        . RO4      p\        . RO4      p\        . RO4      p\        W34      pV P                  W43R4      p\        \	        ^4      P                  ^^4      VP                  4       4       V P                  . RO. RO. RO334      pVP                  ^8X  g   Q hR# )	rf   Nr  r  r  r  r  r  r  )r   r   r&  r   r   r  r   r  )r   r"  r#  r!  rs  rd  s   &     r9   r  TestCSC.test_constructor4  s    5656CDSI  $516":--a3S[[]C   )i-C!DEww!||r;   c                    \        . RO4      p\        . RO4      p\        . RO4      pV P                  W2V34      p\        VP                  R4       R# r1  Nr  r  r  )r  r2  )r   r&  r   r   r   r   r  r!  rd  s   &    r9   r  TestCSC.test_constructor5  r  r;   c                    . ROp. ROp. ROpV P                  W2V34      p\        VP                  R4       \        \        P
                  ! VP                  \        P                  4      4       R# r  )r&  r   r   r   rI   rl   r>   r  r  s   &    r9   r  TestCSC.test_constructor6  sQ      $!89399U+cii)9)9:;r;   c                j   \        . RO4      p\        . RO4      p\        . RO4      pV P                  WV3RR7      pVP                  4       pVP                  4        \	        VP
                  ^4       \	        VP                  . RO4       \	        VP                  4       VP                  4       4       R# )r  re  Nr  r  r  r7  rf   r'  )r   r&  rX  r  r   r  r!  r   r  s   &     r9   r  TestCSC.test_eliminate_zeros  r  r;   c                (   \        ^4      p\        . RO4      p. ROpV P                  WV3RR7      pVP                  4       pVP	                  4        \        VP                  . RO4       \        VP                  4       VP                  4       4       R# )r  re  Nr  r  r  r  )r   r   r&  rX  r  r   r  r   )r   r!  r"  r  r  r  s   &     r9   r  TestCSC.test_sort_indices  so    ayO$  $S!1 @hhj3;;73;;=#++-8r;   c                (   V P                  \        P                  ! ^4      P                  ^^4      R,          4      pR F  p\	        \        V P                  V4      R4       \        W4      ! 4       p\	        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       \        VP                  4       \        \        V4      ! VP                  4       4      4       K  	  R# )   g      5@TNr  )r&  rI   r   r  r   r)  r  r|   r   r   r  r   r   r  s   &   r9   r  TestCSC.test_ufuncs  r  r;   c                t   \        ^4      p\        . RO4      p\        . RO4      pV P                  WV3RR7      p\        ^4      p\        . RO4      p\        . RO4      pV P                  WV3RR7      p\        WE,           P	                  4       VP	                  4       VP	                  4       ,           4       R# )r  re  Nr  r  r  r  r  )r   r   r&  r   r   r  s   &     r9   r   TestCSC.test_unsorted_arithmetic'  r  r;   c                   \         P                  ! ^.^.^..4      p\         P                  ! . RO4      p\         P                  P                  R4       V P	                  \         P                  P                  ^^4      4      pV P                  V4      pWAV3,          p\        V4      '       d   VP                  4       p\        WSW3,          4       R# r  r  r  s   &     r9   r  %TestCSC.test_fancy_indexing_broadcast2  r  r;   c                N   \         P                  ! ^\         P                  R7      p\         P                  ! ^ \         P                  R7      p\         P                  ! ^ 4      pV P                  W2V3RR7      pV P                  W2V3RR7      p\         P                  ! R\         P                  R7      pV P                  W63RR7      pV P                  W63RR7      pV P	                  R4      p	V P	                  R4      p
\        VP                  P                  \         P                  4       \        VP                  P                  \         P                  4       \        VP                  P                  \         P                  4       \        VP                  P                  \         P                  4       \        V	P                  P                  \         P                  4       \        V
P                  P                  \         P                  4       WEWxW3 F  pW,            K  	  R# )	rf   r  re  N)r  r  )r  r  rf  r  r  )	rI   r   rY   r&  r'  r   r   r>   rg   r  s   &           r9   r  TestCSC.test_scalar_idx_dtype@  r  r;   ra   N)r   r   r   r   rl  r  rI   r  r  r  r  r5  r{  r  r  r  r  r  r  r  r  r  r  r  r   r   r   s   @r9   r  r    sz     . . 88RWWbjj"--@K'7/,<	99
J	K" r;   r  c                   0   a  ] tR tRt o ]R 4       tRtV tR# )TestCSCMatrixi\  c                    \         P                  ! 4       ;_uu_ 4        \         P                  ! R \        \        4       \        V/ VB uuRRR4       #   + '       g   i     R# ; ir  )rU  rV  rR  rS  r(   r   rt  s   &*,r9   r  TestCSCMatrix.spcreator]  r  rx  ra   Nr  r   s   @r9   r  r  \  r  r;   r  c                      a  ] tR tRt o ]t]P                  ]P                  ]P                  .t
R tR tR tR tR tR tRtV tR	# )
rE  ig  c                    V P                  R4      p^
VR&   ^VR&   WP                  ,          pWP                  P                  4       ,          p\        VP	                  4       VP	                  4       4       R# )r7  N)r7  r5  r  r  r  )r)  ro  r   r   r   )r   rQ   r
  rs  s   &   r9   	test_multTestDOK.test_multk  sW    x($$G199;		4r;   c                   V P                  R4      pRVR&   ^VR&   V^
,           p\        ^
^ .^
^
.^^
..4      p\        VP                  4       V4       VR,           pVR,           p\        VP                  4       V4       R# r2  r  Nr_  ir  rf  )r  r   r   r   r  s   &  r9   test_add_nonzeroTestDOK.test_add_nonzeros  sz    NN5!##FB7RHr2h/0199;*FF199;*r;   c                   V P                  R4      pRVR&   ^VR&   \        VR,          P                  4       VP                  4       R,          4       \        V^	,          P                  4       VP                  4       ^	,          4       R# r"  r  r   r   r  s   & r9   test_dok_divide_scalarTestDOK.test_dok_divide_scalar  s_    NN5!##AbD>>+QYY[^<AaC==?AIIKM:r;   c                   ^^r!V P                  W34      p^VR&   ^VR&   ^VR&   ^VR&   ^VR&   ^VR&   \        VP                  4       RV^,
          3,          \        V4      4       VP	                  4       p\        VP                  4       RV^,
          3,          \        V4      4       Y!r!VP                  4       p\        VP                  W34       \        VP                  4       V^,
          R3,          \        V4      4       VP                  4       p\        VP                  4       V^,
          R3,          \        V4      4       R# )	r  r	  Nr  re  r  rY  r  r  )	r)  r   r   r   r  r
   r   r   r  )r   r  rH  rM   rd  rS   re  s   &      r9   test_convertTestDOK.test_convert  s   QAv& ###### 	199;q1u-uQy9 ggi3;;=1Q3/q; AKKMQWWqf%199;qs1u-uQy9 ggi3;;=1Q/q;r;   c                   \        \        V P                  4       \        . RO. RO. RO.R4      pV P                  V4      p\	        VP
                  VP
                  4       \	        VP                  4       V4       V P                  V4      p\	        VP                  4       VP                  4       4       . RO. RO.pV P                  V\        P                  R7      p\	        VP
                  \        P                  4       VP                  4       p\	        VP
                  \        P                  4       \        Wd4       R# )	r  r0  r  Nr  rg  r  r  r  )r@  r  r)  r   r   r>   r   r'  rI   r  r   )r   rS   rQ   r  r!  r0  das   &      r9   	test_ctorTestDOK.test_ctor  s    i!3!34 <|<cBq!QWWagg&QYY[!$ q!QYY[!))+.9%t2::6QWWbjj)YY[RXXrzz*2$r;   c                    V P                  R4      p^ VR&   \        RVP                  4       9  R4       V P                  R4      p^ VR&   \        \        VP                  4       4      ^ 8H  R4       R# )r2  zUnexpected entry (0,0) in keyszUnexpected entries in keysNr  r  rT  )r)  r   keysr   r  s   &  r9   test_ticket1160TestDOK.test_ticket1160  sh    u%# 	QVVX%'GH u%#AFFH"$@Ar;   ra   N)r   r   r   r   r!   r  rI   r  r  r  r5  r  r#  r'  r*  r.  r2  r   r   r   s   @r9   rE  rE  g  sG     I77BJJ6K5
+;<>%*B Br;   rE  )rW  rX  c                       ] tR tRt]tRtR# )TestDOKMatrixi  ra   N)r   r   r   r   r   r  r   ra   r;   r9   r5  r5        Ir;   r5  c                      a  ] tR tRt o ]t]P                  ]P                  ]P                  .t
R tR tR tR tR tR tR tR	 tR
 tRtV tR# )TestLILi  c                   \        R\        P                  4      p^
VR&   RVR&   V P                  R\        P                  R7      p^
VR&   RVR&   \        P
                  ! 4       R8w  d;   \        WP                  ,          W"P                  ,          P                  4       4       \        WP                  4       P                  ,          W"P                  4       P                  ,          P                  4       4       R# )r7  y              4@r  ppc64leNr7  r7  r  r  )
r   rI   r  r*  platformmachiner   ro  r   r   r  s   &  r9   test_dotTestLIL.test_dot  s    (BMM*$$xr}}=$$ *q33wSS(9(9(;<1{{}.[[]__1D0M0M0OPr;   c                    V P                  R4      p^VR&   V^,          p\        VR,          ^4       V^ ,          p\        VR,          ^ 4       R# )r2  Nr  r  )r*  r   )r   r?   s   & r9   test_scalar_mulTestLIL.test_scalar_mul  sI    v&$aCQtWa aCQtWa r;   c                   V P                  R4      pRVR&   ^VR&   \        VR,          P                  4       VP                  4       R,          4       \        V^	,          P                  4       VP                  4       ^	,          4       R# r"  r&  r  s   & r9   test_truediv_scalarTestLIL.test_truediv_scalar  sc    NN6"$$AF++-qyy{R/?@AE??,aiikAo>r;   c                X   V P                  . R	O. R
O.4      pV P                  . RO. R	O.4      pRW!V,           3RW!V,
          3R^V^,          3/pVP                  4        FV  w  pw  rVVP                  4       p\        VRV R24      ! V4       \	        VP                  4       VP                  4       4       KX  	  V P                  R\        P                  ! R4      R7      pV P                  . RO4      pVR;;,          V,          uu&   \	        VR,          P                  4       V4       R# )r1  addsubmul__i__r  r  Nr1  rf   r2  r  r  r  )皙?rM  rM  r:  )	r*  r9  rX  r|   r   r   rI   r>   r,  )r   rQ   rR   r!  opr   r  r  s   &       r9   test_inplace_opsTestLIL.test_inplace_ops  s    	956	956q5zq5z1q5z# &*ZZ\!B!VVXFFc"RL)%0v~~/1A1A1CD	 &2 vRXXi-@ALL)	$11T7??,a0r;   c           	         . RO. RO.pV P                  \        V4      4      p\        V4       F:  w  r4\        VP	                  4       \        W,          VP
                  R7      4       K<  	  R# )r  )ndminNr'  r(  )r*  r   r  r   r   r   )r   row_datarR   rU  r"  s   &    r9   test_lil_iterationTestLIL.test_lil_iteration
  sM    y)uX/lFAs{{}eHKsxx.PQ #r;   c                    V P                  R4      p^
VR&   ^VR&   ^VR&   ^(VR&   ^2VR&   VP                  4       pV P                  V4      p\        VP                  4       VP                  4       4       R# )r7  Nr;  r  r  )r*  r2  )r2  r*  )r*  r+  )r*  r  r   r   )r   rR   r   r
  s   &   r9   test_lil_from_csrTestLIL.test_lil_from_csr  sp    x($$$$$GGIq!199;		4r;   c                    V P                  \        ^4      P                  ^^4      4      pV P                  V4      p\	        V\        . RO4      R3,          P                  4       V\        . RO4      R3,          4       R# )r  :rf   r2  NNr'  )r,  r   r  r*  r   r   r   )r   r  rQ   s   &  r9   test_fancy_indexing_lilTestLIL.test_fancy_indexing_lil  se    LL++Aq12q!QuY',-557uY',-	/r;   c                   V P                  R4      p^VR&   ^VR&   ^VR&   ^VR&   V P                  R4      p^VR&   ^VR&   ^VR&   ^VR&   ^VR&   \        VP                  V4      P                  4       VP                  V4      P                  4       4       \        VP                  V4      P                  4       . R	O. R
O. RO. RO.4       R# )r  Nr  r  r  r`  r  r  r_  r  r  r1  r1  r+  )r1     r1  )r*  r   rg  r   )r   lr  s   &  r9   test_point_wise_multiply TestLIL.test_point_wise_multiply#  s    v&$$$$v&$$$$$1::a=002::a=002	4 	1::a=002%%%&(	)r;   c                l    V P                  \        P                  ! R4      4      pVR,          p^ VR&   R# )r2  r  Nr  r:  )r*  rI   rr  r+  s   & r9   test_lil_multiply_removal!TestLIL.test_lil_multiply_removal:  s,    rwwv/	R$r;   ra   N)r   r   r   r   r#   r  rI   r  r  r  r5  r>  rA  rD  rO  rT  rW  rZ  r`  rc  r   r   r   s   @r9   r8  r8    sV     I77BJJ6KQ!?1(R
5/). r;   r8  )rW  c                       ] tR tRt]tRtR# )TestLILMatrixiA  ra   N)r   r   r   r   r   r  r   ra   r;   r9   rf  rf  A  r6  r;   rf  c                      a  ] tR tRt o ]P
                  ]P                  ]P                  .tR t	R t
R tR tR t]P                  P!                  RRR	7      R
 4       tR tR tR tR tR tR tR tR tRtV tR# )BaseTestCOOiI  c                   \        . RO4      p\        . RO4      p\        . RO4      pV P                  W1V33R4      p\        \        ^4      P	                  ^^4      VP                  4       4       V P                  R^.^ ^.^ ^.33\        P                  R7      p\        R^ .^ ^..\        P                  R7      p\        WTP                  4       4       R# )rf   r  Nr  r  r  r  r  )r   r%  r   r   r  r   rI   r  )r   r"  r#  r!  r  r  s   &     r9   r{  BaseTestCOO.test_constructor1L  s    5656CD  $Cy!1%86":--a3S[[]C   9a.Aq6Aq62B!C299 U	1~1v.bii@5++-0r;   c                    \        . RO4      p\        . RO4      p\        . RO4      pV P                  W1V33R4      p\        . RO. RO. RO.4      p\        WTP                  4       4       R# )	r1  N)
r1  r  rf   rf   rf   rf   r1  r1  rf   rf   )
r1  rf   r1  rf   r  r  r  r1  r1  rf   )
rf   r+  r  r  r)  r1  r
  rf   r  r  r  )r  r
  r1  r]  )r  r)  r1  )r   r%  r   r   )r   r"  r#  r!  r  r   s   &     r9   r  BaseTestCOO.test_constructor2Z  s[    )*)*-.  $Cy!1%8ZJ783.r;   c                   V P                  R4      p\        VP                  R4       \        VP                  . 4       \        VP                  . 4       \        VP
                  . 4       \        VP                  4       \        R4      4       R# r  Nr  )r%  r   r   r"  r#  r!  r   r   r   r  s   & r9   r  BaseTestCOO.test_constructor3e  s^      '399U+3772&3772&388B'3;;=%-8r;   c                   \        . RO. RO. RO.4      pV P                  V4      p\        VP                  4       V4       \        . RO4      pV P                  V4      pV P                  '       d   TMVP                  ^R	4      p\        VP                  4       V4       \        P                  ! \        RR7      ;_uu_ 4        V P                  . R
O. RO. RO34       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V P                  . R
ORR7       RRR4       R#   + '       g   i     LT; i  + '       g   i     R# ; i)r1  zobject cannot be interpretedr  Nrr  re  r1  r  r1  r1  )r)  r1  r2  r1  )r1  r  r1  r1  r
  )r1  rw     !   r  r8  rc  )
r   r%  r   r   r9  r  rF  r   r  rA  )r   r   r  r  s   &   r9   r  BaseTestCOO.test_constructor4o  s    Y  !   %3;;=#. I  %,,,3#++a2D3;;=(3 ]]9,KLL|0LM M ]]:-CDDf= ED	 ML EDDs   D)	D<)D9	<E	c                    ^.pV P                  V^ .^ .33RR7      pVP                  \        P                  ! V4      P                  8X  g   Q hR# )r  Nr  )r%  r>   rI   r   )r   r!  r  s   &  r9   "test_constructor_data_ij_dtypeNone.BaseTestCOO.test_constructor_data_ij_dtypeNone  sK    s  $!qc
!34 @yyBHHTN00000r;   FzCOO does not have a __getitem__runr  c                    R # r=   ra   r   s   &r9   r  BaseTestCOO.test_iterator      r;   c                    ^ ^ ..pV P                  V4      P                  4       p\        VP                  4       V4       R# rF  )r%  todiar   r   )r   r   r  s   &  r9   test_todia_all_zeros BaseTestCOO.test_todia_all_zeros  s6    Q  '--/3;;=%0r;   c                   V P                  R4      pVP                  4        V P                  ^^.^^ .^^ .334      pVP                  4        \        VP                  4       ^^ .^ ^..4       V P                  ^^.^^.^^.334      pVP                  4        \        VP                  4       ^ ^ .^ ^..4       \        VP                  ^.4       \        VP
                  ^.4       \        VP                  ^.4       R# rn  )r%  r  r   r   r"  r#  r!  ro  s   & r9   test_sum_duplicatesBaseTestCOO.test_sum_duplicates  s      '  1Q%1Q%!A!893;;=Aa5!A-8  1Q%1Q%!A!893;;=Aa5!A-8377QC(377QC(388aS)r;   c                    V P                  . RO. RO. RO334      pVP                  4       p\        VP                  4       VP                  4       4       R# r  Nr  r  r  )r%  r(  r   r   )r   r  rC   s   &  r9   test_todok_duplicates!BaseTestCOO.test_todok_duplicates  s=      )i-C!DEiik3;;=#++-8r;   c                   V P                  . RO. RO. RO334      pVP                  4       p\        VP                  ^,           VP                  4       VP	                  4       p\        VP                  ^,           VP                  4       R# r  )r%  r  r   r  r  )r   r  re  rd  s   &   r9   test_tocompressed_duplicates(BaseTestCOO.test_tocompressed_duplicates  s^      )i-C!DEiikSWWq[#''*iikSWWq[#''*r;   c                   V P                  R4      p\        VP                  R4       \        P                  ! . RO.4      p\        P                  ! ^.4      \        P                  ! ^ .4      \        P                  ! ^.4      33p\        P                  ! ^^.4      \        P                  ! ^ ^ .4      \        P                  ! ^^.4      33pV P                  V4      pVP                  RJ g   Q hV P                  V4      pVP                  RJ g   Q hVP                  4        VP                  RJ g   Q hV P                  VRR7      pVP                  RJ g   Q hV P                  VRR7      pVP                  RJ g   Q hVP                  4        VP                  RJ g   Q hV P                  V4      pVP                  RJ g   Q h\        VP                  ^4       VP                  4        VP                  RJ g   Q h\        VP                  ^4       RVn        \        VP                  R4       \        VP                  ^4       VP                  4        \        VP                  R4       V P                  V4      pRVn        \        VP                  R4       \        VP                  ^4       VP                  4        \        VP                  ^4       R# )r  TFr3  Nr  r  )r%  r   r  rI   r   r  r  )r   rQ   A_arrayA_coords_formA_coords_dupss   &    r9   r  %BaseTestCOO.test_has_canonical_format  se    v&Q++T2((I;'1#1#!(FG1a&)BHHaV,<bhh1v>N+OPw'%%---}-%%...	%%---qt,%%---qu-%%...	%%---}-%%...QUUA	%%---QUUA "'Q++U3QUUA	Q++T2}-!%Q++T2QUUA	QUUAr;   c                \   \        . RO4      p\        . RO4      p\        . RO4      pV P                  WV33RR7      pVP                  4       pVP                  4        \	        VP
                  ^ 8g  P                  4       4       \        VP                  4       VP                  4       4       R# )r  re  Nr  )r1  r1  r1  r  r  r  r  r  r  r  )	r   r%  rX  r  r   r!  r`  r   r   )r   r!  r"  r#  r  r  s   &     r9   r   BaseTestCOO.test_eliminate_zeros  s    -.,-,-  $c
!36 BhhjQ##%&3;;=#++-8r;   c                   . RO. RO. RO.pRpV P                  V4      pVP                  V4      p\        VP                  VP                  J 4       VP                  VRR7      p\        VP                  VP                  J 4       VP                  VRR7      p\        \        P
                  ! VP                  VP                  4      '       * 4       R# )	r1  Fr3  TNr6  r8  r9  r<  )r%  r  r   r!  rI   rP   )r   ro   	new_shaper?   r@   s   &    r9   test_reshape_copyBaseTestCOO.test_reshape_copy  s    lO<	s#IIi !&& !IIieI,!&& !IIidI+B''778r;   c                   V P                  ^.R.R.33R4      pV P                  ^.R.R.33R4      p\        VP                  RRR7      V8g  P                  ^ 8H  4       \        VP                  RRR7      V8g  P                  ^ 8H  4       R# )	r  i- rJ  r   r0  r4  N)-   )r  r  )r%  r   r  r  )r   mat1mat2s   &  r9   test_large_dimensions_reshape)BaseTestCOO.test_large_dimensions_reshape  s     !!A3'TF(;"<oN!!A3$'(;"<oN 	oS9TAFF!KLoS9TAFF!KLr;   ra   N)r   r   r   r   rI   r  r  r  r5  r{  r  r  r  rw  rF  rm  xfailr  r  r  r  r  r  r  r  r  r   r   r   s   @r9   rh  rh  I  s     77BJJ6K1	/9>,1
 [[5)JK L1
*9
++Z99	M 	Mr;   rh  c                       ] tR tRt]tRtR# )TestCOOi  ra   N)r   r   r   r   r"   r  r   ra   r;   r9   r  r    s	     Ir;   r  )rP  rQ  rR  rS  rT  c                       ] tR tRt]tRtR# )TestCOOMatrixi  ra   N)r   r   r   r   r   r  r   ra   r;   r9   r  r    s	    
 Ir;   r  c                     \         \        P                  \        \        ,          3,          p \        V \        4      '       g   Q hV P                  \         J g   Q hV P                  \        P                  \        \        ,          38X  g   Q h\         \        P                  ,          p \        V \        4      '       g   Q hV P                  \         J g   Q hV P                  \        P                  38X  g   Q hR # r=   )	r"   rI   r   rp  r}  rH   r   r  r  r  s    r9   test_sparray_subscriptabler    s    rwwc
*+Ffl++++	)))??rwwc
3333rwwFfl++++	)))??rwwj(((r;   c                   R  a  ] tR tRt o ]t]P                  ]P                  ]P                  .t
R t]P                  P                  RRR7      R 4       t]! ^4      R 4       tR tR	 t]P                  P)                  R
R7      R 4       tR tR tR tR tR tR tR tR tRtV tR# )TestDIAi  c                   \        . RO. RO. RO. RO.4      p\        P                   ! . RO.4      P                  ^^ R7      p\        P                   ! . R	O4      p\        V P	                  W#3R
R7      P                  4       V4       R# )r  r  re  N)r  r1  r2  r1  )r  rf   r1  r  )r1  rf   r2  r1  )r1  r1  r2  r  r  r1  r
  rf   rc  )r   rI   repeatr   r(  r   )r   r
  r!  r$  s   &   r9   r{  TestDIA.test_constructor1   sr    <! " xx$++A1+5((8$T''v'FNNPRSTr;   FzDIA does not have a __getitem__ry  c                    R # r=   ra   r   s   &r9   r  TestDIA.test_iterator)  r}  r;   c                V   V P                  \        P                  ! ^4      4      p\        VP                  P
                  \        P                  4       VP                  R^R7       \        VP                  P
                  \        P                  4       V P                  \        P                  ! ^4      4      p\        VP                  P
                  \        P                  4       VP                  R^R7       \        VP                  P
                  \        P                  4       R# )r2  r  Nr  )	r(  rI   r&   r   r$  r>   rY   rT  rg   r   r  s   & r9   test_setdiag_dtypeTestDIA.test_setdiag_dtype-  s    rvvay)QYY__bhh/			$!	QYY__bhh/rvvay)QYY__bhh/			$!	QYY__bhh/r;   c                   ^..p. RO.pVR.^^ ^ .^^ ..R3V^.^ ^ ^ .^ ^ ..R3V^.^ ^ ^ .^ ^ ..R3VR.^ ^ ^ .^ ^ ..R3VR.^^ ^ .^^ ..R3V^.^^ ^.^ ^ ..R3V^.^ ^ ^ .^ ^ ..R3VR.^ ^ ^ .^ ^ ..R3R	R	^ ^ ^ .^ ^ ..R
3^ ^ ..^ .^^ ^ .^ ^ ..R3\         P                  ! ^^4      P                  R4      . RO^^^ .^^ ..R3\         P                  ! ^^4      P                  R4      . RO^^^.^^..R3.# )r  zshorter diagonal withinz+shorter diagonal above (but within if full)z$shorter diagonal, all elements abovez$shorter diagonal, all elements belowz"longer diagonal within (only head)z"longer diagonal within (only tail)z#longer diagonal, all elements abovez#longer diagonal, all elements belowNzempty inputzexplicit zerosz)overfilled shorter-diagonal, out of orderz(overfilled longer-diagonal, out of orderr'  r
  r  )r)  r  )r1  r  rf   r2  r
  rx  r  )r)  r2  )rI   r   r  )r   d1d3s   &  r9   	ill_casesTestDIA.ill_cases9  s   
 cU[bT11v1v.*,aS11v1v.>@aS11v1v.79bT11v1v.79bT11v1v.57aS11v1v.57aS11v1v.68bT11v1v.68tQ!Q!Q 0 a&A3QFQF#3!#1e$,,V4)aVaV$<> 1i(008)aVb!W%;=1> 	>r;   c                    V P                  4        Ff  w  rr4pR FY  pVf   V P                  V4      pMV P                  W3VR7      p^ V9   d   ^ pVP                  4       V8X  d   KM  Q RV,           4       h	  Kh  	  R# )rf   Nre  case: r`  re  rf  )r  r(  _getnnz)r   r!  ofsetsr  refcaser   rQ   s   &       r9   test_getnnzTestDIA.test_getnnz^  sy    ,0NN,<(D#D1<**51A**D>*GA:Cyy{c):8d?:) 2 -=r;   zDIA stores extra zerosr  c                    R # r=   ra   r   s   &r9   r<  TestDIA.test_getnnz_axisi  r}  r;   c                   V P                  4        F  w  rr4pR F  pVf   V P                  V4      pMV P                  W3VR7      pVP                  4       p\        P                  ! V4      RV^ ,          1RV^,          13,          p	\        P
                  ! V	4      p
VP                  V
8X  g   Q h\        VP                  4       V	RV,           R7       K  	  K  	  R# )rf   Nre  r  rN  r  )	r  r(  r  rI   r   r  r  r   r   )r   r!  r  rM  rU  r  r   rQ   rR   r  r  s   &          r9   
test_tocsrTestDIA.test_tocsrm  s     )-(8$D!1<**51A**D>*GAGGIhhqk)58)YeAhY"67&&s+uu|#|"199;X_M 2 )9r;   c                    V P                  . RO.R.3RR7      pVP                  4       p\        VP                  4       P                  4       V4       \        VP	                  4       P                  4       V4       R# )r  re  Nr  r
  r  )r(  r   r   r  r  )r   r  r  s   &  r9   test_convert_gh14555TestDIA.test_convert_gh14555}  s]    bT2&A99;1779,,.91779,,.9r;   c                >   V P                  ^^.^^..4      P                  4       p\        P                  ! VP                  VP
                  3VP                  4      p\        P                  ! \        P                  ! V4      ^ 8  4      pVP                  V8X  g   Q hR# r?  )
r(  r  rI   ravel_multi_indexr"  r#  r   r`  diffr  )r   r  	flat_indsinds_are_sorteds   &   r9   test_tocoo_gh10050TestDIA.test_tocoo_gh10050  sz    AA/0668((!%%A	&&!3a!78%%888r;   c                >   \         P                  ! . RO.4      P                  ^^ R7      p\         P                  ! . RO\         P                  R7      p\        P
                  ! W3RR7      pVP                  4       pVP                  P                  \         P                  8X  g   Q hVP                  4       pVP                  P                  \         P                  8X  g   Q hVP                  4       pVP                  P                  \         P                  8X  g   Q hR# )r  r  r  re  Nr  r  rc  )rI   r   r  rY   r   r$   r  r#  r>   r  r  r  )r   r!  r$  r  r  re  rd  s   &      r9   test_tocoo_tocsr_tocsc_gh19245&TestDIA.test_tocoo_tocsr_tocsc_gh19245  s    xx'..qq.9((:RXX6f=iikww}}(((iik{{  BHH,,,iik{{  BHH,,,r;   c                   \        ^^.4      pV\        ^.^4      ,           pV P                  V4      pV P                  V4      pW4,           p\        WPP                  4      '       g   Q h\        VP	                  4       W,           4       WC,           p\        WPP                  4      '       g   Q h\        VP	                  4       W!,           4       R# r?  )r   r(  rH   r   r   r   rQ   rR   rr  rh  rj  s   &     r9   test_add_sparseTestDIA.test_add_sparse  s    !QLaS!  #  #i#1122223;;=!%0i#1122223;;=!%0r;   c                Z   \        ^^.4      pV\        ^.^4      ,           pV P                  V4      pV P                  V4      pW4,
          p\        WPP                  4      '       g   Q h\        VP	                  4       W,
          4       WC,
          p\        WPP                  4      '       g   Q h\        VP	                  4       W!,
          4       VP                  R4      p\        W4,
          P	                  4       W,
          4       \        WC,
          P	                  4       W!,
          4       R# )r  re  N)r   r(  rH   r   r   r  r  s   &     r9   test_sub_sparseTestDIA.test_sub_sparse  s    !QLaS!  #  #i#1122223;;=!%0i#1122223;;=!%0ll5!CI..0!%8CI..0!%8r;   c                \   V P                  ^^.^ ^..4      pV^,          p\        W!P                  4      '       g   Q h\        VP	                  4       ^^.^ ^..4       VP                  ^4      p\        W1P                  4      '       g   Q h\        VP	                  4       ^^.^ ^..4       R# r?  )r(  rH   r  r   r   rg  )r   r  resres2s   &   r9   r5  TestDIA.test_mul_scalar  s    AA/0!e#{{++++3;;=Aq6Ar7*;<zz!}$,,,,4<<>QFQG+<=r;   c                (   \        . RO. RO.4      p\        ^^.^^.^^..4      pV P                  V4      pV P                  V4      pRVP                  VP                  ^ 8H  &   RVP                  VP                  ^ 8H  &   \        VP	                  4       V4       \        VP	                  4       V4       W,          pW4,          p\        W`P                  4      '       g   Q h\        VP	                  4       V4       \        VP                  . RO4       \        VP                  V P                  V4      P                  4       W!,          pWC,          p\        W`P                  4      '       g   Q h\        VP	                  4       V4       \        VP                  . RO4       \        VP                  V P                  V4      P                  4       V P                  . RO. R	O.^R.3R
4      pV P                  . RO. RO.R^.3R
4      pW4,          p\        VP                  \        R^ .4      4       \        VP                  . RO. RO.4       WC,          p\        VP                  \        R^ .4      4       \        VP                  . RO. RO.4       R# )r  Nr'  r(  r
  r  rx  )rx  r
  r1  r  rf   )r  r  r  )r  r  r  r  )r  r  r  )r  r  r  r  )      8@g     A@r  )r        ,@      ;@)r  r  r  )r  r  r  )r   r(  r!  r   r   rH   r$  )r   rQ   rR   rr  rh  r   rj  s   &      r9   test_matmul_diaTestDIA.test_matmul_dia  s    9 B888    #  #"$Q"$Q3;;=!,3;;=!,Ei#1122223;;=!,3;;
3388T%7%7%:%?%?@Ei#1122223;;=!,3;;(9:388T%7%7%:%?%?@   <">B!H&Q  <">Q!H&Qi3;;r1g7388n&4&6 	7 i3;;r1g7388m&4&6 	7r;   ra   N) r   r   r   r   r$   r  rI   r  r  r  r5  r{  rF  rm  r  r  r   r  r  r  rG  r<  r  r  r  r  r  r  r5  r  r   r   r   s   @r9   r  r    s      I77BJJ6KU [[5)JK L Q	0  	0#>J	; [[56 7N :9-19&	>*7 *7r;   r  )rP  rQ  rR  rS  rT  rW  rX  c                       ] tR tRt]tRtR# )TestDIAMatrixi  ra   N)r   r   r   r   r   r  r   ra   r;   r9   r  r    r6  r;   r  c                     a  ] tR tRt o ]t]P                  ]P                  ]P                  .t
R tR tR tR tR tR tR tR	 tR
 tR tR tR t]P0                  P3                  RRR7      R 4       t]P0                  P3                  RRR7      R 4       tR t]P0                  P3                  RRR7      R 4       t]P0                  P=                  ]RR7      R 4       t Rt!V t"R# )TestBSRi  c                   \        . RO4      p\        . RO4      p\        R4      p\        . RO. RO.4      V^ &   \        . RO. R	O.4      V^&   \        . R
O. RO.4      V^&   \        . RO. RO.4      V^&   \        . RO. RO. RO.. RO. RO.4      pV P                  W2V3RR7      p\	        VP                  4       V4       V P                  W2V34      p\	        VP                  4       V4       R# r1  re  N)r1  rf   rf   r  )r1  rf   rf   r2  )r  rf   r2  r  r  r  )r  r1  r7  )r1  r  r*  )r5  r1  r:  )r1  r  r7  )r  r1  r  r  r8  r  r  r5  )r   r   r   r$  r   r   )r   r   r  r!  rQ   rr  s   &     r9   r{  TestBSR.test_constructor1  s    y!	"W~"$ %Q#% &Q$& 'Q$& 'Q )Ii0772CD  $v!6V DS[[]A&   $v!67S[[]A&r;   c                   R F7  p\        V4      p\        V P                  V4      P                  4       V4       K9  	  \        R4      p\        V P                  VRR7      P                  4       V4       \        V P                  VRR7      P                  4       V4       \	        . R	O. R
O. RO.. RO. RO.4      p\        V P                  V4      P                  4       V4       \        V P                  VRR7      P                  4       V4       \        V P                  VRR7      P                  4       V4       \        V P                  VRR7      P                  4       V4       \        V P                  VRR7      P                  4       V4       \        V P                  VRR7      P                  4       V4       \        V P                  VRR7      P                  4       V4       \        V P                  VRR7      P                  4       V4       \	        . R	O. RO. R
O.. RO. RO.4      p\        V P                  VRR7      P                  4       V4       R# )r  r  re  Nr  )r  rZ  r  )r7  r  )r2  r)  r  )r  r  r`  r  r  r8  r  r  r  r  r<  )rf   r5  )r2  r5  rr  )r   r   r$  r   r   )r   r   rQ   s   &  r9   r  TestBSR.test_constructor2  s    BEeA++A.668!< B %LT''V'<DDFJT''V'<DDFJ)Ii0772CDT''*224a8T'''9AACQGT''V'<DDFJT''V'<DDFJT''V'<DDFJT''W'=EEGKT''W'=EEGKT''W'=EEGK)Ii0772CDT''V'<DDFJr;   c                    . RO. RO. RO33p\        ^^ .^^..4      p\        V P                  VRR7      P                  4       V4       R# )r  r  Nr'  rn  r  r`  )r   r   r$  r   )r   argrQ   s   &  r9   r  TestBSR.test_constructor30  sJ    '*+Aa5!A- T''v'>FFH!Lr;   c                &   ^p\         P                  ! W^3\         P                  R7      p\         P                  ! ^ V.\         P                  R7      p\         P
                  ! V\         P                  R7      pV P                  W$V3V^3RR7       R# )r*  r  F)r  rX  N)rI   rr  r   r   rY   r   r$  )r   rH  r!  r   r  s   &    r9   r  TestBSR.test_constructor46  sk     wway01a&1))ARXX.D62q!f5Qr;   c                p   ^p\         P                  ! V4      p\         P                  ! WV34      p\         P                  ! ^ V.4      p\         P                  ! V4      p\	        \
        4      ;_uu_ 4        V P                  W%V34       RRR4       \	        \
        4      ;_uu_ 4        V P                  W5V3RR7       RRR4       \	        \
        4      ;_uu_ 4        V P                  W5V3RR7       RRR4       R#   + '       g   i     L|; i  + '       g   i     LZ; i  + '       g   i     R# ; i)r*  Nr  rR  r  )rI   rr  r   r   r@  rA  r$  )r   rH  	data_1dimr!  r   r  s   &     r9   r  TestBSR.test_constructor5?  s    GGAJ	wway!1a&!))A,:&&	F;< ' :&&v6)L ' :&&v6&I '& '& '& '&&s$   6C>)DD$>D	D!	$D5	c                J   ^.^..^.^...p\         P                  ! ^ ^.\         P                  R7      p\         P                  ! ^ ^.\         P                  R7      pV P                  WV3RR7      pVP                  \         P                  ! V4      P                  8X  g   Q hR# )r  r  r  Nr  )rI   r   rY   r$  r>   )r   rG   r   r  rS   s   &    r9   test_default_dtypeTestBSR.test_default_dtypeS  s    3*sQCj)1a&1((Aq628FKww"((6*00000r;   c                0   \        . RO4      p\        . RO4      p\        R4      p\        . RO. RO.4      V^ &   \        . RO. R	O.4      V^&   \        . R
O. RO.4      V^&   \        . RO. RO.4      V^&   \        . RO. RO. RO.. RO. RO.4      pV P                  W2V3RR7      pVP	                  4       pVP                  4       P	                  4       p\        VP                  4       V4       \        VP                  4       VP                  4       4       R# r  )r   r   r   r$  r  r  r   r   )r   r   r  r!  rQ   AbsrAcsrAcsr_via_coos   &       r9   test_bsr_tocsrTestBSR.test_bsr_tocsr[  s    |$%Y"$ %Q#% &Q$& 'Q$& 'Q ,l;Y')!!4&"9!Izz|zz|))+T\\^Q'T\\^\%9%9%;<r;   c                   \        . RO^^.^^..4      P                  pVP                  R^^4      p\        . RO4      p\        . RO4      pV P	                  WV3RR7      pVP                  4       pVP                  4        \        VP                  ^4       \        VP                  4       VP                  4       4       R# )r  re  Nr  r
  r  r  )r  r:  )
r   ro  r  r   r$  rX  r  r   r  r   r  s   &     r9   r  TestBSR.test_eliminate_zerosr  s    ,!uaUm<>>||Bq#01y!  $!8 Ghhj377C(3;;=#++-8r;   c                p   \         P                  P                  ^ 4       V P                  \         P                  P                  R4      RR7      p^ VP                  VP                  R8*  &   VP                  4        \        VP                  ^B4       \        VP                  P                  R4       ^ VP                  VP                  R8*  &   VP                  4        \        VP                  ^ 4       \        VP                  P                  R4       \        VP                  4       \         P                  ! R4      4       VP                  4        \        VP                  ^ 4       \        VP                  P                  R4       \        VP                  4       \         P                  ! R4      4       R# )	r1  r  g?r  N)r5  r5  r  )rw  rf   r2  rL  )rI   r   r[  r$  r!  r  r   r  r   r   r   r   r  s   & r9   test_eliminate_zeros_all_zero%TestBSR.test_eliminate_zeros_all_zero~  s   
		qryy//9VL !"qvv}	QUUB166<<4 !"qvv}	QUUA166<<3199;(:; 	
QUUA166<<3199;(:;r;   c                   \         P                  ! . RO. RO. RO.4      pV P                  V4      p\        RVP                  4       \         P                  ! ^ ^ .4      p\         P                  ! W^ ,          .4      p\         P                  ! ^ ^.4      pV P                  WCV34      P                  4       p\        RVP                  4       \        VP                  \        4      '       g   Q hVP                  4        \        RVP                  4       \        ^\        VP                  4      4       V P                  WCV34      P                  4       pRVn        \        RVP                  4       \        ^\        VP                  4      4       VP                  4        \        ^\        VP                  4      4       RVn        VP                  4        \        ^\        VP                  4      4       \        RVP                  4       V P                  V4      pRVn        \        RVP                  4       \        ^\        VP                  4      4       VP                  4        \        RVP                  4       V P                  V4      pWCVuVn        Vn
        Vn        \        RVP                  4       \        ^\        VP                  4      4       V P                  V4      pVP                   WCVuVn        Vn
        Vn        \        RVP                  4       \        ^\        VP                  4      4       VP                  4        \        ^\        VP                  4      4       R# )r  TFN)rf   r2  rf   )r1  rf   r  )r  r1  rf   )rI   r   r$  r   r  rX  rH   rB  r  r   r  r!  r   )r   rQ   r  r  r!  r   s   &     r9   r  !TestBSR.test_has_canonical_format  s    HHiJ78q!T1112((Aq6"xxaC!1a&!v67<<>UA223!00$7777	T1112QAII' v67<<>!%T1112QAII'	QAII'!&	QAII'T1112 q!!&UA223QAII'	T1112 q!&*V#	18UA223QAII' q!	&*V#	18T1112QAII'	QAII'r;   c                   V P                  \        ^x4      P                  ^^4      RR7      p\        VP                  ^,          4      P                  R^4      p\	        W,          VP                  4       V,          4       R# rf   r  N)r  r  r
  r$  r   r  r   r   r   rV  s   &  r9   test_bsr_matvecTestBSR.test_bsr_matvec  s]    vg66s3?5Q1771:&&r!,QUAIIK!O,r;   c                   V P                  \        ^x4      P                  ^^4      RR7      p\        VP                  ^,          ^,          4      P                  R^4      p\	        W,          VP                  4       V,          4       R# r  r  rV  s   &  r9   test_bsr_matvecsTestBSR.test_bsr_matvecs  sa    vg66s3?5Q1771:a< ((A.QUAIIK!O,r;   FzBSR does not have a __getitem__ry  c                    R # r=   ra   r   s   &r9   r  TestBSR.test_iterator  r}  r;   zBSR does not have a __setitem__c                    R # r=   ra   r   s   &r9   ri  TestBSR.test_setdiag  r}  r;   c                P   \         P                  ! . RO. RO. RO.4      pV P                  VRR7      p\        VP	                  R4      RJ 4       \        VP                  4       ^^ .^^ .^^ ..4       VP	                  R4       \        VP                  4       ^^ .^^ ..4       VP	                  R4       \        VP                  4       ^^ .^^ .^ ^ ..4       VP	                  R	4       \        VP                  4       . R
O. RO. RO.4       \        \        VP                  R4       R# )r  r  Nr\  r]  r^  r  r_  r`  r>  r  r8  r  )	rI   r   r  r   ra  r   r   r@  rA  r  s   &  r9   test_resize_blockedTestBSR.test_resize_blocked  s   HHl""$ % NN1N/ D()199;!Q*+Q*+Q)1 	2 	
199;!Q*+Q)1 	2	199;!Q*+Q*+Q)1 	2 	
199;)5)5)7 	8 	j!((F3r;   c                    R # r=   ra   r   s   &r9   r_  "TestBSR.test_setdiag_comprehensive  r}  r;   zexceeds memory limitr  c                   \         P                  ! ^\         P                  R7      p\         P                  ! ^ \         P                  R7      p\         P                  ! R4      pV P                  W2V3RR7      pV P                  W2V3RR7      pV P                  R4      pV P                  R4      p\	        VP
                  P                  \         P                  4       \	        VP
                  P                  \         P                  4       \	        VP
                  P                  \         P                  4       \	        VP
                  P                  \         P                  4        \         P                  ! R4      p\         P                  ! R4      p	V P                  WV3RR7      p
V P                  WV3RR7      p\	        V
P
                  P                  \         P                  4       \	        VP
                  P                  \         P                  4       WEWgW3 F  pW,            K  	  R#   \        \        3 d    ^ p
^ p L-i ; i)	rf   r  re  Nrn  r  r  )r1  r  r  )r1  r  r  )
rI   r   rY   r$  r   r   r>   rg   MemoryErrorrA  )r   r   r  ri  rM   rS   r  r0  vals2vals3r  r  r?   s   &            r9   r  TestBSR.test_scalar_idx_dtype  s    !288,((1BHH-xx	"v6lKv6jI|,z*QXX^^RXX.QXX^^RXX.QXX^^RXX.QXX^^RXX.
	HH_-EHH]+E""EF#;<"PA""EF#;:"NA22 a#AEE $ Z( 	AA	s   (B2H0 0IIra   N)#r   r   r   r   r%   r  rI   r  r  r  r5  r{  r  r  r  r  r  r  r  r   r  r  r
  rF  rm  r  r  ri  r  r_  skipifIS_COLABr  r   r   r   s   @r9   r  r    s     I77BJJ6K'.K0MRJ(1=.	9<.7(r-
-
 [[5)JK L [[5)JK L4. [[5)JK L [[)?@ Ar;   r  )rP  rQ  rR  rS  rT  rX  c                       ] tR tRt]tRtR# )TestBSRMatrixi  ra   N)r   r   r   r   r   r  r   ra   r;   r9   r  r    r6  r;   r  c                   VP                  RR4      p\        P                  ! V P                  \        P                  4      '       g6   \        P                  ! V P                  \        P
                  4      '       d!   Vf   V 3V,           # V 3V,           V3,           # V ^ 8H  P                  4       pV P                  ^^ R7      p V R;;,          ^,          uu&   ^V R&   V^ ,          P                  ^ 8  dz   \        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p^V^ ,          ,          3VR,          ,           p^V^ ,          ,          ^,           3VR,          ,           p^ W&   ^ W&   \        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pVf   V 3V,           # V 3V,           V^,          3,           # )	z-Duplicates entries to produce the same matrixr   Nr  :NNrf   :r  Nrf   c              3   2   "   T F  q^ ,          x  K  	  R# 5irF  ra   ).0ps   & r9   	<genexpr>&_same_sum_duplicate.<locals>.<genexpr>;  s     ,)QaDD)s   r  c              3   B   "   T F  qP                  ^4      x  K  	  R# 5i)rf   N)r  )r   r  s   & r9   r"  r#  A  s     7$w""$s   )
poprI   rl   r>   r  unsignedintegerro  r  rk   rp  )r!  indsrA   r   	zeros_pospospos1pos2s   &*,     r9   _same_sum_duplicater,  (  s`   ZZ$'F	}}TZZ**	}}TZZ!3!344>7T>!7T>VI--##%I ;;qq;!DINIDJ |1e,),ee,),,#a&{SW$#a&
}s2w&

57$7557$77D~w~w~!--r;   c                     a a ] tR tRt oRR/V 3R llt]P                  P                  RR7      R 4       t]P                  P                  RR7      R	 4       t	]P                  P                  R
R7      R 4       t
RtVtV ;t# )_NonCanonicalMixiniI  sorted_indicesFc               l  < \         SV `  pV! V.VO5/ VB pVP                  4       ^ 8H  P                  4       pV^ ,          P                  ^ 8  pV'       d   V^ ,          P                  ^,          p	\
        P                  ! 4       ;_uu_ 4        \
        P                  ! R\        \        4       V P                  Wg^ ,          V	,          V^,          V	,          4      pRRR4       V P                  Wb4      p
RV9  d   VP                  VR&   V! V
3/ VB pVP                  \        P                  \        P                   39   d   RpMRp\#        VP                  4       VP                  4       VR7       V'       d'   \%        VP&                  ^ 8H  P)                  4       4       V#   + '       g   i     L; i)z[Replace D with a non-canonical equivalent: containing
duplicate elements and explicit zerosrS  Nr   gh㈵>gHz>)rtol)superr  r   ro  rk   rU  rV  rR  rS  r(   _insert_explicit_zero_arg1_for_noncanonicalr   r>   rI   r  r  r   r   r!  r  )r   r
  r/  ru  rA   	constructr  zero_pos	has_zerosr  arg1NCr1  r  s   &&$*,        r9   r  _NonCanonicalMixin.spcreatorJ  sS    G%	a)$)&)IIK1$--/a[%%)	  !#A((**''$8OP..q1+a.(1+a.Q + **1=& ggF7Ot&v& 88

BLL11
 DD

aiik= RWW\&&() 	3 +*s   AF##F3	z"bool(matrix) counts explicit zerosr  c                    R # r=   ra   r   s   &r9   rI  _NonCanonicalMixin.test_boolo  r}  r;   z!getnnz-axis counts explicit zerosc                    R # r=   ra   r   s   &r9   r<  #_NonCanonicalMixin.test_getnnz_axiss  r}  r;   znnz counts explicit zerosc                    R # r=   ra   r   s   &r9   r  _NonCanonicalMixin.test_emptyw  r}  r;   ra   )r   r   r   r   r  rF  rm  rG  rI  r<  r  r   r   __classcell__)r  r   s   @@r9   r.  r.  I  s     # #J [[AB C [[@A B [[89 : r;   r.  c                   0   a  ] tR tRt o RR ltR tRtV tR# )_NonCanonicalCompressedMixini|  c                &   \        VP                  VP                  VP                  R7      w  r4pV'       gX   \	        WUR,          4       FA  w  rgWFV RRR1,          P                  4       WFV% W6V RRR1,          P                  4       W6V% KC  	  W4V3# )5Return non-canonical constructor arg1 equivalent to M)r   r  Nr
  )r,  r!  r  r   r  rX  )r   r  r/  r!  r  r   startstops   &&&     r9   r4  3_NonCanonicalCompressedMixin._arg1_for_noncanonical}  s     3AFFAII;<88!Ev"6":6&-D&9$B$&?&D&D&Fd##'d#3DbD#9#>#>#@4   7 f$$r;   c                    ^ WV3&   V# r  ra   r   r  r  rI  s   &&&&r9   r3  2_NonCanonicalCompressedMixin._insert_explicit_zero  s    A#r;   ra   N)F)r   r   r   r   r4  r3  r   r   r   s   @r9   rC  rC  |  s     % r;   rC  c                      a  ] tR tRt o R tR t]P                  P                  RRR7      R 4       t	]P                  P                  RRR7      R	 4       t
R
tV tR# )_NonCanonicalCSMixini  c                z   a  V 3R  lp\          F)  pR F   pV! \        P                  ! V4      V4       K"  	  K+  	  R# )c                 V  < \        . RO. RO. RO. RO.V R7      pS	P                  W!R7      pVP                  w  rE\        V) V4       F3  p\        V) V4       F  p\	        W6V3,          W&V3,          4       K!  	  K5  	  R F$  p\        \        \        3VP                  V4       K&  	  R# )	r  r  )r/  Nr  r  r  r  r  )	r   r  r   rL  r   r@  rb  r  r  )
r>   r/  r
  rQ   r  r  r  rI  rs  r   s
   &&       r9   rC  3_NonCanonicalCSMixin.test_getelement.<locals>.check  s    w  (-.A q@A''CAA2q\r1A Q3Q30 & " Cz95q}}bI Cr;   N)FTr  )r   rC  r>   r/  s   f   r9   r  $_NonCanonicalCSMixin.test_getelement  s1    	J  &E"/bhhuo~6 #0 &r;   c                   \         P                  ! ^4      pV P                  V4      pV P                  . RO.4      pVP                  4       VR&   \        P
                  ! 4       ;_uu_ 4        \        P                  ! R\        \        4       W2R&   RRR4       \        VP                  4       V4       VP                  4       P                  4       VR&   \        P
                  ! 4       ;_uu_ 4        \        P                  ! R\        \        4       VP                  VR&   RRR4       \        VP                  4       V4       R#   + '       g   i     L; i  + '       g   i     L?; i)r2  rS  Nr'  r  r  )rI   r&   r  r   rU  rV  rR  rS  r(   r   r  ro  )r   r
  rQ   rR   s   &   r9   test_setitem_sparse(_NonCanonicalCSMixin.test_setitem_sparse  s    FF1INN1NNG9%#$$&&##Hd4KLcF ' 	199;*""$#$$&&##Hd4KLSSAcF ' 	199;* '& '&s   ,%E10EE	E(	Fz(inverse broken with non-canonical matrixry  c                    R # r=   ra   r   s   &r9   r  _NonCanonicalCSMixin.test_inv  r}  r;   z&solve broken with non-canonical matrixc                    R # r=   ra   r   s   &r9   r  _NonCanonicalCSMixin.test_solve  r}  r;   ra   N)r   r   r   r   r  rS  rF  rm  r  r  r  r   r   r   s   @r9   rM  rM    sc     7*+" [[5)ST U [[5)QR Sr;   rM  c                       ] tR tRtRtR# )TestCSRNonCanonicali  ra   Nr   r   r   r   r   ra   r;   r9   rZ  rZ        r;   rZ  c                       ] tR tRtRtR# )TestCSRNonCanonicalMatrixi  ra   Nr[  ra   r;   r9   r^  r^    r\  r;   r^  c                       ] tR tRtRtR# )TestCSCNonCanonicali  ra   Nr[  ra   r;   r9   r`  r`    r\  r;   r`  c                       ] tR tRtRtR# )TestCSCNonCanonicalMatrixi  ra   Nr[  ra   r;   r9   rb  rb    r\  r;   rb  c                      a  ] tR tRt o R t]P                  P                  RRR7      R 4       t]P                  P                  RRR7      R 4       t	R	t
V tR
# )TestBSRNonCanonicali  c                f    VP                  4       p^ WBV3&   VP                  VP                  R7      # )r1  r  )r  r)  r  )r   r  r  rI  r?   s   &&&& r9   r3  )TestBSRNonCanonical._insert_explicit_zero  s-    GGIA#www--r;   Fz&diagonal broken with non-canonical BSRry  c                    R # r=   ra   r   s   &r9   r#  !TestBSRNonCanonical.test_diagonal  r}  r;   z"expm broken with non-canonical BSRc                    R # r=   ra   r   s   &r9   r  TestBSRNonCanonical.test_expm  r}  r;   ra   N)r   r   r   r   r3  rF  rm  r  r#  r  r   r   r   s   @r9   rd  rd    s^     .
 [[5)QR S [[5)MN Or;   rd  c                       ] tR tRtRtR# )TestBSRNonCanonicalMatrixi  ra   Nr[  ra   r;   r9   rl  rl    r\  r;   rl  c                   6   a  ] tR tRt o RR ltR tR tRtV tR# )COONonCanonicalMixini  Nc                h    \        VP                  VP                  VP                  4      w  r4pW4V33# )rE  )r,  r!  r"  r#  )r   r  r/  r!  r"  r#  s   &&&   r9   r4  +COONonCanonicalMixin._arg1_for_noncanonical  s-    ,QVVQUUAEEB33Zr;   c                   \         P                  VP                  P                  P	                  ^ 4      VP                  3,          Vn        \         P                  VP
                  P                  P	                  V4      VP
                  3,          Vn        \         P                  VP                  P                  P	                  V4      VP                  3,          Vn        V# r  )rI   r_r!  r>   r  r"  r#  rJ  s   &&&&r9   r3  *COONonCanonicalMixin._insert_explicit_zero  s    qvv||((+QVV34aeekk&&q)15501aeekk&&q)15501r;   c                :   V P                  \        P                  ! ^4      4      pVP                  4        VP	                  ^^.^R7       VP                  4        \        \        P                  ! \        P                  ! VP                  4      ^ 8  4      4       R# )r2  r  N)	r  rI   r&   r  rT  r   r`  r  r#  r  s   & r9   test_setdiag_noncanonical.COONonCanonicalMixin.test_setdiag_noncanonical  sf    NN266!9%				1a&A		rwwquu~*+,r;   ra   r=   )	r   r   r   r   r4  r3  ru  r   r   r   s   @r9   rn  rn    s      
- -r;   rn  c                       ] tR tRtRtR# )TestCOONonCanonicali  ra   Nr[  ra   r;   r9   rx  rx    r\  r;   rx  c                       ] tR tRtRtR# )TestCOONonCanonicalMatrixi  ra   Nr[  ra   r;   r9   rz  rz    r\  r;   rz  c                     \         P                  ! . RO.4      p \         P                  ! ^.^ .^..4      p\         P                  ! . RO. RO.4      p\         P                  ! ^..4      p\         P                  ! ^ ..4      p\         P                  ! . RO.4      p\        \        \        \
        3 EF&  pV! V 4      P                  R4      pV! V4      P                  R	4      pV! V4      P                  R4      p	V! V4      P                  R
4      p
V! V4      P                  R4      pV! V4      P                  R4      p\        VP                  4       \         P                  ! V R4      4       \        VP                  4       \         P                  ! VR	4      4       \        V	P                  4       V4       \        V
P                  4       \         P                  ! VR
4      4       \        VP                  4       \         P                  ! VR4      4       \        VP                  4       \         P                  ! VR4      4       \        P                  ! \        RR7      ;_uu_ 4        V! . RO. RO.4      P                  RR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V! . RO.4      P                  RR7       RRR4       EK)  	  R#   + '       g   i     L_; i  + '       g   i     EKR  ; i)r  zcannot be broadcastr  re  Nr  r  r8  r  r>  rc  r  r  )r  rf   r1  rd  r  r  r_  )rI   r   r   r   r   r    _broadcast_tor   r   broadcast_torF  r   rA  )rM   rS   r  r0  r  r  	containerres_ares_bres_cres_dres_eres_fs                r9   test_broadcast_tor    s   
)A
1#sQC!A
)Y'(A
1#A
1#A
)A )ZC	!**51!**51!**51!**51!**51!**515==?BOOAu,EF5==?BOOAu,EF5==?A.5==?BOOAu,EF5==?BOOAu,EF5==?BOOAu,EF]]:-BCCy),-;;&;I D ]]:-BCCyk"00v0> DC# D DC DCCs   (K3K1K.1Lr=   )NFNNF)T)	TTTTTTTTT)r#  
contextlibr   r  r<  r  sysrU  rF  r   r@  numpyrI   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   numpy.testingr   r   r   r   r   r   numpy.exceptionsr   typesr   scipy.linalgr   r(  r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   scipy.sparse._baser+   scipy.sparse._sputilsr,   r-   r.   r/   r0   scipy.sparse.linalgr1   r2   r3   r   r  r:   rB   	frozensetrg  rS  rT   r   r   r   r   r   r  r.  rp  r  rm  thread_unsafer  r  r0  rZ  contextmanagerr  r  r  r  r  r  r7  rL  r\  r^  rr  r;  r  r  r  r  rE  r5  r8  rf  rh  r  r  r  r  r  r  r  r,  r.  rC  rM  rZ  r^  r`  rb  rd  rl  rn  rx  rz  r  ra   r;   r9   <module>r     s        
   *       ,   C C C C C C
 (F F / /ckk)/
'
 %eW- ((Wt$ $6"$ "$H 4 D^ 7 ^ 7BA| |~a+ a+H "56% % 7%0@ @F
OK OKd\0 \0~ B Bk$ k$\%C %CP_K _KD`0 `0FL5 L5^
2 2:8%'X), ),Xc& 1 3 c&L	    /L' /)    P 1 3 Pf    /L' /    _Buu= _BDL'         mu- m`L'         qM qMfkt(,T/3$HL%U.3E5:P        	)U7ueE/45',u> U7pL'         _u(-e/45).0 _D	L'         .B0 0f#5  -7 -`	. 		 3] 		. 		 3] 	6 	 3] 	-- -(	. 		 4m 	?r;   