
    ^Mha                     F   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
          Z( G d d          Z) G d d          Z* G d d          Z+ G d d          Z, G d d          Z- G d d          Z. G d d          Z/ G d d          Z0 G d d          Z1 G d d          Z2 G d d           Z3d! Z4d" Z5d# Z6d$ Z7 G d% d&          Z8e j9        j:        e j9        ;                    d'          e j9        <                    d(ed)fed)fe%d*fe"d)fe#d)fe ej        d+          ffe ej        d+          ffg          d,                                     Z=dS )-    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                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestToeplitzc                     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ys     h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/linalg/tests/test_special_matrices.py
test_basiczTestToeplitz.test_basic   sv    YYY1yyy)))YYY?@@@YYY			**1yyy)))YYY?@@@@@    c                 ,   dt          d          z   dz  }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col0s        r0   test_complex_01zTestToeplitz.test_complex_01   s    fSkk!j1JJQKK1d###Aw4&&&1QU8T!""X]]__55555r2   c                     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.   r9   s     r0   test_scalar_00zTestToeplitz.test_scalar_00%   sJ    RLL1tf%%%R1tf%%%%%r2   c                 t    t          g d          }t          |d          }t          |dgdgdgg           d S Nr%   r&   r'   r(   r   r   r	   r.   cr9   s      r0   test_scalar_01zTestToeplitz.test_scalar_01,   sB    )))QNN1sQC!o.....r2   c                     t          g d          }t          |t          d                    }t          |dgdgdgg           d S rA   rB   rC   s      r0   test_scalar_02zTestToeplitz.test_scalar_021   sJ    )))Qa!!1sQC!o.....r2   c                     t          g d          }t          |t          dg                    }t          |dgdgdgg           d S rA   rB   rC   s      r0   test_scalar_03zTestToeplitz.test_scalar_036   sL    )))Qqc

