o
    Ö­jòa  ã                   @   s  d dl Z d dlZd dlmZmZmZmZmZ d dlm	Z	m
Z
mZmZ d dl mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z' G d	d
„ d
ƒZ(G dd„ dƒZ)G dd„ dƒZ*G dd„ dƒZ+G dd„ dƒZ,G dd„ dƒZ-G dd„ dƒZ.G dd„ dƒZ/G dd„ dƒZ0G dd„ dƒZ1G dd„ dƒZ2G dd „ d ƒZ3d!d"„ Z4d#d$„ Z5d%d&„ Z6d'd(„ Z7G d)d*„ d*ƒZ8e j9j:e j9 ;d+¡e j9 <d,ed-fed-fe%d.fe"d-fe#d-fee d/¡ffee d/¡ffg¡d0d1„ ƒƒƒZ=dS )2é    N)ÚarangeÚarrayÚeyeÚcopyÚsqrt)Úassert_equalÚassert_array_equalÚassert_array_almost_equalÚassert_allclose)Úraises)Úfft)Úcomb)ÚtoeplitzÚhankelÚ	circulantÚhadamardÚleslieÚdftÚ	companionÚkronÚ
block_diagÚhelmertÚhilbertÚ
invhilbertÚpascalÚ	invpascalÚfiedlerÚfiedler_companionÚeigvalsÚconvolution_matrix)Úcondc                   @   sD   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S )ÚTestToeplitzc                 C   sZ   t g d¢ƒ}t|g d¢g d¢g d¢gƒ t g d¢g d¢ƒ}t|g d¢g d¢g d¢gƒ d S )N©é   é   é   )r$   r#   r$   ©r%   r$   r#   )r#   é   é   )r$   r#   r'   ©r   r   ©ÚselfÚy© r-   úe/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/linalg/tests/test_special_matrices.pyÚ
test_basic   ó    zTestToeplitz.test_basicc                 C   sj   dt dƒ d }t|ƒ}t|ƒ}t||ƒ |d d …df }t||ƒ t|ddd …f |dd …  ¡ ƒ d S )Nç      ð?ç      @y      ð?      ð?r   r#   )r   r   r   r   Úconj)r+   ÚdataÚxÚtÚcol0r-   r-   r.   Útest_complex_01   s   

&zTestToeplitz.test_complex_01c                 C   s2   t dƒ}t|dggƒ t ddƒ}t|dggƒ dS )z*Scalar arguments still produce a 2D array.é
   é   Nr)   )r+   r6   r-   r-   r.   Útest_scalar_00%   s   
