
    tKg                     t    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      Zy)	    )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                       e Zd Zd Zd Zd Zy)TestSparseFunctionsc           
         t        g dg dg dg      }t        |      }t        g d      }t        dd|j                  |j                  |j
                  |       t        |j                         t        |      |z         t        |      }t        g d      }t        dd|j                  |j                  |j
                  |       t        |j                         |t        |      z         t        |dd	gdd
gg      }t        |d      }t        g d      }t        ddd	d	|j                  |j                  |j
                  |       t        |j                         t        |      |z         t        |d      }t        g d      }t        ddd	d	|j                  |j                  |j
                  |       t        |j                         |t        |      z         t        |g dg dg      }t        |d      }t        g d      }t        ddd	d|j                  |j                  |j
                  |       t        |j                         t        |      |z         t        |d      }t        g d      }t        ddd	d|j                  |j                  |j
                  |       t        |j                         |t        |      z         y )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Es        c/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/sparse/tests/test_spfuncs.pytest_scale_rows_and_colsz,TestSparseFunctions.test_scale_rows_and_cols   s   ?""$ %
 qM'Nq188AIIaffQ7QYY[$q'!),qM+!Aahhqyy:QYY[!DG), QqE1Q%=!q5)- q1Qqxx		!&&;QYY[$q'!),q5)()!Aa!((199QVVA>QYY[!DG),GG$%q5)- q1Qqxx		!&&;QYY[$q'!),q5)78!Aa!((199QVVA>QYY[!DG),    c                    g }|j                  ddgddgg       |j                  g dg dg dg       |j                  dgdgdgg       |D cg c]  }t        |       }}g }|j                  dgg       |j                  ddgddgg       |j                  ddgddgg       |j                  g dg dg dg       |D cg c]  }t        |       }}|D ]c  }|D ]\  }t        ||      }t        j                  |      \  }}t        ||j                  d   k\         t        ||j                  d   k\         ^ e y c c}w c c}w )Nr   r   r   r   r   r   r   r   r   r   r   )r   r   r   )appendr   r   spfuncsestimate_blocksizer   shape)	r'   matsxblksABXrcs	            r,   test_estimate_blocksizez+TestSparseFunctions.test_estimate_blocksize2   s7   aUAa5M"WWW-.aS!aSM""&'$Qa$'aSEaUAa5M"aUAa5M"WWW-."&'$Qa$'A1I003!QWWQZ(QWWQZ(	   ( (s   EEc                     d }g }|j                  dgg       |j                  dgg       |j                  ddgg       |j                  ddgg       |j                  ddgddgg       |j                  g dg dg dg       |j                  dgdgdgg       |D ]m  }|D ]f  }t        ||      }t        |      }t        dd      D ]>  }t        dd      D ]-  }t	        t        j                  |||f       ||||f             / @ h o t        g dg dg dgddgg      }t        |      }t	        t        j                  |d       ||d             t	        t        j                  |d       ||d             y )	Nc           	      z    |\  }}| j                         \  }}t        t        t        ||z  ||z                    S )N)nonzerolensetzip)r:   bsRCIJs         r,   goldz3TestSparseFunctions.test_count_blocks.<locals>.goldH   s8    CAa))+CAas3q!tAqD>*++r.   r   r   r0   r1   r2   r   )r   r   )r3   r   r	   ranger   r4   count_blocksr
   )	r'   rK   r7   r:   r;   r<   YrG   rH   s	            r,   test_count_blocksz%TestSparseFunctions.test_count_blocksG   sa   	,
 aSEaSEaUGaUGaUAa5M"WWW-.aS!aSM"A1IqMqA"1QZ$W%9%9!aV%Dd1qRSfoV ( $   '''*QqE73qMW))!V4d1foFW))!V4d1foFr.   N)__name__
__module____qualname__r-   r?   rO    r.   r,   r   r   
   s    %-N)*Gr.   r   N)numpyr   r   r   numpy.testingr   r   scipy.sparser   r4   r	   r
   r   scipy.sparse._sparsetoolsr   r   r   r   r   rS   r.   r,   <module>rX      s1    # # / , ; ;J JWG WGr.   