+
    nDjLx                       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<H=t= ^ RI>H?t? ^ R	I@HAtAHBtBHCtCHDtDHEtE ^ R
IFHGtGHHtHHItI R]P                  9   tKR}R ltLR tM]N! R.4      tORtPR tQR~R ltRR 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 ! R  R!4      tZ]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       tb ! R- R.4      tc ! R/ R04      td ! R1 R24      te ! R3 R44      tf ! R5 R64      tg ! R7 R84      thRR: ltiRR; ltj ! R< R=4      tk ! R> R?]k]j! 4       4      tl]lP                  4         ! R@ RA]W]l4      tnRB to]nP                  4         ! RC RD]k]j! 4       4      tp]pP                  4         ! RE RF]W]p4      tq]qP                  4         ! RG RH]j! RRRI7      4      tr ! RJ RK]W]r4      ts]rP                  4        ]sP                  4         ! RL RM]j! RRN7      4      tt ! RO RP]W]t4      tu]tP                  4        ]uP                  4         ! RQ RR4      tv ! RS RT]v]j! R9R9R9R9R9RU7      4      tw ! RV RW]W]v]j! RRRRRRU7      4      tx]wP                  4        ]xP                  4        RX ty ! RY RZ]j! RRRRRRRR[7      4      tz ! R\ R]]W]z4      t{]zP                  4        ]{P                  4         ! R^ R_]j! RRRRRRR`7      4      t| ! Ra Rb]W]|4      t}]|P                  4        ]}P                  4        Rc t~ ! Rd Re4      t ! Rf Rg]4      t ! Rh Ri]4      t ! Rj Rk]]l4      t ! Rl Rm]]n4      t ! Rn Ro]]p4      t ! Rp Rq]]q4      t ! Rr Rs]]|4      t ! Rt Ru]]}4      t ! Rv Rw]4      t ! Rx Ry]]w4      t ! Rz R{]]x4      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matrix_transpose)_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
collectionr6   messages   &&& V/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/sparse/tests/test_base.py	assert_inr;   5   s%    _cVJnZN*SGF g.    c                 b    \        V P                  VP                  8H  4       \        W3/ VB  R # N)r   dtyper   )xykwargss   &&,r:   assert_array_equal_dtyperC   :   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   &  r:   _underlying_arrays3sparse_may_share_memory.<locals>._underlying_arraysF   sM     ""$A!RZZ"**455a  % r<   TF)rJ   may_share_memory)ABrO   rN   bs   &&   r:   sparse_may_share_memoryrU   C   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   rJ   iinfomaxint32r   intc)rM   maxvalcheck_contentstps   &&& r:   new_get_index_dtype4with_64bit_maxval_limit.<locals>.new_get_index_dtypef   s^     @B"))288BHH+=+A+ABB"((N33bBGGm4Ir<   c                    < S# r>    )rM   r\   r]   fixed_dtypes   &&&r:   r_   r`   l   s	    r<     c                 p   < \         P                  \         P                  3SP                  ^4      ,          #    )rJ   rZ   int64integers)rM   r\   r]   rngs   &&&r:   r_   r`   p   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>   )
rJ   rZ   rh   r   r?   size
issubdtypeintegerrY   min)rM   r\   r]   r?   arrminvalmaxval_limits   &&&   r:   r_   r`   s   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)rY   AssertionErrorastyperJ   intp)rp   downcast_maxvals   &r:   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)rL   getattrsetattr)rN   kwmodnameoldfuncbackuprw   funcmodulesrx   r_   s   *,   r:   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   rw   rx   r_   s   f @@r:   	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<   )rb   NF)rJ   rh   randomdefault_rng)	rr   r   rc   rw   assert_32bitr   rx   r_   rj   s	   f&ff& @@@r:   with_64bit_maxval_limitr   W   s     xx| xx-	
 
	 	 		ii##D)	9 	9	* "	'
@ r<   c                     \        V \        P                  4      '       g   \        V 4      '       d   V # V P	                  4       # r>   )rI   rJ   r	   r.   toarray)rN   s   &r:   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 rightrb   selfmats   &&r:   __add__BinopTester.__add__       $r<   c                    R # r   rb   r   s   &&r:   __mul__BinopTester.__mul__   r   r<   c                    R # r   rb   r   s   &&r:   __sub__BinopTester.__sub__   r   r<   c                    R # matrix on the leftrb   r   s   &&r:   __radd__BinopTester.__radd__       #r<   c                    R # r   rb   r   s   &&r:   __rmul__BinopTester.__rmul__   r   r<   c                    R # r   rb   r   s   &&r:   __rsub__BinopTester.__rsub__   r   r<   c                    R # r   rb   r   s   &&r:   
__matmul__BinopTester.__matmul__   r   r<   c                    R # r   rb   r   s   &&r:   __rmatmul__BinopTester.__rmatmul__   r   r<   rb   N)__name__
__module____qualname____firstlineno__r   r   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r:   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   &&r:   __init__BinopTester_with_shape.__init__   s    r<   c                    V P                   # r>   r   r   s   &r:   r   BinopTester_with_shape.shape   s    {{r<   c                ,    \        V P                  4      # r>   )lenr   r   s   &r:   ndimBinopTester_with_shape.ndim   s    4;;r<   c                    R # r   rb   r   s   &&r:   r   BinopTester_with_shape.__add__   r   r<   c                    R # r   rb   r   s   &&r:   r   BinopTester_with_shape.__mul__   r   r<   c                    R # r   rb   r   s   &&r:   r   BinopTester_with_shape.__sub__   r   r<   c                    R # r   rb   r   s   &&r:   r   BinopTester_with_shape.__radd__   r   r<   c                    R # r   rb   r   s   &&r:   r   BinopTester_with_shape.__rmul__   r   r<   c                    R # r   rb   r   s   &&r:   r   BinopTester_with_shape.__rsub__   r   r<   c                    R # r   rb   r   s   &&r:   r   !BinopTester_with_shape.__matmul__   r   r<   c                    R # r   rb   r   s   &&r:   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   @r:   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 # )eqrb   r   others   &&r:   __eq__ComparisonTester.__eq__       r<   c                    R # )nerb   r   s   &&r:   __ne__ComparisonTester.__ne__   r   r<   c                    R # )ltrb   r   s   &&r:   __lt__ComparisonTester.__lt__   r   r<   c                    R # )lerb   r   s   &&r:   __le__ComparisonTester.__le__  r   r<   c                    R # )gtrb   r   s   &&r:   __gt__ComparisonTester.__gt__  r   r<   c                    R # )gerb   r   s   &&r:   __ge__ComparisonTester.__ge__  r   r<   rb   N)r   r   r   r   r   r   r   r   r   r  r   r   r   s   @r:   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   &r:   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   &r:   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# )   rZ   r?   float64int16float32
complex128N)
	spcreatorr   reshaper   asfptyper?   rJ   formatru   r   r   rR   rS   Cs   &   r:   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<   rb   N)r   r   r   r   __doc__r   bsr_containerr   coo_containerr   csc_containerr   csr_containerr   dia_containerr   dok_containerr   lil_containerstaticmethodr0   asdenser  r  r"  r   r   r   s   @r:   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 tg]2Pf                  P                  RP4      RQ 4       tiRR tjRS tkRT tlRU tmRV tnRW toRX tpRY tqRZ trR[ tsR\ ttR] tuR^ tvR_ twR`txV tyRa# )b_TestCommoni2  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	      r2  rg   )   r2  r	  r2  )r2  rg   r2  r2  )r   r  r  r  setr-   unionmath_dtypeschecked_dtypes
dat_dtypesdatsp_dtypesru   r   rJ   r  r   rI   r)   is_array_test)clsr?   s   & r:   
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)r9  assert_raises
ValueErrorboolr   r  )r?   r  r   s   & r:   check$_TestCommon.test_bool.<locals>.checkX  sL    %%e,E*dE2DNNQC5)*u--.r<   z%Cannot create a rank <= 2 DOK matrix.N)rI   TestDOKpytestskipr7  r   rD  r?   s   f  r:   	test_bool_TestCommon.test_boolW  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   &   r:   test_bool_rollover_TestCommon.test_bool_rolloverd  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
  r2  )warningscatch_warningssimplefilterr(   r   r8  r9  copyr  r%  r(  r'  r+  rC   r   rJ   nan)
r?   r  r  dat2datsp2datbsrdatcsrdatcscdatlilr   s
   &        r:   rD  "_TestCommon.test_eq.<locals>.checkq  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  rG  rH  r7  rI  s   f  r:   test_eq_TestCommon.test_eqo  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rS  )rV  rW  rX  r(   r   r8  r9  rY  r  r%  r'  r(  r+  rC   r   rJ   rZ  )
r?   r  r  r[  r\  r]  r_  r^  r`  r   s
   &        r:   rD  "_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#	rb  Nrc  rg  rI  s   f  r:   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# )rd  rb  FTNrc  )r  r  rG  rH  Tr   s   &r:   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rT  invalidNrU        ?      ?)rg   r	  r2  r  rV  rW  rX  r(   r   r8  r9  rY  r  ru   complexr%  r'  r(  r+  rC   r   rJ   rh   errstaterZ  r?   r  r  r[  r\  
datcomplexdatspcomplexr]  r_  r^  r`  valr   s   &           r:   rD  "_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&	rb  Nrc  rg  rI  s   f  r:   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ru  rz  r}  s   &           r:   rD  "_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  rb  Nrc  rg  rI  s   f  r:   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rT  NrU  rx  )rg   r	  r  ry  rV  rW  rX  r(   r   r8  r9  rY  r  ru   r{  r%  r'  r(  r+  rC   r   rJ   rh   r}  s   &           r:   rD  "_TestCommon.test_le.<locals>.check9     ((**%%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/	rb  Nrc  rg  rI  s   f  r:   test_le_TestCommon.test_le8  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   &           r:   rD  "_TestCommon.test_ge.<locals>.checkq  r  r  rb  Nrc  rg  rI  s   f  r:   test_ge_TestCommon.test_gep  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8w  d9   \        V P                  R4      P                  ^ R7      \        . RO4      4       R# R# )r3  diaaxisNr3  r3  r2  r2  r2  )	r   r  r   r   nnzcount_nonzeror  r  r   r   s   &r:   
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 8g  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match)Nr2  r	  r  ry  )	r  r  rp  rJ   r  r   r   rA  NotImplementedError)r   axis_supportaxesrR   axexpecteds   &     r:   test_count_nonzero_TestCommon.test_count_nonzero  s    zz((E1'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  r3  r3  r  r  r  )rA  rB  r  r   s   &r:   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	  r  (1 diagonals) rd  (blocksize=1x1)  r   r1   < sparse  of dtype ''
	with  stored elements 
and shape >Nr	  r2  r2  r  r2  r2  ry  )r  r  r,   r:  r?   r  r   reprr   r  extrarN  fmt
sparse_clsr  s   &      r:   	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?   rY  r  z'positional argument|unpack non-iterabler  N)   r3  )r  rJ   r   r  r  r   strsplitr  r  rG  r   	TypeError)r   r  r  	nnz_small	datsp_mp6s   &    r:   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  rd  r  r  r   r1   r  r  r  r  r  r  z(>
  Coords	Values
  (0, 0)	1
  (2, 2)	-2r  r  r  )r  r  r  r,   r:  r?   r   r  r  s   &      r:   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  rZ   r  r  	complex64r  r  Nr  r  )rJ   r?   r  tocsctocsrtocoor   r   )