zTestToeplitz.test_scalar_00c                 C   s0   t g d¢ƒ}t|dƒ}t|dgdgdggƒ d S ©Nr"   r#   r$   r%   ©r   r   r   ©r+   Úcr6   r-   r-   r.   Útest_scalar_01,   s   
zTestToeplitz.test_scalar_01c                 C   s4   t g d¢ƒ}t|t dƒƒ}t|dgdgdggƒ d S r<   r=   r>   r-   r-   r.   Útest_scalar_021   s   zTestToeplitz.test_scalar_02c                 C   s6   t g d¢ƒ}t|t dgƒƒ}t|dgdgdggƒ d S r<   r=   r>   r-   r-   r.   Útest_scalar_036   s   zTestToeplitz.test_scalar_03c                 C   s*   t g d¢ƒ}td|ƒ}t|g d¢gƒ d S )N)r9   r$   r%   r#   r"   r=   )r+   Úrr6   r-   r-   r.   Útest_scalar_04;   s   
zTestToeplitz.test_scalar_04N)
Ú__name__Ú
__module__Ú__qualname__r/   r8   r;   r@   rA   rB   rD   r-   r-   r-   r.   r!      s    r!   c                   @   ó   e Zd Zdd„ ZdS )Ú
TestHankelc                 C   sZ   t g d¢ƒ}t|g d¢g d¢g d¢gƒ t g d¢g d¢ƒ}t|g d¢g d¢g d¢gƒ d S )Nr"   ©r$   r%   r   )r%   r   r   ©r%   r'   r(   )r$   r%   r'   )r   r   r*   r-   r-   r.   r/   B   r0   zTestHankel.test_basicN©rE   rF   rG   r/   r-   r-   r-   r.   rI   A   ó    rI   c                   @   rH   )ÚTestCirculantc                 C   s,   t g d¢ƒ}t|g d¢g d¢g d¢gƒ d S )Nr"   )r#   r%   r$   )r$   r#   r%   r&   )r   r   r*   r-   r-   r.   r/   J   s    zTestCirculant.test_basicNrL   r-   r-   r-   r.   rN   I   rM   rN   c                   @   rH   )ÚTestHadamardc                 C   s~   t dƒ}t|dggƒ t dtd�}t|ddgddggƒ t dƒ}t|g d¢g d¢g d	¢g d
¢gƒ ttt dƒ ttt dƒ d S )Nr#   r$   ©Údtyper1   ç      ð¿r'   ©r#   r#   r#   r#   )r#   éÿÿÿÿr#   rT   )r#   r#   rT   rT   )r#   rT   rT   r#   r   r(   )r   r   ÚfloatÚassert_raisesÚ
ValueErrorr*   r-   r-   r.   r/   Q   s   
ýzTestHadamard.test_basicNrL   r-   r-   r-   r.   rO   O   ó    rO   c                   @   ó   e Zd Zdd„ Zdd„ ZdS )Ú
TestLesliec                 C   sH   t ttddgddggg d¢ƒ t ttddgddgƒ t ttdgg ƒ d S )Nr#   r$   rK   )rV   rW   r   ©r+   r-   r-   r.   Útest_bad_shapese   s   zTestLeslie.test_bad_shapesc                 C   s:   t g d¢ddgƒ}tg d¢g d¢g d¢gƒ}t||ƒ d S )Nr"   ç      Ð?ç      à?©r1   ç       @r2   )r]   ç        ra   )ra   r^   ra   )r   r   r   )r+   ÚaÚexpectedr-   r-   r.   r/   j   s   þzTestLeslie.test_basicN©rE   rF   rG   r\   r/   r-   r-   r-   r.   rZ   c   ó    rZ   c                   @   rY   )ÚTestCompanionc                 C   s.   t ttg d¢ƒ t ttdgƒ t ttg ƒ d S )N)r   r'   r(   r#   )rV   rW   r   r[   r-   r-   r.   r\   t   s   zTestCompanion.test_bad_shapesc                 C   s’   t g d¢ƒ}tddgddggƒ}t||ƒ t g d¢ƒ}tddgddggƒ}t||ƒ t d	d
gƒ}tddgddgfddgddgfgƒ}t||ƒ d S )Nr"   ç       Àg      Àr1   ra   )r`   ç      @g      $Àç      Àrh   r_   )g      @rh   g      @g      ô¿ç      ø¿)r   r   r   )r+   r?   rc   r-   r-   r.   r/   y   s0   þ
þ
ÿÿÿýzTestCompanion.test_basicNrd   r-   r-   r-   r.   rf   r   re   rf   c                   @   sL   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S )ÚTestBlockDiagc              	   C   sZ   t tdƒddgddgddggg d¢gƒ}t|g d¢g d	¢g d
¢g d¢g d¢g d¢gƒ d S )Nr$   r#   r%   r'   r(   é   r"   )r#   r   r   r   r   r   r   )r   r#   r   r   r   r   r   )r   r   r#   r$   r   r   r   )r   r   r%   r'   r   r   r   )r   r   r(   rl   r   r   r   )r   r   r   r   r#   r$   r%   )r   r   r   ©r+   r5   r-   r-   r.   r/   ’   s   (

