o
    Eb                     @   s   d dl Zd dlmZmZ d dlmZ d dlZdd Zdd Z	dd	 Z
d
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d Zdd ZdS )    N)assert_array_almost_equalassert_)
csr_matrixc                 C   s>   || |f }|| |f }t || d  tt|tu  d S )Nr   )r   toarrayr   typer   )islXXcsrZnp_sliceZ	csr_slice r   =/usr/lib/python3/dist-packages/scipy/sparse/tests/test_csr.py_check_csr_rowslice   s   r   c                  C   s   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|||| q8q4d S )N
   r   ffffff?      )nprandomseedr   sliceranger   )Nr	   r
   Zslicesr   r   r   r   r   test_csr_rowslice   s   



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 Nr   r   r   r   )
r   r   r   r   r   Zgetrowr   r   r   r   )r   r	   r
   r   Zarr_rowZcsr_rowr   r   r   test_csr_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csr_colr   r   r   test_csr_getcol/   r   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                 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_inputZaxisZexpected_shapeZslice_1Zslice_2Zslice_3Zactual_shape_1Zactual_shape_2r   r   r   test_csr_empty_slices=   s   r%   c                  C   s   t g dg dg dg} g d}t|}g dg dg dg}t|}g dg df}t|d t|d f}| |  }| |  }| | }	| | }
| | }| | }||k s`J |	|
k shJ ||k spJ d S )N)r   r   r   )r   r    r"   )         )FTFr   r   )r   r   Zarrayr   all)dataZlist_indices1Zarray_indices1Zlist_indices2Zarray_indices2Zlist_indices3Zarray_indices3Zslice_list1Zslice_array1Zslice_list2Zslice_array2Zslice_list3Zslice_array3r   r   r   test_csr_bool_indexingb   s    

r+   )Znumpyr   Znumpy.testingr   r   Zscipy.sparser   Zpytestr   r   r   r   ZmarkZparametrizer%   r+   r   r   r   r   <module>   sJ    
