+
    nDj'                        ^ RI t ^ RIt^ RIHtHtHt ^ RIHt ^ RI	H
t
HtHtHtHt ^ RIHt ^ RItR tR tR tR	 t]P,                  P/                  R
]
! . RO. RO. RO.4      ^ R3]
! . RO. RO. RO.4      ^R3]
! . RO. RO. RO.4      RR3]
! . RO. RO. RO.4      ^ R3.4      R 4       tR t]P,                  P5                  R4      ]P,                  P7                  ^4      ]P,                  P/                  R]
]]].4      R 4       4       4       tR t]P,                  P/                  R]
]]].4      R 4       tR t]P,                  P@                  R 4       t!R# )    N)assert_array_almost_equalassert_assert_array_equal)check_free_memory)
csr_matrix
csc_matrix	csr_array	csc_arrayhstack)sparsec                     W V3,          pW0V3,          p\        WEP                  4       ^ ,          4       \        \        V4      \        J 4       R# )r   N)r   toarrayr   typer   )islXXcsrnp_slice	csr_slices   &&&&  U/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/sparse/tests/test_csr.py_check_csr_rowslicer   
   s?    BxHUIh(9(9(;A(>?DOz)*    c                  ^   ^
p \         P                  P                  ^ 4       \         P                  P                  W 34      p^ WR8  &   \        V4      p\	        RRR4      \	        RRR4      \	        ^R^4      \	        R^R4      .p\        V 4       F  pV F  p\        WEW4       K  	  K  	  R# )
   ffffff?N)nprandomseedr   sliceranger   )Nr   r   slicesr   r   s         r   test_csr_rowslicer%      s    
AIINN1
		! AA#gJa=DD$%D$#Ar1oB2 F
 1XBq/  r   c                  ~   ^
p \         P                  P                  ^ 4       \         P                  P                  W 34      p^ WR8  &   \        V4      p\	        V 4       FZ  pWV^,           1R3,          pVP                  V4      p\        WEP                  4       4       \        \        V4      \        J 4       K\  	  R# r   r   NNNN)
r   r   r    r   r"   getrowr   r   r   r   )r#   r   r   r   arr_rowcsr_rows         r   test_csr_getrowr,   "   s    
AIINN1
		! AA#gJa=D1Xa!eGQJ-++a.!'??+<=W+, r   c                  ~   ^
p \         P                  P                  ^ 4       \         P                  P                  W 34      p^ WR8  &   \        V4      p\	        V 4       FZ  pVRW3^,           13,          pVP                  V4      p\        WEP                  4       4       \        \        V4      \        J 4       K\  	  R# r'   )
r   r   r    r   r"   getcolr   r   r   r   )r#   r   r   r   arr_colcsr_cols         r   test_csr_getcolr1   1   s    
AIINN1
		! AA#gJa=D1XAqQwJ-++a.!'??+<=W+, r   z"matrix_input, axis, expected_shapebothc                 r   V P                  4       P                  ^ ,          ^,
          pTpV^,
          pV^ 8X  dJ   WV1R3,          P                  4       P                  pWV1R3,          P                  4       P                  pMV^8X  dJ   V RW413,          P                  4       P                  pV RW513,          P                  4       P                  pMQVR8X  dK   WV1W413,          P                  4       P                  pWV1W513,          P                  4       P                  pXV8X  g   Q hVX8X  g   Q hR# )r   r(   r2   N)r   shape)matrix_inputaxisexpected_shapeslice_1slice_2slice_3actual_shape_1actual_shape_2s   &&&     r   test_csr_empty_slicesr=   ?   s%   & ""$**1-1GGkGqy%goq&89AACII%goq&89AACII	%a&89AACII%a&89AACII	%gow&FGOOQWW%gow&FGOOQWW^+++^+++r   c                  \   \        . RO. RO. RO.4      p . ROp\        P                  ! V4      p. RO. RO. RO.p\        P                  ! V4      p. RO. RO3p\        P                  ! V^ ,          4      \        P                  ! V^,          4      3pW,          P                  4       pW,          P                  4       pW,          p	W,          p
W,          pW,          pWx8H  P	                  4       '       g   Q hW8H  P	                  4       '       g   Q hW8H  P	                  4       '       g   Q hR# )r   Nr         )         )         )FTF)r   r   arrayr   all)datalist_indices1array_indices1list_indices2array_indices2list_indices3array_indices3slice_list1slice_array1slice_list2slice_array2slice_list3slice_array3s                r   test_csr_bool_indexingrW   d   s    y)Y78D(MXXm,N)+?AUVMXXm,N)+?@Mhh}Q/0"((=;K2LMN%--/K'//1L%K'L%K'L',,....',,....',,....r   z!Can't create large array for testclsc                     \         P                  ! R 4      pVP                  R4      pV ! R4      pW2V3,          P                  ^ 8X  g   Q hW2VP                  ^R4      3,          P                  ^ 8X  g   Q hR# )順 N)rZ   r@   )rZ   rZ   r   )r   arangereshapennz)rX   JISs   &   r   6test_fancy_indexing_broadcasts_without_making_dense_2dra   w   sj    
 			'A			,AAT7;;!		!R  !%%***r   c                    \         P                  ! \         P                  4      P                  p R.p^ .pV ^,
          p^pV^,
          .pV^,
          .p\	        WV334      p\	        WV334      p\        V^,
          V^,
          4      V 8  g   Q hVP
                  P                  VP                  P                  u;8X  d   \         P                  8X  g   Q h Q hVP
                  P                  VP                  P                  u;8X  d   \         P                  8X  g   Q h Q h\        Wx.RR7      p	V	P
                  P                  4       W4,           ^,
          8X  g   Q hW4,           ^,
          V 8  g   Q hV	P
                  P                  V	P                  P                  u;8X  d   \         P                  8X  g   Q h Q h\	        VP                  4      p
\	        VP                  4      p\        W.RR7      pVP                  V	P                  8X  g   Q hVP
                  P                  \         P                  8X  g   Q hW,
          ^,
          .p\	        WV334      p\        W~.RR7      pVP
                  P                  \         P                  8X  g   Q hVP
                  P                  4       V ^,
          8X  g   Q hR# )z
Tests if hstack properly promotes to indices and indptr arrays to np.int64
when using np.int32 during concatenation would result in either array
overflowing.
g      ?csr)formatN)r   iinfoint32maxr   indicesdtypeindptrr   int64r4   )	max_int32rJ   rowmax_indices_1max_indices_2col_1col_2X_1X_2X_hs	X_1_empty	X_2_empty
X_hs_emptycol_3X_3X_hs_32s                   r   test_csr_hstack_int64r{      sB    "&&I 5D#CMMM QEQE
d%L)
*C
d%L)
*C}q -!"34y@@@;;

 0 0<BHH<<<<<;;

 0 0<BHH<<<<< 3*U+D<<!>!BBBB(1,y888<<!2!2>bhh>>>>> 399%I399%I.u=Jtzz)))##rxx/// &*+E
