+
    0if@                     n    R t ^ RIt^ RIHt ^ RIt^ RIHt ^ RIH	t
HtHtHtHt ^ RIHt  ! R R4      tR# )z'unit tests for sparse utility functionsN)assert_equal)raises)_sputils	csr_array	bsr_array	dia_array	coo_array)matrixc                   Z  a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 t]P                  P                  R
]].4      R 4       tR tR tR t]P                  P                  R. RR.NRR.NRR.N. ROR.N. R.NR.R.NR .R .NR!R.R!.NRR!.R!.NR".R".NR"R#.R#.N. R%OR&.NR$.R$.NR'R(.R).NR*R+.R+.NR,R+.R+.NR*R,.R+.NR"R+.R+.NR"R*.R*.NR"R,.R,.NRR-.R-.NR-R+.R+.NR-R,.R+.NR.R+.R+.NRR+.R+.NR"R-.R*.NR.R,.R,.NR.R*.R*.NRR*.R*.NRR,.R,.NR.R/.R/.N^R0.R0.NR!.^ ,          R!.NR!.^d,          R!.NR.^ ,          R.N4      R 4       t]P                  P                  RR/R1.R2R.^R2.. R3OR4R5.R6R4.R7R8.. R9OR.^ ,          R/.^ ,          ,           .	4      R 4       tR tR tR tRtV tR# ):TestSparseUtilsc                   \        \        P                  ! R 4      \        P                  4       \        \        P                  ! RR4      \        P
                  4       \        \        P                  ! R\        \        4      \        P                  4       \        \        P                  ! RR4      \        P
                  4       R# )intcint32float32boolidN)	r   sputilsupcastnpr   float64complexfloat
complex128selfs   &]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/sparse/tests/test_sputils.pytest_upcastTestSparseUtils.test_upcast   sf    W^^F+RWW5W^^GY7DW^^FGU;R]]KW^^C-rzz:    c                :   \         P                  ! ^.RR7      p\        \        P                  ! R\
        R7      \
        4       \        \        P                  ! RVR7      \         P                  4       \        \        RR7      ;_uu_ 4        \        P                  ! R4       RRR4       \        \        R	R7      ;_uu_ 4        \        P                  ! R\         P                  R7       RRR4       R#   + '       g   i     LZ; i  + '       g   i     R# ; i)
   int8dtypeN)default)az.scipy.sparse does not support dtype object. .*matchOz/scipy.sparse does not support dtype float16. .*)
r   arrayr   r   getdtyper   r"   assert_raises
ValueErrorfloat16)r   As   & r   test_getdtypeTestSparseUtils.test_getdtype   s    HHaS'W%%dE:EBW%%da0"'':B
 
 S!	
 C
 
 T2::6	
 

 

 
 
s   C6'D	6D		D	c                   \        \        P                  ! R 4      R4       \        \        P                  ! R4      R4       \        \        P                  ! R4      R4       \        \        P                  ! R4      R4       \        \        P                  ! \        P                  ! ^4      4      R4       \        \        P                  ! R4      R4       \        \        P                  ! \        P                  ! ^.4      4      R4       \        \        P                  ! ^..4      R4       \        \        P                  ! R4      R4       \        \        P                  ! R	4      R4       R# )
      @T      @16FN      ?      @r!   r!      )r   r   isscalarliker   r*   r   s   &r   test_isscalarlike!TestSparseUtils.test_isscalarlike%   s    W))#.5W))"-t4W))#.5W))&148W))"((1+6=W))$/6W))"((A3-8%@W))A3%0%8W))$/7W))&159r   c                   \        \        P                  ! R4      R4       \        \        P                  ! \        P                  ! ^4      4      R4       \        \        P                  ! \        P                  ! ^.4      4      R4       \        \        RR7      ;_uu_ 4        \        P                  ! R4       RRR4       \        \        P                  ! R4      R4       \        \        P                  ! R	4      R4       \        \        P                  ! R
4      R4       \        \        P                  ! R4      R4       R#   + '       g   i     L; i)   TFz4Inexact indices into sparse matrices are not allowedr'   r3   Nr4   r6   r7   r8   r9   )r   r   	isintliker   r*   r,   r-   r   s   &r   test_isintlikeTestSparseUtils.test_isintlike2   s    W&&r*D1W&&rxx{3T:W&&rxx}5u=H
 
 c"	
 	W&&s+U3W&&v.6W&&t,e4W&&v.6
 