##1sQC!o.....r2   c                 n    t          g d          }t          d|          }t          |g dg           d S )N)r=   r'   r(   r&   r%   rB   )r.   rr9   s      r0   test_scalar_04zTestToeplitz.test_scalar_04;   s<    ***QNN1yyyk*****r2   N)
__name__
__module____qualname__r1   r;   r?   rE   rG   rI   rL    r2   r0   r#   r#      s        A A A	6 	6 	6& & &/ / /
/ / /
/ / /
+ + + + +r2   r#   c                       e Zd Zd ZdS )
TestHankelc                     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-   s     r0   r1   zTestHankel.test_basicB   sv    9991yyy)))YYY?@@@999iii((1yyy)))YYY?@@@@@r2   NrM   rN   rO   r1   rP   r2   r0   rR   rR   A   s(        A A A A Ar2   rR   c                       e Zd Zd ZdS )TestCirculantc                 Z    t          g d          }t          |g dg dg dg           d S )Nr%   )r&   r(   r'   )r'   r&   r(   r)   )r   r	   r-   s     r0   r1   zTestCirculant.test_basicJ   s<    iii  1yyy)))YYY?@@@@@r2   NrV   rP   r2   r0   rX   rX   I   s(        A A A A Ar2   rX   c                       e Zd Zd ZdS )TestHadamardc                 b   t          d          }t          |dgg           t          dt                    }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'   dtyper4         r*   r&   r&   r&   r&   )r&   r&   ra   )r&   r&   ra   ra   )r&   ra   ra   r&   r   r+   )r   r	   floatassert_raises
ValueErrorr-   s     r0   r1   zTestHadamard.test_basicQ   s    QKK1se$$$Qe$$$1SzC;7888QKK1|||-~~-~~-~~/ 	0 	0 	0
 	j(A...j(A.....r2   NrV   rP   r2   r0   r[   r[   O   s#        / / / / /r2   r[   c                       e Zd Zd Zd ZdS )
TestLesliec                     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'   rU   )rc   rd   r   r.   s    r0   test_bad_shapeszTestLeslie.test_bad_shapese   s_    j&Aq6Aq6*:IIIFFFj&1a&1a&999j&1#r22222r2   c                 ~    t          g dddg          }t          g dg dg dg          }t          ||           d S )Nr%         ?      ?r4          @r5   )rk           ro   )ro   rl   ro   )r   r   r	   )r.   aexpecteds      r0   r1   zTestLeslie.test_basicj   s[    999tSk**///***)//+ , , 	1h'''''r2   NrM   rN   rO   ri   r1   rP   r2   r0   rf   rf   c   s2        3 3 3
( ( ( ( (r2   rf   c                       e Zd Zd Zd ZdS )TestCompanionc                     t          t          t          g d           t          t          t          dg           t          t          t          g            d S )N)r   r*   r+   r&   )rc   rd   r   rh   s    r0   ri   zTestCompanion.test_bad_shapest   sD    j)YYY777j)aS111j)R00000r2   c                 Z   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      r4   ro   )rn         @g      $      rx   rm   )g      @rx   g      @g            )r   r   r	   )r.   rD   rq   s      r0   r1   zTestCompanion.test_basicy   s    iii  4L#J   	1h''''''((3K#J   	1h'''&( ) )U^U^U^U^
   	1h'''''r2   Nrr   rP   r2   r0   rt   rt   r   s2        1 1 1
( ( ( ( (r2   rt   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestBlockDiagc           
          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+   r~   r   r   r   )r   r   r   r   r&   r'   r(   )r   r   r	   r.   r8   s     r0   r1   zTestBlockDiag.test_basic   s    s1vvAAA7)))EE14444444444444444446 	7 	7 	7 	7 	7r2   c                     t          dgg          }t          |j        t                     t          dgg          }t          |j        t                     d S )Ng      ?T)r   r   r^   rb   boolr   s     r0   
test_dtypezTestBlockDiag.test_dtype   sN    wQWe$$$x  QWd#####r2   c                     t          dggdgg          }t          j        ddgddgg          }t          ||           d S )Nr&                 ?r   )r   npr   r	   )r.   actualdesireds      r0   test_mixed_dtypeszTestBlockDiag.test_mixed_dtypes   sK    aSERD6**(QFQG,--67+++++r2   c                     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*   rT   )r   r   r*   )r   r   shaper	   r.   rp   s     r0   test_scalar_and_1d_argsz%TestBlockDiag.test_scalar_and_1d_args   si    qMMQWf%%%1se$$$1vq!!1yyy)))455555r2   c                 B    t          t          t          dggg           d S )Nr&   )rc   rd   r   rh   s    r0   test_bad_argzTestBlockDiag.test_bad_arg   s     j*ug66666r2   c                 v    t                      }t          |j        d           t          |j        d           d S )Nr'   r   )r   r   ndimnbytesr   s     r0   test_no_argszTestBlockDiag.test_no_args   s5    LLQVQQXq!!!!!r2   c           
          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+   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   s     r0   test_empty_matrix_argz#TestBlockDiag.test_empty_matrix_arg   s     AA'AAA/1 1 	1|||+||+||+||+||+||- 	. 	. 	. 	. 	.r2   c           
          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	
                    }t          |g dg dg dg dg dg dg           d S )Nr&   r   r'   r(   r*   r+   r~   r   int32r]   )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   zerosr	   r   s     r0   test_zerosized_matrix_argz'TestBlockDiag.test_zerosized_matrix_arg   s     AA'tAAA/xAg6668 8 	11111111111111111113 	4 	4 	4 	4 	4r2   N)rM   rN   rO   r1   r   r   r   r   r   r   r   rP   r2   r0   r|   r|      s        7 7 7$ $ $, , ,
6 6 67 7 7" " "
. . .4 4 4 4 4r2   r|   c                       e Zd Zej        j        d             Zej                            d          d             Zej                            d          d             Z	dS )TestKronc                     t          j        d          5  t          t          j        ddgddgg          t          j        g dg                     d d d            d S # 1 swxY w Y   d S )Nz`kron`matchr&   r'   r(   r*   r&   r&   r&   )pytestdeprecated_callr   r   r   rh   s    r0   test_depzTestKron.test_dep   s    #(333 	B 	BAq61a&/**28YYYK+@+@AAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   >A!!A%(A%zignore::DeprecationWarningc                 x   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*   r=      r>         (   !   ,   )r   r   r	   )r.   rp   m1m2rq   s        r0   r1   zTestKron.test_basic   s     AA'((%*<*<==1e%7%7%7%7%7%7%9 : : 	; 	; 	; QFQF#$$RD2$<  RLL2r(r(r(r($ % % 	1h'''''r2   c                     t          j        d          }t          j        d          }t          ||          }t          |t          j        d                     d S )N)r   r'   )r&   r(   )r   r~   )r   emptyr   r   )r.   r   r   rp   s       r0   
test_emptyzTestKron.test_empty   sM    XfXfRLL28F++,,,,,r2   N)
rM   rN   rO   r   markthread_unsafer   filterwarningsr1   r   rP   r2   r0   r   r      s        [B B B [ <==( ( >=( [ <==- - >=- - -r2   r   c                       e Zd Zd Zd ZdS )TestHelmertc                    t          dd          D ]{}t          |d          }t          j        |          }t	          |                    |j                  |d           t	          |j                            |          |d           |d S )Nr&   r   Tfull-q=atol)ranger   r   r   r   dotT)r.   nHIds       r0   test_orthogonalityzTestHelmert.test_orthogonality   s    q! 	8 	8A%%%ABAEE!#JJ7777ACGGAJJ77777		8 	8r2   c           	         t          dd          D ]}t          |d          }t          |          }|dd d d f         j        |j        fD ]}t          j        |          t          j        ||fd|z            z
  }t          |                    |j                  |           t          |j                            |          t          j        |dz
            d           d S )Nr'   r   Tr   r&   r   r   )r   r   r   r   r   r   r   r   )r.   r   H_full	H_partialUCs         r0   test_subspacezTestHelmert.test_subspace   s    q! 	E 	EAQT***F