d%L)
*CcZ.G??  BHH,,,?? IM111r   c           	         \         P                  P                  ^ 4      pV ! \        P                  ! ^2^2VRR7      4      pVP	                  4       pVP	                  4       pVP
                  P                  \         P                  4      Vn        VP                  P                  \         P                  4      Vn        W#V3 F  p\         P                  P                  V^^.R3,          P                  4       V^^.R3,          P                  4       4       \         P                  P                  VR^^.3,          P                  4       VR^^.3,          P                  4       4       K  	  R# )r   g?)random_statedensityr(   N)r   r   default_rngr   copyrj   astyperk   rh   testingr   r   )rX   rngbase_mtxindptr_64bitindices_64bitmtxs   &     r   #test_mixed_index_dtype_int_indexingr      s    ))


"C6==Rc3GHH==?LMMOM"//00:L$,,33BHH=M6


%%1qM!!#aVQY'')	
 	

%%Aq6	N""$QAY'')	
 7r   c                     \         P                  ! . RO4      p \         P                  ! ^.4      p\         P                  ! R4      p\        V 4      P	                  R4      p\        V4      P	                  R4      p\        V4      P	                  R	4      p\        V4      P	                  R
4      p\        V4      P	                  R4      p\        VP                  4       \         P                  ! V R4      4       \        VP                  4       \         P                  ! VR4      4       \        VP                  4       \         P                  ! VR	4      4       \        VP                  4       \         P                  ! VR
4      4       \        VP                  4       \         P                  ! VR4      4       \        P                  ! \        RR7      ;_uu_ 4        \        . RO. RO.4      P	                  RR7       RRR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4      P	                  RR7       RRR4       R#   + '       g   i     L; i  + '       g   i     Lo; i  + '       g   i     R# ; i)r@   zcannot be broadcast)matchr4   N)r@   r   rA   )r   )rA   rB   )rC   )rA   rC   )r@   )rC   r   )r@   rA   r   )rB   r   r@   )rA   r@   r?   )rB   rA   )r   rH   zerosr	   _broadcast_tor   r   broadcast_topytestraises
ValueErrorr   )aberes_ares_bres_cres_dres_es           r   test_broadcast_tor      s   
A
!A
AaL&&u-EaL&&t,EaL&&u-EaL&&t,EaL&&u-Eu}}5(ABu}}4(@Au}}5(ABu}}4(@Au}}5(AB	z)>	?	?Iy)*88v8F 
@ 
z)>	?	?I;--F-; 
@ 
z)>	?	?)***8 
@	? 
@	? 
@	? 
@	?	?s$   "J%J+0J>J(	+J;	>K	c                    a	a
 \        R 4       V	V
