
    (ph                        S SK rS SKJrJr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S r\R&                  R)                  S\\	\\
/5      S 5       rS rg)    N)assert_array_almost_equalassert_assert_array_equal)
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         N/var/www/html/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_getcolr1   /   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   )r2   r   both)r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r2   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   r4   )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                     [        / 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   )r2   r3   r5   )         )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_indexingrU   b   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   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   r2   csr)formatN)r   iinfoint32maxr   indicesdtypeindptrr
   int64r7   )	max_int32rH   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_int64ro   u   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   clsc           	         [         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   copyr^   astyper_   r\   testingr   r   )rp   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   r2   )r   )r   r2   )r3   )r   r3   )r   )r3   r   zcannot be broadcast)match)r   r   r   )r2   r   r   )r   r   )r7   rB   )r2   r   )r   rF   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)numpyr   numpy.testingr   r   r   scipy.sparser   r   r   r	   r
   scipyr   r   r   r&   r,   r1   markparametrizer@   rU   ro   r~   r    r   r   <module>r      s"    P P M M  +0"-- =,   ,   ,  f /! " ",#",(/&52n Y
I NO
 P
&9r   