s   #EE	c                   \        \        P                  ! R4      R4       \        \        P                  ! R4      R4       \        \        P                  ! R	4      R4       \        \        P                  ! R
4      R4       \        \        P                  ! ^.^34      R4       \        \        P                  ! RRR7      R4       \        \        P                  ! RRR7      R4       \        \        P                  ! RRR7      R4       \        \        P                  ! RRR7      R4       \        \        P                  ! R	RR7      R4       \        \        P                  ! ^.^3RR7      R4       \        \        P                  ! RRRR7      R4       \        \        P                  ! RRR7      R4       \        \        P                  ! RRR7      R4       \        \        P                  ! R
RR7      R4       R# )r!   TF)nonneg)allow_nd)rD   rE   Nr9   )   r:   )      ?r:   r:   r:   r:   )r:   )r:   rI   )r:   r:   r:   )r:   r:   )r   r   isshaper   s   &r   test_isshapeTestSparseUtils.test_isshapeA   sD   W__V,d3W__V,d3W__X.6W__Y/7W__qc1X.6W__WU;DAW__WU;DAW__WT:5AW__WT:5AW__X?GW__qc1X?GW__ZvN	W__TF;TBW__Wv>EW__Y@%Hr   c           	     ,   \        \        P                  ! R4      R4       \        \        P                  ! R4      R4       \        \        P                  ! ^.4      R4       \        \        P                  ! . RO4      R4       \        \        P                  ! \        P                  ! . RO4      4      R4       \        \        P                  ! \        P                  ! ^.^.^..4      4      R4       \        \        P                  ! ^4      R4       R# )r!   TFNr8   r!   r:      )r   r   
issequencer   r*   r   s   &r   test_issequenceTestSparseUtils.test_issequenceU   s    W''-t4W''	2D9W'',d3W''	2D9W''(;<dCW''1#sQC(ABEJW''*E2r   c                6   \        \        P                  ! R4      R 4       \        \        P                  ! ^.^..4      R 4       \        \        P                  ! \        P                  ! ^4      R,          4      R 4       \        \        P                  ! ^^.4      R4       \        \        P                  ! \        P                  ! ^4      4      R4       \        \        P                  ! ^...4      R4       \        \        P                  ! ^4      R4       R# )TNF) )r   r   ismatrixr   aranger   s   &r   test_ismatrixTestSparseUtils.test_ismatrix_   s    W%%e,d3W%%sQCj148W%%biil4&894@W%%q!f-u5W%%biil3U;W%%ug.6W%%a(%0r   c                    \        \        P                  ! \        P                  ! ^.4      4      R4       \        \        P                  ! \        ^.4      4      R4       R# )r!   TN)r   r   isdenser   r*   r	   r   s   &r   test_isdenseTestSparseUtils.test_isdensei   s8    W__RXXqc]3T:W__VQC[148r   c                   \        \        R R7      ;_uu_ 4        \        P                  ! R4       RRR4       R F;  p\        \        RR7      ;_uu_ 4        \        P                  ! V4       RRR4       K=  	  R F;  p\        \        RR7      ;_uu_ 4        \        P                  ! V4       RRR4       K=  	  R F=  p\        \        RR7      ;_uu_ 4        \        P                  ! V^R7       RRR4       K?  	  \        \        RR7      ;_uu_ 4        \        P                  ! R^R7       RRR4       R F  p\        P                  ! V^R7      f   K  Q h	  R F=  p\        \        RR7      ;_uu_ 4        \        P                  ! V^R7       RRR4       K?  	  R F"  p\        P                  ! V^R7      V8X  d   K"  Q h	  R
RR	R^ R^RRRRR/pVP                  4        F$  w  r$\        P                  ! V^R7      V8X  d   K$  Q h	  R F"  p\        P                  ! V^R7      V8X  d   K"  Q h	  RRRR^R^RRR/pVP                  4        F   w  r$\        P                  ! V^R7      V8H   K"  	  R#   + '       g   i     ELP; i  + '       g   i     EKc  ; i  + '       g   i     EK7  ; i  + '       g   i     EK  ; i  + '       g   i     EL; i  + '       g   i     EK  ; i)zdoes not accept 0D axisr'   Nzmust be an integerzduplicate value in axiszout of range)ndimrV   )rG   )    rG   )rG   ra   rI   rJ   )r!   r!   r!   rI   )ra   rJ   ra   r!   )r!   rJ   rd   rc   )ra   rI   ra   )ra   rI   Nre   )rI   )rF   )ra   rF   )rf   ra   r8   )re   r8   NrK   rQ   )rK   rg   r:   rQ   )r:   r!   )ra   rQ   r6   )rQ   r6   )rQ   ra   )r,   r-   r   validateaxis	TypeErroritems)r   axaxisaxis_2dcanonical_axisaxis_4ds   &     r   test_validateaxis!TestSparseUtils.test_validateaxism   s^   :-FGG  $ H ,By0DEE$$R( FE , -Bz1JKK$$R( LK -
 +Bz@@$$Ra0 A@ + :-FGG  q1 H /D''15=== / +Bz@@$$Ra0 A@ + 'D''15=== 'tRq$4wPTU$+MMO D''15GGG %4 9D''15=== 9tRq$4&I$+MMO D  A..@ %4E HGG FEE LKK
 A@@GGG A@@sG   I8JJ!J6K;K8J		J!J36KK	K1	containerc                @
   \         P                  ! \         P                  ! \         P                  4      P                  4      pV! ^V34      pVP                  4       pVP                  P                  \         P                  4      Vn        VP                  P                  \         P                  4      Vn        \        ^V^,           34      pVP                  4       pVP                  P                  \         P                  4      Vn        VP                  P                  \         P                  4      Vn        VP                  4       p\         P                  ! V^,           .\         P                  R7      Vn        \         P                  ! ^ ^.\         P                  R7      Vn        \         P                  ! R.4      Vn        VP                  P                  VP                  P                  3\         P                  \         P                  38X  g   Q hVP                  P                  VP                  P                  3\         P                  \         P                  38X  g   Q hVP                  P                  VP                  P                  3\         P                  \         P                  38X  g   Q hVP                  P                  VP                  P                  3\         P                  \         P                  38X  g   Q hVP                  P                  VP                  P                  3\         P                  \         P                  38X  g   Q hW4WV3 EF  p\        P                  ! V\         P                  4      w  rV	P                  V
P                  3\         P                  \         P                  38X  g   Q h\        P                  ! V\         P                  4      w  rV	P                  V
P                  3\         P                  \         P                  38X  g   Q h\        P                  ! WP                  P                  4      w  rWP                  J g   Q hWP                  J d   EK  Q h	  \        \         4      ;_uu_ 4        \        P                  ! V\         P                  4       RRR4       \        P                  ! V\         P                  4      w  rWP                  J g   Q hWP                  J g   Q hR#   + '       g   i     L[; i)r!   r#   皙@N)r   int64iinfor   maxcopyindicesastypeindptrr   r*   datar$   r   safely_cast_index_arraysr,   r-   )r   rt   imaxA32B32A64B64C64r/   r{   r}   s   &&         r   !test_safely_cast_index_compressed1TestSparseUtils.test_safely_cast_index_compressed   sM   
 xx*../ D	"hhjkk((2ZZ&&rxx0
 D1H&hhjkk((2ZZ&&rxx0
hhjhhqz:XXq!fBHH5
88SE?!!3::#3#342888LLLL!!3::#3#342888LLLL!!3::#3#342888LLLL!!3::#3#342888LLLL!!3::#3#342888LLLLC%A%>>q"((KOGMM6<<0RXXrxx4HHHH%>>q"((KOGMM6<<0RXXrxx4HHHH%>>q))//ROGii'''XX%%% & :&&,,S"((; '!::3I++%%%###	 '&s   &TT	c                   \         P                  ! \         P                  ! \         P                  4      P                  4      p\        ^V34      pVP                  4       p\        ;QJ d    . R VP                   4       F  NK  	  5M! R VP                   4       4      Vn        \        ^V^,           34      pVP                  4       p\        ;QJ d    . R VP                   4       F  NK  	  5M! R VP                   4       4      Vn        VP                  4       p\         P                  ! V^,           .4      \         P                  ! ^ .4      3Vn        \         P                  ! R.4      Vn
        VP                  ^ ,          P                  \         P                  8X  g   Q hVP                  ^ ,          P                  \         P                  8X  g   Q hVP                  ^ ,          P                  \         P                  8X  g   Q hVP                  ^ ,          P                  \         P                  8X  g   Q hVP                  ^ ,          P                  \         P                  8X  g   Q hW#WE3 F  p\        P                  ! V\         P                  4      pV^ ,          P                  \         P                  8X  g   Q h\        P                  ! V\         P                  4      pV^ ,          P                  \         P                  8X  g   Q h\        P                  ! WwP                  ^ ,          P                  4      pV^ ,          VP                  ^ ,          J d   K  Q h	  \        \        4      ;_uu_ 4        \        P                  ! V\         P                  4       RRR4       \        P                  ! V\         P                  4      pV^ ,          VP                  ^ ,          J g   Q hR#   + '       g   i     LW; i)r!   c              3   ^   "   T F#  qP                  \        P                  4      x  K%  	  R # 5iN)r|   r   rw   .0cos   & r   	<genexpr>=TestSparseUtils.test_safely_cast_index_coo.<locals>.<genexpr>        D299RXX..   +-c              3   ^   "   T F#  qP                  \        P                  4      x  K%  	  R # 5ir   )r|   r   r   r   s   & r   r   r      r   r   rv   N)r   rw   rx   r   ry   r   rz   tuplecoordsr*   r~   r$   r   r   r,   r-   )	r   r   r   r   r   r   r   r/   r   s	   &        r   test_safely_cast_index_coo*TestSparseUtils.test_safely_cast_index_coo   s    xx*../ D	"hhjUDDUUDDD
 D1H&hhjUDDUUDDD
hhjhhqz*BHHaSM:
88SE?zz!}""bhh...zz!}""bhh...zz!}""bhh...zz!}""bhh...zz!}""bhh...C%A55aBF!9??bhh...55aBF!9??bhh...55a!9J9JKF!9+++ & :&&,,S"((; '11#rxx@ayCJJqM))) '&s   ;&O00P 	c                   \         P                  ! \         P                  ! \         P                  4      P                  4      p\        ^V34      pVP                  4       pVP                  P                  \         P                  4      Vn        \        ^V^,           34      pVP                  4       pVP                  P                  \         P                  4      Vn        VP                  4       p\         P                  ! V^,           .4      Vn        \         P                  ! R.4      Vn
        VP                  P                  \         P                  8X  g   Q hVP                  P                  \         P                  8X  g   Q hVP                  P                  \         P                  8X  g   Q hVP                  P                  \         P                  8X  g   Q hVP                  P                  \         P                  8X  g   Q hW#WE3 F  p\        P                  ! V\         P                  4      pVP                  \         P                  8X  g   Q h\        P                  ! V\         P                  4      pVP                  \         P                  8X  g   Q h\        P                  ! WwP                  P                  4      pWP                  J d   K  Q h	  \        \        4      ;_uu_ 4        \        P                  ! V\         P                  4       RRR4       \        P                  ! V\         P                  4      pWP                  J g   Q hR#   + '       g   i     LH; i)r!   rv   N)r   rw   rx   r   ry   r   rz   offsetsr|   r*   r~   r$   r   r   r,   r-   )	r   r   r   r   r   r   r   r/   r   s	   &        r   test_safely_cast_index_dia*TestSparseUtils.test_safely_cast_index_dia   s5    xx*../ D	"hhjkk((2 D1H&hhjkk((2hhjhhqz*88SE?{{  BHH,,,{{  BHH,,,{{  BHH,,,{{  BHH,,,{{  BHH,,,C%A66q"((CG==BHH,,,66q"((CG==BHH,,,66q))//JGii''' & :&&,,S"((; '223A++%%% '&s   /&MM%	c           
     V   \         P                  ! \         P                  ! \         P                  4      P                  4      pV^,           p\         P
                  ! ^ZRR7      p\         P
                  ! ^ZRR7      p\        \         P                  ! \        P                  ! W43RR7      4      \         P                  ! R4      4       WR
