
    
g                         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y)z1Test functions for the sparse.linalg.norm module
    N)norm)assert_allcloseassert_equal)raisesc            
      (   t        j                  g d      } t        j                  g d      }t        j                  g d      }t        j                  j	                  || |ffd      }t        j                  j                  || |ffd      }dt         j                  d fD ]F  }dD ]?  }||fD ]6  }t        |j                         ||      }t        t        |||      |       8 A H t        j                  j	                  ||ffd	      }	t        j                  j                  ||g d
ffd      }
dt         j                  d fD ]F  }dD ]?  }|	|
fD ]6  }t        |j                         ||      }t        t        |||      |       8 A H y )N)r   r      r   )r   r         )         	   )r	   r   )shaper   )r   r   Nr   r   r   r   ordaxis)r   )r   r   r   r   )r   r   )r   N)nparrayscipysparse	coo_array
coo_matrixinfnpnormtoarrayr   spnorm)rowcoldatatest_arrtest_matr   axAexpectedtest_arr_1dtest_mat_cols              `/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/scipy/sparse/linalg/tests/test_norm.pytest_sparray_normr*      s   
((<
 C
((<
 C88L!D||%%tc3Z&8%GH||&&sCj'9&HH2664  D. 	DB) D!!))+3R@VA3R8(CD	DD ,,(($t(DK<<**D32E+Ff*UL2664  D 	DB!<0 D!!))+3R@VA3R8(CD	DD    c                   \    e Zd Zd Zej
                  j                  d        Zd Zd Z	d Z
y)TestNormc                     t        j                  d      dz
  }|j                  d      }t        j                  j                  |      | _        y )Nr   r   r
   r
   )r   arangereshaper   r   	csr_arrayb)selfar3   s      r)   setup_methodzTestNorm.setup_method&   s8    IIaL1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                  j                  t        j                        d      d       d d d        t        t        t        | j                  d       y # 1 sw Y   *xY w)NNO@fror   r	   r   r      zThe problem size)matchgűd@)r   r   r3   r   r   pytestwarnsUserWarningastypefloat64assert_raisesNotImplementedError)r4   s    r)   test_matrix_normzTestNorm.test_matrix_norm+   s     	tvv(9:tvvu-/@Atvvrvv.2tvvw/3tvvq)1-tvvr*A.\\+-?@ 	/F466==#<a@-/	/
 	)64662>	/ 	/s   8>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        y )Nr   r   r   r8   r9   r   r	   r   r   r:   r;   r3   Tr   r   r   r   )r4   mr   s      r)   test_matrix_norm_axiszTestNorm.test_matrix_norm_axis>   s    (846688V:LM 	9GAtF1402CDF1e$79JKF1bff48!<F1rvvgD91=F1ad3Q7F1bt4a8	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 |      |         y )	N)T@glv@rM   r   r   r	   rG   )r   r;   r   )r   r
   r   r   rH   )r4   vrJ   r5   r   s        r)   test_vector_normzTestNorm.test_vector_normG   s    HVVQK$&&((A. 	CDAqA5!A#!w. Cq!$ 7Cq"&&t <iHqt 4a8qad ;Q?qd >B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       y )Ng      ?r	    )r   r   r	   )r   r   )r   r	   )r   rR   plate_of_shrimpr   r   )r3   rC   	TypeErrorr   
ValueError)r4   rJ   s     r)   test_norm_exceptionszTestNorm.test_norm_exceptionsQ   s    FFiD#6iD1#6j&!T26j&!T9=j&!T6:j&!T6:j&!T7;j&!T15j&!T26j&!->Bj&!->Gr+   N)__name__
__module____qualname__r6   r>   markthread_unsaferE   rK   rO   rV   rQ   r+   r)   r-   r-   %   s6    +
 [[? ?$9CHr+   r-   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
  j                  d      g dg dgg dg dgfZd Zd	 Zd
 Zy)TestVsNumpyNormr   r   r/   )r   r	   r
   )r:   r   r   )r   r   r
   )r:   r   y              @c           	      P   | 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               y )Nr9   r   r:   _sparse_types_test_matricesr   r   r   r   r   )r4   sparse_typeMSs       r)   test_sparse_matrix_normsz(TestVsNumpyNorm.test_sparse_matrix_normst   s    -- 	>K(( >Nq	6!95q% 0&E2BCq"&& 16!RVV3DEq266' 2F1rvvg4FGq!fQl;q"va}=>	>r+   c                 *   | j                   D ]  }| j                  D ]  } ||      }dD ]q  }t        t        ||      t	        ||             dt
        j                  t
        j                   ddfD ]&  }t        t        |||      t	        |||             ( s dD ]l  }t        t        ||      t	        ||             t        t        |d|      t	        |d|             t        t        |d|      t	        |d|             n   y )N)Nr   r   rG   r9   r   r:   ))r=   r:   )r:   r=   )r   r=   fr_   r4   rb   rc   rd   r   r   s         r)   "test_sparse_matrix_norms_with_axisz2TestVsNumpyNorm.test_sparse_matrix_norms_with_axis   s   -- 	AK(( AN0 CD#F14$8&:NO$bffrvvgq"< C'q#D(A(.q#D(ACCC 8 AD#F14$8&:NO#F1c$=$*1c$=?#F1e$$?$*1e$$?A	AA	Ar+   c                 H   | j                   D ]  }| j                  D ]  } ||      }dD ]s  }t        t        ||      t	        ||             d dt
        j                  t
        j                   dddfD ]&  }t        t        |||      t	        |||             ( u   y )N)r   r   r:   r=   )r   )r   )r:   )r=   rG   r	   r   g      ?gzG?r_   rh   s         r)   test_sparse_vector_normsz(TestVsNumpyNorm.test_sparse_vector_norms   s    -- 	CK(( CNH CD#F14$8&:NO#QCE C'q#D(A(.q#D(ACCCC	Cr+   N)rW   rX   rY   r   r   	bsr_arrayr   	csc_arrayr2   	dia_array	dok_array	lil_arrayr`   r   r0   r1   ra   re   ri   rk   rQ   r+   r)   r]   r]   `   s    LL""LL""LL""LL""LL""LL""LL""M RYYq\A&&v. N	>A"Cr+   r]   )__doc__r>   numpyr   numpy.linalgr   r   numpy.testingr   r   r   rC   scipy.sparser   scipy.sparse.linalgr   r*   r-   r]   rQ   r+   r)   <module>rw      s@      ' 7 *  .
D*8H 8Hv8C 8Cr+   