+
    nDj                        ^ RI t ^ RIt^ RIt^ RIHtHt ^ RIt^ RIH	t	 ^ RI
HtHtHtHt ^ RIHt ^RIHtH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!]PD                  PG                  R. RvO4      R R l4       t$]PD                  PG                  R]%! ]&! . RwO. RwO4      4      4      R R l4       t']PD                  PG                  R. RxO4      R R l4       t(R t)R t*R t+R t,R  t-R! t.R" t/R# t0]PD                  PG                  R$. R{O4      R% 4       t1]PD                  PG                  R$. R{O4      R& 4       t2]PD                  PG                  R$. R{O4      R' 4       t3]PD                  PG                  R$. R{O4      R( 4       t4R) t5]PD                  PG                  R|. R}O4      R* 4       t6]PD                  PG                  R$. R{O4      R+ 4       t7]PD                  PG                  R$. R{O4      R, 4       t8]PD                  PG                  R~. RO4      R- 4       t9R. t:R/ t;]PD                  PG                  R$. R{O4      R0 4       t<]PD                  PG                  R$. R{O4      R1 4       t=R2 t>]PD                  PG                  R. RO4      R3 4       t?]PD                  PG                  R$. R{O4      R4 4       t@]PD                  PG                  R$. R{O4      R5 4       tAR6 tB]PD                  PG                  R. RO4      R7 4       tC. ROtD]PD                  PG                  R]D4      R8 4       tE. ROtF]PD                  PG                  R]F4      R9 4       tGR: tHR; tIR< tJR= tKR> tL. ROtM]PD                  PG                  R]M4      R? 4       tNRR^.^ .33RRy^.^ .33RR^ .^.33RR^ ^.^^.33RR. RO. RO33RRRR. RO. RO33.tO]PD                  PG                  R]O4      R@ 4       tPRA tQ]PD                  PG                  R. RO4      RB 4       tR]PD                  PG                  R$. RO4      RC 4       tS]PD                  PG                  R$. RO4      RD 4       tT. ROtU]PD                  PG                  R]U4      RE 4       tV]PD                  PG                  R]U4      RF 4       tW. ROtX]PD                  PG                  R]X4      RG 4       tY. ROtZ]PD                  PG                  R]Z4      RH 4       t[RI t\RRRRRRR^ ]P                  ! R4      3RR^]P                  ! R4      3RRRRRRRRRR]P                  ! R4      3RRRR]P                  ! R4      3RRR]P                  ! R4      3R.t^]PD                  PG                  R]^4      RJ 4       t_]PD                  PG                  R]^4      RK 4       t`RL ta. ROtb]PD                  PG                  R]b4      RM 4       tcRN td]PD                  PG                  R]b4      RO 4       teRP tf]PD                  PG                  R]b4      RQ 4       tgRR th]PD                  PG                  R]b4      RS 4       ti]PD                  PG                  R]b4      RT 4       tjRU tkRV tlRW tmRX tnRY toRZ tpR[ tqR\ tr]P                  ! ^4      P                  R4      tu]! ]u4      tvRR]w! ^^R4      ^ 3^]w! ^^R4      3]w! ^^R4      ]w! ^^^4      3]w! RRR4      ^3^]w! R4      3]x3^^.^ 3^^^.3]P                  ! ^^.4      ]w! ^R4      3]w! ^4      ]P                  ! . RO4      3]P                  ! ^^.4      ]P                  ! ^ ^.4      3.tz]PD                  PG                  . RO]z U u. uF  p ]v]uV 3NK
  	  up 4      ]PD                  P                  R] 4       4       t|]P                  ! ^x4      P                  R4      tu]! ]u4      tvRzR^ ]w! ^^4      ^ 3]w! ^R4      ^]w! ^4      3]w! ^4      ]w! ^^^4      ]w! ^R4      3]w! RRR4      ]w! R4      ]w! ^^^4      3]x^^^.]w! ^4      3]P                  ! ^^.4      ]w! ^R4      ^ 3]P                  ! ^^.4      ]w! ^R4      ^ .3]P                  ! ^^.4      ]w! ^R4      ]P                  ! ^^.4      3^]P                  ! ^^.4      ]P                  ! ^^.4      3]P                  ! ^^.4      ]P                  ! ^^.4      ^3]P                  ! ^^.4      ]P                  ! ^^.4      ^.3.tz]PD                  PG                  . RO]z U u. uF  p ]v]uV 3NK
  	  up 4      ]PD                  P                  R^ 4       4       t}]PD                  PG                  R_R` ]P                  Ra .. RORb7      ]PD                  P                  RcRd7      Re 4       4       t~]P                  ! R4      P                  R4      tu]! ]u4      tvRRRRRf]w! R^R4      ^^]w! RRR4      ^33Rg]w! ^RR4      ]w! RRR4      ^^^33Rh^^^]w! ^RR4      ]w! RRR4      33Ri]w! ^^R4      ]w! RRR4      ^^^33Rj]w! R^R4      . RO. RO.. RO. RO.]w! RRR4      ^ 33Rk]w! R^R4      . RO. RO.. RO. RO.^]w! RRR4      33Rl]w! R^R4      . RO. RO]w! RRR4      ^33Rm^ ]w! ^^^4      ^. RO.^.^.^ ..33Rn]w! R^R4      ]w! ^^^4      ^. RO.^.^.^ ..33Ro. RO.^.^.^ ..^ ]w! ^^^4      ]w! R^R4      33Rp. RO.]w! ^^^4      ]w! R^R4      ^ ^.^.^ ..33Rq]w! R^R4      . RO. RO.. RO. RO.]w! RRR4      ^33Rr]w! ^^^4      ^ ^. RO.^.^.^..33.tz]PD                  PG                  . RO]z UUu. uF
  w  r]v]uW!3NK  	  upp4      ]PD                  P                  Rs 4       4       tRt tRu tR# u up i u up i u uppi )    N)assert_equalassert_allclose)
block_diag)	coo_arrayrandom_arraySparseEfficiencyWarningmatrix_transpose)	csr_array)_block_diag_extract_block_diagc                     \        R4      p V P                  R8X  g   Q h\        V P                  4       \        P
                  ! R4      4       \        R4      pVP                  R8X  g   Q h\        VP                  4       \        P
                  ! R4      4       \        R4      pVP                  R8X  g   Q h\        VP                  4       \        P
                  ! R4      4       R# )   Nr   r      )r   r            r   shaper   toarraynpzeros)empty1dempty2dempty_nds      U/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/sparse/tests/test_coo.pytest_shape_constructorr      s    oG==D   "BHHTN3G==F""""BHHV$45%H>>[(((!!#RXXk%:;    c                  H   \        . RO4      p V P                  R8X  g   Q h\        V P                  4       \        P
                  ! . RO4      4       \        . RO. RO.4      pVP                  R8X  g   Q h\        VP                  4       \        P
                  ! . RO. RO.4      4       \        P
                  ! ^^.^^ ..^^.^	^...^^.^^..^^.^^...^ ^	.^^..^^.^^....4      p\        V4      pVP                  R8X  g   Q h\        VP                  4       V4       \        P                  P                  ^4       \        P                  P                  ^^^^^^^^^4	      p\        V4      pVP                  R8X  g   Q h\        VP                  4       V4       \        ^\        P                  ..^^..^^...4      pVP                  R8X  g   Q h\        VP                  4       \        P
                  ! ^\        P                  ..^^..^^...4      4       R# )	   Nr!   r   r   r   r      r   r   r   )r   r   r   r   )	r   r   r   r   r   r$   r   r   r   )r   r!   r   )
r   r   r   r   r   arrayrandomseedrandnnan)res1dres2darr4dres4darr9dres9dnan_3ds          r   test_dense_constructorr2      s   i E;;$"((9"56 y),-E;;&   "((Iy+A"BC HHAA'1a&1a&)9:AA'1a&1a&)9:AA'1a&1a&)9:< =E eE;;,&&&%( IINN2IIOOAa!Aa!A.EeE;;----%( !RVVAx1a&:;F<<9$$$!288q"&&k]aVH1vh,O#PQr   c            	         \        . RORR7      p V P                  R8X  g   Q h\        V P                  4       \        P
                  ! . RO4      4       \        . RO. RO.RR7      pVP                  R8X  g   Q h\        VP                  4       \        P
                  ! . RO. RO.4      4       \        ^..^...RR7      pVP                  R8X  g   Q h\        VP                  4       \        P
                  ! ^..^...4      4       \        P                  P                  ^4       \        P                  P                  ^^^^^^^4      p\        VRR7      pVP                  R8X  g   Q h\        VP                  4       V4       R# )	r!   r   Nr"   r   r#   r%   r   r!   r!   )r   r   r!   r   r$   r   r   )	r   r   r   r   r   r&   r'   r(   r)   )r+   r,   res3darr7dres7ds        r   !test_dense_constructor_with_shaper9   =   s%   it,E;;$"((9"56y),F;E;;&   "((Iy+A"BCusenI6E;;)###"((aSEQC5>":;IINN2IIOOAa!Aa*Eu_5E;;/)))%(r   c            	      4   \         P                  ! \        R R7      ;_uu_ 4        \        . ROR	R7       RRR4       \         P                  ! \        R R7      ;_uu_ 4        \        . ROR