IABBE]_ik1 E EF1IIAA 6 66ac

A...

BF1Q3KKeDDDDDE	E 	Er2   N)rM   rN   rO   r   r   rP   r2   r0   r   r      s7        8 8 8E E E E Er2   r   c                       e Zd Zd ZdS )TestHilbertc                     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)r4   rl   UUUUUU?)rl   r   rk   )r   rk   g?r(   r&   r4   r   )r   r   )r   r
   r   r	   r   r   )r.   h3h0s      r0   r1   zTestHilbert.test_basic  s    %%%&&&&&&( ) ) 	"'!**b11171::w///QZZRXv&&&&&r2   NrV   rP   r2   r0   r   r     s#        	' 	' 	' 	' 	'r2   r   c                       e Zd Zd Zd ZdS )TestInvHilbertc                 |   t          dgg          }t          t          dd          |           t          t          d          |           t          ddgddgg          }t          t          dd          |           t          t          d          |           t          g dg d	g d
g          }t          t          dd          |           t          t          d          |           t          g dg dg dg dg          }t          t          dd          |           t          t          d          |           t          g dg dg dg dg dg          }t          t          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          |           t	          t          d'          |                    t                    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\     Db`Hh    Pz6  }%     l&W c(     hx 4z     d~I
 8wl8Z     @u8! `6a)r   r   l   @iLU  RK   8H,!`g`36    g0  *?*^B    ;t$ }|   @bsk C{'"i   `>9&%mq>   3CM@; 86`T    Pm;,
 )r   r   r  l    pM6= 0	     nC  YJVr     <_ L^V    R8 uxb    eH  EIBQx    HvYP 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_DdYI  B _,    qk)r   r   r  r  r&  l    O9x&Y)lx     pd gsxmU     D0FZD K|y#l_y     xbr &V%     lny?Cce @M=p-     @@|%6 h\bC )r   r   r  r  r'  r2  l   @/.L  BAyks'9    | 
LjY   iYn\"% #5Ey    X(@T'3?   @,3 Hx+/S    pO3^#
 )r   r  r  r  r(  r3  r=  l    @+aF}cJ{
;_    P8Xy8Qo& BIhN    `@
oc#dLq,O    pFYRa Ii9M     R/$L@<8zG 0 )r   r  r  r  r)  r4  r>  rG  l   $9@t)4   07$$Tv0 l7>?   "`-:M= (^@b)   6a;:BMb-Kx?|#   Z$M~ll )r   r  r  r  r*  r5  r?  rH  rP  l    l>cTA@8HV-:v    h{d*U zaC<C     dYwMf RyUC#h.    @)]oz+%)r   r  r  r  r+  r6  r@  rI  rQ  rX  l   @e4jT  GU
    `i
t,@  Y,ch8    E@3I3T X=&@E   ~Si)r   r  r  r   r,  r7  rA  rJ  rR  rY  r_  l    p}v `Xfz~A`si     86Jpsbv  $JY'ip     tk(0u1@<f)r   r  r  r!  r-  r8  rB  rK  rS  rZ  r`  re  l   w2T.g]  %\n     PYHul ZR@
R   LwJ)r   r  r  r"  r.  r9  rC  rL  rT  r[  ra  rf  rj  l    L#(S.,# 2F=EgJ    @}l`L\k)r   r  r  r#  r/  r:  rD  rM  rU  r\  rb  rg  rk  rn  l   @i7Qt0" 8B3\f	   p1&S,)r   r	  r  r$  r0  r;  rE  rN  rV  r]  rc  rh  rl  ro  rq  l     @Y? }xl]R )r   r
  r  r%  r1  r<  rF  rO  rW  r^  rd  ri  rm  rp  rr  rs  l   /"}+
    r   )rtol)r   r	   r   r
   r   astyperb   )r.   invh1invh2invh3invh4invh5invh17s          r0   r1   zTestInvHilbert.test_basic  sA   se:at444e<<<:a==%0002wBx! " ":at444e<<<!*Q--777|||'''&( ) ) 	:at444e<<<!*Q--777,,,0000000002 3 3 	:at444e<<<!*Q--777333:::<<<>>>:::	< = =
 	:at444e<<<!*Q--7777 7 7- - -
D D D
! ! !7 7 79 9 9# # #$ $ $$ $ $% % %= = =& & &> > >= = == = =; ; ;: : :ey
 y yt 	:b555v>>>
2e(<(<5IIIIIIr2   c                     t          dd          D ]h}t          |          }t          |          }t          |          }t	          |                    |          t          |          d|z  d|z             id S )Nr&   r=   gV瞯<)r   ru  )r   r   r   r!   r   r   r   )r.   r   rp   brD   s        r0   test_inversezTestInvHilbert.test_inverse  s|    q" 	J 	JA

A1A QAAEE!HHc!ff57qIIIII	J 	Jr2   N)rM   rN   rO   r1   r  rP   r2   r0   r   r     s>        ZJ ZJ ZJxJ J J J Jr2   r   c                   N   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 Zd Zd Zd ZdS )
TestPascalr&   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   )r&   r(   r(   r&   c                    t          t          |          |           t          t          |d          |           t          t          |d          |j                   t          t          |d          |           t          t          |dd          |           t          t          |dd          |j                   d S )Nlower)kindupperFr   )r   r  )r	   r   r   r
   r.   r   symlows       r0   
check_casezTestPascal.check_case  s    6!99c***6!'222C8886!'222CE:::!&%"8"8"8#>>>!&%g"F"F"FLLL!&%g"F"F"FNNNNNr2   c                 P    | j         D ]\  }}}|                     |||           d S N)casesr  r  s       r0   
test_caseszTestPascal.test_cases  s<    : 	) 	)KAsCOOAsC((((	) 	)r2   c                 `    t          d          }|d         t          ddd          k    sJ d S )N2   )ra   ra   b   1   Tr   )r   r   r.   ps     r0   test_bigzTestPascal.test_big  s7    2JJyDRt444444444r2   c                 <   t          d          }t          d|                    dd          z  |                    dd          d           t          d          }t          d|                    dd          z  d	|                    dd          z  d
           d S )N"   r'   ra   zn = 34err_msg#   rn   r4   zn = 35)r   r   itemr  s     r0   test_thresholdzTestPascal.test_threshold  s    
 2JJQqvvb"~~%qvvb"~~xHHHH2JJRr2&166"b>>(98LLLLLLr2   N)	rM   rN   rO   r   r  r  r  r  r  rP   r2   r0   r  r    s        
EEA3%LL%%!,,'	
EEAq6q6  EAq6q6  	 
EE9999999   E9999999  	  
EE<<<<< ==!>># $ $ E<<<<<<<<<! " "		#E,O O O) ) )5 5 5M M M M Mr2   r  c                      d } g d}g d}|D ]}|D ]}dD ]} | |||           g d}|D ]}|D ]} | ||d           d S )Nc                 "   t          | ||          }t          | ||          }|                    t                                        |                    t                              }t          |t          |           d| ||fz             d S )N)r  r   zn=%d  kind=%r exact=%rr  )r   r   rv  objectr   r	   r   )r   r  r   ipr  es         r0   check_invpascalz'test_invpascal.<locals>.check_invpascal  s    qt511114u--- IIf!!!((6"2"2331c!ff.F/0$.>/? 	@ 	@ 	@ 	@ 	@ 	@r2   )	symmetricr  r  )r&   r'   r+      )TF)   r  r  r  TrP   )r  kindsnsr   r  r   s         r0   test_invpascalr    s    @ @ @ ,++E	B 0 0 	0 	0D& 0 04////0	0 
		B + + 	+ 	+DOAtT****	++ +r2   c                     t          d          } t          ddgddgg          }t          | |           t          dd          } t          | |dz             t          dd          } t          | |t          d          z             t          g d          }t          d	          } |                     |          }t          |          }t          ||           d S )
Nr'   r4   r_   r   )scalern   sqrtn)r   r&   r'   r(   r*   r+   r   r&      )r   r   r
   r   r   r   )mrq   r8   mxfxs        r0   test_dftr    s    AAsCj3+.//Ha***ASAa#...AWAa$s))!3444&&&''AAA	
qB	QBb"%%%%%r2   c            	      f   t          g           } t          | j        d           t          dg          } t          | t	          j        dgg                     t          t	          j        dd                    } t	          j        g dg dg dg d	g d
g dg          }t          | |           d S )Nr   g     ^@ro   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	   r   r   r   )fdess     r0   test_fiedlerr    s    AAq"(RD6**+++	!Q  A
(&&&&&&&&&&&&&&&&&&( ) )C q#r2   c                  `   t          g           } t          | j        d           t          dg          } t          | j        d           t          ddg          } t          | t	          j        dgg                     t          g d          } t          | t          g d                     t          t                    5  t          g d           d d d            n# 1 swxY w Y   t          g d          } t          t          |           t	          j        g d                     d S )	Nr   r4   rn   rw   )r   rn   r5   )r   r&   r'   )r4   g      0g     U@g      fg     @Z@)g      @rx   r5   r4   )r   r   r  r	   r   r   r
   r   rc   rd   r   )fcs    r0   test_fiedler_companionr  +  s_   	2		B!	B4	 	 B!	B8	$	$Br28cUG,,---	???	+	+Bb)OOO"<"<===	z	"	" % %)))$$$% % % % % % % % % % % % % % %	777	8	8Bgbkk h'7'7'788: : : : :s   C!!C%(C%c                   H   e Zd ZdZd Zd Zd Zd Zej	        
                    dddg          ej	        
                    d	g d
          ej	        
                    dg d
          ej	        
                    dg d          d                                                 ZdS )TestConvolutionMatrixzL
    Test convolution_matrix vs. numpy.convolve for various parameters.
    c                 n    t          j        dd|          }|r|dt          j        dd|          z  z   }|S )z/Make a complex or real test vector of length n.ry   g@r   rz   g@)r   linspace)r.   r   cpxr8   s       r0   create_vectorz#TestConvolutionMatrix.create_vector@  s?    Kc1%% 	1Br{4a0000Ar2   c                     t          j        t          d          5  t          g dd           d d d            d S # 1 swxY w Y   d S )Nzn must be a positive integerr   r%   r   r   r   rd   r    rh   s    r0   
test_bad_nz TestConvolutionMatrix.test_bad_nG  s    ]:-KLLL 	- 	-yyy!,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-   <A A c                     t          j        t          d          5  t          g d           d d d            d S # 1 swxY w Y   d S )Nzlen\(a\)r   r*   r  rh   s    r0   test_empty_first_argz*TestConvolutionMatrix.test_empty_first_argL  s    ]:[999 	& 	&r1%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   :>>c                     t          j        t          d          5  t          ddd           d d d            d S # 1 swxY w Y   d S )Nzmode.*must be one ofr   r   r*   zinvalid argument)moder  rh   s    r0   test_bad_modez#TestConvolutionMatrix.test_bad_modeQ  s    ]:-CDDD 	C 	Cvq/ABBBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cr  r  FTna)r&   r'   r   nvr  )Nr   validsamec                 &   |                      ||          }|                      ||          }|&t          j        ||          }t          ||          }n't          j        |||          }t          |||          }||z  }	t	          ||	           d S r  )r  r   convolver    r
   )
r.   r  r  r  r  rp   vy1Ay2s
             r0   test_against_numpy_convolvez1TestConvolutionMatrix.test_against_numpy_convolveV  s    
 r3''r3''<Q""B"1b))AAQ4((B"1b$//AU!"b)))))r2   N)rM   rN   rO   __doc__r  r  r  r  r   r   parametrizer  rP   r2   r0   r  r  ;  s           - - -
& & &
C C C
 [UUDM22[T999--[T999--[V%D%D%DEE
* 
* FE .- .- 32
* 
* 
*r2   r  r+   zf, argsrP   )r+   r  r   c                     t           j                            d          }d}d}|                    ||fz             } t          hv r@d}t	          j        t          |          5    |gR   d d d            n# 1 swxY w Y   d S   |gR  }t          j         fd|                    d|          D                       }|                    |j	        d d         |j	        dd          z             }t          ||           d S )	Nl   ! )r'   r(   r=   z:Beginning in SciPy 1.17, multidimensional input will be...r   c                 "    g | ]} |gR  S rP   rP   ).0rp   argsr  s     r0   
<listcomp>ztest_batch.<locals>.<listcomp>~  s'    <<<aaakDkkk<<<r2   ra   r  )r   randomdefault_rngr   r   warnsFutureWarningasarrayreshaper   r   )	r  r  rngbatch_shaper  r  messageresrefs	   ``       r0   
test_batchr  g  sW    )


0
0CK
A

;!%&&AXJN\-w777 	 	AaK$KKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
!A++++C
*<<<<<199R+;+;<<<
=
=C
++agcrclSYrss^3
4
4CCs   &
A<<B B )>r   numpyr   r   r   r   r   r   numpy.testingr   r	   r
   r   r   rc   	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#   rR   rX   r[   rf   rt   r|   r   r   r   r   r  r  r  r  r  r  r   r   	fail_slowr  r  rP   r2   r0   <module>r     s        0 0 0 0 0 0 0 0 0 0 0 0 0 0G G G G G G G G G G G G * * * * * *            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
      ,+ ,+ ,+ ,+ ,+ ,+ ,+ ,+^A A A A A A A AA A A A A A A A/ / / / / / / /(( ( ( ( ( ( ( (( ( ( ( ( ( ( (>A4 A4 A4 A4 A4 A4 A4 A4H- - - - - - - -<E E E E E E E E&' ' ' ' ' ' ' 'eJ eJ eJ eJ eJ eJ eJ eJP0M 0M 0M 0M 0M 0M 0M 0Mf+ + +:& & &   : : : )* )* )* )* )* )* )* )*X qi_&/_&8+%F&-r]&7%<&,yry||o%>&.1%@%' ( ( ( (    r2   