
    Ui<                         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 Z G d d          Z G d	 d
          ZdS )z1Test functions for the sparse.linalg.norm module
    N)norm)assert_allcloseassert_equal)raisesc            
      d   t          j        g d          } t          j        g d          }t          j        g d          }t          j                            || |ffd          }t          j                            || |ffd          }dt           j        d fD ]f}dD ]a}||fD ]Z}t          |                                ||          }t          |||          }	t          |	d	          sJ t          |	|           [bgt          j                            ||ffd
          }
t          j                            ||g dffd          }dt           j        d fD ]R}dD ]M}|
|fD ]F}t          |                                ||          }t          t          |||          |           GNSd S )N)r   r      r   )r   r         )         	   )r	   r   )shaper   )r   r   Nr   r   r   r   ordaxisdtype)r   )r   r   r   r   )r   r   )r   N)nparrayscipysparse	coo_array
coo_matrixinfnpnormtoarrayspnormhasattrr   )rowcoldatatest_arrtest_matr   axAexpectedactualtest_arr_1dtest_mat_cols               {/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/scipy/sparse/linalg/tests/test_norm.pytest_sparray_normr-      s    
(<<<
 
 C
(<<<
 
 C8LLL!!D|%%tc3Z&8%GGH|&&sCj'9&HHH264  / /. 	/ 	/B) / /!!))++3R@@@s444vw/////VX....	/	/ ,(($t(DDK<**D32E+Ff*UUL264  D D 	D 	DB!<0 D D!!))++3R@@@VA3R888(CCCCD	DD D    c                   P    e Zd Zd Zej        j        d             Zd Zd Z	d Z
dS )TestNormc                     t          j        d          dz
  }|                    d          }t          j                            |          | _        d S )Nr   r   r
   r
   )r   arangereshaper   r   	csr_arrayb)selfar6   s      r,   setup_methodzTestNorm.setup_method(   s@    IaLL1IIf''**r.   c                    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	
          5  t          t          | j                            t          j	                  d          d           d d d            n# 1 swxY w Y   t          t          t          | j        d           d S )NNO@fror   r	   r   r      zThe problem size)matchgűd@)r   r   r6   r   r   pytestwarnsUserWarningastypefloat64assert_raisesNotImplementedError)r7   s    r,   test_matrix_normzTestNorm.test_matrix_norm-   sk    	tv(9:::tvu--/@AAAtvrv..222tvw//333tvq))1---tvr**A...\+-?@@@ 	/ 	/F46==#<#<a@@-/ / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
 	)6462>>>>>s   AEEEc                    | j         d f| j         df| j         j        dffD ]\  }}t          t          ||          d           t          t          |d|          d           t          t          |t          j        |          d           t          t          |t          j         |          d           t          t          |d|          d	           t          t          |d