R7       RRR4       \         P                  ! \        R R7      ;_uu_ 4        \        . RO.RR7       RRR4       \         P                  ! \        R R7      ;_uu_ 4        \        ^..^...RR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        ^.^.33RR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        ^^.^ ^.^ ^.^^.33RR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        ^.R.334       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        ^.^ .^.R.334       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELS; i  + '       g   i     EL(; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)inconsistent shapesmatchr4   Nz)axis 0 index 2 exceeds matrix dimension 2z)axis 1 index 3 exceeds matrix dimension 3znegative axis 0 index: -1znegative axis 2 index: -1r"   r   r   r!   r   r!   r!   r!   )r   )r   r   r   )pytestraises
ValueErrorr    r   r   .test_dense_constructor_with_inconsistent_shaperF   Q   s   	z)>	?	?)4( 
@ 
z)>	?	?)6* 
@ 
z)>	?	?9+T* 
@ 
z)>	?	?QC5A3%.	2 
@ 
zH
J 
JA3!-t,
J 
zH
J 
JAa5Aq6Aq6Aq6239E
J 
z)D	E	EA3".! 
F 
z)D	E	EA3!qcB4()* 
F	E/ 
@	?	? 
@	?	? 
@	?	? 
@	?	?
J 
J 
J
J 
J 
F	E 
F	E	Es_   G<!HH$H8II  I3J<H	H!	$H5	8I		I	 I0	3J	J	c                      \        R4      p \        V 4      pVP                  R8X  g   Q h\        VP                  4       \        P
                  ! R4      4       R# )r   Nr   r   )r   ress     r   test_1d_sparse_constructorrI   m   s?    oG
G
C99/r   c                      \        ^	^.^^.334      p V P                  R8X  g   Q h\        V P                  4       \        P
                  ! . RO4      4       R# )	   Nr   )r   rK      r   r   r   r   r   r&   rH   s    r   test_1d_tuple_constructorrO   t   sF    
aUaUH%
&C99 34r   c                      \        ^	^.^^.33RR7      p V P                  R8X  g   Q h\        V P                  4       \        P
                  ! . RO4      4       R# )rK   r4   Nr>   )r   rK   rL   r   rM   rN   s    r   $test_1d_tuple_constructor_with_shaperQ   z   sH    
aUaUH%T
2C99 67r   c                     R Rr\         P                  ! V ^,
          .RR7      \         P                  ! V^,
          .RR7      3p\        R.V3W3R7      pVP                  W,          ^34      pVP                  ^ ,          P
                  \         P
                  ! R4      8X  g   Q hVP                  ^ ,          ^ ,          W,          ^,
          8X  g   Q hVP                  W4      pVP                  ^ ,          P
                  \         P
                  ! R4      8X  g   Q hVP                  ^ ,          ^ ,          V^,
          8X  g   Q hR# )i i int32)dtypegffffff
@r4   int64N)r   r&   r   reshapecoordsrT   )MNrW   ABCs         r   test_reshape_overflowr]      s    VqhhAwg.!a%0PQFC5&/!0A 	
		15!*A88A; 111188A;q>aeq[((( 	
		!A88A; 111188A;q>QU"""r   c            	      <   \        . RO4      p V P                  R8X  g   Q hV P                  R4      pVP                  R8X  g   Q h\        VP	                  4       \
        P                  ! ^.^ .^..4      4       V P                  R4      pVP                  R8X  g   Q h\        VP	                  4       \
        P                  ! . RO.4      4       \        P                  ! \        RR7      ;_uu_ 4        V P                  R4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V P                  R	4       RRR4       \        . R
O. RO.4      pVP                  R8X  g   Q hVP                  R4      pVP                  R8X  g   Q h\        VP	                  4       \
        P                  ! . RO4      4       VP                  R4      pVP                  R8X  g   Q h\        VP	                  4       \
        P                  ! ^.^.^ ..^ .^ .^...4      4       \        P                  ! \        RR7      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     ELg; i  + '       g   i     EL=; i  + '       g   i     R# ; i)r!   zcannot reshape arrayr<   Nr!   r   r   r   r?   r!   r   r   r   r   r   r!   r   r   r   r   r   r%   )r   )r!   r   r   r   r   r   )r   r   r!   )
r   r   rV   r   r   r   r&   rB   rC   rD   )arr1dcol_vecrow_vecarr2dflat	to_3d_arrs         r   test_reshaperk      s   i E;;$mmF#G==F""""BHHqcA3_$=>mmF#G==F""""BHHi[$9: 
z)?	@	@e 
A 
z)?	@	@e 
A y),-E;;&   ==D::*<!=> i(I??i'''""$bhh!qcA31#sQC/Q&RS 
z)?	@	@e 
A	@) 
A	@	@ 
A	@	@  
A	@	@s$   2I"0I6J
"I3	6J	
J	c                      \        . RO4      p V P                  R8X  g   Q hV P                  ^8X  g   Q h\        . RO. RO.4      pVP                  R8X  g   Q hVP                  ^8X  g   Q hR# )r!   Nr_   r   rc   rd   r%   )r   r   nnzre   rh   s     r   test_nnzro      s_    i E;;$99>>y),-E;;&   99>>r   c                  *   \        . RO4      P                  p V P                  R8X  g   Q h\        V P	                  4       \
        P                  ! . RO4      4       \        . RO. RO.4      pVP                  P                  R8X  g   Q h\
        P                  ! ^^ .^^ .^ ^..4      p\        VP                  P	                  4       V4       \        VP                  P	                  4       V4       \        \        V4      P	                  4       V4       R# )r!   Nr_   r   rc   rd   r   )	r   Tr   r   r   r   r&   mTr	   )re   rh   desireds      r   test_transposert      s    i ""E;;$"((9"56y),-E77==F"""hhAAA/0G"G,!!#W-!%(002G<r   c                     \        . RO4      P                  RR7      p V P                  R8X  g   Q h\        V P	                  4       \
        P                  ! . RO4      4       \        . R	O. R
O.4      P                  RR7      pVP                  R8X  g   Q h\        VP	                  4       \
        P                  ! . R	O. R
O.4      4       \        P                  ! \        RR7      ;_uu_ 4        \        . RO4      P                  RR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        . R	O. R
O.4      P                  RR7       RRR4       R#   + '       g   i     L`; i  + '       g   i     R# ; i)r!   axes"axes don't match matrix dimensionsr<   Nrepeated axis in transposer_   r   r   rc   rd   r   r!   r%   r!   r!   )
r   	transposer   r   r   r   r&   rB   rC   rD   rn   s     r   test_transpose_with_axisr~      s   i ***5E;;$"((9"56y),-77V7DE;;&   "((Iy+A"BC	z)M	N	N)&&F&3 
O 
z)E	F	F9i()333@ 
G	F 
O	N 
G	F	Fs   -E#7"E6#E3	6F	c                  &   \        . RO4      p \        V P                  \        P                  ! . RO4      4       \        V P
                  \        P                  ! V P                  4      4       V P
                  P                  V P                  P                  8X  g   Q hV P
                  P                  P                  RJ g   Q h. ROV n        \        V P                  4      ^8X  g   Q h\        V P                  \        P                  ! . RO4      4       V P
                  P                  V P                  P                  8X  g   Q h\        P                  ! \        RR7      ;_uu_ 4        . ROV n        RRR4       R#   + '       g   i     R# ; i)r!   Fzcannot set row attributer<   Nr!   r   r!   r   r"   )r   r   colr   r&   row
zeros_likerT   flags	writeablelenrW   rB   rC   rD   rN   s    r   test_1d_row_and_colr      s    
K
 C"((9-."--0177==CGGMM)))77==""e+++CGszz?a"((9-.77==CGGMM)))	z)C	D	D 
