
     h                     R   d dl Zd dlmZmZ d dlmZ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dS )    N)assert_array_almost_equalassert_)
csr_matrixhstackc                     || |f         }|| |f         }t          ||                                d                    t          t          |          t          u            d S )Nr   )r   toarrayr   typer   )islXXcsrnp_slice	csr_slices         W/var/www/html/Sam_Eipo/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_getcolr,   .   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   )r-   r   both)r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r-   r   )r      c                    | j         j        d         dz
  }|}|dz
  }|dk    r1| ||d d f         j         j        }| ||d d f         j         j        }nm|dk    r1| d d ||f         j         j        }| d d ||f         j         j        }n6|dk    r0| ||||f         j         j        }| ||||f         j         j        }||k    sJ ||k    sJ d S )Nr   r   r/   )Ashape)matrix_inputaxisexpected_shapeslice_1slice_2slice_3actual_shape_1actual_shape_2s           r   test_csr_empty_slicesr<   <   s   & n"1%)GGkGqyy%ggoqqq&89;A%ggoqqq&89;A	%aaa&89;A%aaa&89;A	%ggoww&FGIO%ggoww&FGIO^++++^++++++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   )r-   r.   r0   )         )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_indexingrP   a   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   r-   csr)formatN)r   iinfoint32maxr   indicesdtypeindptrr   int64r3   )	max_int32rC   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_int64rj   t   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   )numpyr   numpy.testingr   r   scipy.sparser   r   pytestr   r!   r'   r,   markparametrizer<   rP   rj    r   r   <module>rr      s       < < < < < < < < + + + + + + + + + + +0 0 0"- - -- - - =j,,,    j,,,    j,,,   f j///! " "  ", ,# ",(/ / /&52 52 52 52 52r   