|          d           d S )Nr   r   r   r;   r<   r   r	   r   r   r=   r>   r6   Tr   r   r   r   )r7   mr   s      r,   test_matrix_norm_axiszTestNorm.test_matrix_norm_axis@   s    (8468V:LM 	9 	9GAtF140002CDDDF1e$7779JKKKF1bf4888!<<<F1rvgD9991===F1ad333Q777F1bt444a8888	9 	9r.   c           	         g d}| j         df| j         j        dffD ]\  }}||f|dz
  |dz
  ffD ]}t          t          |d|          g d           t          t          |t          j        |          g d           t          t          ||          |           t          t          |d|          |           t          t          |d |          |           d S )	N)T@glv@rP   r   r   r	   rJ   )r   r>   r   )r   r
   r   r   rK   )r7   vrM   r8   r   s        r,   test_vector_normzTestNorm.test_vector_normI   s   HHHVQK$&(A. 	C 	CDAqA5!A#!w. C Cq!$ 7 7 7CCCq"&t < < <iiiHHHqt 4 4 4a888qad ; ; ;Q???qd > > >BBBBC	C 	Cr.   c                    | 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   rU   plate_of_shrimpr   r   )r6   rF   	TypeErrorr   
ValueError)r7   rM   s     r,   test_norm_exceptionszTestNorm.test_norm_exceptionsS   s   FiD#666iD1#666j&!T2666j&!T9===j&!T6:::j&!T6:::j&!T7;;;j&!T1555j&!T2666j&!->BBBj&!->GGGGGr.   N)__name__
__module____qualname__r9   rA   markthread_unsaferH   rN   rR   rY   rT   r.   r,   r0   r0   '   sy        + + +
 [? ? ?$9 9 9C C CH H H H Hr.   r0   c                   (   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j        d          dz
                      d          g dg dgg dg dgfZd Zd	 Zd
 ZdS )TestVsNumpyNormr   r   r2   )r   r	   r
   )r=   r   r   )r   r   r
   )r=   r   y              @c           	         | j         D ]J}| 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                     @Ld S )Nr<   r   r=   _sparse_types_test_matricesr   r   r   r   r   )r7   sparse_typeMSs       r,   test_sparse_matrix_normsz(TestVsNumpyNorm.test_sparse_matrix_normsv   s   - 	> 	>K( > >KNNq		6!99555q% 0 0&E2B2BCCCq"& 1 16!RV3D3DEEEq26' 2 2F1rvg4F4FGGGq!fQll;;;q"va}}====>	> 	>r.   c                 v   | j         D ]/}| j        D ]#} ||          }dD ]}t          t          ||          t	          ||                     dt
          j        t
          j         ddfD ]2}t          t          |||          t	          |||                     3dD ]}t          t          ||          t	          ||                     t          t          |d|          t	          |d|                     t          t          |d|          t	          |d|                     %1d S )N)Nr   r   rJ   r<   r   r=   ))r@   r=   )r=   r@   )r   r@   frb   r7   re   rf   rg   r   r   s         r,   "test_sparse_matrix_norms_with_axisz2TestVsNumpyNorm.test_sparse_matrix_norms_with_axis   s   - 	A 	AK( A AKNN0 C CD#F14$8$8$8&:N:N:NOOO$bfrvgq"< C C'q#D(A(A(A(.q#D(A(A(AC C C CC 8 A AD#F14$8$8$8&:N:N:NOOO#F1c$=$=$=$*1c$=$=$=? ? ?#F1e$$?$?$?$*1e$$?$?$?A A A A	AA	A 	Ar.   c                 L   | j         D ]}| j        D ]} ||          }dD ]}t          t          ||          t	          ||                     d dt
          j        t
          j         dddfD ]2}t          t          |||          t	          |||                     3d S )N)r   r   r=   r@   )r   )r   )r=   )r@   rJ   r	   r   g      ?gzG?rb   rk   s         r,   test_sparse_vector_normsz(TestVsNumpyNorm.test_sparse_vector_norms   s    - 	C 	CK( C CKNNH C CD#F14$8$8$8&:N:N:NOOO#QCE C C'q#D(A(A(A(.q#D(A(A(AC C C CCCC	C 	Cr.   N)rZ   r[   r\   r   r   	bsr_arrayr   	csc_arrayr5   	dia_array	dok_array	lil_arrayrc   r   r3   r4   rd   rh   rl   rn   rT   r.   r,   r`   r`   b   s        L"L"L"L"L"L"L"M RYq\\A&&v..		

 		N	> 	> 	>A A A"C C C C Cr.   r`   )__doc__rA   numpyr   numpy.linalgr   r   numpy.testingr   r   r   rF   scipy.sparser   scipy.sparse.linalgr   r-   r0   r`   rT   r.   r,   <module>rz      s          ' ' ' ' ' ' 7 7 7 7 7 7 7 7 * * * * * *     . . . . . .
D D D.8H 8H 8H 8H 8H 8H 8H 8Hv8C 8C 8C 8C 8C 8C 8C 8C 8C 8Cr.   