r   r   mytyperN   rT   cr1  efms
   &         r:   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	  r1  Nr  r2     r2  r2  r	  r2  r  )r   r   absr  r   r   rR   s   & r:   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@r1  )decimals)ndigitsNggQ)r   r   rJ   aroundroundr  r   )r   decimalrR   s   &  r:   
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# )   r1  N)r  ry  r  r2  r	  rg   r3  r  )r   r   rJ   powerr  r   rA  r  r  s   & r:   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	  r1  Nr  r  r  r  )TFF)FFT)r   r   r  r   rA  r  __neg__r  s   & r:   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   DrR   s   &  r:   	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   &  r:   	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	  r2  rg   r2  r2  r	  )r2  r2  rg   r2  r3  r2  r	  rg   r3  r  i)(   i?  r2  r2  )   r2  r2  r  )rL   r   r   r   r  rM  r   diagonalr   rJ   r   empty)r   matsr  rowscols
sparse_matr  s   &      r:   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	  rg   r3  r  r  r  )      	   ry  r  )rJ   r   r  rM  r   trace)r   rR   rS   r  s   &   r:   
test_trace_TestCommon.test_traceO  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rY  zhas no setter|n't set attributer  N)r	  r2  r'  r  r  )r2  r2  r  )r!  F))   r	  )r	  r3  r2  
   r2  r2  r2  r2  r2  r2  r2        r  rg   r  )r2  r5  r2  r2  r2  r2  )r2  r2  r2  r8  r9  r  rg   r  )r  r  r  r3  r  )r  r   r  r   rA  rB  r  r   r   r:  AttributeErrorrl   )r   r@   r/  srA   desireds   &     r:   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# r2  N)rJ   r   ro   r   r   r   r   rp  )rN   vr  nr  jdense_setdiags   &&&   r:   rH  =_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	  rl   rT  Nz	{msg} {r}err_msgr  )r   rJ   r   r   choicerM  randintrV  rW  filterwarningsWMSGr(   setdiagr   r   r   ro   r   )rN   rT   r  rrE  r1  rF  rH  s   &&&    r:   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
rd   r  rK  N)r  r  r2  r	  r  r  r	  r  )rJ   r   seedr   r  r   r   r  rN  ro   r   )r   rT  shapesr?   r  rF  ksr  rN   rT   k2rH  s   &          @r:   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)r3  rT  r  Nrg   NNr  r  )r3  rg   r	  )r3  r3  r2  )r2  rg   rg   r  ry  r3  r2  r	  )r)  r2  rg   rg   r2  r2  r2  r	  r2  )r2  r2  r2  r	  )r  rJ   r&   rV  rW  rP  rQ  r(   rA  rB  rR  r   r  r   r   )r   r  m2rH   s   &   r:   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	  r2  r	  r2  r	  r	  r  )r   r  r
   nonzerotupler   r   rR   AspijA_nzAsp_nzs   &     r:   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 rj  )r   r  r
   rJ   rm  rn  r   ro  s   &     r:   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# )	rd   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  rT  overNr  ry  r  r2  r	  )
r-  r  rJ   r|  r   sumr   r?   r   isscalar)r?   rG  r  r  matricesr   s   &&  r:   rD  #_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r2  r	  rg   r3  r  r  r'  r)  )r  r  )rJ   r   rY  r   randr   r   r   r7  rM  r   )
r   dat_1dat_2dat_3dat_4dat_5rD  r?   rG  r  s
   f        @r:   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	  r3  r  r  r  r2  r3  )	rJ   r   r   r  rA  rB  r  r  meanr   r  r  r  s   &   r:   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# )r2  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   &  r:   rD  )_TestCommon.test_sum_dtype.<locals>.check-  s=    ggEg*G			.I%g9	8r<   Nr  r  r  r   r  r7  r   rD  r?   r  r  s   &  @@r:   test_sum_dtype_TestCommon.test_sum_dtype'  sH    Y! " s#	9 ((E%L )r<   c           	        \        R R.RR..4      pV P                   EF  pVP                  V4      pV P                  V4      p\        P
                  ! 4       ;_uu_ 4        \        P                  ! R\        R7       V P                  '       g   \        P                  ! V4      pRRR4       V P                   EFX  p \        P                  ! RR7      ;_uu_ 4        VP                  VR	7      pRRR4       \        P                  ! RR
7      ;_uu_ 4        TP                  TR	7      pTP                  TR	7      p\        Y4       \        TP                   TP                   4       TP                  ^ TR7      pTP                  ^ TR7      p\        Y4       \        TP                   TP                   4       TP                  ^TR7      pTP                  ^TR7      p\        Y4       \        TP                   TP                   4       RRR4       EK[  	  EK  	  R#   + '       g   i     EL; i  + '       g   i     ELJ; i  \         d     EK  i ; i  + '       g   i     EK  ; i)333333?ffffff?皙??rT  )categoryNraise)allr  r|  r  r?   )r   r7  ru   r  rV  rW  rP  PendingDeprecationWarningr:  rJ   r1   r|  r  	Exceptionr   r   r?   )	r   base_datinput_dtyper  r  output_dtyperN  r  r  s	   &        r:   test_sum_dtype_pair_of_dtypes)_TestCommon.test_sum_dtype_pair_of_dtypes7  s    3**& '  ..K//+.CNN3'E((**'';TU)))))C.C +
 !% 3 311GG,G7 2 [[h//!ggLg9G %			 =I#I7 '--@ "gg1LgAG %		q	 EI#I7 '--@ "gg1LgAG %		q	 EI#I7 '--@! 0/ !4 / +** 211  
 0//sJ   !AH?IH2	1IC2I	H/2I=IIIII+c                   V P                  R R.RR..4      p\        V P                  '       d   ^ ^ .M^ ^ ..4      p\        V P                  '       d   ^ ^ .M^ .^ ..4      p\        VP	                  \
        R7      ^ 4       \        VP	                  ^ \
        R7      V4       \        VP	                  ^\
        R7      V4       R# )r  r  r  r  r  r  N)r  r   r:  r   r  int)r   r  correct_rest_correct_ress   &   r:    test_sum_dtype_fractional_to_int,_TestCommon.test_sum_dtype_fractional_to_intc  s     c
* & ' d&8&8&8QF1vhG(:(:(:q!f!qc
KUYYSY)1-UYYASY1;?UYYASY1=Ar<   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)r2  r  keepdimsr  r  r  r  r  zoutput parameterr  Nr  r  r  r3  r3  r	  )
r:  r   r  r1   r  r   rJ   r   rA  rB  r   keepr  r  dat_out	datsp_outs   &     r:   test_sum_out_TestCommon.test_sum_outp  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# r2  Nr  r  r  )r   r  rJ   r  r   r   r?   )r   r  r  r  r  s   &    r:   test_numpy_sum_TestCommon.test_numpy_sum  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# r2  r  Nr  r  r  )
r   r  r.   r  r:  r	   rJ   r1   rI   r  )r   r  r  matrix_or_arrays   &   r:   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# )r2  r  Nr  r  r  r  )r3  r  r  )r  r'  r)  ry  r  r~  )	r   r  r   r  r   r?   r   rJ   r  )r?   r  r  r  r   s   &  r:   rD  $_TestCommon.test_mean.<locals>.check  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)r:  r7  )r   rD  r?   r  s   f  @r:   	test_mean_TestCommon.test_mean  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-  rJ   r   r   r  rA  rB  r  r  r  s   &   r:   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# )r2  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   &  r:   rD  *_TestCommon.test_mean_dtype.<locals>.check  s?    xxex,H%0J%h;)9)9:r<   Nr  r  r  r  r  s   &  @@r:   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)r2  r  r  r  r  z"output parameter.*wrong.*dimensionr  Nr  r  r  r  r  )
r:  r   r  r1   r  r   rJ   r   rA  rB  r  s   &     r:   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  rJ   r  r   r   r?   )r   r  r  r  r  s   &    r:   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?   rT  &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  r2  r2  r3  r  r  r  r  )      @              ?)r         @r  )r  r  r  )r   floatr  r   linalgr3   rV  rW  rP  r(   r   r   r   )	r   MsMMexpNsNNexpsMexpsNexps	   &        r:   	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	  rT  r  r  r  r  Nr  r  r  r  )r   rV  rW  rP  r(   r  r4   r   r   r   rJ   r&   rA  r  )r?   r  r  sMinvr   s   &   r:   rD  #_TestCommon.test_inv.<locals>.check8  s    y)Z8%@A((**''D+
 ''2+	 ''<+
 ^^AU%^@B% +& &eiim&;&;&=rvvayI)S!,) +*s   A4DD	N)r  rI  s   f  r:   test_inv_TestCommon.test_inv7  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
