
    Cpj'                        S SK r S SKrS SKJrJrJr  S SKJr  S SK	J
r
JrJrJrJr  S SKJr  S SKrS rS rS rS	 r\R,                  R/                  S
\
" / SQ/ SQ/ SQ/5      S S4\
" / SQ/ SQ/ SQ/5      SS4\
" / SQ/ SQ/ SQ/5      SS4\
" / SQ/ SQ/ SQ/5      S S4/5      S 5       rS r\R,                  R5                  S5      \R,                  R7                  S5      \R,                  R/                  S\
\\\/5      S 5       5       5       rS r\R,                  R/                  S\
\\\/5      S 5       rS r\R,                  R@                  S  5       r!g)!    N)assert_array_almost_equalassert_assert_array_equal)check_free_memory)
csr_matrix
csc_matrix	csr_array	csc_arrayhstack)sparsec                     X U4   nX0U4   n[        XER                  5       S   5        [        [        U5      [        L 5        g )Nr   )r   toarrayr   typer   )islXXcsrnp_slice	csr_slices         W/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/sparse/tests/test_csr.py_check_csr_rowslicer   
   s?    BxHUIh(9(9(;A(>?DOz)*    c                  \   Sn [         R                  R                  S5        [         R                  R                  X 45      nSXS:  '   [        U5      n[	        S S S 5      [	        S S S5      [	        SSS5      [	        SSS5      /n[        U 5       H  nU H  n[        XEX5        M     M     g )N
   r   ffffff?      )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   Sn [         R                  R                  S5        [         R                  R                  X 45      nSXS:  '   [        U5      n[	        U 5       HT  nXUS-   2S S 24   nUR                  U5      n[        XER                  5       5        [        [        U5      [        L 5        MV     g Nr   r   r   r   )
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   Sn [         R                  R                  S5        [         R                  R                  X 45      nSXS:  '   [        U5      n[	        U 5       HT  nUS S 2X3S-   24   nUR                  U5      n[        XER                  5       5        [        [        U5      [        L 5        MV     g r)   )
r    r!   r"   r   r$   getcolr   r   r   r   )r%   r   r   r   arr_colcsr_cols         r   test_csr_getcolr2   1   s    
AIINN1
		! AA#gJa=D1XAqQwJ-++a.!'??+<=W+, r   z"matrix_input, axis, expected_shape)r   r   r   r   )r   r   r   r   )r   r      r   )r      r   )r3   r   both)r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r3   r   )r      c                 .   U R                  5       R                  S   S-
  nUnUS-
  nUS:X  aE  XU2S S 24   R                  5       R                  nXU2S S 24   R                  5       R                  nOUS:X  aE  U S S 2X424   R                  5       R                  nU S S 2X524   R                  5       R                  nOHUS:X  aB  XU2X424   R                  5       R                  nXU2X524   R                  5       R                  nWU:X  d   eUW:X  d   eg )Nr   r   r5   )r   shape)matrix_inputaxisexpected_shapeslice_1slice_2slice_3actual_shape_1actual_shape_2s           r   test_csr_empty_slicesrA   ?   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                     [        / SQ/ SQ/ SQ/5      n / SQn[        R                  " U5      n/ SQ/ SQ/ SQ/n[        R                  " U5      n/ SQ/ SQ4n[        R                  " US   5      [        R                  " US   5      4nX   R                  5       nX   R                  5       nX   n	X   n
X   nX   nXx:H  R	                  5       (       d   eX:H  R	                  5       (       d   eX:H  R	                  5       (       d   eg )Nr   r   r   )r3   r4   r6   )         )FTFr   r   )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_indexingrV   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 testr   clsc                     [         R                  " S5      nUR                  S5      nU " S5      nX2U4   R                  S:X  d   eX2UR                  SS5      4   R                  S:X  d   eg )N順 )rY   r   )rY   rY   r   r   r   )r    arangereshapennz)rW   JISs       r   6test_fancy_indexing_broadcasts_without_making_dense_2dr`   w   sj    
 			'A			,AAT7;;!		!R  !%%***r   c                     [         R                  " [         R                  5      R                  n S/nS/nU S-
  nSnUS-
  /nUS-
  /n[	        XU445      n[	        XU445      n[        US-
  US-
  5      U :  d   eUR
                  R                  UR                  R                  s=:X  a  [         R                  :X  d   e   eUR
                  R                  UR                  R                  s=:X  a  [         R                  :X  d   e   e[        Xx/SS9n	U	R
                  R                  5       X4-   S-
  :X  d   eX4-   S-
  U :  d   eU	R
                  R                  U	R                  R                  s=:X  a  [         R                  :X  d   e   e[	        UR                  5      n
[	        UR                  5      n[        X/SS9nUR                  U	R                  :X  d   eUR
                  R                  [         R                  :X  d   eX-
  S-
  /n[	        XU445      n[        X~/SS9nUR
                  R                  [         R                  :X  d   eUR
                  R                  5       U S-
  :X  d   eg)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      ?r   r   r3   csr)formatN)r    iinfoint32maxr   indicesdtypeindptrr   int64r8   )	max_int32rI   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_int64rz      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           	         [         R                  R                  S5      nU " [        R                  " SSUSS95      nUR	                  5       nUR	                  5       nUR
                  R                  [         R                  5      Ul        UR                  R                  [         R                  5      Ul        X#U4 H  n[         R                  R                  USS/S S 24   R                  5       USS/S S 24   R                  5       5        [         R                  R                  US S 2SS/4   R                  5       US S 2SS/4   R                  5       5        M     g )Nr   2   g?)random_statedensityr   r   )r    r!   default_rngr   copyri   astyperj   rg   testingr   r   )rW   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                  @   [         R                  " / SQ5      n [         R                  " S/5      n[         R                  " S5      n[        U 5      R	                  S5      n[        U5      R	                  S5      n[        U5      R	                  S5      n[        U5      R	                  S5      n[        U5      R	                  S5      n[        UR                  5       [         R                  " U S5      5        [        UR                  5       [         R                  " US5      5        [        UR                  5       [         R                  " US5      5        [        UR                  5       [         R                  " US5      5        [        UR                  5       [         R                  " US5      5        [        R                  " [        S	S
9   [        / SQ/ SQ/5      R	                  SS9  S S S 5        [        R                  " [        S	S
9   [        / SQ/5      R	                  SS9  S S S 5        [        R                  " [        S	S
9   [        / SQ5      R	                  SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N\= f! , (       d  f       g = f)N)r   r   r   r3   )r   )r   r3   )r4   )r   r4   )r   )r4   r   zcannot be broadcast)match)r   r   r   )r3   r   r   )r   r   r8   rC   )r3   r   )r    rG   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$   I-I>	J-
I;>
J
Jc                  D  ^	^
 [        S5        U	U
4S jn SnSm	Sm
[        R                  " X4[        R                  S9n[	        S UR                  5        5       5      nUR                  S5      nX#4n[        R                  " US	-   [        R                  S9n[        R                  " XS
-   [        R                  S9n[        R                  " S[        R                  S9R                  S5      n[        U5      nU " S US	5        U " XFS	5        U " XFU5        U " XFU5        g )Ni   c                   > U c  [        TT4[        R                  S9nO[        U TT4S9nUR                  R                  [        R                  :X  d   eUR
                  S:  d   e[        R                  " 5          [        R                  " ST[        R                  5        X#US S 2S 4   U4'   S S S 5        UR                  R                  [        R                  :X  d   eUR
                  S:  d   eg ! , (       d  f       NK= f)Nrh   r   l        ignore)r	   r    re   rg   rh   r\   warningscatch_warningsfilterwarningsr   SparseEfficiencyWarningrj   )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'*eAtGne#$ ' yy"((***uuu}} '&s   =4C66
Di  i  zChanging the sparsity structurer   c              3   ^   #    U  H#  oR                  [        R                  5      v   M%     g 7f)N)r   r    re   ).0cos     r   	<genexpr>)test_large_assignments.<locals>.<genexpr>  s      H5Gryy**5Gs   +-r   r   ,  i_ )r   r   )
r   r    onesfloat32tuplenonzeror[   rZ   re   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HJ#H%HiiARXX.G		!WBHH5Iii	4<<ZHGw'N 
$ 
(q! 
(w' 
(~.r   )"r   numpyr    numpy.testingr   r   r   scipy._lib._testutilsr   scipy.sparser   r   r	   r
   r   scipyr   r   r   r'   r-   r2   markparametrizerA   rV   xfail_on_32bittimeoutr`   rz   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   