
    _Mh                        d dl Zd dlmZmZmZ d dlmZmZm	Z	m
Z
mZ d dlmZ d dlZd Zd Zd Zd Zej                            d	 eg d
g dg dg          d df eg d
g dg dg          ddf eg d
g dg dg          ddf eg dg dg dg          d dfg          d             Zd Zd Zej                            dee	ee
g          d             Zd ZdS )    N)assert_array_almost_equalassert_assert_array_equal)
csr_matrix
csc_matrix	csr_array	csc_arrayhstack)sparsec                     || |f         }|| |f         }t          ||                                d                    t          t          |          t          u            d S )Nr   )r   toarrayr   typer   )islXXcsrnp_slice	csr_slices         [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/sparse/tests/test_csr.py_check_csr_rowslicer      s\    BxHQUIh	(9(9(;(;A(>???DOOz)*****    c                     d} t           j                            d           t           j                            | | f          }d||dk    <   t          |          }t	          d d d           t	          d d d          t	          ddd          t	          ddd          g}t          |           D ]}|D ]}t          ||||           d S )N
   r   ffffff?      )nprandomseedr   sliceranger   )Nr   r   slicesr   r   s         r   test_csr_rowslicer&      s    
AINN1
	!Q  AAa#gJa==DD$%%D$##Ar1ooB2 F
 1XX 0 0 	0 	0B2q$////	00 0r   c                     d} t           j                            d           t           j                            | | f          }d||dk    <   t          |          }t	          |           D ]m}|||dz   d d f         }|                    |          }t          ||                                           t          t          |          t          u            nd S 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INN1
	!Q  AAa#gJa==D1XX - -Aa!eGQQQJ-++a..!'7??+<+<===W+,,,,- -r   c                     d} t           j                            d           t           j                            | | f          }d||dk    <   t          |          }t	          |           D ]m}|d d ||dz   f         }|                    |          }t          ||                                           t          t          |          t          u            nd S r(   )
r   r    r!   r   r#   getcolr   r   r   r   )r$   r   r   r   arr_colcsr_cols         r   test_csr_getcolr1   /   s    
AINN1
	!Q  AAa#gJa==D1XX - -AAAqQwJ-++a..!'7??+<+<===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                 \   |                                  j        d         dz
  }|}|dz
  }|dk    rK| ||d d f                                          j        }| ||d d f                                          j        }n|dk    rK| d d ||f                                          j        }| d d ||f                                          j        }nP|dk    rJ| ||||f                                          j        }| ||||f                                          j        }||k    sJ ||k    sJ d S )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qyy%ggoqqq&89AACCI%ggoqqq&89AACCI	%aaa&89AACCI%aaa&89AACCI	%ggoww&FGOOQQW%ggoww&FGOOQQW^++++^++++++r   c                  `   t          g dg dg dg          } g d}t          j        |          }g dg dg dg}t          j        |          }g dg df}t          j        |d                   t          j        |d                   f}| |                                         }| |                                         }| |         }	| |         }
| |         }| |         }||k                                    sJ |	|
k                                    sJ ||k                                    sJ d S )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[   yyy)))YYY788D(((MXm,,N)))+?+?+?AUAUAUVMXm,,N)))+?+?+?@Mh}Q/00"(=;K2L2LMN}%--//K'//11L}%K'L}%K'L<',,.....<',,.....<',,.......r   c                  T   t          j        t           j                  j        } dg}dg}| dz
  }d}|dz
  g}|dz
  g}t	          |||ff          }t	          |||ff          }t          |dz
  |dz
            | k     sJ |j        j        |j        j        cxk    rt           j        k    sn J |j        j        |j        j        cxk    rt           j        k    sn J t          ||gd          }	|	j                                        ||z   dz
  k    sJ ||z   dz
  | k    sJ |	j        j        |	j        j        cxk    rt           j	        k    sn J t	          |j
                  }
t	          |j
                  }t          |
|gd          }|j
        |	j
        k    sJ |j        j        t           j	        k    sJ | |z
  dz
  g}t	          |||ff          }t          ||gd          }|j        j        t           j        k    sJ |j                                        | dz
  k    sJ dS )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   sy    ""&I 5D#CMMM QEQE
dS%L)
*
*C
dS%L)
*
*C}q -!"344y@@@@;
 0<<<<BH<<<<<<;
 0<<<<BH<<<<<< 3*U+++D<!>!BBBBB=(1,y8888<!2>>>>bh>>>>>> 39%%I39%%II.u===Jtz))))#rx//// &*+E
dS%L)
*
*Cc3Z...G? BH,,,,?  IM111111r   clsc                    t           j                            d          } | t          j        dd|d                    }|                                }|                                }|j                            t           j                  |_        |j                            t           j                  |_        |||fD ]}t           j	        
                    |ddgd d f                                         |ddgd d f                                                    t           j	        
                    |d d ddgf                                         |d d ddgf                                                    d S )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~      sc    )


"
"Cs6=Rc3GGGHHH==??LMMOOM"/00::L$,33BH==M,6 
 


%%1qqqM!!##aVQQQY''))	
 	
 	
 	
%%Aq6	N""$$QQQAY''))	
 	
 	
 	

 
r   c                     t          j        g d          } t          j        dg          }t          j        d          }t          |                               d          }t          |                              d          }t          |                              d          }t          |                              d          }t          |                              d          }t          |                                t          j        | d                     t          |                                t          j        |d                     t          |                                t          j        |d                     t          |                                t          j        |d                     t          |                                t          j        |d                     t          j	        t          d	
          5  t          g dg dg                              d           d d d            n# 1 swxY w Y   t          j	        t          d	
          5  t          g dg                              d           d d d            n# 1 swxY w Y   t          j	        t          d	
          5  t          g d                              d           d d d            d S # 1 swxY w Y   d S )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aLL&&u--EaLL&&t,,EaLL&&u--EaLL&&t,,EaLL&&u--Eu}}5(A(ABBBu}}4(@(@AAAu}}5(A(ABBBu}}4(@(@AAAu}}5(A(ABBB	z)>	?	?	? G GIIIyyy)**88v8FFFG G G G G G G G G G G G G G G 
z)>	?	?	? < <III;--F-;;;< < < < < < < < < < < < < < < 
z)>	?	?	? 9 9)))***8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s6   *III*'JJ!$J!&K66K:=K:)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 P P P P P P P P M M M M M M M M M M M M M M       + + +0 0 0"- - -- - - =j,,,    j,,,    j,,,   f j///! " "  ", ,# ",(/ / /&52 52 52n Y
I NOO
 
 PO
&9 9 9 9 9r   