rT  r  r  Nr  r  )r2  r  r2  r  )r  r2  r2  )r2        @r2  )	rV  rW  rX  r   r   r   r  r   ru   r  s   & r:   test_from_array_TestCommon.test_from_arrayR  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  )	rV  rW  rX  r   r-  r   r  todenseru   r  s   & r:   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  )	rV  rW  rX  r   r   r  r   r   ru   r  s   & r:   test_from_list_TestCommon.test_from_listn  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  )
rV  rW  rX  r   r   r(  r   r  r   ru   r   r  Ss   &  r:   test_from_sparse_TestCommon.test_from_sparse|  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!  r.  r2  r  r  Nr  r  r  r  r  r        @)r  r  rI   r:  rJ   r	   r1   r   r  r   flagsc_contiguousf_contiguousr   r   r?   rQ   r-  r   rp  r  rC  ru   )
r   chkr  rN   dense_dot_denserD  rT   check2spboolmatbools
   &         r:   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!  r.  r2  r  r  r  .Nr  r  )r   r  r  r   r   r   r  r  r  rJ   r   r   r?   r   r   r  rC  ru   )r   r  r  r  rN   r  rD  rT   r  r   arrbools   &          r:   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)rT  TFr1  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# )r2  Nr2  )r}   r   r   r   )	attributerN   rT   r  b_iS_castedS_copieds   &    r:   (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<   coor  Ny       @      @r2  r2  r2  y      @      @r2  r  )TFrf  re  rd  )indicesindptrdata)rowcolr7  )offsetsr7  )rV  rW  rX  r   r   r  r-   ru   r   r?   r   r  r   )
r   r  r  r@   D_castedrY  r/  r+  r-  r.  s
   &       @@r:   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)rT  r7  FNr2  r3  r  r4  )rV  rW  rX  r   r   r  hasattrr7  r  	writeabler  r6  r5  r-   ru   r   r?   )r   r  r  r@   r;  r-  s   &     r:   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# rg   L1@Nr8  r9  r   r   r?   r  r  r   s   &  r:   rD  *_TestCommon.test_mul_scalar.<locals>.check  sW    //%(C%%e,Es1uuQw&7&7&9:s4x%*)=)=)?@r<   Nr6  rI  s   f  r:   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# rE  rG  rH  s   &  r:   rD  +_TestCommon.test_rmul_scalar.<locals>.check*  sW    //%(C%%e,Equqw&7&7&9:tCx$u*)=)=)?@r<   NrJ  rI  s   f  r:   test_rmul_scalar_TestCommon.test_rmul_scalar)  rM  r<   c                    V P                   \        P                  ,          p\        \        4      ;_uu_ 4        R V,           R R R 4       R #   + '       g   i     R # ; ir>   )r9  rJ   r  rA  r  )r   r  s   & r:   test_rmul_scalar_type_error'_TestCommon.test_rmul_scalar_type_error5  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  Nrc  )r8  r9  rY  r   r   r  r?   r  r  rN   rT   r  r   s   &     r:   rD  #_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<   NrJ  rI  s   f  r:   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# rX  )r8  r9  rY  r   r   rY  s   &     r:   rD  $_TestCommon.test_radd.<locals>.checkQ  sS    //%(C%%e,E
AAcFAAqaiik/2r<   NrJ  rI  s   f  r:   	test_radd_TestCommon.test_raddP  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# )r3  r1  Nr<  r	  r2  r2  r  r  r2  r2  r2  r2  r(  r2  r  )r8  r9  r   r   rJ   r   r  r   r?   r  r  rR   r   s   &   r:   rD  #_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<   rC  Nr6  rJ   r?   rI  s   f  r:   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# )r2  r1  r  Nr6  rd  re  rf  )r8  r9  r   r   r  rg  s   &   r:   rD  $_TestCommon.test_rsub.<locals>.checkw  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<   rC  Nri  rI  s   f  r:   	test_rsub_TestCommon.test_rsubv  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 rD  )r8  r9  r   r   r  rM  r   )r?   r  r  r  sumSsumDr   s   &     r:   rD  $_TestCommon.test_add0.<locals>.check  s    //%(C%%e,E 	224c:5A;7;aE		;78Dq!5AC56D5 85s   B;C NrJ  rI  s   f  r:   	test_add0_TestCommon.test_add0  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  rf  N)r  r2  r)  )rg   r  r  )r2  r'  r2  )r2  r  r2  )re  r  rd  y      ?       y              @y              y      @      y            @r  y      @       @y      @      y             ?y              y             @r)  )r   r  r  multiplyr   r   )
r   rR   rS   rp  Bspout_fmtr!  r  CspDsps
   &         r:   test_elementwise_multiply%_TestCommon.test_elementwise_multiply  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  r2  )r'  r)  r  )r(  r  r3  )r  r3  rg   )r  r  r  r%  r<  rD  r
  r2  N)r   rJ   onesrp  r  r   rB  rA  r}  r   r  r'   )r   rR   rS   r!  r  Er2  GHJKLr~  r  EspFspHspHsppJspJsppKspr  
spmatricesr  rG  
dense_multsp_mults   &                          r:   #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	  r1  r        ?g      ?rT  )divideN)r  rw  rd  re  rf  r  ry  rz  r{  r|  r%  )r  rg   r	  r  )r2  ry  r3  )
rJ   rZ  r   r   r  r  r   r   r   r|  )r   r  denomrR   rS   rp  r~  s   &      r:   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	  r2  rg   r2  )r2  r3  r  r2  )r2  r  r2  r2  )r2  r  r'  r(  )r	  rg   皙@r3  r  r  )Nr3  Nr
  r2  r	  rg   r3  )r  r  r  )r   r  r:  r   r   r   r?   rA  r  __pow__rB  rJ   r  matrix_powerr  )r   rR   rS   exponentret_spret_nps   &     r:   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# )r3  Nr3  r2  r2  r2  r	  r2  rg   r2  r  rg   r3  r2  r  )r  r   r   r   r   )r   r  r8  s   &  r:   test_rmatvec_TestCommon.test_rmatvec4  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	  r2  r3  r2  )r  r   r'   r   r   r   rJ   r  r  s   & r:   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  )rJ   r   r  r:  r   r  r   r   )r   rR   rp  s   &  r:   -test_star_vs_at_sign_for_sparray_and_spmatrix9_TestCommon.test_star_vs_at_sign_for_sparray_and_spmatrixF  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   rR   rS   s   &  r:   test_binop_custom_type"_TestCommon.test_binop_custom_typeS  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   &  r:   !test_binop_custom_type_with_shape-_TestCommon.test_binop_custom_type_with_shaped  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>.Customir  c                    Wn         R # r>   scalar)r   r  s   &&r:   r   9_TestCommon.test_mul_custom_type.<locals>.Custom.__init__s  s    $r<   c                &    WP                   ,          # r>   r  r   s   &&r:   r   9_TestCommon.test_mul_custom_type.<locals>.Custom.__rmul__v  s    {{**r<   r  N)r   r   r   r   r   r   r   r   r   s   @r:   Customr  r  s     %+ +r<   r  N)r  rC   r   r   r  )r   r  r  rR   r  A_scalarA_cs   &      r:   test_mul_custom_type _TestCommon.test_mul_custom_typeq  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   &  r:   test_comparisons_custom_type(_TestCommon.test_comparisons_custom_type  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# )r3  Nr  r  r  r  )r  r   r   r   r   )r   r  r  actualr  s   &    r:   test_dot_scalar_TestCommon.test_dot_scalar  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# )r3  r1  Nr  r  r  r  r%  )	r  r   rp  operatormatmulr   r   rA  rB  )r   r  rS   r9  r  s   &    r:   test_matmul_TestCommon.test_matmul  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# )
