
    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            
      H   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 ]V  }dD ]O  }||fD ]F  }t        |j                         ||      }t        |||      }	t        |	d	      sJ t        |	|       H Q X 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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               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2664  /. 	/B) /!!))+3R@s4vw///VX.	/	// ,,(($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ar6   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   r6   r   r   pytestwarnsUserWarningastypefloat64assert_raisesNotImplementedError)r7   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   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    (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@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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   rU   plate_of_shrimpr   r   )r6   rF   	TypeErrorr   
ValueError)r7   rM   s     r,   test_norm_exceptionszTestNorm.test_norm_exceptionsS   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__r9   rA   markthread_unsaferH   rN   rR   rY   rT   r.   r,   r0   r0   '   s6    +
 [[? ?$9C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
  j                  d      g dg dgg dg dgfZd Zd	 Zd
 Zy)TestVsNumpyNormr   r   r2   )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 )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(( >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   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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@   rJ   r	   r   g      ?gzG?rb   rk   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)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    LL""LL""LL""LL""LL""LL""LL""M RYYq\A&&v. N	>A"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 *  .
D.8H 8Hv8C 8Cr.   