o
    EbV                     @   s   d dl Zd dlmZmZ d dlmZmZmZ d dl	Z	dd Z
dd Ze	jded	d gd d gd d
ggd dfed	d gd d gd d
ggd	dfed	d gd d gd d
ggddfeg dg dg dgd dfgdd Ze	jdddd ZdS )    N)assert_array_almost_equalassert_)
csr_matrix
csc_matrix
lil_matrixc                  C   s   d} t jd t j| | f}d||dk< t|}t| D ]"}|||d d d f }||}t||  tt	|t
u  qd S N
   r   gffffff?   )nprandomseedr   rangeZgetrowr   toarrayr   typer   )NXXcsciZarr_rowZcsc_row r   =/usr/lib/python3/dist-packages/scipy/sparse/tests/test_csc.pytest_csc_getrow      
r   c                  C   s   d} t jd t j| | f}d||dk< t|}t| D ]"}|d d ||d f }||}t||  tt	|tu  qd S r   )
r
   r   r   r   r   Zgetcolr   r   r   r   )r   r   r   r   Zarr_colZcsc_colr   r   r   test_csc_getcol   r   r   z"matrix_input, axis, expected_shaper	      )r   r   )   r   both)r   r   )r   r	   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r	   )r      c                 C   s   | j jd d }|}|d }|dkr+| ||d d f j j}| ||d d f j j}n9|dkrH| d d ||f j j}| d d ||f j j}n|dkrd| ||||f j j}| ||||f j j}||ksjJ ||kspJ d S )Nr   r	   r   )Ashape)Zmatrix_inputaxisZexpected_shapeZslice_1Zslice_2Zslice_3Zactual_shape_1Zactual_shape_2r   r   r   test_csc_empty_slices%   s   r    ax)r   r	   Nc                 C   s   d}t |}d|d< d|d< t|}|j| d}| d u r)||d  }||d  }nt||jks3J t|t|}}|||f |d ksJJ d S )N)順 r$   *   )r"   r"   gSt$?)r&   )r   r   )r   r   Zargmaxr
   Zcount_nonzeroZnnzmax)r!   Zdimr   idxiiZjjr   r   r   test_argmax_overflowJ   s   r*   )Znumpyr
   Znumpy.testingr   r   Zscipy.sparser   r   r   Zpytestr   r   ZmarkZparametrizer    r*   r   r   r   r   <module>   sH    