r3  Nr  r  r  r  r%  )r  )r  r	  r  )r  r   rp  r   r   r   r   r1   r   rI   r	   r:  rJ   rA  rB  r   r   r   
atleast_2d)r   r  r9  r  bad_vecsr@   s   &     r:   test_matvec_TestCommon.test_matvec  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# )r3  r1  g333333?Nr  r  r  r  )r1   r   r  r   r   r  r  r  r   rY  r   rM  rp  rA  rB  r   r:  r   )r   rN   a2rT   aspbspcspr  wantr  fracrR   r  rG  rS  rS   s   &               r:   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# )r3  Nr  r  r  r  r  rg   )r  r   r1   r   rI   r:  r	   typer   r   r   )r   rN   r  bsrT   results   &     r:   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<   z3ignore:.*switching.*sparse array:DeprecationWarningc                @   \         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  r2  r3  r  )r  r2  r2  )rd  r1  re  rf  r  rD   lil)r   dense)r   r   r   r  asformatr   r  r   )r   rR   r  r  rN   rT   r  s   &      r:   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  r6  r2  r2  r  r  r  r3  r2  r  )rd  )r	  rg   r3  r  )r	  rg   r3  r  r  r3  )r   r   r  r}   r   r   )	r   r@   rA   rR   rp  r  fnXYs	   &        r:   
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                  P                  4       VP                  P                  4       4       \	        \        V4      P                  4       VP                  P                  4       4       \        \        VP
                  ^ R7       S P                   F&  p\        \        S4      4       F  pV! WV4       K  	  K(  	  R# )c                 8  < \        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
                  P	                  4       V4       \        \        V4      P	                  4       V4       \        VP                  VP                  4       R# )r  r  Nr  )	r   r  r
   r   r   mTr+   r   r?   )r?   rG  r  r  rN   rT   r  r   s   &&    r:   rD  )_TestCommon.test_transpose.<locals>.check4  s    51CNN3'E!AAqyy{A.q{{}446<uF;CCEqIuxx//115/6>>@!D!''*r<   r  Nr<  r  r3  )r  rJ   r   r  r   r
   r   r   rp  r	  r+   rA  rB  r7  rM  r   )r   r  r  rD  r  r?   rG  r  s   f      @r:   test_transpose_TestCommon.test_transpose/  s    ">	+ v&2<<.668<<f6	8577??,eFm<588++-uww/@A+E2::<eggoo>OP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>   )r8  r9  r   r?   r  r  sum1sum2r   s   &    r:   rD  )_TestCommon.test_add_dense.<locals>.checkP  sI    //%(C%%e,E ;Dt3Y/;Dt3Y/r<   NrJ  rI  s   f  r:   test_add_dense_TestCommon.test_add_denseO  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>   )r8  r9  r?   rC  r   r  s   &    r:   rD  )_TestCommon.test_sub_dense.<locals>.check_  s    //%(C%%e,E yyD {"4s3{"4s3 	C50"4s3-4"4s3r<   rC  Nri  rI  s   f  r:   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   rT  zTTaking (maximum|minimum) with a (positive|negative) number results in a dense matrixNr  )rJ   rm   complexfloatingr  ru   r  rB  rV  rW  rP  r(   maximumminimumr   r   r   r?   )r?   dtype2btyperR   rS   max_smin_smax_dmin_dA_denseA_dense_cpxB_denser   s   &&&      r:   rD  /_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	  r2  r3  )r2  r  r  r  )r	  r	  rg   )r2  r3  r  r  )r2  y      @       @r  )r2                ?y             )r  r  r  r   )rJ   r   r6  r   r  r  r?   )r   rD  r?   r!  r"  r'  r(  r)  s   f    @@@r:   test_maximum_minimum _TestCommon.test_maximum_minimumx  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# )Tr1  Fr  N)	r  r   rY  r  	__class__r   r}   r   rU   )r   rR   toselfs   &  r:   	test_copy_TestCommon.test_copy  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-  rJ   r   r  r  zipr   r   )r   rS   rR   r@   rA   s   &    r:   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# )r2  Nr  r~  r  r  rV  )r   r  rJ   r  r  r   r   r   rA  rB  r}  r   )r   r   rN   rT   r  r1  r  r  r  r  r  dspespfsps   &             r:    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# )r2  Nr  r  rV  )r   r  r  r   r  r   r  r  toliltodoktobsr)r   r   rN   rT   r  r  spms   &      r:   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)rF  r2  g?r  )rJ   r   float16rA  rB  r  ru   r  )r   rN   A32s   &  r:   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# )r2  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)rT  )protocolN)rV  rW  rX  r(   r  rY  rM  HIGHEST_PROTOCOLloadsdumpsr   r   r   r   r  rG   itemsrI   rJ   r	   rn  r   )r  rM  sploadedkeyr  pickler   s        r:   rD  &_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	)rT  )r   rD  rT  s   f @r:   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)rD   r  )rG  rH  r  r  r}   rJ   r  r   r  r   r   )r   ufuncr  X0X2r   s   &    r:   rD  5_TestCommon.test_unary_ufunc_overrides.<locals>.check2	  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rintrZ  expm1log1pdeg2radrad2degfloorceiltruncsqrtr  rb   )r   rD  r   s   f  r:   test_unary_ufunc_overrides&_TestCommon.test_unary_ufunc_overrides1	  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	  r2  r3  r  rg   r2  r2  r2  r3  r2  r2  r2  r3  rg   rg   rg   r  r  )rg   r2  r2  r  )r1  rf  ))r  rg   r;  r%  )rJ   r   r  r   resizer   r   r:  r  rA  rB  r  
IndexError)r   r  r  	bad_shapes   &   r:   test_resize_TestCommon.test_resizeF	  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# )Fr1  )r?   rY  TN)rf  re  r1  r  rD   r  )r  r  r/  rC   r   NON_ARRAY_BACKED_FORMATSr   rU   r?   rJ   r  r   r  )r   rR   self_formatr!  other_formatrS   s   &     r:   test_constructor1_base"_TestCommon.test_constructor1_baseo	  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<   rb   N)zr   r   r   r   r$  r-   r6  r%   r%  r"   r&  r   r'  r    r(  r$   r)  r!   r*  r#   r+  r   r-  classmethodr<  rJ  rO  rh  rm  rq  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r!  r+  r@  rG  markslowr]  rg  rt  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r&  r<  rA  rK  rQ  rT  r[  r`  rj  ro  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rP  r  r  r  r  r  r,  r1  r6  r<  rC  rI  rV  rq  r|  r  r   r   r   s   @r:   r/  r/  2  su    @"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(" *AXB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+ [[ UV( W(2
D @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# )_TestInplaceArithmetici	  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)r3  inconsistent shapesr  Nzdimension mismatchunsupported operandr<  )rJ   r  r  rY  r   r:  rA  rB  rp  r   r   r  )r   rN   rT   r@   rA   s   &    r:   test_inplace_dense)_TestInplaceArithmetic.test_inplace_dense	  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)castingrF  N	r8  r9  rJ   can_castr  rY  r   r   r  r?   r  r  rN   rT   r   s   &    r:   rD  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<   NrJ  rI  s   f  r:   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# r  r  r  s   &    r:   rD  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)r6  rJ   r  r?   r  rI  s   f  r:   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  r  r  N)r  rJ   r&   r   r   r:  rA  r  )r   rN   rT   bps   &   r:   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	rb   N)
r   r   r   r   r  r  r  r  r   r   r   s   @r:   r  r  	  s     0d.2 r<   r  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  r3  r2  r2  rg   r2  r  r  r  r  )r  r2  r  )r  r  r%  )
r   r  r   rM  r   r  rA  rz  r  __getitem__)	r?   r  rR   r  r  r  rG  rq  r   s	   &       r:   rD  *_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-   rJ   r?   rI  s   f  r:   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)r3  r  rT  r  r  Ng     ^@r<  r  r	  rg   r~  rd  r2  r  r  ry  )r2  r  r2  r(  )r2  r2  r  r2  )rg   r2  r'  r2  ))r2  r  )r  r  r  r<  r  r%  )r  )r  rV  rW  rP  rQ  r(   r  rJ   bool_r   r   rA  rz  __setitem__r   rB  rm   r  r  )r?   scalar_containerrR   rq  rE  r   s   &&   r:   rD  *_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    rJ   r   r@   s   &r:   <lambda>-_TestGetSet.test_setelement.<locals>.<lambda>D
  s    i1#0r<   c                     V # r>   rb   r  s   &r:   r  r  D
  s    ar<   N)rJ   r   r-   r?   )r   rD  scalar_containersr  r?   s   f    r:   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)r3  r  rT  N)r3  r5  )r2  r  )r  rV  rW  rP  rQ  r(   r   r?   rR   r   s   & r:   rD  9_TestGetSet.test_negative_index_assignment.<locals>.checkM
  s^    we4A((**''$8OP% + 51% +*s   &A55B	Nri  rI  s   f  r:   test_negative_index_assignment*_TestGetSet.test_negative_index_assignmentJ
  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 ; rT  NrL  )r  rV  rW  rP  rQ  r(   r   r  )r  rG  nitemsr6   rR   r  rF  r   s   &&&  r:   	_test_set3_TestGetSet.test_scalar_assign_2.<locals>._test_setZ
  s    EQEVJ/C1v&A((**''$8OPQ$ +  =Q$C8	 +*s   'B!!B1	Nrg   r3  r  r  r(  ry  r  )r   r   r  r  rG  r  rF  s   f   @@r:   test_scalar_assign_2 _TestGetSet.test_scalar_assign_2W
  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  rT  Nr  r~  r  
r  rJ   r   rV  rW  rP  rQ  r(   r   r   r   s   &   r:   test_index_scalar_assign$_TestGetSet.test_index_scalar_assignh
  s    NN6"HHV$$&&##Hd4KLV###  ' 	199;* '&s   :B##B3	rb   N)r   r   r   r   r  r  r  r  r  r   r   r   s   @r:   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# )
_TestSolveit
  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)r8  r  r+  rT  r  N)rJ   r   rY  r   r{  r  rM  r   r   r  rV  rW  rP  r(   r2   solver   )r   rF  rR   r@   rA   rS  r  s   &      r:   
test_solve_TestSolve.test_solvev
  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	rb   N)r   r   r   r   r  r   r   r   s   @r:   r  r  t
  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# )_TestSlicingi
  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	  r5  )r2  r	  r  N)r   r  rJ   r  r?   rZ   r  r  r   s   &r:   test_dtype_preservation$_TestSlicing.test_dtype_preservation
  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# )r3  r  Nrw  )r
  r2  r2  rg   )r  r
  )r2  r  )r  r2  rJ   r  rZ   r  r  r  r   r?   r   dtrR   s   &  r:   #test_dtype_preservation_empty_slice0_TestSlicing.test_dtype_preservation_empty_slice
  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
  rg   r  Nr	  r3  NNr  r	  r
  )r	  r  r	  rg   r	  r  r2  r  r  r  r	  r  r  r2  r2  ry  )r-  r   r  r  r:  r   r   rA  rz  r  slice)
r   rS   rR   r0r1r2r!  r  r  r2  s
   &         r:   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  r2  )r
  r	  r  r  r  r  r  r	  r
  rg   rk  r  ry  )r   r  r  r:  r   r   r   rA  rz  r  r  )
r   rS   rR   c0c1c2r!  r  r  r2  s
   &         r:   test_get_vert_slice _TestSlicing.test_get_vert_slice
  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  :r2  r3  Nr  rk  r  r  r  r	  rg   Nr  )r
  r  )r   r  r  r   r   r   )r   rS   rR   r  r2  s   &    r:   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)r4  feature not implementedN):r2     rg   :rg   r9  r3  )	rJ   r   r  r  rB  rG  rH  r   r   )r   v0rE  s   &  r:    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# )r4  r
  r	  r  NNr  NNr  r  r  ry  r  )rg   r
  r  )r3  r  Nr)  )r  r  r  )r  NNr3  NN):Nr  Nr  r  )ry  r
  rg   r  Nr
  r
  r  )	r-  r   r  r  r   r   r   r  r   )r   rS   rR   r>  s   &   r:   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# )r4  r`  r  r  r3  Nrg   :r  r8  N:r3  rg   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# r2  Nrb   )r   r   r  rl   r   r   )rN   r@   rA   rR   rS   s   &  r:   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  )