&   \        \         P                  ! \        P                  ! W43RR7      4      \         P                  ! R4      4       W#R
&   \        \         P                  ! \        P                  ! W43RR7      4      \         P                  ! R4      4       \         P
                  ! ^YRR7      p\         P
                  ! ^YRR7      p\        \         P                  ! \        P                  ! W434      4      \         P                  ! R4      4       \         P
                  ! ^RR7      p\         P
                  ! ^RR7      p\        \         P                  ! \        P                  ! W43VRR7      4      \         P                  ! R4      4       W#R
&   \        \         P                  ! \        P                  ! W43VR7      4      \         P                  ! R4      4       R	# )r!   uint32r#   T)check_contentsr   rw   )maxvalr   )r   NrI   )
r   rw   rx   r   ry   onesr   r$   r   get_index_dtype)r   r   too_biga1a2s   &    r   test_get_index_dtype$TestSparseUtils.test_get_index_dtype  s   xx*../( WWRx(WWRx(HHW,,bXdKLHHW	
 2HHW,,bXdKLHHW	
 2HHW,,bXdKLHHW	
 WWRx(WWRx(HHW,,bX67HHW	
 WWRx(WWRx(HHW,,  HHW		
 2HHW,,bXgFGHHW	
r   zinput_shapes,target_shapec                B    \        \        P                  ! V!  V4       R # r   )r   r   broadcast_shapes)r   input_shapestarget_shapes   &&&r   test_broadcast_shapes_successes/TestSparseUtils.test_broadcast_shapes_successesT  s    L 	W--|<lKr   r   c                    \        \        R R7      ;_uu_ 4        \        P                  ! V!   RRR4       R#   + '       g   i     R# ; i)zcannot be broadcastr'   N)r,   r-   r   r   )r   r   s   &&r   test_broadcast_shapes_failures.TestSparseUtils.test_broadcast_shapes_failures}  s0     :-BCC$$l3 DCCCs	   9A
	c                N    \         P                  ! R.R4      p\        VR4       R# )
   N)r   rI   )i  i )r   i23)r   check_shaper   )r   	new_shapes   & r   test_check_shape_overflow)TestSparseUtils.test_check_shape_overflow  s     ''
OD	Y0r   c                   . RO.p\         P                  ! V4      p\        \        P                  ! V4      \         P                  4      '       g   Q h\        \        P                  ! V4      \         P                  4      '       g   Q h\        P                  ! V4      p^{VR&   \        W!4       \        P                  ! VRR7      p^{VR&   \        V. RO.4       R# )r!   F)rz   NrP   NNNr   {   r   r   )r   r*   
isinstancer   r	   r   r   r&   bcs   &   r   test_matrixTestSparseUtils.test_matrix  s    KHHQK'..+RYY7777'..+RYY7777NN1$QNN15)$Q)*r   c                h   . RO.p\         P                  ! V4      p\        \        P                  ! V4      \         P
                  4      '       g   Q h\        \        P                  ! V4      \         P
                  4      '       g   Q h\        P                  ! V4      p^{VR&   \        V. RO.4       R# )r!   NrP   r   r   )r   r*   r   r   asmatrixr	   r   r   s   &   r   test_asmatrixTestSparseUtils.test_asmatrix  s    KHHQK'**1-ryy9999'**1-ryy9999Q$Q)*r   rV   N)   rF   r!   r?   r!   r!   r!           r   r!   )r   rF   r!   r?   r   r   )r   r   )r   rF   r!   r?   r!   r   )r   r   )r   r   rH   rK      r9   rb   )rQ   r?   rF   r   r!   ))r   r   r   r   )rF   r!   r   )rF   r   r   )r!   rQ   rQ   r!   )rQ   rQ   )r!   ra   )ra   ra   rd   re   r8   rg   rQ   r:   r?   rh   )rg   rg   r   )r:   rF   )rQ   rF   )r:   r?   )r!   rQ   r?   )r:   rQ   rQ   )r9   r   r   )r   rF   )__name__
__module____qualname____firstlineno__r   r0   r<   rA   rM   rS   rY   r]   rr   pytestmarkparametrizer   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s    ;7$:7I(319$AL [[[9i*@A.$ B.$`(*T(&T7
x [[8 $;	57QR$;	)+AB$; 
">2$; 
D	$;
 
R$; r
$; $; $ $;  $; 6$; &	6"$; 
.y9$; i $; &	6"$; &	6"$;  &	6"!$;" &	6"#$;$ &	6"%$;& &	6"'$;( &	6")$;* dT+$;,  -$;.  /$;0  1$;2 fv3$;4 $ 5$;6  7$;8  9$;: fv;$;< fv=$;> t?$;@ VfA$;B BC$;D C E$;F "dG$; $JLK$JL [[^	t		
F			I)	tfrk!
. 
4
41+	+ 	+r   r   )__doc__numpyr   numpy.testingr   r   r   r,   scipy.sparser   r   r   r   r   r   scipy.sparse._sputilsr	   r   rV   r   r   <module>r      s)    -  &  * X X (]+ ]+r   