ûzTestBlockDiag.test_basicc                 C   s4   t dggƒ}t|jtƒ t dggƒ}t|jtƒ d S )Ng      ø?T)r   r   rQ   rU   Úboolrm   r-   r-   r.   Ú
test_dtype›   s   zTestBlockDiag.test_dtypec                 C   s6   t dggdggƒ}t ddgddgg¡}t||ƒ d S )Nr#   ù              ð?r   )r   Únpr   r   )r+   ÚactualÚdesiredr-   r-   r.   Útest_mixed_dtypes¢   s   zTestBlockDiag.test_mixed_dtypesc                 C   sJ   t dƒ}t|jdƒ t|dggƒ t ddgdƒ}t|g d¢g d¢gƒ d S )Nr#   ©r#   r#   r$   r%   r'   rJ   )r   r   r'   )r   r   Úshaper   ©r+   rb   r-   r-   r.   Útest_scalar_and_1d_args§   s
   z%TestBlockDiag.test_scalar_and_1d_argsc                 C   s   t ttdgggƒ d S )Nr#   )rV   rW   r   r[   r-   r-   r.   Útest_bad_arg¯   s   zTestBlockDiag.test_bad_argc                 C   s"   t ƒ }t|jdƒ t|jdƒ d S )Nr$   r   )r   r   ÚndimÚnbytesrw   r-   r-   r.   Útest_no_args²   s   zTestBlockDiag.test_no_argsc              	   C   s\   t ddgddggg ddgddgddggƒ}t|g d	¢g d
¢g d¢g d¢g d¢g d¢gƒ d S )Nr#   r   r$   r%   r'   r(   rl   é   ©r#   r   r   r   )r   r#   r   r   )r   r   r   r   )r   r   r$   r%   )r   r   r'   r(   )r   r   rl   r}   )r   r   rw   r-   r-   r.   Útest_empty_matrix_arg·   s   þ

ûz#TestBlockDiag.test_empty_matrix_argc              	   C   sn   t ddgddggg gddgddgddggtjddgd	d
�ƒ}t|g d¢g d¢g d¢g d¢g d¢g d¢gƒ d S )Nr#   r   r$   r%   r'   r(   rl   r}   Úint32rP   )r#   r   r   r   r   r   )r   r#   r   r   r   r   )r   r   r   r   r   r   )r   r   r$   r%   r   r   )r   r   r'   r(   r   r   )r   r   rl   r}   r   r   )r   rq   Úzerosr   rw   r-   r-   r.   Útest_zerosized_matrix_argÅ   s   ý

ûz'TestBlockDiag.test_zerosized_matrix_argN)rE   rF   rG   r/   ro   rt   rx   ry   r|   r   r‚   r-   r-   r-   r.   rk   ‘   s    	rk   c                   @   sD   e Zd Zejjdd„ ƒZej d¡dd„ ƒZej d¡dd„ ƒZ	dS )	ÚTestKronc                 C   sZ   t jdd�� tt ddgddgg¡t g d¢g¡ƒ W d   ƒ d S 1 s&w   Y  d S )Nz`kron`©Úmatchr#   r$   r%   r'   ©r#   r#   r#   )ÚpytestÚdeprecated_callr   rq   r   r[   r-   r-   r.   Útest_depÖ   s   *"ÿzTestKron.test_depzignore::DeprecationWarningc                 C   sš   t tddgddggƒtg d¢gƒƒ}t|tg d¢g d¢gƒƒ tddgddggƒ}tdgd	ggƒ}t ||ƒ}tdd
gd	dgddgddggƒ}t||ƒ d S )Nr#   r$   r%   r'   r†   )r#   r#   r#   r$   r$   r$   )r%   r%   r%   r'   r'   r'   r9   é   r:   é   é   é(   é!   é,   )r   r   r   )r+   rb   Úm1Úm2rc   r-   r-   r.   r/   Û   s   $ÿ
ýzTestKron.test_basicc                 C   s2   t  d¡}t  d¡}t||ƒ}t|t  d¡ƒ d S )N)r   r$   )r#   r%   )r   rl   )rq   Úemptyr   r
   )r+   r�   r‘   rb   r-   r-   r.   Ú