rI   rJ   r	   r  r   r   r  rl   r   r   )rN   rT   aibir@   rA   rR   rS   s   &&    r:   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  ry  r  r  )
Nr2  r	  rg   r  r  r  ry  r  i)r-  r   r  r  rJ   s_r   r   	enumerate	itertoolsproductrL   r  )r   r"  slicesr  rG  rN   r   r  rT   extra_slicesr  rR   rS   s   &          @@r:   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# )r4  Nr  )Nr	  r  )Nr	  rg   Nr  )Nr	  r  r@  )Nr	  r
  )r	  Nr
  )r	  r
  N)r5  r	  )Nr  rg   )r  Nrg   rg   r	  )r  rg   N)r	  Nr  )r	  r  N)r  rg   rf   )r	  r  )Nr	  rg   )r	  )r	  Nrg   )r	  rg   N)r-  r   r  r  r   r   r:  r   rS   rR   s   &  r:   test_None_slicing_TestSlicing.test_None_slicingQ  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)r4  .zindex .5. out of ranger  Nzindex .10. out of range).)r  .).r  ).r  )r  .).r5  )r  .).r  )r`  .).r`  )r  .).r  )r  NN.).r0  )r5  NN.).r1  )r  r	  .)r	  .r  ).r	  r  )r`  r	  .)r	  .r`  ).r	  r`  )r	  r	  .)r	  .r	  )r-  r   r  r  r   r   rG  r   rz  rp  r   r   rT   rN   s   &  r:   test_ellipsis_slicing"_TestSlicing.test_ellipsis_slicingu  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)r4  F.shape mismatchr  N)TFTFT)r-  r   r  r  r   r   rA  rz  )r   numpy_arN   ix5ix10
ix10_6Truefull_ixs   &      r:   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# )r4  .N)r-  r   r  r  r   r   r2  s   &  r:   test_ellipsis_fancy_slicing(_TestSlicing.test_ellipsis_fancy_slicing  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  rG  r   rz  r   rN   s   & r:   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=	rb   N)r   r   r   r   r  r  r  r  r  r
  r  rG  r  	fail_slowr(  r-  r3  r<  r?  rC  r   r   r   s   @r:   r  r  
  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  rT  r  Nr  ):r2  r	  Nr	  ):r3  r2  Nr2  )r  r2  )r2  r  r  r  r   s   &   r:   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=rT  NrL  )
r  rV  rW  rP  rQ  r(   rJ   r   r   r   )r  rG  r6   rR   rS   r  rF  r   s   &&   r:   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	Nry  )r  r   r  s   f   @@r:   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  rT  Nr  r  r  r+  r  r2  r
  )Nr	  NrR  r
  r
  Nr2  r
  r  )r  rV  rW  rP  rQ  r(   r   r   rJ   r   rp  r,  s   &  r:   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  rT  Nr  r5  r2  r2  )r2  r2  r  )r2     r2  r  r  r  r+  rS  )r`  r`  )
r  r   rV  rW  rP  rQ  r(   r   r   r'  )r   rS   r  blocks   &   r:   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  rT  r  Nr  r  r  r+  r  r  r  r  rX  )r  rV  rW  rP  rQ  r(   r(  rJ   r&   r   r   r   )r   rS   r  s   &  r:   "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  r`  r  r  r  Nr
  r  rT    r  r5  r  ry  r  r  )r2  :r	  r5  rg   r
  N):r	  r  rg   r2  r  r%  r  r  )r  r	  r3  r	  rg   r  )r2  r	  r3  r  )r  r   r   r  rJ   r"  r   rV  rW  rP  rQ  r(   r#  r   r   r  rM  r   rA  rB  r  listr  rY  rz  )	r   rR   rS   r"  r&  rG  rN   r  rT   s	   &        r:   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# )rg   Nr  r  )r	  r`  r	  r	  r	  r  )r  rJ   r  r   r   r  s   &  r:   test_assign_empty$_TestSlicingAssign.test_assign_emptyR  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# )r3  Nr  rU  r  rl  r  )r  rJ   r  r   r   r   r   rR   r@   s   &  r:   test_assign_1d_slice'_TestSlicingAssign.test_assign_1d_sliceZ  sJ    NN2776?+HHQK$$199;Iy(IJr<   rb   N)r   r   r   r   rI  rN  rU  r[  r^  rf  rj  rn  r   r   r   s   @r:   rG  rG    s7     +"G,;&2+(Z@K Kr<   rG  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# )_TestFancyIndexingib  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# )r3  r  r
  FNrw  )FFFr  r  s   &  r:   #test_dtype_preservation_empty_index6_TestFancyIndexing.test_dtype_preservation_empty_indexg  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 dimensionr6  Nrg   rv  r%  r  )r  rJ   r   rA  rz  r  r  )r   rR   idxs   &  r:   test_bad_index!_TestFancyIndexing.test_bad_indexq  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)r4  r
  r  r  r1  rR  z"Only 1D or 2D|>2D is not supportedr  Nr  r  r  )rg   r(  r3  r  r  r  ry  r  r  )r-  r   r  r  r   r   r   r  rG  r   rz  r  r   rJ   r  )r   rS   rR   r>  r  s   &    r:   test_fancy_indexing&_TestFancyIndexing.test_fancy_indexingx  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# )rd   r  rK  N)rJ   r   rY  r-  r  r}  rO  r  r'   r   r   rA  rz  r  )r   NUM_SAMPLESr  r  r  Ir  r  SIJI_badJ_bads   &          r:   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  rJ   r  rC  r$  r%  r  rI   rG  r   rz  )r   r  r  rS   rR   row_long	row_shortcol_long	col_shortr  r  rG  rN  s   &            r:   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# )rd   rK  r  r
  TNrb  )TFTTF)
FTTFTFFFFF)r     r  )r  r2  )rJ   r   rY  r-  r   r  r  r   rO  rC  r   r   r   rA  rz  r  rB  )	r   rS   rR   r  r  r  Z1Z2Z3s	   &        r:   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# )rd   rK  r  Nrb  )r  r  )r  r5  )rJ   r   rY  r-  r   r  r  r   rO  rC  r(  r   r   rA  rz  r  rB  )	r   rS   rR   r  XspZr  ZspYsps	   &        r:   "test_fancy_indexing_sparse_boolean5_TestFancyIndexing.test_fancy_indexing_sparse_booleanH  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   rJ   ravelr  r   r   )r   r   desired_colss   &  r:   #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   rA  rB  r  rJ   r   s   & r:   test_fancy_indexing_seq_assign1_TestFancyIndexing.test_fancy_indexing_seq_assignd  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	  rT  N)	r  r   rV  rW  rP  rQ  r(   r   r   r   s   & r:   test_fancy_indexing_2d_assign0_TestFancyIndexing.test_fancy_indexing_2d_assignh  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# 	r4  r  Nr  r  r3  r  )FFFFFr2  r	  rg   r3  r  rc  	r-  r   r  r  rJ   r   r   r   r  r   rS   rR   r  r  s   &    r:   test_fancy_indexing_empty,_TestFancyIndexing.test_fancy_indexing_emptyp  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<   rb   N)r   r   r   r   r$  rs  ry  r|  r  r  r  r  r  r  r  r  r   r   r   s   @r:   rq  rq  b  sN     -N~=@<4,G@I.O
L<0 0r<   rq  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  r5  rY  sort_indicesr   )r  r5  s   & r:   check_remains_sortedr    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# )	_TestFancyIndexingAssigni  c                    V P                  \        P                  ! ^^.4      4      p\        \        \
        \        3VP                  R^4       \        \        \
        \        3VP                  R^4       R# )r  rv  Nrw  )r  rJ   r   rA  rz  rB  r  r  r  s   & r:   test_bad_index_assign._TestFancyIndexingAssign.test_bad_index_assign  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rT  N)r  r-  rJ   r   rV  rW  rP  rQ  r(   r  r   r   r  rG  rR   rS   r  rF  r   s   &&  r:   _test_set_sliceI_TestFancyIndexingAssign.test_fancy_indexing_set.<locals>._test_set_slice  s    1v&ARXXq!f-.A((**''$8OPQ$)!,,AdG - +
 &aiik15 -, +*s$   :CC	CCCC)	Nr  ry  )r  rd  )r  rJ   r   r   r  r  rG  r  rF  s   f   @@r:   test_fancy_indexing_set0_TestFancyIndexingAssign.test_fancy_indexing_set  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  rT  r  Nr  )r2  rg   Nr  rx  )	r  rV  rW  rP  rQ  r(   r  r   r  r  s   & r:   rD  D_TestFancyIndexingAssign.test_fancy_assignment_dtypes.<locals>.check  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  rI  s   f  r:   test_fancy_assignment_dtypes5_TestFancyIndexingAssign.test_fancy_assignment_dtypes  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  rT  Nr  r  r  r  r  )r2  r5  r8  rw  r  r  r&  r%  )r%  r  )r  r&   r   rV  rW  rP  rQ  r(   r  rp  r   r   r-  rJ   r   r   r  )r   rR   rS   i0i1i2r!  s   &      r:   test_sequence_assignment1_TestFancyIndexingAssign.test_sequence_assignment  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   &    r:   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<   rb   N)r   r   r   r   r  r  r  r  r  r   r   r   s   @r:   r  r    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	  rd   r1  Nr
  r3  r  rg   r%  r  r  r3  rg   r3  r	  )rJ   r   r   rY  r-  r  r  r  rL   r   r   rA  rz  r  r  )
r   IandJr  r  r  r  r  DIJr  r  s
   &         r:   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<   rb   N)r   r   r   r   r  r   r   r   s   @r:   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rd   Nr%  r  r  r  )rJ   r   rY  r-  r  r  r   r  r   r   rA  rz  r  )	r   r  r  r  r  r  r  r  r!  s	   &        r:   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  rV  rW  rP  rQ  r(   r-  rJ   r   r   r   r  s   &&  r:   r  R_TestFancyMultidimAssign.test_fancy_indexing_multidim_set.<locals>._test_set_sliceK  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%  r2  rg   r  )r2  r  r3  )r  r	  rg   )rJ   r   r  s   f   @@r:    test_fancy_indexing_multidim_set9_TestFancyMultidimAssign.test_fancy_indexing_multidim_setH  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  )rJ   r   rY  r-  r  r  r   r   rA  rz  r  )r   r  r  r  r  r  r  iir  rG  jjr  r!  s   &            r:   test_fancy_assign_list/_TestFancyMultidimAssign.test_fancy_assign_listY  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 )rd   N)r	  rg   r3  r3  r  rg   )r  r  r3  rg   r3  r	  )r	  rg   r3  r  r  r  r'  rc  )rJ   r   rY  r-  r  r  r   rA  rz  r  r  )r   r  r  r  r  r  r  r  r  C1C2s   &          r:   test_fancy_assign_slice0_TestFancyMultidimAssign.test_fancy_assign_slicev  s    
		tLL1-.NN1"#$!Ba!$"#$!Ba!$"YYq\'"j!--%t1ErJj!--%+u1ErJ %$s   ,DDrb   N)
r   r   r   r   r  r  r  r  r   r   r   s   @r:   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# )_TestArithmetici  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  rZ   )g      g      @r2        @r2  r2  )g      	@g     g      ?r2  r2  r2  )r2  r2        r  r2  r2  )r2  r2  g      @r2  r2  r2  )g      ?r2  r2  r2  r  g      @)g     ,@g      r2  r2  r  r2  )r2  g      @r2  r2  r2  r2  )g     2@      r2  r2  r2  r2  )g      ?r2  r2  r2  r  g      )r       @r2  r2  r2  g      @)r2  r  r2  r2  r2  r2  )r  r2  r2  r2  r2  r2  )r   r  r   ru   r  r  )r   _TestArithmetic__A_TestArithmetic__B_TestArithmetic__Asp_TestArithmetic__Bsps   &    r:   __arith_init_TestArithmetic.__arith_init  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)rT  rv  NrC  )_TestArithmetic__arith_initr   r   r-   rJ   r|  ru   r  rm   r  r  r   r?   r   r  r  r  r  r@   rR   rp  rA   rS   r~  D1S1s   &            r:   test_add_sub_TestArithmetic.test_add_sub  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)rT  rv  Ng+=)atol)r  r   rp  r   r-   rJ   r|  ru   r  rm   r  r  r   r  rY   r   r?   r  s   &            r:   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+rb   N)r   r   r   r   r$  r  rG  r  rE  r  r  r   r   r   s   @r:   r  r    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# )r8  r  TexplicitNr  iir  )r  r
  r  r2  r5  r5  r2  )rJ   r  r  rZ   rh   r  r   r  r  r   ro   rY   r?   r   r  rA  rB  )r   r?   r  r  r  s   &    r:   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# )r4  r  r  Tr  r  NFr  r
  r)  r  r  rx  ry  )
