U
    ÉZjÝ  ã                   @   sf   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„ dƒZdS )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                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestRegressionc                 C   sh   t ddddddddd	d
dddgƒ}tdtd�}d|_|d }t |¡\}}| ¡  | ¡  t||ƒ d S )NyþºÓ�'ÎY@        yF.“<2/3À        yšÊ¹LTã¿WŒ¡9>°/@yšÊ¹LTã¿WŒ¡9>°/Ày=J€õ½&À        yt…�V)å¿·BÜÅÉÕ$@yt…�V)å¿·BÜÅÉÕ$ÀyZynFr62@        yÝ(�Ã3%@        yÖ´:@        yCr~è¿        y§Y·qs`Û<        yt&²üáAÛ¼        é©   ©Údtype)é   r   é   )r   r   r   Úshaper   ZeigÚsortr   )ÚselfZrvaÚaÚvaÚve© r   úe/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/numpy/linalg/tests/test_regression.pyÚtest_eig_build   s*    ôzTestRegression.test_eig_buildc                 C   sF   dddg}t dddgdddgddd	ggƒ}t |¡\}}t||ƒ d S )
Ng"¤òŸÃ&Q@gg ÜödV@gƒ»7¯ÿªZ@g'ŽU­ùlS@g4h¦ƒ@g%p±ÃJ/@g›+÷À>V@g ”Þqi0ñ¿gJ%~½©‹X@)r   r   Zeighr   )r   ZrvalsZcovÚvalsZvecsr   r   r   Útest_eigh_build&   s    

þzTestRegression.test_eigh_buildc                 C   sl   t ddgddgddgddggƒ}|j\}}t |¡\}}}tt|d d …|d …f ƒ|ƒ}t|t d¡ƒ d S )Ng        ç      ð?ç       @ç      @)é   r"   )	r   r   r   Úsvdr   r   r   ÚnpZzeros)r   r   ÚmÚnÚuÚsZvhÚbr   r   r   Útest_svd_build1   s
     
zTestRegression.test_svd_buildc                 C   s   t ttjtdddgƒdƒ d S )Nr   r    r!   Úfro)r	   Ú
ValueErrorr   Únormr   )r   r   r   r   Útest_norm_vector_badarg;   s    z&TestRegression.test_norm_vector_badargc                 C   sF   t ddgddggdd�}t |dd�}t |¡}t |¡}t||ƒ d S )Ng¬C$ù 3@gàŽ&ÍÕuÀg.¼Ü·#@z>f8r   z<f8)r   r   Zcholeskyr   )r   r   r)   ZapÚbpr   r   r   Útest_lapack_endian@   s    ÿÿ

z!TestRegression.test_lapack_endianc                 C   s   t  dd¡}t j |¡ d S )Niè  éB   )r$   Úeyer   r#   )r   Úxr   r   r   Útest_large_svd_32bitJ   s    z#TestRegression.test_large_svd_32bitc                 C   s~   dD ]t}t tfD ]f}tj||d�}tj|dd�}t t |¡dk¡}t|dƒ ttj 	|¡dƒ t
dtjj|dd�ƒ qqd S )	N))é   é   )r6   r6   )r6   r5   r   F)Z
compute_uvg      à?é   r"   ©Úord)ÚfloatÚcomplexr$   Zonesr   r#   Zcount_nonzeroÚabsoluter
   Zmatrix_rankr   r-   )r   r   Útr   ÚwÚcr   r   r   Útest_svd_no_uvO   s    
zTestRegression.test_svd_no_uvc              	   C   s‚  t jt  ddg¡ddgtd�}t |¡}t|ddgƒ t|jt  d¡kƒ tj|dd�}t|ddgƒ t|jt  d¡kƒ tj|dd�}t|ddgƒ t|jt  d¡kƒ tt	tj|dd� tt	tj|dd� tt	tj|t j
d� tt	tj|t j
 d� t ¡ �( t d	t¡ tttftj|dd� W 5 Q R X tt	tj|d
d� tt	tj|dd� t jt  ddg¡ddgdddggtd�}t |¡}t|ddgƒ t|jt  d¡kƒ tj|dd�}t|ddgƒ t|jt  d¡kƒ tttj|dd� tt	tj|t j
d� tt	tj|t j
 d� tt	tj|dd� tt	tj|dd� tt	tj|d
d� tttj|dd� tttj|dd� tt	tj|dd� d S )Nr   r7   r   r   r8   r"   r+   ZnucÚerroréÿÿÿÿéþÿÿÿr5   )r$   r   Úobjectr   r-   r   r   r   r	   r,   ÚinfÚwarningsÚcatch_warningsÚsimplefilterÚDeprecationWarningÚAttributeErrorÚ	TypeError)r   Z
testvectorr-   Z
testmatrixr   r   r   Útest_norm_object_arrayZ   sV    

  ÿÿÿ
z%TestRegression.test_norm_object_arrayc           
      C   sx   d}d}t j ||¡dt j ||¡  }t j ||¡dt j ||¡  }| |¡}tj||d d�\}}}}	t||ƒ d S )Né   éF   y              ð?)Zrcond)r$   ÚrandomZrandnr   r   Zlstsqr   )
r   ÚsizeZn_rhsÚGr'   r)   Zu_lstsqÚresZrankÚsvr   r   r   Útest_lstsq_complex_larger_rhsŠ   s      
z,TestRegression.test_lstsq_complex_larger_rhsN)Ú__name__Ú
__module__Ú__qualname__r   r   r*   r.   r0   r4   r@   rL   rT   r   r   r   r   r      s   

0r   )Ú__doc__rF   Únumpyr$   r   r   r   r   r   r   Znumpy.testingr   r	   r
   r   r   r   r   r   r   r   r   Ú<module>   s
     