test_emptyë   s   


zTestKron.test_emptyN)
rE   rF   rG   r‡   ÚmarkÚthread_unsafer‰   Úfilterwarningsr/   r“   r-   r-   r-   r.   rƒ   Õ   s    



rƒ   c                   @   rY   )ÚTestHelmertc                 C   sV   t ddƒD ]#}t|dd�}t |¡}t| |j¡|dd� t|j |¡|dd� qd S )Nr#   r}   T©Úfullçê-�™—q=©Úatol)Úranger   rq   r   r
   ÚdotÚT)r+   ÚnÚHÚIdr-   r-   r.   Útest_orthogonalityõ   s   
üzTestHelmert.test_orthogonalityc                 C   sš   t ddƒD ]E}t|dd�}t|ƒ}|dd …d d …f j|jfD ]*}t |¡t ||fd| ¡ }t| |j¡|ƒ t|j |¡t |d ¡dd� qqd S )Nr$   r}   Tr˜   r#   rš   r›   )r�   r   rŸ   rq   r   r™   r
   rž   )r+   r    ÚH_fullÚ	H_partialÚUÚCr-   r-   r.   Útest_subspaceü   s    "ýýzTestHelmert.test_subspaceN)rE   rF   rG   r£   r¨   r-   r-   r-   r.   r—   ó   s    r—   c                   @   rH   )ÚTestHilbertc                 C   sR   t g d¢g d¢g d¢gƒ}ttdƒ|ƒ ttdƒdggƒ tdƒ}t|jdƒ d S )	N)r1   r^   çUUUUUUÕ?)r^   rª   r]   )rª   r]   gš™™™™™É?r%   r#   r1   r   )r   r   )r   r	   r   r   r   rv   )r+   Úh3Úh0r-   r-   r.   r/     s   þzTestHilbert.test_basicNrL   r-   r-   r-   r.   r©     rX   r©   c                   @   rY   )ÚTestInvHilbertc                 C   s¼  t dggƒ}ttddd�|ƒ ttdƒ|ƒ t ddgddggƒ}ttddd�|ƒ ttdƒ|ƒ t g d¢g d	¢g d
¢gƒ}ttddd�|ƒ ttdƒ|ƒ t g d¢g d¢g d¢g d¢gƒ}ttddd�|ƒ ttdƒ|ƒ t g d¢g d¢g d¢g d¢g d¢gƒ}ttddd�|ƒ ttdƒ|ƒ t g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d ¢g d!¢g d"¢g d#¢g d$¢g d%¢g d&¢gƒ}ttd'dd�|ƒ ttd'ƒ| t¡d(d)� d S )*Nr#   T©Úexactr'   iúÿÿÿé   r$   )é	   éÜÿÿÿrŒ   )r²   éÀ   éLÿÿÿ)rŒ   r´   é´   r%   )é   éˆÿÿÿéð   étÿÿÿ)r·   i°  étõÿÿé�  )r¸   rº   iP  é˜ïÿÿ)r¹   r»   r¼   ið
  )é   éÔþÿÿé  éˆúÿÿév  )r¾   iÀ  é,¶ÿÿé i  éÈÎÿÿ)r¿   rÂ   i6 é 4þÿé|Ý  )rÀ   rÃ   rÅ   i ¼ éx§þÿ)rÁ   rÄ   rÆ   rÇ   iD¬  r(   )i!  ép]ÿÿé¸) é�2@ýélç†%ìýÿÿÿPAy ì   èg’
 ìýÿÿÿP=… ì   š/w$ ìýÿÿÿÐ:R