r  )   *   +   ,   -   .   /   0   r2  )
r8  r	  r  r3  r  r  r2  r'  r(  r2  )
r8  r	  r  r3  r  r  r  r'  r(  r2  )r(  r2     &   r  )r	  r2  r  r9  r  rX  r~  )r  r
  rQ  )Nr  r
  rT  )r
  r  rU  )r
  r  Nr  )r5  r  r  r  )r:  rJ   r   r  r  r   rY   r   ro   r   r-  anyr7  r   r   re  r$  r%  rA  rB  )r   r  r  r  	axes_evenaxes_oddr  r  expected_maxexpected_minexplicit_valueseven_explicit_pairsodd_explicit_pairsexs   &             r:   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  r:  r	   rJ   r1   r)   r*   r.   ro   rI   rY   nanminnanmaxargminargmax)r   r  r  r  spmatrix_or_sparrays   &    r:   test_minmax_container_type&_TestMinMax.test_minmax_container_type  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# )r4  r  r  Nr  r  r  r  rx  r  )r	  r  r~  )ry  r  r2  r	  )r-  rJ   r   r  r  rZ  r  r*  r  r)  r   r   rI   r&  )	r   r  r  X_nan_maximumX_nan_minimumr  r  X_nan_maximaX_nan_minimas	   &        r:   test_nanminmax_TestMinMax.test_nanminmax  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# )
r2  r  r  r  Nr  r  r  )ro   rY   r~  )r   r  r}   rA  rB  r  r   )r   r  r  fnamedatfuncr   s   &     r:   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# )r2  _dataNr  r  r  )
scipy.sparser>  r   r  rI   _minmax_mixinr   rJ   ro   rY   )r   r>  r  r  s   &   r:   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)r2  r=  r  Tr
  FNzCannot applyr  r  r  )r  r  rg   r3  )r2  r2  r  ry  )r  ry  r  r  r  )r	  rg   r2  r2  )r  r  r3  )r  r)  r5  )r3  r  r)  r  rV  )Nr2  r	  r~  r  )r3  r2  r3  r3  )r2  rg   rg   rg   )r	  rg   r2  r3  r	  )r2  r3  r3  r2  r2  rX  rx  )r?  r>  rJ   r   r
   r-  r  rI   r@  r   r,  r+  r  r$  r%  r   rG  r   rB  r:  r   r  r  r   )r   r>  r  D2D3D4D5r  r   D6D7	explicitsr  r%  r  r   r!  s   &                r:   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	rb   N)r   r   r   r   r  r&  r.  r5  r:  rA  rK  r   r   r   s   @r:   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# )r2  Nr  r  ry  r  )r   ru   rC  r  rJ   rZ   rh   r:  r  getnnzr   r  r;   r?   rA  rB  )r   r  bool_datr  accepted_return_dtypesrP  s   &     r:   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<   rb   N)r   r   r   r   rS  r   r   r   s   @r:   rN  rN  :  s     2 2r<   rN  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  rB  rz  r=  rG  rH  )rN   r   fcs   *,r:   r   6_possibly_unimplemented.<locals>.wrap.<locals>.wrapper`  sF    Aq<B<'+Y
"N4 A ++&?@@As	    7A)r   r   )rX  r   s   f r:   wrap%_possibly_unimplemented.<locals>.wrap_  s'    __R A !A Nr<   test_NotImplemented)dictrG   rQ  
startswithr  r   	__bases__)r;  requirerZ  new_dictr   r   s   &&    r:   _possibly_unimplementedrc  W  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.
r\  zTest class z overloads test z defined in TestBase)r/  rc  r  r  r  r  r  rG  rq  r  r  r  r  rN  rG   r_  getrB  r   r  )getsetslicingslicing_assignfancy_indexingfancy_assignfancy_multidim_indexingfancy_multidim_assignminmaxnnz_axisbasesnamesr;  r   old_clss   &&&&&&&&&     r:   sparse_test_classrs  s  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  rR  rJ   r  r  r  s   && r:   _test_setdiag_sorted%_CompressedMixin._test_setdiag_sorted  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  rg   r	  r  rJ   r   c_r)  rw  )r   r  valsdiagsN_newr:  r  s   &      r:   test_setdiag_noconvert'_CompressedMixin.test_setdiag_noconvert  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      # )rz  r  r{  r|  )r	  r0  r  r}  )r   r  r  r  r:  r  s   &     r:   test_setdiag_cooconvert(_CompressedMixin.test_setdiag_cooconvert  si    
 yyAE"j!D(e/v>((++r<   rb   N)	r   r   r   r   rw  r  r  r   r   r   s   @r:   ru  ru    s     	),", ,r<   ru  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  )rV  rW  rP  rQ  r(   r    r;  argsrB   s   &*,r:   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# )
r2  r1  rf  N)r2  r  r2  r  r  )r  r3  rg   rk  r  )r   r(  r   r7  r   r5  r6  r   r  r  r   r   rT   r  s   &  r:   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  r1  Nr  r  r<  )r2  r2  r2  r2  r	  r	  r	  )r   r(  r   r7  r   r5  r6  r   r  s   &  r:   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	  r1  Nr%  r  r  )r   r(  r   r7  r   r5  r6  r   r  s   &  r:   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# )rg   r  Nrg   r3  r	  r3  r2  r	  r3  r2  rg   r	  rg   r2  r	  r2  r2  r	  r	  rg   rg   rg   rg   r	        @g      $@r        "@r  r  g      &@r         @      @r  r             r	  r	  r	  r	  r2  rg   rg   r2  r2  r	  r	  r2  )
r   r   r(  r   r   r  r   rJ   uint64r  )r   r8  r9  r7  rq  rf  r  s   &      r:   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# r2  Nr2  r	  r3  r3  r2  r  r	  rg   r  r  )r   r(  r   r   r   r6  r5  r7  rf  s   &    r:   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   rJ   rm   r?   signedintegerr  s   &    r:   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  r{  r1  N)r	  rg   r	  r2  r2  rg   r2  rg   r  r  r  r  r  )r  r2  r  )r   r   rJ   rh   r(  r?   r:  rZ   r   r6  r5  r   r   )r   r7  r9  ptrrN   rT   expected_dtypes   &      r:   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   rJ   rX   rZ   rY   r   rh   r(  r   r6  r?   r5  r   r   )r   r7  larger9  r  rN   s   &     r:   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  r{  Nr'  rg   r	  r  r  r2  r3  r  rg   r5  r	  rg   r'  r  r  )r   r   r(  rY  r  r   r5  r   r   r7  r5  r6  r  r  s   &     r:   test_sort_indicesTestCSR.test_sort_indices6  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	  r{  Nr	  r2  r2  r2  rg   r2  r3  r2  r	  rg   r3  r  r  r  r'  r(  r2  r3  r(  r  r%  )r   r(  rY  eliminate_zerosr   r  r7  r   r  s   &     r:   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# )r8  r[  TNr`  ra  rb  rc  rd  re  rf  rg  rh  rZ  ri  rj  rk  rl  rm  rn  ro  rp  )r(  rJ   r   r  r   r?  r  r}   r   r   r5  r6  r   r   r  r  r^  s   &   r:   test_ufuncsTestCSR.test_ufuncsK      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  r{  Nr  r  r  r(  r	  r  r'  rg   r  r2  rg   r  )r   r   r(  r   r   r  s   &     r:   test_unsorted_arithmetic TestCSR.test_unsorted_arithmeticW      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	  rd   Nr  
rJ   r   r   rY  r-  r  r  r'   r   r   r   r  r  r  r  r  s   &     r:   test_fancy_indexing_broadcast%TestCSR.test_fancy_indexing_broadcastb      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)rJ   r   r(  rY  r   r  rI   rC  r  r   r5  )r   sorted_indsunsorted_indsr7  r6  r  s   &     r:   test_has_sorted_indicesTestCSR.test_has_sorted_indicesp  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_duplicatesTFrT  N)r2  r	  r	  r	  r  r~  r  rc  )rJ   r   r(  r   has_canonical_formatrY  rI   rC  sum_duplicatesr   r5  r7  r6  r   rV  rW  rP  rQ  r(   )r   info_no_dupsinfo_with_dupsr  Mchecks   &    r:   test_has_canonical_format!TestCSR.test_has_canonical_format  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# )rg   r  r{  Nr	  r	          rd  )rJ   r   rZ   r(  r   r6  r?   rh   r   r6  r5  r  rN   rT   rq  r  r1  r  r  r@   s   &           r:   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# )r2  Nr  r	  r	  r2  )r(  r  r}  r   rN   rT   s   &  r:   test_binop_explicit_zeros!TestCSR.test_binop_explicit_zeros  sX     	{+	{+{{azz!}  A%%%r<   rb   N)r   r   r   r   r  r  rJ   r  int_r  r  r6  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   s   @r:   r  r    s     . . 88RWWbjj"--@K
-44(,<+$59	9
J	K"58B(H0& &r<   r  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  )rV  rW  rP  rQ  r(   r   r  s   &*,r:   r  TestCSRMatrix.spcreator  @    $$&&##Hd4KLt.v. '&&&r  rb   Nr   r   r   r   r  r  r   r   r   s   @r:   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   rJ   r   rI   r   
__origin____args__r  s    r:   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  )rV  rW  rP  rQ  r(   r   r  s   &*,r:   r  TestCSC.spcreator  r  r  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	  r1  re  Nr	  r2  r2  r2  re  r2  rg   r2  r3  )r	  rg   r	  r3  )r2  rg   r	  rg   r  )r   r'  r   r7  r   r5  r6  r   r  r   r  r  s   &  r:   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  r1  Nr  rg   r  )r2  r2  r2  r2  r2  r	  r	  )r   r'  r   r7  r   r5  r6  r  s   &  r:   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	  r1  Nr  )r   r'  r   r7  r   r5  r6  r  s   &  r:   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# )	rg   Nr  r  r  r  r  r  r  )r   r   r'  r   r   r  r   r  )r   r8  r9  r7  rq  re  s   &     r:   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# r2  Nr  r  r  )r  r3  )r   r'  r   r   r   r6  r5  r7  re  s   &    r:   r  TestCSC.test_constructor54  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   rJ   rm   r?   r  r  s   &    r:   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	  r{  Nr  r  r  r5  rg   r%  )r   r'  rY  r  r   r  r7  r   r  s   &     r:   r  TestCSC.test_eliminate_zerosE  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  r{  Nr  r  r!  r  )r   r   r'  rY  r  r   r5  r   )r   r7  r8  r  r  r  s   &     r:   r  TestCSC.test_sort_indicesP  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'  rJ   r   r  r   r?  r  r}   r   r   r5  r6  r   r  s   &   r:   r  TestCSC.test_ufuncsZ  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  r{  Nr  r  r!  r  r  )r   r   r'  r   r   r  s   &     r:   r   TestCSC.test_unsorted_arithmeticf  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   &     r:   r  %TestCSC.test_fancy_indexing_broadcastq  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# )	rg   r  r{  N)r  r	  )r  r	  rd  r  r  )	rJ   r   rZ   r'  r(  r   r6  r?   rh   r  s   &           r:   r  TestCSC.test_scalar_idx_dtype  r  r<   rb   N)r   r   r   r   r  r  rJ   r  r  r  r  r6  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   s   @r:   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  )rV  rW  rP  rQ  r(   r   r  s   &*,r:   r  TestCSCMatrix.spcreator  r  r  rb   Nr  r   s   @r:   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	# )
rF  i  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# )r5  N)r5  r3  r  r  r  )r*  rp  r   r   r   )r   rR   r  r  s   &   r:   	test_multTestDOK.test_mult  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# r3  r+  Nrw  ir~  rd  )r  r   r   r   r  s   &  r:   test_add_nonzeroTestDOK.test_add_nonzero  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# r8  r  r   r   r  s   & r:   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+  rc  r  rW  r  r  )	r*  r   r   r   r  r
   r   r   r  )r   r  rF  rN   re  rT   rf  s   &      r:   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	  r1  r  Nr  re  r  r  r  )rA  r  r*  r   r   r?   r   r(  rJ   r  r   )r   rT   rR   r  r7  r1  das   &      r:   	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# )r3  zUnexpected entry (0,0) in keyszUnexpected entries in keysNr  r  rU  )r*  r   keysr   r  s   &  r:   test_ticket1160TestDOK.test_ticket1160  sh    u%# 	QVVX%'GH u%#AFFH"$@Ar<   rb   N)r   r   r   r   r!   r  rJ   r  r  r  r6  r5  r9  r=  r@  rD  rH  r   r   r   s   @r:   rF  rF    sG     I77BJJ6K5
