a
    Re                     @   sx   d Z ddlZddlZddlmZ ddlmZm	Z	 ddlm
Z ddlZddlmZ dd ZG dd	 d	ZG d
d dZdS )z1Test functions for the sparse.linalg.norm module
    N)norm)assert_allcloseassert_equal)raisesc                  C   s   t g d} t g d}t g d}tjj|| |ffdd}tjj|| |ffdd}tt|dddt g d tt|dddt g d tt|dddt d	d
g tt|dddt d	d
g d S )N)r   r      r   )r   r         )         	   )r   r	   )shaper   r   ordaxisr      )nparrayscipysparseZ	coo_array
coo_matrixr   spnorm)rowcoldataZtest_arrZtest_mat r   W/var/www/sunrise/env/lib/python3.9/site-packages/scipy/sparse/linalg/tests/test_norm.pytest_sparray_norm   s    r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestNormc                 C   s*   t dd }|d}tj|| _d S )Nr   r	   r   r   )r   arangereshaper   r   
csr_matrixb)selfar#   r   r   r   setup_method   s    
zTestNorm.setup_methodc                 C   s   t t| jd t t| jdd t t| jtjd t t| jtj d t t| jdd t t| jdd tjtd	d
* t t| jtj	dd W d    n1 s0    Y  t
tt| jd d S )NNO@fror   r   r   r      zThe problem size)matchgűd@)r   r   r#   r   infpytestZwarnsUserWarningZastypefloat64assert_raisesNotImplementedError)r$   r   r   r   test_matrix_norm!   s    "zTestNorm.test_matrix_normc                 C   s   | j d f| j df| j jdffD ]\}}tt||dd tt|d|dd tt|tj|dd tt|tj |dd tt|d|dd	 tt|d
|dd qd S )Nr   r   r   r   r   r'   r(   r   r   r   r   r)   r*   r#   Tr   r   r   r-   )r$   mr   r   r   r   test_matrix_norm_axis3   s    &zTestNorm.test_matrix_norm_axisc                 C   s   g d}| j df| j jdffD ]\}}||f|d |d ffD ]p}tt|d|dg d tt|tj|dg d tt||d| tt|d|d| tt|d |d| q>qd S )	N)T@glv@r;   r   r   r   r6   )r   r*   r   )r	   r   r	   r   r7   )r$   vr9   r%   r   r   r   r   test_vector_norm<   s    zTestNorm.test_vector_normc                 C   s   | j }ttt|d d ttt|d dg ttt|d d ttt|d d ttt|d d ttt|d d ttt|d d ttt|d d ttt|d d ttt|d	d
 ttt|d	d d S )Ng      ?r   r   )r   r   r   )r   r   )r   r   )r   r>   Zplate_of_shrimpr   r4   )r#   r1   	TypeErrorr   
ValueError)r$   r9   r   r   r   test_norm_exceptionsF   s    zTestNorm.test_norm_exceptionsN)__name__
__module____qualname__r&   r3   r:   r=   rA   r   r   r   r   r      s
   	
r   c                   @   s   e Zd Zejjejjejjejjejj	ejj
ejjfZedd dg dg dgg dg dgfZdd	 Zd
d Zdd ZdS )TestVsNumpyNormr   r	   r   )r   r   r   )r)   r   r	   )r   r   r   )r)   r   y              @c                 C   s   | j D ]}| jD ]}||}tt|t| tt|dt|d tt|tjt|tj tt|tj t|tj  tt|dt|d tt|dt|d qqd S )Nr(   r   r)   _sparse_types_test_matricesr   r   npnormr   r-   )r$   sparse_typeMSr   r   r   test_sparse_matrix_normsi   s    

z(TestVsNumpyNorm.test_sparse_matrix_normsc                 C   s   | j D ]}| jD ]}||}dD ]V}tt||dt||d dtjtj ddfD ]"}tt|||dt|||d qRq dD ]Z}tt||dt||d tt|d|dt|d|d tt|d|dt|d|d q|qqd S )N)Nr4   r5   r6   r(   r   r)   ))r,   r)   )r)   r,   )r   r,   frF   r$   rJ   rK   rL   r   r   r   r   r   "test_sparse_matrix_norms_with_axist   s"    

z2TestVsNumpyNorm.test_sparse_matrix_norms_with_axisc                 C   s   | j D ]x}| jD ]l}||}dD ]Z}tt||dt||d d dtjtj dddfD ]"}tt|||dt|||d qVq qqd S )N)r   r   r)   r,   )r   )r   )r)   )r,   r6   r   r   g      ?gzG?rF   rO   r   r   r   test_sparse_vector_norms   s    

z(TestVsNumpyNorm.test_sparse_vector_normsN)rB   rC   rD   r   r   Z
bsr_matrixr   Z
csc_matrixr"   Z
dia_matrixZ
dok_matrixZ
lil_matrixrG   r   r    r!   rH   rM   rP   rQ   r   r   r   r   rE   U   s&   

rE   )__doc__r.   numpyr   Znumpy.linalgr   rI   Znumpy.testingr   r   r   r1   Zscipy.sparser   Zscipy.sparse.linalgr   r   r   rE   r   r   r   r   <module>   s   :