E	D	D	Ds   +
E??F	c                     \        . RO4      p V P                  V P                  V P                  V P                  3 F7  p\
        P                  ! \        RR7      ;_uu_ 4        V! 4        RRR4       K9  	  V P                  V P                  V P                  3 F0  p\        V! 4       P                  4       V P                  4       4       K2  	  R#   + '       g   i     K  ; i)r!   zCannot convertr<   Nr   )r   tobsrtocsctodiatolilrB   rC   rD   tocootocsrtodokr   r   )rH   fs     r   test_1d_toformatsr      s    
K
 CiiCIIsyy9]]:-=>>C ?> : iiCII.QS[[]CKKM2 / ?>>s   #CC!argc                $    V ^8  d   QhR\         /# r   r   int)formats   "r   __annotate__r      s     % % %r   c                    \         P                  ! . RO4      p\        V4      pVP                  V RR7       VP                  V 4       VP                  VP                  8X  g   Q h\        VP                  4       V4       R# )r!   FrefcheckNr   r   r&   r   resizer   r   r   r   denrH   s   &  r   test_1d_resizer      sZ    
((;
C
C.CJJsUJ#JJsO99		!!!$r   c                F    V ^8  d   QhR\         \        \        3,          /# r   )tupler   )r   s   "r   r   r      s     % %eCHo %r   c                    \         P                  ! . RO4      p\        V4      pVP                  V RR7       VP                  V 4       VP                  VP                  8X  g   Q h\        VP                  4       V4       R# )r!   Fr   Nr_   r   r   s   &  r   test_1d_to_2d_resizer      sZ    
((9
C
C.CJJsUJ#JJsO99		!!!$r   c                $    V ^8  d   QhR\         /# r   r   )r   s   "r   r   r   
  s     % %c %r   c                 
   \         P                  ! . RO. RO.4      p\        V4      pVP                  V RR7       VP                  V 4       VP                  VP                  8X  g   Q h\        VP                  4       V4       R# )r!   Fr   Nr_   r   r   r   r   r   s   &  r   test_2d_to_1d_resizer   	  s_    
((Iy)
*C
C.CJJsUJ#JJsO99		!!!$r   c            	         \        . RO. RO334      p V P                  ^8X  g   Q h\        V P                  4       \        P
                  ! ^^.4      4       V P                  4        V P                  ^8X  g   Q h\        V P                  4       \        P
                  ! ^^.4      4       \        . RO. RO. RO. RO. RO334      pVP                  ^8X  g   Q h\        P
                  ! ^ ^ .^ ^ .^ ^ ..^ ^ .^ ^ .^ ^ ..^ ^ .^ ^ .^^ ...^ ^ .^ ^	.^ ^ ..^ ^ .^ ^ .^ ^ ..^ ^ .^ ^ .^ ^ ....4      p\        VP                  4       V4       VP                  4        VP                  ^8X  g   Q h\        VP                  4       V4       \        . RO. RO334      pVP                  ^8X  g   Q hVP                  4        VP                  ^8X  g   Q hR# )	r   N)r   r   r   r!   r   r!   )r   r   r   )r   r   r   r!   r   r!   r!   r   r   r   r   r!   r   r   )r   rm   r   r   r   r&   sum_duplicates)re   r-   expected
arr_nodupss       r   test_sum_duplicatesr     s   y9,/0E99>>"((Aq6"23	99>>"((Aq6"23 y9iI"NOPE99>>xxq6Aq6Aq6
"aVaVaV$<1v1vPQSTv>V	Wq6Aq6Aq6
"aVaVaV$<1v1vPQSTv>V	W	YH (+	99>>(+ L</:;J>>Q>>Qr   c                  ^   \        . RO. RO334      p V P                  ^8X  g   Q hV P                  4       ^8X  g   Q h\        V P	                  4       \
        P                  ! ^ ^.4      4       V P                  4        V P                  ^8X  g   Q hV P                  4       ^8X  g   Q h\        V P	                  4       \
        P                  ! ^ ^.4      4       \        V P                  \
        P                  ! ^.4      4       \        V P                  \
        P                  ! ^ .4      4       R# )r   N)r   r   r!   r   )
r   rm   count_nonzeror   r   r   r&   eliminate_zerosr   r   )re   s    r   test_eliminate_zerosr   /  s    y9,/0E99>> A%%%"((Aq6"23	99>> A%%%"((Aq6"23BHHaSM*BHHaSM*r   c                      \         P                  ! . RO4      p \         P                  ! . RO4      pW,           p\        V 4      V,           p\        V4      \        V4      J g   Q h\	        W24       R# r   Nr   r   r   r   r   )r   r&   r   typer   den_aden_bexprH   s       r   test_1d_add_denser   <  sR    HH^$EHH\"E
-C
E
U
"C9S	!!!r   c                      \         P                  ! . RO4      p \         P                  ! . RO4      pW,           p\        V 4      \        V4      ,           p\        W#P	                  4       4       R# r   )r   r&   r   r   r   r   r   	dense_sum
sparse_sums       r   test_1d_add_sparser   E  sJ    HH^$EHH\"EI5!Ie$44J..01r   c                      \         P                  ! . RO4      p \         P                  ! . RO4      pW,          p\        V 4      V,          p\         P                  ! V4      ^ 8X  g   Q h\	        W24       R# r   )r   r&   r   ndimr   r   s       r   test_1d_matmul_vectorr   N  sR    HH^$EHH\"E
-C
E
U
"C773<1r   c                      \         P                  ! . RO4      p \         P                  ! . RO. RO.4      P                  pW,          p\        V 4      V,          p\	        V4      \	        V4      J g   Q h\        W24       R# )r   Nr   r   r   r   r!   r   )r   r&   rq   r   r   r   )r   otherr   rH   s       r   test_1d_matmul_multivectorr   W  s\    
((>
"CHHlL1244E
+C
C.5
 C9S	!!!r   c                  V   \         P                  ! . RO. RO.4      p \        V 4      pW P                  ,          pWP                  ,          p\	        VP                  4       V4       \         P                  ! . RO. RO.4      p \        V 4      pW P                  ,          pWP                  ,          p\	        W24       \         P                  ! . RO. RO.4      p\         P                  ! . RO4      p\        V4      pWTP                  ,          pWdP                  ,          p\	        W24       \         P                  ! . RO4      p\         P                  ! ^.^.^ ..4      pWE,          p\        V4      V,          p\	        W24       \        V4      \        V4      ,          p\	        W24       R# )r   Nr   r   )r   r   r   r   r$   )r!   r   r   r   r   )r   r!   r   r   r   )r!   r   r   )r   r&   r   rq   r   r   list)r   rh   r   rH   r   r   re   s          r   test_2d_matmul_multivectorr   `  s.   
((L,/
0CcNE
+C
''/C$ ((O_5
6CcNE
+C
%%-C HHo78EHH_%EeE
''/C
''/C HHYEHHqcA3_%E
-C
E
U
"C
E
T%[
(Cr   c                      \         P                  ! . RO4      p \        P                  ! \        RR7      ;_uu_ 4        \        V 4      P                  4        RRR4       R#   + '       g   i     R# ; i)r   z diagonal requires two dimensionsr<   Nr   )r   r&   rB   rC   rD   r   diagonal)r   s    r   test_1d_diagonalr     sB    
((>
"C	z)K	L	L#! 
M	L	L	Ls   A!!A2	r   c                     \         P                  P                  ^4       \         P                  P                  ^ ^V R7      p\	        \        V4      P                  4       V4       R# )   )lowhighsizeN)r   r'   r(   randintr   r   todense)r   arrs   & r   test_nd_todenser     sF     IINN2
))



6C3'')3/r   c                     \        V 4      p\        V4      pVP                  V 8X  g   Q h\        VP                  4       \        P
                  ! V 4      4       R # Nr   )r   	empty_arrrH   s   &  r   test_nd_sparse_constructorr     sB     % I
I
C990r   c                     \         P                  P                  ^4       \         P                  P                  ! V !  p\	        V4      pVP
                  V 8X  g   Q h\        VP                  4       V4       R# )r   Nr   r'   r(   r)   r   r   r   r   r   r   rH   s   &  r   test_nd_tuple_constructorr     sQ     IINN2
))//5
!C
C.C99$r   c                     \         P                  P                  ^4       \         P                  P                  ! V !  p\	        WR7      pVP
                  V 8X  g   Q h\        VP                  4       V4       R# )r   r4   Nr   r   s   &  r   $test_nd_tuple_constructor_with_shaper     sR     IINN2
))//5
!C
C
%C99$r   c            	      <   \         P                  ! \        R R7      ;_uu_ 4        \        ^	^.^^.^^ .^^.33RR7       RRR4       \        . . . . . 33RR7      p \	        V P                  4       \        P                  ! R4      4       R#   + '       g   i     LS; i)zexceeds matrix dimensionr<   r4   Nr   r   r   )r   r   r   r   )rB   rC   rD   r   r   r   r   empty)r   s    r   (test_tuple_constructor_for_dim_size_zeror     s    	z)C	D	DAq6QFQFQF34GD 
E 2BB/0	BI""$bhhy&9:	 
E	Ds   BB	c                 N   \         P                  P                  R 4      p\        V RV\        R7      pVP
                  V 8X  g   Q hVP                  4       pVP                  V4      pVP                  V4      pVP
                  V8X  g   Q h\        VP                  4       V4       R# 4e333333?densityrngrT   N)	r   r'   default_rngr   r   r   r   rV   r   )r   	new_shaper   r-   den4dexp_arrres_arrs   &&     r   test_nd_reshaper     s     ))


)CC@E;;%MMOEmmI&GmmI&G==I%%%"G,r   c                     \         P                  P                  R 4      p\        V RV\        R7      pVP
                  \         P                  ! VP                  4       4      8X  g   Q hR# r   )r   r'   r   r   r   rm   r   r   )r   r   r   s   &  r   test_nd_nnzr     sK     ))


)C
ucs#
>C77b&&s{{}5555r   c                    \         P                  P                  R 4      p\        V RV\        R7      pVP                  4       P                  pVP                  4       pVP                  V RRR1,          8X  g   Q h\        VP                  4       V4       \        V 4      ^8  d   VP                  4       P                  pVP                  pVP                  VP                  8X  g   Q h\        VP                  4       V4       \        V4      pVP                  VP                  8X  g   Q h\        VP                  4       V4       R# \        P                  ! \        RR7      ;_uu_ 4        VP                   RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     LJ; i  + '       g   i     R# ; i)r   r   r   Nz2-dimensionalr<   rA   )r   r'   r   r   r   r   rq   r}   r   r   r   rr   r	   rB   rC   rD   )r   r   r   r   	trans_arrs   &    r   test_nd_transposer     sA    ))


)C
ucs#
>CkkmooGI??eDbDk)))""$g.
5zQ++-""FF	'--///Y&&('2$S)	'--///Y&&('2]]:_==FF >]]:_==S! >= >====s   )F8"G8G	G	c                 
   \         P                  P                  R 4      p\        V RV\        R7      pVP                  VR7      p\        VP                  4       \         P
                  ! VP                  4       VR7      4       R# )r   r   r   rv   N)r   r'   r   r   r   r}   r   r   )r   	axis_permr   r   r   s   &&   r   test_nd_transpose_with_axisr     s\     ))


)C
ucs#
>C9-I""$bll3;;=y&QRr   c                     \         P                  ! \        R R7      ;_uu_ 4        \        . RO4      P	                  RR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        . RO. RO.4      P	                  R	R7       RRR4       R#   + '       g   i     L`; i  + '       g   i     R# ; i)
rx   r<   rv   Nry   r_   r{   rc   rd   r|   )rB   rC   rD   r   r}   rE   r   r   %test_transpose_with_inconsistent_axisr    s    	z)M	N	N)&&F&3 
O 
z)E	F	F9i()333@ 
G	F 
O	N 
G	F	Fs   B/"B.B+	.B?	c            
         \        . RO. RO. RO. RO334      p V P                  ^8X  g   Q hV P                  4       ^8X  g   Q h\        V P	                  4       \
        P                  ! . RO. RO.. RO. RO.. RO. RO..4      4       V P                  4        V P                  ^8X  g   Q hV P                  4       ^8X  g   Q h\        V P	                  4       \
        P                  ! . RO. RO.. RO. RO.. RO. RO..4      4       . RO. RO. RO. R	O. R
