Ë
    ¡e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                   ó  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zej                  j                  d
ddg«      d„ «       Zej                  j                  dddgdz   ej"                  d«      g«      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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   ÚeigÚsortr   )ÚselfÚrvaÚaÚvaÚves        ú`/var/www/skyplay_api_hub/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@gƒ»7¯ÿªZ@)g'ŽU­ùlS@ç4h¦ƒ@ç%p±ÃJ/@)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 )Nç        ç      ð?ç       @ç      @)é   r1   )	r   r   r   Úsvdr   r   r   ÚnpÚzeros)r   r   ÚmÚnÚuÚsÚvhÚbs           r   Útest_svd_buildzTestRegression.test_svd_build2   ss   € ä�B˜�8˜b "˜X¨¨B x°"°b°Ð:Ó;ˆØ�w‰w‰ˆˆ1Ü—:‘:˜a“=‰ˆˆ1ˆbä”	˜!šA˜q™r˜E™(Ó# QÓ'ˆä! !¤R§X¡X¨fÓ%5Õ6r!   c                 óZ   — t        t        t        j                  t	        g d¢«      d«       y )N)r.   r/   r0   Úfro)r
   Ú
ValueErrorr   Únormr   )r   s    r   Útest_norm_vector_badargz&TestRegression.test_norm_vector_badarg<   s   € ô 	”j¤&§+¡+¬u²\Ó/BÀEÕJr!   c                 ó°   — t        ddgddggd¬«      }t        |d¬«      }t        j                  |«      }t        j                  |«      }t        ||«       y )Ng¬C$ù 3@gàŽ&ÍÕuÀg.¼Ü·#@z>f8r   z<f8)r   r   Úcholeskyr   )r   r   r:   ÚapÚbps        r   Útest_lapack_endianz!TestRegression.test_lapack_endianA   sU   € ä�I 
Ð+Ø *Ð-ð/Ø6;ô=ˆä�!˜5Ô!ˆä�_‰_˜QÓˆÜ�_‰_˜QÓˆÜ˜2˜rÕ"r!   c                 ón   — t        j                  dd«      }t         j                  j                  |«       y )Niè  éB   )r3   Úeyer   r2   )r   Úxs     r   Útest_large_svd_32bitz#TestRegression.test_large_svd_32bitK   s"   € ä�F‰F�4˜ÓˆÜ
�	‰	�‰�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¬«      «       t	        j                  |«      }t        ||«       ŒÞ Œï y )	N))é   é   )rM   rM   )rM   rL   r   F)Ú
compute_uvg      à?é   r1   ©Úord)ÚfloatÚcomplexr3   Úonesr   r2   Úcount_nonzeroÚabsoluter   Úmatrix_rankr   r?   Úsvdvalsr   )r   r   Útr   ÚwÚcÚ	w_svdvalss          r   Útest_svd_no_uvzTestRegression.test_svd_no_uvP   s·   € à+ò 
	8ˆEÜœG�^ò 	8�Ü—G‘G˜E¨Ô+�Ü—J‘J˜q¨UÔ3�Ü×$Ñ$¤R§[¡[°£^°cÑ%9Ó:�Ü˜Q Ô"ÜœRŸY™Y×2Ñ2°1Ó5°qÔ9Ü! !¤R§Y¡Y§^¡^°A¸1 ^Ó%=Ô>ä"ŸN™N¨1Ó-�	Ü)¨!¨YÕ7ñ	8ñ
	8r!   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   rO   r   r   rP   r1   r=   Únucéÿÿÿÿéþÿÿÿ)r   r   r   rL   )r3   r   Úobjectr   r?   r   r	   r   r
   r>   ÚinfÚ	TypeError)r   Ú