3R lp RpRo	Ro
\        P                  ! W3\        P                  R7      p\        ;QJ d"    . R VP                  4        4       F  NK  	  5M! R VP                  4        4       4      pVP                  R	4      pW#3p\        P                  ! V^,           \        P                  R7      p\        P                  ! WR,           \        P                  R7      p\        P                  ! R
\        P                  R7      P                  R4      p\        V4      pV ! RV^4       V ! WF^4       V ! WFV4       V ! WFV4       R# )i   c                 :  < V f   \        SS3\        P                  R7      pM\        V SS3R7      pVP                  P                  \        P                  8X  g   Q hVP
                  R8  g   Q h\        P                  ! 4       ;_uu_ 4        \        P                  ! RS\        P                  4       W#VR,          V3&   R R R 4       VP                  P                  \        P                  8X  g   Q hVP
                  R8  g   Q hR #   + '       g   i     LP; i)Nri   r   ignorel        )r(   N)r	   r   rf   rh   ri   r]   warningscatch_warningsfilterwarningsr   SparseEfficiencyWarningrk   )A_infoindexrhsAdwarn_msgs   &&& r   check%test_large_assignments.<locals>.check   s    >1a&1A&A/A yy"((***uuu}}$$&&##Hh8V8VW'*eGne#$ ' yy"((***uuu}} '&s   4D

D	i  i  zChanging the sparsity structurer   c              3   ^   "   T F#  qP                  \        P                  4      x  K%  	  R # 5i)N)r   r   rf   ).0cos   & r   	<genexpr>)test_large_assignments.<locals>.<genexpr>  s      H5Gryy**5Gs   +-,  Nr   i_ )r   r   )
r   r   onesfloat32tuplenonzeror\   r[   rf   r	   )r   r#   big_data
big_coordsbig_infoindex_N	index_300rhs_300rhs_300_sparser   r   s            @@r   test_large_assignmentsr      s   
 e" 	AA0HwwvRZZ0HHX5E5E5GHHX5E5E5GHHJ#H%HiiARXX.G		!WBHH5Iii	4<<ZHGw'N 
$ 
(q! 
(w' 
(~.r   )r@   r   r   r   )r   r   r   r   )r   rA   rB   r   )r   rC   )rB   r   )r   r   )r   r@   r   r   r   )r   r   r   r   r   )r   r   rA   rB   r   )r   rD   )"r   numpyr   numpy.testingr   r   r   scipy._lib._testutilsr   scipy.sparser   r   r	   r
   r   scipyr   r   r   r%   r,   r1   markparametrizer=   rW   xfail_on_32bittimeoutra   r{   r   r   xslowr    r   r   <module>r      s     P P 3 M M  +0"-- =,   ,   ,  f /! " ",#",(/& ?@QY
I NO+ P  A+52n Y
I NO
 P
&90 1/ 1/r   