
    ,|h:                     l    d Z ddlZddlZddlmZmZmZmZmZm	Z	 ddl
mZmZmZmZmZmZ  G d d      Zy)z" Test functions for linalg module
    N)linalgarangefloat64arraydot	transpose)assert_assert_raisesassert_equalassert_array_equalassert_array_almost_equalassert_array_lessc                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestRegressionc                     t        g d      }t        dt              }d|_        |dz  }t	        j
                  |      \  }}|j                          |j                          t        ||       y )N)yӝ'Y@        yF.<2/3        yʹLTW9>/@yʹLTW9>/y=J&        ytV)忷B$@ytV)忷B$yZynFr62@        y(3%@        y:@        yCr~        yYqs`<        yt&Aۼ           dtype)   r      )r   r   r   shaper   eigsortr   )selfrvaavaves        a/var/www/html/test/engine/venv/lib/python3.12/site-packages/numpy/linalg/tests/test_regression.pytest_eig_buildzTestRegression.test_eig_build   s\     , - 7'*FAB
	
!"c*    c                 |    g d}t        g dg dg dg      }t        j                  |      \  }}t        ||       y )N)g"&Q@ggdV@g7Z@)g'UlS@4h@%pJ/@)r#   g+>V@研qi0)r$   r%   gJ%~X@)r   r   eighr   )r   rvalscovvalsvecss        r   test_eigh_buildzTestRegression.test_eigh_build&   s?    8>=>@ A [[%
d!$.r!   c                     t        ddgddgddgddgg      }|j                  \  }}t        j                  |      \  }}}t	        t        |d d |d f         |      }t        |t        j                  d             y )Ng              ?       @      @)   r0   )	r   r   r   svdr   r   r   npzeros)r   r   mnusvhbs           r   test_svd_buildzTestRegression.test_svd_build1   ss    B8b"XBx"b:;ww1::a=1b	!AqrE(#Q'!!RXXf%56r!   c                 Z    t        t        t        j                  t	        g d      d       y )N)r-   r.   r/   fro)r
   
ValueErrorr   normr   )r   s    r   test_norm_vector_badargz&TestRegression.test_norm_vector_badarg;   s     	j&++u\/BEJr!   c                     t        ddgddggd      }t        |d      }t        j                  |      }t        j                  |      }t        ||       y )NgC$ 3@g&ug.ܷ#@z>f8r   z<f8)r   r   choleskyr   )r   r   r9   apbps        r   test_lapack_endianz!TestRegression.test_lapack_endian@   sU    I
+*-/6;=!5!__Q__Q2r"r!   c                 n    t        j                  dd      }t         j                  j                  |       y )Ni  B   )r2   eyer   r1   )r   xs     r   test_large_svd_32bitz#TestRegression.test_large_svd_32bitJ   s"    FF4
		ar!   c           	         dD ]  }t         t        fD ]  }t        j                  ||      }t	        j
                  |d      }t        j                  t        j                  |      dkD        }t        |d       t        t        j                  j                  |      d       t        dt        j                  j                  |d               y )	N))      )rL   rL   )rL   rK   r   F)
compute_uvg      ?   r0   ord)floatcomplexr2   onesr   r1   count_nonzeroabsoluter   matrix_rankr   r>   )r   r   tr   wcs         r   test_svd_no_uvzTestRegression.test_svd_no_uvO   s    + 	?EG^ ?GGE+JJqU3$$R[[^c%9:Q"RYY2215q9!!RYY^^A1^%=>?	?r!   c                    t        j                  t        j                  ddg      ddgt              }t        j                  |      }t        |ddg       t        |j                  t        j                  d      k(         t        j                  |d      }t        |ddg       t        |j                  t        j                  d      k7         t        j                  |d      }t        |ddg       t        |j                  t        j                  d      k(         t        t        t        j                  |d       t        t        t        j                  |d       t        t        t        j                  |t         j                         t        t        t        j                  |t         j                          t        t        t        j                  |d       t        t        t        j                  |d	       t        t        t        j                  |d
       t        j                  t        j                  ddg      ddgg dgt              }t        j                  |      }t        |ddg       t        |j                  t        j                  d      k(         t        j                  |d      }t        |ddg       t        |j                  t        j                  d      k(         t        t        t        j                  |d       t        t        t        j                  |t         j                         t        t        t        j                  |t         j                          t        t        t        j                  |d       t        t        t        j                  |d       t        t        t        j                  |d	       t        t        t        j                  |d       t        t        t        j                  |d
       t        t        t        j                  |d       y )Nr   rN   r   r   rO   r0   r<   nuc)r   r   r   rK   )r2   r   objectr   r>   r   r	   r   r
   r=   inf	TypeError)r   
testvectorr>   
testmatrixs       r   test_norm_object_arrayz%TestRegression.test_norm_object_arrayZ   s   XXrxxA/A6fE
{{:&4!Q(

bhhy112{{:1-4!Q(

bhhy112{{:1-4!Q(

bhhy112j&++zuEj&++zuEj&++zrvvFj&++zwGj&++zqAj&++zrBj&++zrBXX!Q 0!Q779@FH
 {{:&4!Q(

bhhy112{{:514!Q(

bhhy112ijeDj&++zrvvFj&++zwGj&++zqAj&++zqAj&++zrBija@ijbAj&++zqAr!   c                    d}d}t         j                  j                  ||      dt         j                  j                  ||      z  z   }t         j                  j                  ||      dt         j                  j                  ||      z  z   }|j                  |      }t	        j
                  ||d       \  }}}}	t        ||       y )N   F   y              ?)rcond)r2   randomrandnr   r   lstsqr   )
r   sizen_rhsGr6   r9   u_lstsqresranksvs
             r   test_lstsq_complex_larger_rhsz,TestRegression.test_lstsq_complex_larger_rhs   s    IIOOD$'"ryytT/J*JJIIOOD%(2		e0L+LLEE!H!'a$!?dB!'1-r!   N)__name__
__module____qualname__r    r+   r:   r?   rD   rI   rZ   rd   rs    r!   r   r   r      s2    +.	/7K
#
	?+BZ
.r!   r   )__doc__warningsnumpyr2   r   r   r   r   r   r   numpy.testingr	   r
   r   r   r   r   r   rw   r!   r   <module>r|      s,      @ @ D. D.r!   