o
    ߎj                     @   sn   d dl mZmZmZ d dlmZmZ d dlmZ	 d dlm
Z
mZmZ d dlmZmZmZmZ G dd dZdS )	    )arraykrondiag)assert_assert_equal)_spfuncs)
csr_matrix
csc_matrix
bsr_matrix)csr_scale_rowscsr_scale_columnsbsr_scale_rowsbsr_scale_columnsc                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestSparseFunctionsc              	   C   s  t g dg dg dg}t|}t g d}tdd|j|j|j| t| t||  t|}t g d}t	dd|j|j|j| t| |t|  t
|dd	gdd
gg}t|dd}t g d}tddd	d	|j|j|j| t| t||  t|dd}t g d}tddd	d	|j|j|j| t| |t|  t
|g dg dg}t|dd}t g d}tddd	d|j|j|j| t| t||  t|dd}t g d}tddd	d|j|j|j| t| |t|  d S )N)   r   r         )r      r      r   )r   r         r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   )	blocksize)r   r   r   r   r   r   )
r   r   r   r   r   r   r      	   
   )r   r   r   )r   r   )r   r   r   r   r   r   r   r   r   r                  )r   r   r   indptrindicesdatar   toarrayr   r   r   r
   r   r   )selfDSvE r)   _/home/air/Certificate/back/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_spfuncs.pytest_scale_rows_and_cols   s<   z,TestSparseFunctions.test_scale_rows_and_colsc                 C   s  g }| ddgddgg | g dg dg dg | dgdgdgg dd |D }g }| dgg | ddgddgg | ddgddgg | g dg dg dg d	d |D }|D ]%}|D ] }t||}t|\}}t||jd k t||jd k qgqcd S )
Nr   r   r   r   r   r   r   r   r   r   r   c                 S      g | ]}t |qS r)   r   .0xr)   r)   r*   
<listcomp>7       z?TestSparseFunctions.test_estimate_blocksize.<locals>.<listcomp>)r   r   r   c                 S   r/   r)   r0   r1   r)   r)   r*   r4   >   r5   )appendr   spfuncsestimate_blocksizer   shape)r$   matsblksABXrcr)   r)   r*   test_estimate_blocksize2   s&   
z+TestSparseFunctions.test_estimate_blocksizec           	   
   C   sT  dd }g }| dgg | dgg | ddgg | ddgg | ddgddgg | g dg dg dg | dgdgdgg |D ]0}|D ]+}t||}t|}tddD ]}tddD ]}tt|||f||||f qeq^qNqJtg dg dg dgddgg}t|}tt|d	||d	 tt|d	||d	 d S )
Nc                 S   s.   |\}}|   \}}ttt|| || S )N)nonzerolensetzip)r<   bsRCIJr)   r)   r*   goldH   s   z3TestSparseFunctions.test_count_blocks.<locals>.goldr   r   r,   r-   r.   r   )r   r   )r6   r   r   ranger   r7   count_blocksr	   )	r$   rK   r:   r<   r=   r>   YrG   rH   r)   r)   r*   test_count_blocksG   s.   
""z%TestSparseFunctions.test_count_blocksN)__name__
__module____qualname__r+   rA   rO   r)   r)   r)   r*   r   
   s    'r   N)numpyr   r   r   numpy.testingr   r   scipy.sparser   r7   r   r	   r
   scipy.sparse._sparsetoolsr   r   r   r   r   r)   r)   r)   r*   <module>   s    