O3p\        . ROV34      pVP                  ^8X  g   Q hVP                  4       ^ 8X  g   Q hVP                  4        VP                  ^ 8X  g   Q hVP                  4       ^ 8X  g   Q h\        VP                  \
        P                  ! . 4      4       \        VP                  \
        P                  ! . 4      4       \        VP                  . . . . . 34       R# )r!   N)r!   r   r   r   )r   r!   r!   r   )r   r!   r   r!   )r!   r!   r   r   )r   r!   r   r   r   r   r   )r   r   r   r   )r!   r   r   r   )r   r   r   r   )r   rm   r   r   r   r   r&   r   r   r   rW   )arr3drW   arr5ds      r   test_nd_eliminate_zerosr    s   |lL,%OPQE99>> A%%%"((Y	,B%.	$:Y	<R,T #U V	99>> A%%%"((Y	,B%.	$:Y	<R,T #U V L,lSF|V,-E99>> A%%%	99>> A%%%BHHRL)BHHRL)BB34r   c                 8   \         P                  P                  R 4      p\        V RV\        R7      p\        V RV\        R7      pVP                  4       VP                  4       rTWE,           pW%,           p\        V4      \        V4      J g   Q h\        Wv4       R# r   r   r'   r   r   r   r   r   r   r   r   sp_xsp_yden_xden_yr   rH   s   &       r   test_nd_add_denser    w     ))


)Cs3?Ds3?D<<>4<<>5
-C
,C9S	!!!r   c                     \         P                  P                  R 4      p\        V RV\        R7      p\        V RV\        R7      pVP                  4       VP                  4       rTWE,           pW#,           p\        WgP                  4       4       R# r   r   r'   r   r   r   r   r   r   r   r
  r  r  r  r   r   s   &       r   test_nd_add_sparser  %  sj     ))


)C#SAD#SAD<<>4<<>5IJ..01r   c                     \         P                  ! ^ .\         P                  ..R.^ ...4      p \         P                  ! ^ .^..^.^...4      pW,           p\        V 4      \        V4      ,           p\	        W#P                  4       4       R# r   Nr   )r   r&   infr   r   r   r   s       r   test_add_sparse_with_infr  2  x    HHsRVVHoqc{34EHHsQCjA3*-.EI5!Ie$44J..01r   c                 "   \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      p\
        P                  ! \        RR7      ;_uu_ 4        W4,            RRR4       R#   + '       g   i     R# ; ir   r   r   r;   r<   Nr   r'   r   r   r   rB   rC   rD   a_shapeb_shaper   arr_aarr_bs   &&   r   +test_nd_add_sparse_with_inconsistent_shapesr!  ;  _     ))


)C'CSDE'CSDE	z)>	?	? 
@	?	?	?   *	A==B	c                 8   \         P                  P                  R 4      p\        V RV\        R7      p\        V RV\        R7      pVP                  4       VP                  4       rTWE,
          pW%,
          p\        V4      \        V4      J g   Q h\        Wv4       R# r   r  r	  s   &       r   test_nd_sub_denser%  G  r  r   c                     \         P                  P                  R 4      p\        V RV\        R7      p\        V RV\        R7      pVP                  4       VP                  4       rTWE,
          pW#,
          p\        WgP                  4       4       R# r   r  r  s   &       r   test_nd_sub_sparser'  T  sj     ))


)Cs3?Ds3?D<<>4<<>5IJ..01r   c                     \         P                  ! ^ .\         P                  ..R.^ ...4      p \         P                  ! ^ .^..^.^...4      pW,
          p\        V 4      \        V4      ,
          p\	        W#P                  4       4       R# r  )r   r&   r*   r   r   r   r   s       r   test_nd_sub_sparse_with_nanr)  b  r  r   c                 "   \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      p\
        P                  ! \        RR7      ;_uu_ 4        W4,
           RRR4       R#   + '       g   i     R# ; ir  r  r  s   &&   r   +test_nd_sub_sparse_with_inconsistent_shapesr+  k  r"  r#  c                 >   \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      pVP                  4       VP                  4       reWV,          pW6,          p\        W4       V\        V4      ,          p\        W4       R# r   r   r'   r   r   r   r   r   r   )		mat_shape	vec_shaper   r
  r  r  r  r   rH   s	   &&       r   test_nd_matmul_vectorr0    su    
))


)C	3CsCD	3CsCD<<>4<<>5
-C
,C
e
Cr   c                    \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      pVP                  4       VP                  4       reWV,          pW4,          p\        VP                  4       V4       W6,          p\        W4       V\        V4      ,          p\        W4       WT,          p\        W4       R# r   r   r   random_staterT   Nr-  )	
mat_shape1
mat_shape2r   r
  r  r  r  r   rH   s	   &&       r   test_nd_matmulr7    s    
))


)C
CcMD
CcMD<<>4<<>5
-C
+C$
,C
e
C ,Cr   c                  0   \         P                  P                  R 4      p \        RRV \        R7      p\        RRV \        R7      p\
        P                  ! \        RR7      ;_uu_ 4        W,           RRR4       \
        P                  ! \        RR7      ;_uu_ 4        WP                  4       ,           RRR4       \        R	RV \        R7      p\
        P                  ! \        RR7      ;_uu_ 4        W,           RRR4       \
        P                  ! \        RR7      ;_uu_ 4        WP                  4       ,           RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L{; i  + '       g   i     R# ; i)
r   r   r3  z)matmul: dimension mismatch with signaturer<   Nz&Batch dimensions are not broadcastable)r   r$   r   r   r   )r!   r$   r   r   r$   )r!   r$   r   r   )	r   r'   r   r   r   rB   rC   rD   r   )r   r
  r  sp_zs       r   .test_nd_matmul_sparse_with_inconsistent_arraysr:    s    
))


)CSs#NDSs#ND	z)T	U	U 
V	z)T	U	U 
V 	3SLD	z)Q	R	R 
S	z)Q	R	R 
S	R 
V	U	U	U 
S	R	R	R	Rs0   *	EE5	E1*FE	E.	1F	F	c                  ,   \        . RO4      p \        . RO4      p\        P                  ! V P                  4       VP                  4       4      pV P                  V4      p\	        W24       V P                  VP                  4       4      p\	        W24       R# )r!   Nr"   r#   )r   r   dotr   r   )abr   rH   s       r   test_dot_1d_1dr?    sc    'A'A
&&aiik
*C
%%(C
%%		
Cr   c                      \        ^^.^^.^^..4      p ^pV P                  V4      p\        P                  ! V P                  4       V4      p\	        VP                  4       V4       R# )r!   N)r   r<  r   r   r   )r=  r>  rH   r   s       r   test_dot_sparse_scalarrA    sW    Aq6Aq6Aq6*+A	A
%%(C
&&a
 C$r   c                      \        ^^..^^...4      p \        . RO4      p\        P                  ! \        RR7      ;_uu_ 4        V P	                  V4       RRR4       R#   + '       g   i     R# ; i)r!   znot aligned for n-D dotr<   Nr#   )r   rB   rC   rD   r<  )r  r   s     r   !test_dot_with_inconsistent_shapesrC    sU    Ax1a&*+Ei E	z)B	C	C		% 
D	C	C	Cs   A!!A2	c                     \        ^^.^^..4      p \        P                  ! \        RR7      ;_uu_ 4        V P	                  R4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V P                  R4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        V R,           RRR4       \        P                  ! \        RR7      ;_uu_ 4        RV ,           RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Ln; i  + '       g   i     R# ; i)r!   zargument not supported typer<   Nzarg not supported typezunsupported operand type)r   rB   rC   	TypeErrorr<  	tensordot)r  s    r   test_matmul_dot_not_implementedrG    s    1v1v&'E	y(E	F	F		$ 
G	y(@	A	A 
B	y(B	C	C 
D	y(B	C	Cu 
D	C 
G	F	A	A	C	C	C	C	Cs/   C<4D2
D"(
D5<D	D	"D2	5E	c                    \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      p\         P
                  ! VP                  4       VP                  4       4      pVP                  VP                  4       4      p\        We4       VP                  \        VP                  4       4      4      p\        We4       VP                  V4      p\        VP                  4       V4       R# r2  )	r   r'   r   r   r   r<  r   r   r   )r  r  r   r  r   r   rH   s   &&     r   test_dot_ndrI    s    
))


)C#CsKE#CsKE
&&%--/
2C
))EMMO
$C
))D)
*C
))E
C$r   c                 T   \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      p\         P
                  ! VP                  4       VP                  4       VR7      pVP                  VP                  4       VR7      p\        Wv4       VP                  \        VP                  4       4      VR7      p\        Wv4       VP                  WRR7      p\        V4      \        J d   \        VP                  4       V4       R# \        Wv4       R# )r   r   r3  rv   N)r   r'   r   r   r   rF  r   r   r   r   r   )r  r  rw   r   r  r   r   rH   s   &&&     r   test_tensordotrK    s    
))


)C#CsKE#CsKE
,,u}}d
CC //%--//
5C
//$u}}/d/
;C //%/
+CCyIS[[]C(Sr   c                  B   \         P                  P                  R 4      p \        RRV \        R7      p\        R	RV \        R7      p^.^.3p\
        P                  ! \        RR7      ;_uu_ 4        VP                  W#R7       RRR4       \        R
RV \        R7      p\        RRV \        R7      p. RO^^.3p\
        P                  ! \        RR7      ;_uu_ 4        VP                  W#R7       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   r   r3  z*sizes of the corresponding axes must matchr<   rv   Nz,axes lists/tuples must be of the same lengthr   r   r$   r   r   r   )r$   r   r   r   r   )r   r   r   r   )r   r   r!   )	r   r'   r   r   r   rB   rC   rD   rF  )r   r  r   rw   s       r    test_tensordot_with_invalid_argsrO  $  s    
))


)C#CsKE#CsKEC!:D	z)U	V	V) 
W c3OECcMEaUD	z *& 
' 
')
' 
' 
W	V
' 
' 
's   0C:D:D
	D	c                 
   \         P                  P                  R 4      p\        V RV\        R7      pVP                  V4      p\         P                  ! VP                  4       V4      p\        VP                  4       V4       R# r2  )	r   r'   r   r   r   _broadcast_tobroadcast_tor   r   )actual_shapebroadcast_shaper   r   rH   r   s   &&    r   test_broadcast_torU  7  s^     ))


)C
|Ss#
NC


