
    sg                         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      }t        t        |dd      t        j                  g d             t        t        |dd      t        j                  g d             t        t        |dd      t        j                  d	d
g             t        t        |dd      t        j                  d	d
g             y )N)r   r      r   )r   r         )         	   )r	   r   )shaper   r   ordaxisr      )nparrayscipysparse	coo_array
coo_matrixr   spnorm)rowcoldatatest_arrtest_mats        V/var/www/html/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aa0"((<2HIaa0"((<2HIaa0"((Ar72CDaa0"((Ar72CD    c                   *    e Zd Zd Z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_matrixb)selfar*   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   r*   r   infpytestwarnsUserWarningastypefloat64assert_raisesNotImplementedError)r+   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 )Nr   r   r   r   r   r/   r0   r   r	   r   r   r1   r2   r*   Tr   r   r   r5   )r+   mr   s      r    test_matrix_norm_axiszTestNorm.test_matrix_norm_axis3   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@rG   r   r   r	   rA   )r   r2   r   )r   r
   r   r   rB   )r+   vrD   r,   r   s        r    test_vector_normzTestNorm.test_vector_norm<   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   rL   plate_of_shrimpr   r?   )r*   r;   	TypeErrorr   
ValueError)r+   rD   s     r    test_norm_exceptionszTestNorm.test_norm_exceptionsF   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__r-   r=   rE   rI   rP   rK   r"   r    r$   r$      s    ,
?$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
   )r1   r   r   )r   r   r
   )r1   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 )Nr0   r   r1   _sparse_types_test_matricesr   r   npnormr   r5   )r+   sparse_typeMSs       r    test_sparse_matrix_normsz(TestVsNumpyNorm.test_sparse_matrix_normsi   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@   rA   r0   r   r1   ))r4   r1   )r1   r4   )r   r4   frW   r+   r[   r\   r]   r   r   s         r    "test_sparse_matrix_norms_with_axisz2TestVsNumpyNorm.test_sparse_matrix_norms_with_axist   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   r1   r4   )r   )r   )r1   )r4   rA   r	   r   g      ?gzG?rW   ra   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)rQ   rR   rS   r   r   
bsr_matrixr   
csc_matrixr)   
dia_matrix
dok_matrix
lil_matrixrX   r   r'   r(   rY   r^   rb   rd   rK   r"   r    rU   rU   U   s    LL##LL##LL##LL##LL##LL##LL##M RYYq\A&&v. N	>A"Cr"   rU   )__doc__r6   numpyr   numpy.linalgr   rZ   numpy.testingr   r   r   r;   scipy.sparser   scipy.sparse.linalgr   r!   r$   rU   rK   r"   r    <module>rp      s@      ' 7 *  .	E7H 7Ht8C 8Cr"   