+;<>%*B Br<   rF  )rn  ro  c                       ] tR tRt]tRtR# )TestDOKMatrixi  rb   N)r   r   r   r   r   r  r   rb   r<   r:   rK  rK        Ir<   rK  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# )r5  y              4@r  ppc64leNr5  r5  r  r4  )
r   rJ   r  r+  platformmachiner   rp  r   r   r  s   &  r:   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# )r3  Nr  r  )r+  r   )r   r@   s   & r:   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# r8  r<  r  s   & r:   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# )r2  addsubmul__i__r  r  Nr2  rg   r3  r  r  r  )皙?rc  rc  rQ  )	r+  rQ  rY  r}   r   r   rJ   r?   r-  )r   rR   rS   r7  opr   r  r  s   &       r:   test_inplace_opsTestLIL.test_inplace_ops5  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_datarS   rS  r8  s   &    r:   test_lil_iterationTestLIL.test_lil_iterationI  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# )r5  NrQ  r  r4  )r(  r3  )r3  r(  )r(  r)  )r+  r  r   r   )r   rS   r!  r  s   &   r:   test_lil_from_csrTestLIL.test_lil_from_csrO  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  :rg   r3  NNr%  )r-  r   r  r+  r   r   r   )r   r  rR   s   &  r:   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  rx  r  r~  rw  r  r  r2  r2  r)  )r2     r2  )r+  r   r}  r   )r   lr  s   &  r:   test_point_wise_multiply TestLIL.test_point_wise_multiplyb  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# )r3  r  Nr  rQ  )r+  rJ   r  rB  s   & r:   test_lil_multiply_removal!TestLIL.test_lil_multiply_removaly  s,    rwwv/	R$r<   rb   N)r   r   r   r   r#   r  rJ   r  r  r  r6  rT  rW  rZ  re  rj  rm  rp  rv  ry  r   r   r   s   @r:   rN  rN    sV     I77BJJ6KQ!?1(R
5/). r<   rN  )rn  c                       ] tR tRt]tRtR# )TestLILMatrixi  rb   N)r   r   r   r   r   r  r   rb   r<   r:   r|  r|    rL  r<   r|  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# )BaseTestCOOi  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# )rg   r  Nr  r  r  r  r  )r   r&  r   r   r  r   rJ   r  )r   r8  r9  r7  r1  r  s   &     r:   r  BaseTestCOO.test_constructor1  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# )	r2  N)
r2  r	  rg   rg   rg   rg   r2  r2  rg   rg   )
r2  rg   r2  rg   r	  r	  r	  r2  r2  rg   )
rg   r)  r  r  r'  r2  r  rg   r	  r  r  )r  r  r2  rs  )r  r'  r2  )r   r&  r   r   )r   r8  r9  r7  r1  r   s   &     r:   r  BaseTestCOO.test_constructor2  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   r8  r9  r7  r   r   r   r1  s   & r:   r  BaseTestCOO.test_constructor3  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)r2  zobject cannot be interpretedr  Nr  r{  r2  r	  r2  r2  )r'  r2  r3  r2  )r2  r  r2  r2  r  )r2  r     !   r  r6  ra  )
r   r&  r   r   r:  r  rG  r   r  rB  )r   r   r1  r  s   &   r:   r  BaseTestCOO.test_constructor4  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?   rJ   r   )r   r7  r1  s   &  r:   "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>   rb   r   s   &r:   r6  BaseTestCOO.test_iterator      r<   c                    ^ ^ ..pV P                  V4      P                  4       p\        VP                  4       V4       R# rD  )r&  todiar   r   )r   r   r  s   &  r:   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# r  )r&  r  r   r   r8  r9  r7  r  s   & r:   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   r1  rD   s   &  r:   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   r1  rf  re  s   &   r:   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  TFr1  Nr  r  )r&  r   r  rJ   r   r  r  )r   rR   A_arrayA_coords_formA_coords_dupss   &    r:   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	  r{  Nr  )r2  r2  r2  r	  r	  r	  r	  r	  r  r  )	r   r&  rY  r  r   r7  r  r   r   )r   r7  r8  r9  r  r  s   &     r:   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# )	r2  Fr1  TNr4  r6  r7  r:  )r&  r  r   r7  rJ   rQ   )r   rp   	new_shaper@   rA   s   &    r:   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- ra  r!  r.  r2  N)-   )r  r  )r&  r   r  r  )r   mat1mat2s   &  r:   test_large_dimensions_reshape)BaseTestCOO.test_large_dimensions_reshape0  s     !!A3'TF(;"<oN!!A3$'(;"<oN 	oS9TAFF!KLoS9TAFF!KLr<   rb   N)r   r   r   r   rJ   r  r  r  r6  r  r  r  r  r  rG  r  xfailr6  r  r  r  r  r  r  r  r  r   r   r   s   @r:   r~  r~    s     77BJJ6K1	/9>,1
 [[5)JK L1
*9
++Z99	M 	Mr<   r~  c                       ] tR tRt]tRtR# )TestCOOi;  rb   N)r   r   r   r   r"   r  r   rb   r<   r:   r  r  ;  s	     Ir<   r  )rg  rh  ri  rj  rk  c                       ] tR tRt]tRtR# )TestCOOMatrixiA  rb   N)r   r   r   r   r   r  r   rb   r<   r:   r  r  A  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"   rJ   r   rn  r  rI   r   r  r  r	  s    r:   test_sparray_subscriptabler  M  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# )TestDIAiY  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  r{  N)r	  r2  r3  r2  )r	  rg   r2  r  )r2  rg   r3  r2  )r2  r2  r3  r  r  r2  r  rg   ra  )r   rJ   repeatr   r)  r   )r   r  r7  r:  s   &   r:   r  TestDIA.test_constructor1_  sr    <! " xx$++A1+5((8$T''v'FNNPRSTr<   FzDIA does not have a __getitem__r  c                    R # r>   rb   r   s   &r:   r6  TestDIA.test_iteratorh  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# )r3  r  Nr  )	r)  rJ   r&   r   r:  r?   rZ   rR  rh   r   r  s   & r:   test_setdiag_dtypeTestDIA.test_setdiag_dtypel  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	  )r2  r	  rg   r3  r  ry  r  )r'  r3  )rJ   r   r  )r   d1d3s   &  r:   	ill_casesTestDIA.ill_casesx  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# )rg   Nr{  case: rx  rc  rd  )r  r)  _getnnz)r   r7  ofsetsr  refcaser   rR   s   &       r:   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>   rb   r   s   &r:   rS  TestDIA.test_getnnz_axis  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# )rg   Nr{  r  rL  r  )	r  r)  r  rJ   r   r  r  r   r   )r   r7  r  rN  rS  r  r   rR   rS   r  r  s   &          r:   
test_tocsrTestDIA.test_tocsr  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	  r{  Nr  r  r  )r)  r   r   r  r  )r   r  r  s   &  r:   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  rJ   ravel_multi_indexr8  r9  r   r  diffr  )r   r  	flat_indsinds_are_sorteds   &   r:   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  r{  Nr  r  ra  )rJ   r   r  rZ   r   r$   r  r9  r?   r  r5  r  )r   r7  r:  r  r1  rf  re  s   &      r:   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)  rI   r   r   r   rR   rS   rp  r~  r  s   &     r:   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	  rf  N)r   r)  rI   r   r   r  r  s   &     r:   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)  rI   r/  r   r   r}  )r   r  resres2s   &   r:   rK  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  ry  )ry  r  r2  r	  rg   )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)  r7  r   r   rI   r:  )r   rR   rS   rp  r~  r!  r  s   &      r:   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<   rb   N) r   r   r   r   r$   r  rJ   r  r  r  r6  r  rG  r  r  r6  r   r  r  r  rH  rS  r  r  r  r  r  r  rK  r  r   r   r   s   @r:   r  r  Y  s      I77BJJ6KU [[5)JK L Q	0  	0#>J	; [[56 7N :9-19&	>*7 *7r<   r  )rg  rh  ri  rj  rk  rn  ro  c                       ] tR tRt]tRtR# )TestDIAMatrixi1  rb   N)r   r   r   r   r   r  r   rb   r<   r:   r  r  1  rL  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# )TestBSRi9  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# r2  r{  N)r2  rg   rg   r  )r2  rg   rg   r3  )r  rg   r3  r  r   r  )r  r2  r5  )r2  r  r(  )r3  r2  r8  )r2  r  r5  )r  r2  r  r  r6  r  r  r3  )r   r   r   r%  r   r   )r   r6  r5  r7  rR   rp  s   &     r:   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  r{  Nr  )r  rX  r  )r5  r  )r3  r'  r+  )r  r  rx  r  r  r6  r  r  r   r  r:  )rg   r3  )r3  r3  r  )r   r   r%  r   r   )r   r   rR   s   &  r:   r  TestBSR.test_constructor2W  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%  rl  r  rx  )r   r   r%  r   )r   argrR   s   &  r:   r  TestBSR.test_constructor3o  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  rY  N)rJ   r  r   r   rZ   r   r%  )r   rF  r7  r6  r5  s   &    r:   r  TestBSR.test_constructor4u  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  ri  r  )rJ   r  r   r   rA  rB  r%  )r   rF  	data_1dimr7  r6  r5  s   &     r:   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+  )rJ   r   rZ   r%  r?   )r   rH   r6  r5  rT   s   &    r:   test_default_dtypeTestBSR.test_default_dtype  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   r6  r5  r7  rR   AbsrAcsrAcsr_via_coos   &       r:   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	  r{  Nr  r  r  r  )r  r8  )
r   rp  r  r   r%  rY  r  r   r  r   r  s   &     r:   r  TestBSR.test_eliminate_zeros  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# )	r2  r  r  r  N)r3  r3  r  )r  rg   r3  rb  )rJ   r   rY  r%  r7  r  r   r  r   r   r   r   r  s   & r:   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)rg   r3  rg   )r2  rg   r	  )r  r2  rg   )rJ   r   r%  r   r  rY  rI   rC  r  r   r5  r7  r6  )r   rR   r  r5  r7  r6  s   &     r:   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# rg   r  N)r  r  r  r%  r   r  r   r   r   rm  s   &  r:   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  rm  s   &  r:   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__r  c                    R # r>   rb   r   s   &r:   r6  TestBSR.test_iterator  r  r<   zBSR does not have a __setitem__c                    R # r>   rb   r   s   &r:   rg  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  Nrt  ru  rv  r  rw  rx  r<  r  r6  r  )	rJ   r   r  r   ry  r   r   rA  rB  r  s   &  r:   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>   rb   r   s   &r:   r]  "TestBSR.test_setdiag_comprehensive6  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)	rg   r  r{  Nrl  r  r  )r2  r	  r  )r2  r	  r  )
rJ   r   rZ   r%  r   r6  r?   rh   MemoryErrorrB  )r   r6  r5  r  rN   rT   r  r1  vals2vals3r  r  r@   s   &            r:   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rb   N)#r   r   r   r   r%   r  rJ   r  r  r  r6  r  r  r  r  r  r  r  r  r  r  r  r   rG  r  r  r6  rg  r'  r]  skipifIS_COLABr  r   r   r   s   @r:   r  r  9  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  )rg  rh  ri  rj  rk  ro  c                       ] tR tRt]tRtR# )TestBSRMatrixi[  rb   N)r   r   r   r   r   r  r   rb   r<   r:   r3  r3  [  rL  r<   r3  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 matrixr6  Nr  :NNrg   :r	  Nrg   c              3   2   "   T F  q^ ,          x  K  	  R# 5irD  rb   ).0ps   & r:   	<genexpr>&_same_sum_duplicate.<locals>.<genexpr>z  s     ,)QaDD)s   r  c              3   B   "   T F  qP                  ^4      x  K  	  R# 5i)rg   N)r  )r6  r5  s   & r:   r8  r9    s     7$w""$s   )
poprJ   rm   r?   r  unsignedintegerrm  r  rl   rn  )r7  indsrB   r6  	zeros_pospospos1pos2s   &*,     r:   _same_sum_duplicaterB  g  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# )_NonCanonicalMixini  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 zerosrT  Nr   gh㈵>gHz>)rtol)superr  r   rm  rl   rV  rW  rP  rQ  r(   _insert_explicit_zero_arg1_for_noncanonicalr   r?   rJ   r  r  r   r   r7  r  )r   r  rE  r  rB   	constructr  zero_pos	has_zerosr  arg1NCrG  r/  s   &&$*,        r:   r  _NonCanonicalMixin.spcreator  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>   rb   r   s   &r:   rJ  _NonCanonicalMixin.test_bool  r  r<   z!getnnz-axis counts explicit zerosc                    R # r>   rb   r   s   &r:   rS  #_NonCanonicalMixin.test_getnnz_axis  r  r<   znnz counts explicit zerosc                    R # r>   rb   r   s   &r:   r  _NonCanonicalMixin.test_empty  r  r<   rb   )r   r   r   r   r  rG  r  rH  rJ  rS  r  r   r   __classcell__)r/  r   s   @@r:   rD  rD    s     # #J [[AB C [[@A B [[89 : r<   rD  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)r6  r  Nr  )rB  r7  r5  r6  r5  rY  )r   r  rE  r7  r5  r6  startstops   &&&     r:   rJ  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*  rb   r   r  r  rG  s   &&&&r:   rI  2_NonCanonicalCompressedMixin._insert_explicit_zero  s    A#r<   rb   N)F)r   r   r   r   rJ  rI  r   r   r   s   @r:   rY  rY    s     % r<   rY  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  )rE  Nr  r  r  r  r  )	r   r  r   rM  r   rA  rz  r  r  )
r?   rE  r  rR   r  r  r  rG  rq  r   s
   &&       r:   rD  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   rD  r?   rE  s   f   r:   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)r3  rT  Nr%  r  r  )rJ   r&   r  r   rV  rW  rP  rQ  r(   r   r  rp  )r   r  rR   rS   s   &   r:   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 matrixr  c                    R # r>   rb   r   s   &r:   r  _NonCanonicalCSMixin.test_inv  r  r<   z&solve broken with non-canonical matrixc                    R # r>   rb   r   s   &r:   r  _NonCanonicalCSMixin.test_solve  r  r<   rb   N)r   r   r   r   r  ri  rG  r  r  r  r  r   r   r   s   @r:   rc  rc    sc     7*+" [[5)ST U [[5)QR Sr<   rc  c                       ] tR tRtRtR# )TestCSRNonCanonicali  rb   Nr   r   r   r   r   rb   r<   r:   rp  rp        r<   rp  c                       ] tR tRtRtR# )TestCSRNonCanonicalMatrixi  rb   Nrq  rb   r<   r:   rt  rt    rr  r<   rt  c                       ] tR tRtRtR# )TestCSCNonCanonicali  rb   Nrq  rb   r<   r:   rv  rv    rr  r<   rv  c                       ] tR tRtRtR# )TestCSCNonCanonicalMatrixi  rb   Nrq  rb   r<   r:   rx  rx    rr  r<   rx  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      # )r2  r  )r  rA  r  )r   r  r  rG  r@   s   &&&& r:   rI  )TestBSRNonCanonical._insert_explicit_zero  s-    GGIA#www--r<   Fz&diagonal broken with non-canonical BSRr  c                    R # r>   rb   r   s   &r:   r!  !TestBSRNonCanonical.test_diagonal  r  r<   z"expm broken with non-canonical BSRc                    R # r>   rb   r   s   &r:   r  TestBSRNonCanonical.test_expm  r  r<   rb   N)r   r   r   r   rI  rG  r  r  r!  r  r   r   r   s   @r:   rz  rz    s^     .
 [[5)QR S [[5)MN Or<   rz  c                       ] tR tRtRtR# )TestBSRNonCanonicalMatrixi  rb   Nrq  rb   r<   r:   r  r    rr  r<   r  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# )r[  )rB  r7  r8  r9  )r   r  rE  r7  r8  r9  s   &&&   r:   rJ  +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*  )rJ   r_r7  r?   r  r8  r9  r`  s   &&&&r:   rI  *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# )r3  r  N)	r  rJ   r&   r  rR  r   r  r  r9  r  s   & r:   test_setdiag_noncanonical.COONonCanonicalMixin.test_setdiag_noncanonical*  sf    NN266!9%				1a&A		rwwquu~*+,r<   rb   r>   )	r   r   r   r   rJ  rI  r  r   r   r   s   @r:   r  r    s      
- -r<   r  c                       ] tR tRtRtR# )TestCOONonCanonicali2  rb   Nrq  rb   r<   r:   r  r  2  rr  r<   r  c                       ] tR tRtRtR# )TestCOONonCanonicalMatrixi6  rb   Nrq  rb   r<   r:   r  r  6  rr  r<   r  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  r{  Nr  r  r6  r  r<  ra  r4  r  )r	  rg   r2  rb  r+  r  rw  )rJ   r   r   r   r   r    _broadcast_tor   r   broadcast_torG  r   rB  )rN   rT   r  r1  r  r  	containerres_ares_bres_cres_dres_eres_fs                r:   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  rR  r$  sysrV  rG  r   rA  numpyrJ   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*   r+   scipy.sparse._baser,   scipy.sparse._sputilsr-   r.   r/   r0   r1   scipy.sparse.linalgr2   r3   r4   r   r1  r;   rC   	frozensetr  rQ  rU   r   r   r   r   r   r  r/  r  r  r  thread_unsafer  r  rG  rq  contextmanagerr  r  r  r  r  r  rN  rc  rs  ru  r  r<  r   r
  r  r/  rF  rK  rN  r|  r~  r  r  r  r  r  r  r3  rB  rD  rY  rc  rp  rt  rv  rx  rz  r  r  r  r  r  rb   r<   r:   <module>r     s        
   *       ,         (F F / /ckk)/
'
 %eW- ((Wt$ $6"$ "$H 4 D\!7 \!7~B| |~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<   