O
,C
//#++-
9C$r   c                    \         P                  P                  R 4      p\        V RV\        R7      pVP                  4       p\	        \         P                  ! VP                  RR 4      4      pVP                  V3VP                  RR ,           4      p\        V4       Uu. uF  qeVRR3,          NK  	  pp\        V!  p\        V4      p	\        V	P                  4       V4       R# u upi )r   r   r3  NNNNr   )r   r'   r   r   r   r   prodr   rV   ranger   r   r   )
r   r   r
  r  
num_slicesreshaped_arrayimatricesr   rH   s
   &         r   test_block_diagr^  E  s     ))


)CsCHDLLNE RWWU[["-./J]]J=5;;rs3C#CDN16z1BC1BAq!Qw''1BHC
h
C
d
C$ Ds   "C(c                     \         P                  P                  R 4      p\        V RV\        R7      p\        \        V4      V 4      p\        VP                  4       VP                  4       4       R# r2  )	r   r'   r   r   r   r   r   r   r   )r   r   r
  rH   s   &   r   test_extract_block_diagr`  X  sO     ))


)CsCHD
k$/
7C/r   c                 |   \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      pW4,           p\         P
                  ! VP                  4       VP                  4       4      p\        VP                  4       V4       W4P                  4       ,           p\        WV4       R# r2  )r   r'   r   r   r   addr   r   r  r  r   r=  r>  rH   r   s   &&     r   test_add_no_broadcastingrd  e  s~    
))


)CWc3GAWc3GA
%C
&&aiik
*C$
iik/Cr   c                 |   \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      pW4,
          p\         P
                  ! VP                  4       VP                  4       4      p\        VP                  4       V4       W4P                  4       ,
          p\        WV4       R# r2  )r   r'   r   r   r   subtractr   r   rc  s   &&     r   test_sub_no_broadcastingrg  r  s~    
))


)CWc3GAWc3GA
%C
++aiik199;
/C$
iik/Cr   c                 v   \         P                  P                  R 4      p\        V RV\        R7      pVP                  VR7      p\         P
                  ! VP                  4       VR7      p\        WE4       VP                  VR7      p\         P                  ! VP                  4       VR7      p\        WE4       R# r   r   r3  axisN)	r   r'   r   r   r   argmaxr   r   argmin)r   rk  r   r=  rH   r   s   &&    r   test_argmax_argminrn    s    
))


)CUCcEA
(((
C
))AIIKd
+C
(((
C
))AIIKd
+Cr   c                    \         P                  P                  R 4      p\        V RV\        R7      pVP                  VR7      p\         P
                  ! VP                  4       VR7      pVP                  VR7      p\         P                  ! VP                  4       VR7      pVP                  VR7      p\         P                  ! VP                  4       VR7      p	VP                  VR7      p
\         P                  ! VP                  4       VR7      pWE3Wg3W3W33 F`  w  r\         P                  ! \        V4      \         P                  4      '       d   \        W4       KF  \        VP                  4       V4       Kb  	  R# ri  )r   r'   r   r   r   minr   maxnanminnanmax
issubdtyper   numberr   )r   rk  r   r=  res_minexp_minres_maxexp_max
res_nanmin
exp_nanmin
res_nanmax
exp_nanmaxrH   r   s   &&            r   test_min_maxr~    s   
))


)CUCcEAeeeGffQYY[t,GeeeGffQYY[t,Gt$J199;T2Jt$J199;T2J''); -
/GI==cBII..",Ir   c                      \        . RO..4      \        . RO.4      3 F2  p V P                  4       ^8X  g   Q hV ) P                  4       R8X  d   K2  Q h	  R# )r!   Nr   rA   )r   rp  rq  )r=  s    r   test_min_max_fullr    sK    ,()9l^+DEuuw!||xxzR Fr   c                 H   \         P                  P                  R 4      p\        V RV\        R7      pVP                  WR7      p\         P
                  ! VP                  4       VR7      p\        WV4       Ve)   \        W&4       \        V4      \        V4      8X  g   Q hR# R# r   r   r3  )rk  outrj  N)	r   r'   r   r   r   sumr   r   idr   rk  r  r   r=  rH   r   s   &&&    r   test_sumr    s|    
))


)CUCcEA
%%T%
#C
&&4
(C
S#w"S'!!! r   c                 H   \         P                  P                  R 4      p\        V RV\        R7      pVP                  WR7      p\         P
                  ! VP                  4       VR7      p\        WV4       Ve)   \        V4      \        V4      8X  g   Q h\        W&4       R# R# r  )	r   r'   r   r   r   meanr   r   r  r  s   &&&    r   	test_meanr    s|    
))


)CUCcEA
&&d&
$C
''!))+D
)CC
#w"S'!!!! r   c                     \         P                  P                  R 4      p \        RRV \        R7      p\        V^,          P                  4       \         P                  ! VP                  4       ^4      4       \        V^,          P                  4       \         P                  ! VP                  4       ^4      4       \        \        V4      P                  4       \         P                  ! VP                  4       4      4       \        \        V4      P                  4       \         P                  ! VP                  4       4      4       R# )r   r   r3  N)r   r   r$   r   r   )
r   r'   r   r   r   r   r   powerroundabsr   r=  s     r   test_pow_abs_roundr    s    
))


)C[#CsKAQTNN$bhhqyy{A&>?QTNN$bhhqyy{A&>?E!H$$&(=>CFNN$bffQYY[&9:r   c           	      ~   \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      p\
        P                  ! 4       ;_uu_ 4        \
        P                  ! R\        4       \        W48H  P                  4       VP                  4       VP                  4       8H  4       \        W48g  P                  4       VP                  4       VP                  4       8g  4       \        W48  P                  4       VP                  4       VP                  4       8  4       \        W48*  P                  4       VP                  4       VP                  4       8*  4       \        W48  P                  4       VP                  4       VP                  4       8  4       \        W48  P                  4       VP                  4       VP                  4       8  4       \        W48H  P                  4       \         P                  ! W48g  P                  4       4      4       \        W48  P                  4       \         P                  ! W48  P                  4       4      4       \        W48*  P                  4       \         P                  ! W48  P                  4       4      4       RRR4       R#   + '       g   i     R# ; ir   r   r3  ignoreN)r   r'   r   r   r   warningscatch_warningssimplefilterr   r   r   bitwise_not)r  r  r   r=  r>  s   &&   r   test_boolean_comparisonsr    s   
))


)CWc3GAWc3GA		 	 	"	"h(?@ad^^%qyy{AIIK'?@ad^^%qyy{AIIK'?@ad^^%qyy{AIIK'?@ad^^%qyy{AIIK'?@ac]]_aiik!))+&=>ac]]_aiik!))+&=>ad^^%r~~qtnn6F'GHad^^%r~~qsmmo'FGad^^%r~~qsmmo'FG 
#	"	"	"s   #H>J++J<	c                  <   \         P                  P                  R 4      p \        RRV \        R7      p\
        P                  ! 4       ;_uu_ 4        \
        P                  ! R\        4       \        V^ 8H  P                  4       VP                  4       ^ 8H  4       \        V^ 8g  P                  4       VP                  4       ^ 8g  4       \        V^8  P                  4       VP                  4       ^8  4       \        V^8*  P                  4       VP                  4       ^8*  4       \        V^ 8  P                  4       VP                  4       ^ 8  4       \        V^ 8  P                  4       VP                  4       ^ 8  4       RRR4       R#   + '       g   i     R# ; i)r   r   r3  r  N)r$   r   rL   r   )r   r'   r   r   r   r  r  r  r   r   r   r  s     r   $test_boolean_comparisons_with_scalarr  
  s   
))


)CY#SIA		 	 	"	"h(?@ad^^%qyy{A~6ad^^%qyy{A~6ad^^%qyy{A~6ad^^%qyy{A~6ac]]_aiik!m4ac]]_aiik!m4 
#	"	"	"s   D0F

