o
    `^hº  ã                   @   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/shanriGPT/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    