Âì   xDÅuìýÿÿÿ°‡m7ì   ôOá@£ìýÿÿÿ�>/,	ì   èt:ìýÿÿÿ`jü!˜ ì   ˜< )rÈ   i ìy éÀÌŒæì    Ør	 ìýÿÿÿ@uñ\Œ ì    Dâbùìýÿÿÿ`H„h˜ì    Pz6 ìüÿÿÿ ©}% ì    l&òW ìüÿÿÿÀµc¯( ì    h‹xÅ ìüÿÿÿÀ×4Îz ì    d©~ÏI
 ìüÿÿÿ°8wl8Z ì    @u8! ìýÿÿÿ`6—a )rÉ   rØ   l   @iLU ìýÿÿÿ äRKì    8H,’!ìüÿÿÿ`gÚ`36 ì   ÀgË0Î ìüÿÿÿ *—?*^B ì   °;±tô$Õ ìüÿÿÿÀ}|úöì   @¢bískìüÿÿÿ Cý{'"iì   `>Ü9ž&%ìüÿÿÿ°m´q>Âì   À3þCM@;ìüÿÿÿ 86ë`T ì   Pm;ã,
 )rÊ   rÙ   rç   l    pM6=ìüÿÿÿ 0	å ì    ÌnC ìüÿÿÿ YJV’r§ì     �<_ìüÿÿÿ L»^ÖVÂì    ³±R8ìüÿÿÿ u÷œx×bì    ¥eH  ìüÿÿÿðEIBQêxì    H‘våYÎPìüÿÿÿ ‚x€(6$ì     7œÂ	ìüÿÿÿ >Ñu1)rË   rÚ   rè   rõ   l   �Dcf¾$l ìüÿÿÿ@QM †ì   à8It¯ìüÿÿÿ€Hv0"Qsì   øN
¶:v ìûÿÿÿ@ ÷s/V| ì    è#& ìûÿÿÿp-ìN$vè  ì   ð5÷ Æ ìûÿÿÿ@,@VK-
 ì   à8_D�dYI ìûÿÿÿ B _, ì   ˆqŠ…k)rÌ   rÛ   ré   rö   r  l    ¶O9x—&ìûÿÿÿÀY‚)ºlŸx ì    pîÎd ìûÿÿÿ gsx m�U ì    D0—FàZD ìûÿÿÿ°K|y#l_y ì    xbrÀŸ ìûÿÿÿÀ§&Vþ%— ì    lny’?Cce ìûÿÿÿ@©Mà=p- ì    @ì@|%É6 ìûÿÿÿàýh\b½C )rÍ   rÜ   rê   r÷   r  r  l   @/.úßL ìûÿÿÿ BAyks�'9 ì   �|Þº¢¼ ìûÿÿÿ°
�LjYÄì   Ài´Yn\ª"%ìûÿÿÿ #Û5Eyì    Xç½(ïìûÿÿÿ@Tˆ'3?§ì   @­,›3ìûÿÿÿ ÝHx+†/S ì   pO3^áÐ#
 )rÎ   rÝ   rë   rø   r  r  r  l    @+aF¿}ìûÿÿÿ�cJ{
Ô;_ì    P8Xy8Qo&ìûÿÿÿ B¢IhNû�ì    `@
o†c#ìûÿÿÿ€dÈLq,ŠOì    p÷F�Y¦Raìûÿÿÿ Iiš9M›ì     R/Û$L†ìûÿÿÿ @È<8zG 0 )rÏ   rÞ   rì   rù   r  r  r  r#  l   $9@tØ)ìûÿÿÿ ì„4œì   07$$çTv0ìûÿÿÿ lÅÜ7ç>ì?ì   È"`ó-ø:M=ìûÿÿÿ (^¾@èbŒ)ì   �6´a;:BMÛìûÿÿÿ€b-Kx?|#ì   Z$M~lòl¢ )rÐ   rß   rí   rú   r  r  r  r$  r,  l    lß>cTØAìûÿÿÿ@8HV-Ü:vì    h{d*U ìúÿÿÿÀz�aC�<C ì    dYwûéMfìûÿÿÿ RyäUC#h.ì    @)³]¹¬ìûÿÿÿào†z+%’)rÑ   rà   rî   rû   r  r  r  r%  r-  r4  l   @eè4¹j¿ÏT ìúÿÿÿ ëéGU
 ì   `iå
t,@¦ ìúÿÿÿ Yˆ,côhÙ8 ì   ÀE@3I3Tìûÿÿÿ X=—&@Eì   Ð~àS˜iÛ)rÒ   rá   rï   rü   r  r  r  r&  r.  r5  r;  l    p´™}�v ìúÿÿÿ`Xfz~Aç`si ì    86Jpsbv ìûÿÿÿ $JüY'ipì     ™tk(0Êìûÿÿÿ u1˜@<fÓ)rÓ   râ   rð   rý   r	  r  r  r'  r/  r6  r<  rA  l   �w2¥T½.g] ìúÿÿÿÀ ç%\Žn ì    PYH¼uÿlìûÿÿÿ ZíR@
ÃRåì   ¸‡L°w�J¸)rÔ   rã   rñ   rþ   r
  r  r  r(  r0  r7  r=  rB  rF  l    L#(‡S.,# ìûÿÿÿÀ2F=Eàg¡Jì    @¨Ï}lìûÿÿÿ`L«\òk�)rÕ   rä   rò   rÿ   r  r  r   r)  r1  r8  r>  rC  rG  rJ  l   @Ši7Qt0"ìûÿÿÿ 8B²3ä\f	ì   p1¢&½Sù,)rÖ   rå   ró   r   r  r  r!  r*  r2  r9  r?  rD  rH  rK  rM  l     ¸@§YŽ?–ìûÿÿÿ }xúl—]R )r×   ræ   rô   r  r  r  r"  r+  r3  r:  r@  rE  rI  rL  rN  rO  l   ¤/"Ÿ}²+
 é   rš   )Úrtol)r   r   r   r	   r
   ÚastyperU   )r+   Úinvh1Úinvh2Úinvh3Úinvh4Úinvh5Úinvh17r-   r-   r.   r/     sd   ÿþýüŽzzTestInvHilbert.test_basicc                 C   sN   t ddƒD ]}t|ƒ}t|ƒ}t|ƒ}t| |¡t|ƒd| d| d� qd S )Nr#   r9   gVçž¯Ò<)rœ   rQ  )r�   r   r   r    r
   rž   r   )r+   r    rb   Úbr?   r-   r-   r.   Útest_inverse²  s   $úzTestInvHilbert.test_inverseN)rE   rF   rG   r/   rZ  r-   r-   r-   r.   r­     s     r­   c                   @   sä   e Zd Zdedggƒedggƒfdeddgddggƒeddgddggƒfdeg d¢g d¢g d¢gƒeg d¢g d	¢g d