F	c                 :   \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      pW4,          p\         P
                  ! VP                  4       VP                  4       4      p\        VP                  4       V4       R# r2  r   r'   r   r   r   multiplyr   r   rc  s   &&     r   test_multiplyr    si    
))


)CWc3GAWc3GA
%C
++aiik199;
/C$r   c                      \         P                  P                  R 4      p \        RRV \        R7      pV^,          p\         P
                  ! VP                  4       ^4      p\        VP                  4       V4       R# r   r   r3  N)r   r$   r   r  r   r=  rH   r   s       r   test_multiply_with_scalarr  !  sU    
))


)CWc3GA
a%C
++aiik1
%C$r   c                    \         P                  P                  R 4      p\        V RV\        R7      p\         P
                  ! ^^\        P                  ! V4      ,           4      P                  V4      pW4,          pVP                  4       V,          p\        VP                  4       V4       W4,          p\        VP                  4       V4       R# r2  )r   r'   r   r   r   arangemathrX  rV   r   r   rc  s   &&     r   test_divider  )  s    
))


)CWc3GA
		!Q7++,44W=A
%C
))+/CCKKM3'
%CCKKM3'r   c                      \         P                  P                  R 4      p \        RRV \        R7      pV^,          pVP                  4       ^,          p\        VP                  4       V4       R# r  )r   r'   r   r   r   r   r   r  s       r   test_divide_with_scalarr  6  sN    
))


)CWc3GA
a%C
))+/CCKKM3'r   c                    \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      p\
        P                  ! 4       ;_uu_ 4        \
        P                  ! R\        4       VP                  V4      p\         P                  ! VP                  4       VP                  4       4      p\        VP                  4       V4       RRR4       R#   + '       g   i     R# ; ir  )r   r'   r   r   r   r  r  r  r   maximumr   r   rc  s   &&     r   test_maximumr  >      
))


)CWc3GAWc3GA		 	 	"	"h(?@iiljjaiik2S[[]C(	 
#	"	"	"   #A:C''C8	c                    \         P                  P                  R 4      p\        V RV\        R7      p\        VRV\        R7      p\
        P                  ! 4       ;_uu_ 4        \
        P                  ! R\        4       VP                  V4      p\         P                  ! VP                  4       VP                  4       4      p\        VP                  4       V4       RRR4       R#   + '       g   i     R# ; ir  )r   r'   r   r   r   r  r  r  r   minimumr   r   rc  s   &&     r   test_minimumr  J  r  r  c            	         \        . RO4      p \        ^^ .^^.^ R..4      p\        ^^ .^^..^^	.R^...^^.^^ ..^ ^.^ R....4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        V P                  ^4      P                  4       \        P                  ! V P                  4       ^4      4       \        VP                  ^	4      P                  4       \        P                  ! VP                  4       ^	4      4       \        VP                  ^4      P                  4       \        P                  ! VP                  4       ^4      4       RRR4       R#   + '       g   i     R# ; ir   r  N)r   r!   r   ir   i)	r   r  r  r  r   r   r  r   r   r=  r>  cs      r   test_maximum_with_scalarr  V  +   'AB7RGaX./AaUQqENaURG$45UQqENaUQrFO46 	7A		 	 	"	"h(?@QYYq\))+RZZ		Q-GHQYYq\))+RZZ		Q-GHQYYq\))+RZZ		Q-GH	 
#	"	"	"   (D E22F	c            	         \        . RO4      p \        ^^ .^^.^ R..4      p\        ^^ .^^..^^	.R^...^^.^^ ..^ ^.^ R....4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        V P                  ^4      P                  4       \        P                  ! V P                  4       ^4      4       \        VP                  ^	4      P                  4       \        P                  ! VP                  4       ^	4      4       \        VP                  ^4      P                  4       \        P                  ! VP                  4       ^4      4       RRR4       R#   + '       g   i     R# ; ir  )	r   r  r  r  r   r   r  r   r   r  s      r   test_minimum_with_scalarr  b  r  r  c                     \        \        P                  ! ^	4      4      p V ^ ,          ^ 8X  g   Q hV ^,          ^8X  g   Q h\        V R,          P	                  4       V P	                  4       R,          4       \        V R,          P	                  4       V P	                  4       R,          4       \        V R,          P	                  4       V P	                  4       R,          4       \        V R,          P	                  4       V P	                  4       R,          4       \        V . RO,          P	                  4       V P	                  4       . RO,          4       \        V . RO,          P	                  4       V P	                  4       . RO,          4       R# )rK   r!   r   NNr   Nr!   NNr!   r$   r   Nr!   r   r   r   r   r!   )r   r   r  r   r   r[   s    r   test_1d_coo_getr  n  s    "))A,AQ4199Q41993!199;s#342!))+b/22!))+b/25!!#QYY[%789%%'Y)?@9%%'Y)?@r   c                     \        \        P                  ! ^4      P                  R4      4      p V R,          ^ 8X  g   Q hV R,          ^8X  g   Q h\	        V R,          P                  4       V P                  4       R,          4       \	        V R,          P                  4       V P                  4       R,          4       \	        V R,          P                  4       V P                  4       R,          4       \	        V ^^.^ 3,          P                  4       V P                  4       ^^.^ 3,          4       \	        V R^^.3,          P                  4       V P                  4       R^^.3,          4       \	        V \        P                  ! ^^.4      ^ 3,          P                  4       V P                  4       ^^.^ 3,          4       \	        V R\        P                  ! ^^.4      3,          P                  4       V P                  4       R^^.3,          4       \	        V R	,          P                  4       V P                  4       R	,          4       \	        V R
,          P                  4       V P                  4       R
,          4       R# )r   r   NNNr   r$   r   r   r   r   )r  r   )r   r  )Nr   N:r!   r$   r   )rW  r   )r   rW  )r   r   r  rV   r   r   r&   r  s    r   test_2d_coo_getr  }  s   "))E"**623AT7a<<T7b==6""$aiik&&9:6""$aiik&&9:9%%'Y)?@Aq619%%'aUAX)>?21v:&&(!))+b1Q%i*@A288QF#Q&'//1199;!uax3HI2rxxA''(002AIIKQqE	4JK4"AIIK$564"AIIK$56r   c                     \        \        P                  ! ^x4      P                  R4      4      p V R,          ^ 8X  g   Q hV R,          ^w8X  g   Q h\	        V R,          P                  4       V P                  4       R,          4       \	        V R,          P                  4       V P                  4       R,          4       \	        V R	,          P                  4       V P                  4       R	,          4       \	        V ^^.^ ^ 3,          P                  4       V P                  4       ^^.^ ^ 3,          4       \	        V RR^^.3,          P                  4       V P                  4       RR^^.3,          4       \	        V R
,          P                  4       V P                  4       R
,          4       \	        V R,          P                  4       V P                  4       R,          4       R# )r   r  r  Nr#   r  rM  )r   r  r   )r   r  r   )r  r  r  )r   rW  r   )rW  rW  r   )r   r   r  rV   r   r   )rZ   s    r   test_3d_coo_getr    sZ   "))I&..y9:AW:??W:9%%'Y)?@9%%'Y)?@=!))+QYY[-GHAq61a<((*AIIKA1,EF2sQF?#++-qyy{2sQF?/KL7##%qyy{7';<7##%qyy{7';<r   c                     \        \        P                  ! ^x4      P                  R4      4      p V P	                  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       R# )r   Nr#   )Nr$   Nr   NNr!   )Nr  r  Nr!   )Nr  r  r!   N)Nr  .N)r   r   r  rV   r   r   )rZ   Ds     r   test_newaxis_getr    s    "))I&..y9:A			A9%%'96)*224a8N6OP()113Q7L5MN&'//115H3IJr   c                  >   \         P                  ! ^x4      P                  R4      p \        V 4      p^;VR&   V R&   \	        VP                  4       V 4       ^;VR&   V R&   \	        VP                  4       V 4       ^;VR&   V R&   \	        VP                  4       V 4       R# )r   Nr#   )Nr  r!   )r  r!   N)r  Nr!   )r   r  rV   r   r   r   r  rZ   s     r   test_newaxis_setr    s    
		)$$Y/A!A&''AkNQ{^a &''AkNQ{^a &''AkNQ{^a r   c                     \         P                  ! ^	4      p \        V 4      pR;V^ &   V ^ &   \        VP	                  4       V 4       R;V^&   V ^&   \        VP	                  4       V 4       RR.;VR&   V R&   \        VP	                  4       V 4       . R	O;VR&   V R&   \        VP	                  4       V 4       V R,          ) ;VR&   V R&   \        VP	                  4       V 4       V R,          ) ;VR&   V R&   \        VP	                  4       V 4       V . R
O,          ) ;V. R
O&   V . R
O&   \        VP	                  4       V 4       V . RO,          ) ;V. RO&   V . RO&   \        VP	                  4       V 4       R# )rK   r  r  r  r  NrA   r   r   )iiir  r"   r  )r   r  r   r   r   r  s     r   test_1d_coo_setr    sD   
		!A!AAaD1Q4a AaD1Q4a 2hAcFQsVa   AbEAbEa rUFAbEAbEa U8)#AeHqxa #$Y<-/AiL1Y<a #$Y<-/AiL1Y<a r   c                 X    W,          ) ;W&   W&   \        V P                  4       V4       R # r   r   r   rZ   r  idxs   &&&r   test_2d_coo_setr    s&     vgAFQVa r   c                 J    R;W&   W&   \        V P                  4       V4       R# )c   Nr  r  s   &&&r   test_3d_coo_setr    s"     AFQVa r   scalar_containerc                 D    \        \        P                  ! V ..4      4      # r   )r
   r   r&   xs   &r   <lambda>r    s    yA3%)r   c                     V # r   rE   r  s   &r   r  r    s    qr   )idszfails in parallel)reasonc                 z    V ! R4      \         R&   R\        R&   \        \         P                  4       \        4       R# )r  Nr  r  )rZ   r  r   r   )r  s   &r   test_3d_coo_singletonr  
  s+     $C(AiLAiLa r   z
split-intszcontiguous-ints-lastzcontiguous-ints-firstzempty-slicezsplit-2d-arrays-and-intszcontiguous-2d-arrays-and-intszsplit-1d-arrays-and-intsz,split-ints-broadcast-arrays-slice-step-not-1zcontiguous-broadcast-arrayszcontiguous-arrays-firstz!split-arrays-some-first-some-lastz$duplicate-array-entries-split-arraysz3duplicate-array-entries-contiguous-broadcast-arraysc                 V    R;W&   W&   \        V P                  4       VRV R2R7       R# )r  z

Test of: 
)err_msgNr  r  rZ   r  ixmsgs   &&&&r   test_5d_coo_setr  G  s-     AEAEa;se2)>?r   c                     \         P                  ! R4      P                  R4      p \        V 4      p\	        WR8  ,          P                  4       W R8  ,          4       \	        WR8  ,          P                  4       W R8  ,          4       \	        WR8  ,          P                  4       W R8  ,          4       \	        WR8  ,          P                  4       W R8  ,          4       \	        WR8  ,          P                  4       W R8  ,          4       \	        WR8  ,          P                  4       W R8  ,          4       VR,          ^28  pVR,          ^28  pV\        ^^R4      ^.\        R^^4      V3pVP                  4       \        ^^^4      ^.\        ^ ^^4      VP                  4       3pW,          p\	        W,          P                  4       V4       \	        W,          P                  4       V4       \        ^^R4      W3\        R^^4      ^.3p\        ^^R4      VP                  4       VP                  4       \        R^^4      ^.3pW,          p\	        W,          P                  4       V4       R# )	r     i  N  r   r   r   r   r   rA   rW  r   r   r   r   )r   rW  r   r   r   )r   r  rV   r   r   r   slice)r  rZ   bi0bi1r  idxnpresults          r   test_bool_getr  N  s   
		#$,,_=A!As7##%qSz2t8$$&d(4r6""$aBi0s7##%qSz2t8$$&d(4r6""$aBi0