testvectorr?   Ú
testmatrixs       r   Útest_norm_object_arrayz%TestRegression.test_norm_object_array^   s   € ä—X‘XœrŸx™x¨¨A¨Ó/°°AÐ6¼fÔEˆ
ä�{‰{˜:Ó&ˆÜ˜4 ! Q Ô(Ü�—
‘
œbŸh™h yÓ1Ñ1Ô2ä�{‰{˜:¨1Ô-ˆÜ˜4 ! Q Ô(Ü�—
‘
œbŸh™h yÓ1Ñ1Ô2ä�{‰{˜:¨1Ô-ˆÜ˜4 ! Q Ô(Ü�—
‘
œbŸh™h yÓ1Ñ1Ô2ä”j¤&§+¡+¨z¸uÕEÜ”j¤&§+¡+¨z¸uÕEÜ”j¤&§+¡+¨z¼r¿v¹vÕFÜ”j¤&§+¡+¨zÄÇÁ¸wÕGÜ”j¤&§+¡+¨z¸qÕAÜ”j¤&§+¡+¨z¸rÕBÜ”j¤&§+¡+¨z¸rÕBä—X‘X¤§¡¨!¨Q¨Ó 0°!°QÐ7Ú7ð9Ü@FôHˆ
ô �{‰{˜:Ó&ˆÜ˜4 ! Q Ô(Ü�—
‘
œbŸh™h yÓ1Ñ1Ô2ä�{‰{˜:¨5Ô1ˆÜ˜4 ! Q Ô(Ü�—
‘
œbŸh™h yÓ1Ñ1Ô2ä”i¤§¡¨j¸eÕDÜ”j¤&§+¡+¨z¼r¿v¹vÕFÜ”j¤&§+¡+¨zÄÇÁ¸wÕGÜ”j¤&§+¡+¨z¸qÕAÜ”j¤&§+¡+¨z¸qÕAÜ”j¤&§+¡+¨z¸rÕBÜ”i¤§¡¨j¸aÕ@Ü”i¤§¡¨j¸bÕAÜ”j¤&§+¡+¨z¸qÖ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)r3   ÚrandomÚrandnr   r   Úlstsqr   )
r   ÚsizeÚn_rhsÚGr7   r:   Úu_lstsqÚresÚrankÚsvs
             r   Útest_lstsq_complex_larger_rhsz,TestRegression.test_lstsq_complex_larger_rhs‹   s˜   € àˆØˆÜ�I‰I�O‰O˜D $Ó'¨"¬r¯y©y¯©¸tÀTÓ/JÑ*JÑJˆÜ�I‰I�O‰O˜D %Ó(¨2´·	±	·±ÀÀeÓ0LÑ+LÑLˆØ�E‰E�!‹Hˆä!'§¡¨a°¸$Ô!?Ñˆ��d˜Bä! '¨1Õ-r!   ÚupperTFc                 óŽ   — t         j                  j                  t        j                  d«      |¬«      }|j                  dk(  sJ ‚y )N)r   r   )rw   r   )r3   r   rB   r4   ro   )r   rw   rs   s      r   Útest_cholesky_empty_arrayz(TestRegression.test_cholesky_empty_array—   s6   € ô �i‰i× Ñ ¤§¡¨&Ó!1¸Ð Ó?ˆØ�x‰x˜1Š}Ð‰}r!   Úrtolr-   rM   ©rM   c                 ó’   — t        j                  d«      }t         j                  j                  ||¬«      }|j                  dk(  sJ ‚y )N)rM   rL   r1   )rz   r{   )r3   r4   r   rW   r   )r   rz   rI   rs   s       r   Útest_matrix_rank_rtol_argumentz-TestRegression.test_matrix_rank_rtol_argument�   s=   € ô �H‰H�YÓˆÜ�i‰i×#Ñ# A¨DÐ#Ó1ˆØ�y‰y˜DÒ Ð Ñ r!   c                 ó   — t        j                  dt         j                  ¬«      }t        j                  |d|z  f«      j                  }t        j
                  ddgddgg«      }t        j                  d|z  |f«      j                  }t        d«      D ]8  }||z  }t        j                  ||«       j                  «       }|dk7  sŒ3J d«       ‚ y )Ni ¡ r   iöÿÿÿr   rO   éÈ   zHunexpected result from matmul, probably due to OpenBLAS threading issues)	r3   r   r   ÚvstackÚTr   ÚrangeÚiscloseÚsum)r   rI   ÚsrcÚmatrixÚexpectedÚiÚresultÚ
mismatchess           r   Útest_openblas_threadingz&TestRegression.test_openblas_threading¤   sÀ   € ô �I‰I�f¤B§J¡JÔ/ˆÜ�i‰i˜˜C ™E˜
Ó#×%Ñ%ˆÜ—‘˜A˜q˜6 A q 6Ð*Ó+ˆÜ—9‘9˜c !™e Q˜ZÓ(×*Ñ*ˆÜ�s“ò 	AˆAØ˜6‘\ˆFÜŸ:™: f¨hÓ7Ð7×<Ñ<Ó>ˆJØ˜Q‹ðAð  @ó A�uñ		Ar!   N)Ú__name__Ú
__module__Ú__qualname__r    r+   r;   r@   rE   rJ   r]   rg   rv   ÚpytestÚmarkÚparametrizery   r3   r4   r}   r‹   © r!   r   r   r      sž   „ ò+ò.	/ò7òKò
#òò
8ò+BòZ
.ð ‡[�[×Ñ˜W t¨U mÓ4ñó 5ðð
 ‡[�[×Ñ˜V c¨C¨5°1©9°h°b·h±h¸t³nÐ%EÓFñ!ó Gð!óAr!   r   )Ú__doc__r�   Únumpyr3   r   r   r   r   r   r   Únumpy.testingr	   r
   r   r   r   r   r   r’   r!   r   ú<module>r–      s0   ðñó ã ß @× @÷÷ ÷cAò cAr!   