¢gƒfdeg d¢g d¢g d¢g d¢gƒeg d¢g d¢g d¢g d¢gƒfgZdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú
TestPascalr#   r$   r   r%   r†   r"   )r#   r%   rl   )r#   r   r   )r#   r#   r   )r#   r$   r#   r'   rS   )r#   r$   r%   r'   )r#   r%   rl   r9   )r#   r'   r9   r:   r~   )r#   r#   r   r   )r#   r$   r#   r   )r#   r%   r%   r#   c                 C   st   t t|ƒ|ƒ t t|dd�|ƒ t t|dd�|jƒ tt|dd�|ƒ tt|ddd�|ƒ tt|ddd�|jƒ d S )NÚlower)ÚkindÚupperFr®   )r¯   r]  )r   r   rŸ   r	   ©r+   r    ÚsymÚlowr-   r-   r.   Ú
check_caseÔ  s   zTestPascal.check_casec                 C   s$   | j D ]\}}}|  |||¡ qd S ©N)Úcasesrb  r_  r-   r-   r.   Ú
test_casesÜ  s   ÿzTestPascal.test_casesc                 C   s&   t dƒ}|d tdddd�ksJ ‚d S )Né2   )rT   rT   éb   é1   Tr®   )r   r   ©r+   Úpr-   r-   r.   Útest_bigà  s   zTestPascal.test_bigc                 C   s\   t dƒ}td| dd¡ | dd¡dd� t dƒ}td| dd¡ d	| dd¡ d
d� d S )Né"   r$   rT   éþÿÿÿzn = 34©Úerr_msgé#   r`   r1   zn = 35)r   r   Úitemri  r-   r-   r.   Útest_thresholdä  s   "*zTestPascal.test_thresholdN)	rE   rF   rG   r   rd  rb  re  rk  rr  r-   r-   r-   r.   r[  ¼  sD    
ÿÿþ
þþý
ýýüôr[  c                  C   sn   dd„ } g d¢}g d¢}|D ]}|D ]}dD ]}| |||ƒ qqqg d¢}|D ]}|D ]}| ||dƒ q+q'd S )Nc                 S   sR   t | ||d�}t| ||d�}| t¡ | t¡¡}t|t| ƒd| ||f d� d S )N)r]  r¯   zn=%d  kind=%r exact=%rrn  )r   r   rR  Úobjectrž   r   r   )r    r]  r¯   Úiprj  Úer-   r-   r.   Úcheck_invpascalñ  s   ÿz'test_invpascal.<locals>.check_invpascal)Ú	symmetricr\  r^  )r#   r$   r(   é   )TF)é   rl  rp  rf  Tr-   )rv  ÚkindsÚnsr    r]  r¯   r-   r-   r.   Útest_invpascalï  s   ÿÿÿÿr|  c                  C   s’   t dƒ} tddgddggƒ}t| |ƒ t ddd�} t| |d ƒ t ddd�} t| |tdƒ ƒ tg d¢ƒ}t d	ƒ} |  |¡}t|ƒ}t||ƒ d S )
Nr$   r1   rR   r    )Úscaler`   Úsqrtn)r   r#   r$   r%   r'   r(   r   r#   é   )r   r   r	   r   rž   r   )Úmrc   r5   ÚmxÚfxr-   r-   r.   Útest_dft  s   

rƒ  c               	   C   s~   t g ƒ} t| jdƒ t dgƒ} t| t dgg¡ƒ t t dd¡ƒ} t g d¢g d¢g d¢g d	¢g d
¢g d¢g¡}t| |ƒ d S )Nr   g     À^@ra   r#   r}   )r   r#   r$   r%   r'   r(   )r#   r   r#   r$   r%   r'   )r$   r#   r   r#   r$   r%   )r%   r$   r#   r   r#   r$   )r'   r%   r$   r#   r   r#   )r(   r'   r%   r$   r#   r   )r   r   Úsizer   rq   r   r   )ÚfÚdesr-   r-   r.   Útest_fiedler  s   

ûr‡  c                  C   sÄ   t g ƒ} t| jdƒ t dgƒ} t| jdƒ t ddgƒ} t| t dgg¡ƒ t g d¢ƒ} t| tg d¢ƒƒ tt	ƒ� t g d¢ƒ W d   ƒ n1 sIw   Y  t g d¢ƒ} tt
| ƒt g d¢¡ƒ d S )	Nr   r1   r`   rg   )rš   r`   r2   )r   r#   r$   )r1   g      0Àg     €U@g      fÀg     @Z@)g      @rh   r2   r1   )r   r   r„  r   rq   r   r	   r   rV   rW   r   )Úfcr-   r-   r.   Útest_fiedler_companion+  s   

ÿÿr‰  c                   @   s€   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zej	 
d
ddg¡ej	 
dg d¢¡ej	 
dg d¢¡ej	 
dg d¢¡dd„ ƒƒƒƒZdS )ÚTestConvolutionMatrixzL
    Test convolution_matrix vs. numpy.convolve for various parameters.
    c                 C   s,   t  dd|¡}|r|dt  dd|¡  }|S )z/Make a complex or real test vector of length n.ri   gš™™™™™@rp   rj   gÍÌÌÌÌÌ@)rq   Úlinspace)r+   r    Úcpxr5   r-   r-   r.   Úcreate_vector@  s   z#TestConvolutionMatrix.create_vectorc                 C   sB   t jtdd�� tg d¢dƒ W d   ƒ d S 1 sw   Y  d S )Nzn must be a positive integerr„   r"   r   ©r‡   r   rW   r   r[   r-   r-   r.   Ú
test_bad_nG  ó   "ÿz TestConvolutionMatrix.test_bad_nc                 C   s>   t jtdd�� tg dƒ W d   ƒ d S 1 sw   Y  d S )Nzlen\(a\)r„   r'   rŽ  r[   r-   r-   r.   Útest_empty_first_argL  s   "ÿz*TestConvolutionMatrix.test_empty_first_argc                 C   sB   t jtdd�� tdddd� W d   ƒ d S 1 sw   Y  d S )Nzmode.*must be one ofr„   ru   r'   zinvalid argument)ÚmoderŽ  r[   r-   r-   r.   Útest_bad_modeQ  r�  z#TestConvolutionMatrix.test_bad_moderŒ  FTÚna)r#   r$   r±   Únvr’  )Nr™   ÚvalidÚsamec           
      C   sh   |   ||¡}|   ||¡}|d u rt ||¡}t||ƒ}nt |||¡}t|||ƒ}|| }	t||	ƒ d S rc  )r�  rq   Úconvolver   r	   )
r+   rŒ  r”  r•  r’  rb   ÚvÚy1ÚAÚy2r-   r-   r.   Útest_against_numpy_convolveV  s   z1TestConvolutionMatrix.test_against_numpy_convolveN)rE   rF   rG   Ú__doc__r�  r�  r‘  r“  r‡   r”   Úparametrizer�  r-   r-   r-   r.   rŠ  ;  s    rŠ  r(   zf, argsr-   )r(   r—  r±   c           	         sØ   t j d¡}d}d}| ||f ¡}ˆthv r;d}tjt|d�� ˆ|gˆ ¢R Ž  W d   ƒ d S 1 s4w   Y  d S ˆ|gˆ ¢R Ž }t  ‡ ‡fdd„| d|¡D ƒ¡}| |j	d d… |j	d	d …  ¡}t
||ƒ d S )
Nl   À!á´ )r$   r%   r9   z:Beginning in SciPy 1.17, multidimensional input will be...r„   c                    s   g | ]
}ˆ|gˆ ¢R Ž ‘qS r-   r-   )Ú.0rb   ©Úargsr…  r-   r.   Ú
<listcomp>~  s    ztest_batch.<locals>.<listcomp>rT   rm  )rq   ÚrandomÚdefault_rngr   r‡   ÚwarnsÚFutureWarningÚasarrayÚreshaperv   r
   )	r…  r¢  ÚrngÚbatch_shaper€  r›  ÚmessageÚresÚrefr-   r¡  r.   Ú
test_batchg  s    

ÿþ""r¯  )>r‡   Únumpyrq   r   r   r   r   r   Únumpy.testingr   r   r	   r
   r   rV   Ú	scipy.fftr   Úscipy.specialr   Úscipy.linalgr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Únumpy.linalgr    r!   rI   rN   rO   rZ   rf   rk   rƒ   r—   r©   r­   r[  r|  rƒ  r‡  r‰  rŠ  r”   r•   Ú	fail_slowrŸ  r¯  r-   r-   r-   r.   Ú<module>   sL    P/D )3,
ú