M
R
C
M
R
CaD!A3dAq(93
?C[[]E!QNQCq!QOEXF!6*!!#V,AtcdAq(9A3
?C1as{{}eD!Q>ORSQTUEXF!6*r   c                  N   \         P                  ! R4      P                  R4      p \        V 4      pVP	                  4       V P	                  4       r2R;W3R8  &   W"R8  &   \        VP                  4       V4       VP	                  4       V P	                  4       r2R;W3R8  &   W"R8  &   \        VP                  4       V4       VP	                  4       V P	                  4       r2VR,          ^28  pV\        ^^R4      ^.\        R^^4      V3pVP                  4       \        ^^^4      ^.\        ^ ^^4      VP                  4       3pR;W6&   W%&   \        VP                  4       V4       VP	                  4       V P	                  4       r2R	;W6&   W&&   \        VP                  4       V4       R# )
r   r  Nr  r  iir  ii)r   r  rV   r   copyr   r   r  )D_origA_origrZ   r  bool0r  r  s          r   test_bool_setr   i  s[   YY()11/BFvF;;=&++-q!!A#gJs7a ;;=&++-q!!A#gJs7a ;;=&++-qmr!E%1d#aS%a*;U
CC]]_eAq!nqc5Aq>5==?SEAHqva ;;=&++-qAHqxa r   )r!   r   r   r$   rL   r   )r!   r   r   rL   r   r  )rz   r  )r   r   r  )r   r   r   r_   )r   rK   r   r   r   r$   )r   r   ))r   rK   r   r$   )r   r      r   )r  )$      )r  )i8  )r  )r   r   r   r   r   r$   r   )r   r   r{   ))r   rz   )r%   r{   ))r   r   r   r   r$   r   )r!   r   r   r$   r   r   )r  r  ))r  )r   )r   r   )r   r$   )r$   rK   r   r   )rK   r$   r   r   r$   )	)r   r   r   r$   r  r  rz   ))r   r   r   r   rL   )rL   )r   r   r   r   rz   )r   r$   r   r   r   r   r!   )r   r$   r  r  )r$   r!   )r   r?   )r>   r>   )r.  r/  ))r	  )r   r   r$   r   r
  r  )r   rL   r   r   )r  r?   )r  r   r   ))r!   r   r   r   )r   r$   r!   r   r   ))r   r!   r!   r   r   )r!   r   r   r   )r>   )r   r   r   )r   )r$   r   r   r   r   )r>   r  r  )r5  r6  r   r   r   r   r   r   r   r   r   r   r$   r   r   r   r   r   r   rL   r   r   r$   r   r   )
)ra   ra   )r  r  ))r!   r   r  )r  r  )r  r  )r  )r   r!   ))r!   r$   r  )r  r  )r  )r   r$   r   r   r   )r  r  r   r$   r   rL   r   r   )r   r   r   ))r   r$   r   r   r   )r   r   r   r   rL   r   ))r   r$   r   )r   r   r   r!   )r   r   r   )r  r  rw   )rS  rT  r`   r#   )	))r!   r   r$   r   )r   r   r$   r   ))r   r!   r$   r   )r   r   r   r$   r   ))r!   r!   r   rL   rK   )r   r$   r   r   rL   rK   )r`   )r   r$   r   ))r   rL   r!   )r   rL   r$   )r?   r  ))r!   r  )r@   r#   ))r!   r   r!   r$   r   )rL   r   r   rK   r$   r   ))r   r$   r   r   rL   r  r  )rK   r$   r   r   r   ))r  r  )rN  rN  )r   r   r$   r  )r   Nr   r   r  r!   r   r   r   r   r$   Nr  r   r  r   )r   r   r   ))r   r   r   r   r   r  Nr  r!   r  r   r  r   )r  r   r  r   )r  r   )r   rk  r   r   rL   r$   rA   rA   r   )r  r  r  r  r   r"  r#  r%  r&  r'  r(  r)  )r   r$   rL   r!   r   )r  rz   )r  r{   )r   r   r   r   )r-  r   r   )rb   r   )r*  r{   )r*  r   r!   )r*  r$  )r*  r   r   )r*  r+  )r*  r   )r*  r   )r*  r   )r   NN)r   r   N)r  r!   N)r  r   N)r!  NN)r  r   N)rL   r   )r  NN)r   r   r   )r  r   N)r  r   N)r,  r   N)r  rz   N)r  r{   N)r-  r   N)r-  r.  N)rb   r   N)rL   r$   )r*  r/  N)r*  r0  N)r   r   )r*  r   N)r*  r   N)r   rk  r  r  )rA   r   r"   r  )r   r$   )sparsedensescalarr  r  )zall-intsr   )zellipsis-first).r   )zellipsis-last)r!   .)zellipsis-middle)r!   .r   r5   )r   r!   r   )r   r!   r   r   )r   r   r   r  )r  r  numpyr   numpy.testingr   r   rB   scipy.linalgr   scipy.sparser   r   r   r	   scipy.sparse._csrr
   _coor   r   r   r2   r9   rF   rI   rO   rQ   r]   rk   ro   rt   r~   r   r   markparametrizer   r   zipr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r!  r%  r'  r)  r+  mat_vec_shapesr0  mat_mat_shapesr7  r:  r?  rA  rC  rG  
dot_shapesrI  tensordot_shapes_and_axesrK  rO  rU  r^  r`  add_sub_shapesrd  rg  argmax_argmin_shapes_axisrn  max_min_shapes_axisr~  r  r   sum_mean_paramsr  r  r  bitwise_op_and_compare_shapesr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rV   r  rZ   r  Ellipsisr&   keysthread_unsafer  r  r  r  r  r   )r  r  r  s   000r   <module>rJ     s      7  #  ( 3<R@)(+8058
# "J
=A  3 0% 1% S|%D EF% G% -% .%8
+2B"  #; <0<0  #; <1<1  #; <%<%  #; <%<%; / 2Q R-	R-  #; <6<6  #; <"<"2 / 2S TSTSA54  #; <<  #; <2<22 / 2K LL  #; <<  #; <	2<	22 / 2K LL
 3^D
 E
 5~F G* "%	
 /<% =%$ EQC!:sQCj!	9sQCj!	QFQF+,kIy12!g	9-.	  79RS T,*& <MN
%N
% ' %> ?%?%" ' %> ?0?0 /@	 A	 /@
 A
  *,EF
 G

  *,?@- A-*  &(;!RXXe_5iBHHW,=>0-/C.0@rxx')A	6288E?CY$@  1?C	" D	" 1?C	" D	";!  /1NOH PH"
5 /1NO% P%% /1NO	( P	(( /1NO) P) /1NO) P)	I	IA7&= K	!!0 IIeV$aL 
1aaD
1aaA'
4rAdKVQKAKXXq!fuQ~&
1Xrxx	"#XXq!frxxA'(#( *D,IDSaC[D,IJ!  K!
 IIi  +aL aQ
1d^Qa!
1XuQ1~uQ~.
4rE$Kq!Q8AaXXq!fuQ~q)XXq!fuQ~s+XXq!fuQ~rxxA'78!Q"((Aq6*+XXq!frxxA'+XXq!frxxA'!-%* *D,IDSaC[D,IJ!  K!
 )288[A%  
 "56! 7! II ((9aL  $E$4(!QdD$0GKLeAtT2E$d4KQPQSTUVq!Qat(<eD$PT>UVWU1a&dD$(?AqIJ	tQ		95	97M	tT4	 !	% %	tQ		95	97M	
E$d#	%  	tQ	y)U4t5LaP 4	
E!QNA	{aS1#sO< #	tQ	uQ1~q9+aS1#O 
sQC!oq%1a.%a:NO )
eAq!neD!T&:AaS1#O ,	tQ		95	97M	tT4	 !	% ;	q!QA	{aS1#sO<Q+Z 0RV2WRVwsAq"?RV2WX@  Y@
+6!K -J> -JH 3Xs   (n4
$n9
5n>