
    Pia                        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$ d dl%m&Z& d d	l'm(Z(m)Z)m*Z*m+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 e(e           G d d                      Z2 G d d          Z3 G d d          Z4 G d d          Z5 G d d          Z6d  Z7d! Z8 e(e!          d"             Z9d# Z: G d$ d%          Z;e j<        =                    d&          e j<        >                    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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
block_diaghelmerthilbert
invhilbertpascal	invpascalfiedlerfiedler_companioneigvalsconvolution_matrix)cond)make_xp_test_casexp_assert_equalxp_sizexp_default_dtypec                   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     |/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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)r1   dataxtcol0s        r3   test_complex_01zTestToeplitz.test_complex_01   s    fSkk!j1JJQKK1d###Aw4&&&1QU8T!""X]]__55555r5   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/   )r1   r<   s     r3   test_scalar_00zTestToeplitz.test_scalar_00'   sJ    RLL1tf%%%R1tf%%%%%r5   c                 t    t          g d          }t          |d          }t          |dgdgdgg           d S Nr(   r)   r*   r+   r   r   r	   r1   cr<   s      r3   test_scalar_01zTestToeplitz.test_scalar_01.   sB    )))QNN1sQC!o.....r5   c                     t          g d          }t          |t          d                    }t          |dgdgdgg           d S rD   rE   rF   s      r3   test_scalar_02zTestToeplitz.test_scalar_023   sJ    )))Qa!!1sQC!o.....r5   c                     t          g d          }t          |t          dg                    }t          |dgdgdgg           d S rD   rE   rF   s      r3   test_scalar_03zTestToeplitz.test_scalar_038   sL    )))Qqc

##1sQC!o.....r5   c                 n    t          g d          }t          d|          }t          |g dg           d S )N)r@   r*   r+   r)   r(   rE   )r1   rr<   s      r3   test_scalar_04zTestToeplitz.test_scalar_04=   s<    ***QNN1yyyk*****r5   N)
__name__
__module____qualname__r4   r>   rB   rH   rJ   rL   rO    r5   r3   r&   r&      s        A A A	6 	6 	6& & &/ / /
/ / /
/ / /
+ + + + +r5   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	   r0   s     r3   r4   zTestHankel.test_basicD   sv    9991yyy)))YYY?@@@999iii((1yyy)))YYY?@@@@@r5   NrP   rQ   rR   r4   rS   r5   r3   rU   rU   C   s(        A A A A Ar5   rU   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	   r0   s     r3   r4   zTestCirculant.test_basicL   s<    iii  1yyy)))YYY?@@@@@r5   NrY   rS   r5   r3   r[   r[   K   s(        A A A A Ar5   r[   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*   dtyper7         r-   r)   r)   r)   r)   )r)   r)   rd   )r)   r)   rd   rd   )r)   rd   rd   r)   r   r.   )r   r	   floatassert_raises
ValueErrorr0   s     r3   r4   zTestHadamard.test_basicS   s    QKK1se$$$Qe$$$1SzC;7888QKK1|||-~~-~~-~~/ 	0 	0 	0
 	j(A...j(A.....r5   NrY   rS   r5   r3   r^   r^   Q   s#        / / / / /r5   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*   rX   )rf   rg   r   r1   s    r3   test_bad_shapeszTestLeslie.test_bad_shapesg   s_    j&Aq6Aq6*:IIIFFFj&1a&1a&999j&1#r22222r5   c                 ~    t          g dddg          }t          g dg dg dg          }t          ||           d S )Nr(         ?      ?r7          @r8   )rn           rr   )rr   ro   rr   )r   r   r	   )r1   aexpecteds      r3   r4   zTestLeslie.test_basicl   s[    999tSk**///***)//+ , , 	1h'''''r5   NrP   rQ   rR   rl   r4   rS   r5   r3   ri   ri   e   s2        3 3 3
( ( ( ( (r5   ri   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)   )rf   rg   r   rk   s    r3   rl   zTestCompanion.test_bad_shapesv   sD    j)YYY777j)aS111j)R00000r5   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      r7   rr   )rq         @g      $      r{   rp   )g      @r{   g      @g            )r   r   r	   )r1   rG   rt   s      r3   r4   zTestCompanion.test_basic{   s    iii  4L#J   	1h''''''((3K#J   	1h'''&( ) )U^U^U^U^
   	1h'''''r5   Nru   rS   r5   r3   rw   rw   t   s2        1 1 1
( ( ( ( (r5   rw   c                   |    e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            dd	          d
             ZdS )TestBlockDiagc                 T   |                     d          j        }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+   )asarrayra   r   r   r"   )r1   xpra   r;   s       r3   r4   zTestBlockDiag.test_basic   s    

1#rvvauv--rzzAq6Aq6Aq6:R/S/Szz999+..0 02::'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'<'> ? ? 	@ 	@ 	@ 	@ 	@r5   c                     t          |                    dgg                    }|j        t          |          k    sJ t          |                    dgg                    }|j        |j        k    sJ d S )Ng      ?T)r   r   ra   r$   bool)r1   r   r;   s      r3   
test_dtypezTestBlockDiag.test_dtype   ss    rzzC5'**++w*2......rzzD6(++,,w"'!!!!!!r5   c                     t          |                    dgg          |                    dgg                    }|                    ddgddgg          }t          ||           d S )Nr7                 ?r)   r   )r   r   r"   )r1   r   actualdesireds       r3   test_mixed_dtypeszTestBlockDiag.test_mixed_dtypes   se    BJJv..

RD60B0BCC**q!fq"g.//(((((r5   c                 p   t          |                    d                    }|j        dk    sJ t          ||                    dgg                     t          |                    ddg          |                    d                    }t          ||                    g dg dg                     d S )Nr)   r)   r)   r*   r+   r-   rW   )r   r   r-   )r   r   shaper"   )r1   r   rs   s      r3   test_scalar_and_1d_argsz%TestBlockDiag.test_scalar_and_1d_args   s    rzz!}}%%w&    2::se,,---rzz1a&))2::a==992::yyy)))&<==>>>>>r5   c                 V    t                      }|j        dk    sJ |j        dk    sJ d S )Nr*   r   )r   ndimnbytes)r1   rs   s     r3   test_no_argszTestBlockDiag.test_no_args   s-    LLv{{{{x1}}}}}}r5   c                 Z   |                     d          j        }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   ra   r   r"   r1   r   ra   rs   s       r3   test_empty_matrix_argz#TestBlockDiag.test_empty_matrix_arg   s     

1#rzzAq6Aq6"233zz"Ez22zzAq6Aq6Aq6":;;= = 	2::|||'3||'3||'3||'3||'3||'5 6 6 	7 	7 	7 	7 	7r5   z
dask.arrayzdask/dask#11800)reasonc                    |                     d          j        }t          |                     ddgddgg          |                     g g|          |                     ddgddgdd	gg          |                    d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   ra   r   zerosr"   r   s       r3   test_zerosized_matrix_argz'TestBlockDiag.test_zerosized_matrix_arg   s    
 

1#rzzAq6Aq6"233zz2$ez44zzAq6Aq6Aq6":;;xxAex446 6 	2::'9'9'9'9'9'9'9'9'9'9'9'9'9'9'9'9'9'9'; < < 	= 	= 	= 	= 	=r5   N)rP   rQ   rR   r4   r   r   r   r   r   pytestmarkskip_xp_backendsr   rS   r5   r3   r   r      s        	@ 	@ 	@" " ") ) )
? ? ?  
7 7 7 [!!,7H!II= = JI= = =r5   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   npr   r   dotT)r1   nHIds       r3   test_orthogonalityzTestHelmert.test_orthogonality   s    q! 	8 	8A%%%ABAEE!#JJ7777ACGGAJJ77777		8 	8r5   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   )r1   r   H_full	H_partialUCs         r3   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r5   N)rP   rQ   rR   r   r   rS   r5   r3   r   r      s7        8 8 8E E E E Er5   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)r7   ro   UUUUUU?)ro   r   rn   )r   rn   g?r+   r)   r7   r   )r   r   )r   r
   r   r	   r   r   )r1   h3h0s      r3   r4   zTestHilbert.test_basic   s    %%%&&&&&&( ) ) 	"'!**b11171::w///QZZRXv&&&&&r5   NrY   rS   r5   r3   r   r      s#        	' 	' 	' 	' 	'r5   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      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  r   l   @/.L  BAyks'9    | 
LjY   iYn\"% #5Ey    X(@T'3?   @,3 Hx+/S    pO3^#
 )r   r   r   r
  r  r!  r+  l    @+aF}cJ{
;_    P8Xy8Qo& BIhN    `@
oc#dLq,O    pFYRa Ii9M     R/$L@<8zG 0 )r   r   r   r  r  r"  r,  r5  l   $9@t)4   07$$Tv0 l7>?   "`-:M= (^@b)   6a;:BMb-Kx?|#   Z$M~ll )r   r   r   r  r  r#  r-  r6  r>  l    l>cTA@8HV-:v    h{d*U zaC<C     dYwMf RyUC#h.    @)]oz+%)r   r   r   r  r  r$  r.  r7  r?  rF  l   @e4jT  GU
    `i
t,@  Y,ch8    E@3I3T X=&@E   ~Si)r   r   r  r  r  r%  r/  r8  r@  rG  rM  l    p}v `Xfz~A`si     86Jpsbv  $JY'ip     tk(0u1@<f)r   r   r  r  r  r&  r0  r9  rA  rH  rN  rS  l   w2T.g]  %\n     PYHul ZR@
R   LwJ)r   r   r  r  r  r'  r1  r:  rB  rI  rO  rT  rX  l    L#(S.,# 2F=EgJ    @}l`L\k)r   r   r  r  r  r(  r2  r;  rC  rJ  rP  rU  rY  r\  l   @i7Qt0" 8B3\f	   p1&S,)r   r   r  r  r  r)  r3  r<  rD  rK  rQ  rV  rZ  r]  r_  l     @Y? }xl]R )r   r   r  r  r  r*  r4  r=  rE  rL  rR  rW  r[  r^  r`  ra  l   /"}+
    r   )rtol)r   r	   r   r
   r   astypere   )r1   invh1invh2invh3invh4invh5invh17s          r3   r4   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Ir5   c                     t          dd          D ]h}t          |          }t          |          }t          |          }t	          |                    |          t          |          d|z  d|z             id S )Nr)   r@   gV瞯<)r   rc  )r   r   r   r    r   r   r   )r1   r   rs   brG   s        r3   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r5   N)rP   rQ   rR   r4   rm  rS   r5   r3   r   r      s>        ZJ ZJ ZJxJ J J J Jr5   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-   rc   )r)   r*   r+   r-   )r)   r+   r   r@   )r)   r-   r@   rA   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   rr  )r	   r   r   r
   r1   r   symlows       r3   
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Nr5   c                 P    | j         D ]\  }}}|                     |||           d S N)casesrw  rt  s       r3   
test_caseszTestPascal.test_cases  s<    : 	) 	)KAsCOOAsC((((	) 	)r5   c                 `    t          d          }|d         t          ddd          k    sJ d S )N2   )rd   rd   b   1   Tr   )r   r   r1   ps     r3   test_bigzTestPascal.test_big  s7    2JJyDRt444444444r5   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*   rd   zn = 34err_msg#   rq   r7   zn = 35)r   r   itemr  s     r3   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Lr5   N)	rP   rQ   rR   r   rz  rw  r{  r  r  rS   r5   r3   ro  ro    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r5   ro  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|  d|d|           d S )N)rr  r   zn=z  kind=z exact=r  )r   r   rd  objectr   r	   r   )r   rr  r   ipr  es         r3   check_invpascalz'test_invpascal.<locals>.check_invpascal  s    qt511114u--- IIf!!!((6"2"2331c!ff.U1.U.UT.U.UE.U.UVVVVVVr5   )	symmetricrq  rs  )r)   r*   r.      )TF)   r  r  r}  TrS   )r  kindsnsr   rr  r   s         r3   test_invpascalr    s    
W 
W 
W ,++E	B 0 0 	0 	0D& 0 04////0	0 
		B + + 	+ 	+DOAtT****	++ +r5   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*   r7   rb   r   )scalerq   sqrtn)r   r)   r*   r+   r-   r.   r   r)      )r   r   r
   r   r   r   )mrt   r;   mxfxs        r3   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"%%%%%r5   c           	         t          |                     g                     }t          |          dk    sJ t          |                     dg                    }t          ||                     dgg                     t          |                     dd                    }|                     g dg dg dg d	g d
g dg          }t          ||           d S )Nr   g     ^@rr   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   fdess      r3   test_fiedlerr    s    

2A1::????

D6""##AArzzB4&))***		!Q  A
**((((((((((((((((((* + +C Asr5   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   r7   rq   rz   )r   rq   r8   )r   r)   r*   )r7   g      0g     U@g      fg     @Z@)g      @r{   r8   r7   )r   r   sizer	   r   r   r
   r   rf   rg   r   )fcs    r3   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.r|   g@r   r}   g@)r   linspace)r1   r   cpxr;   s       r3   create_vectorz#TestConvolutionMatrix.create_vector)  s?    Kc1%% 	1Br{4a0000Ar5   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 integermatchr(   r   r   r   rg   r   rk   s    r3   
test_bad_nz TestConvolutionMatrix.test_bad_n0  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  rk   s    r3   test_empty_first_argz*TestConvolutionMatrix.test_empty_first_arg5  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  rk   s    r3   test_bad_modez#TestConvolutionMatrix.test_bad_mode:  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 ry  )r  r   convolver   r
   )
r1   r  r  r  r  rs   vy1Ay2s
             r3   test_against_numpy_convolvez1TestConvolutionMatrix.test_against_numpy_convolve?  s    
 r3''r3''<Q""B"1b))AAQ4((B"1b$//AU!"b)))))r5   N)rP   rQ   rR   __doc__r  r  r  r  r   r   parametrizer  rS   r5   r3   r  r  $  s           - - -
& & &
C C C
 [UUDM22[T999--[T999--[V%D%D%DEE
* 
* FE .- .- 32
* 
* 
*r5   r  r.   zf, argsrS   )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.19, multidimensional input will be...r  c                 "    g | ]} |gR  S rS   rS   ).0rs   argsr  s     r3   
<listcomp>ztest_batch.<locals>.<listcomp>g  s'    <<<aaakDkkk<<<r5   rd   r  )r   randomdefault_rngr   r   warnsFutureWarningr   reshaper   r   )	r  r  rngbatch_shaper  r  messageresrefs	   ``       r3   
test_batchr  P  sW    )


0
0CK
A

;!%&&AVH}}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   rf   	scipy.fftr   scipy.specialr   scipy.linalgr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   numpy.linalgr    scipy._lib._array_apir!   r"   r#   r$   r&   rU   r[   r^   ri   rw   r   r   r   r   ro  r  r  r  r  r  r   	fail_slowr  r  rS   r5   r3   <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 * * * * * *            . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
      5 5 5 5 5 5 5 5 5 5 5 5,+ ,+ ,+ ,+ ,+ ,+ ,+ ,+^A A A A A A A AA A A A A A A A/ / / / / / / /(( ( ( ( ( ( ( (( ( ( ( ( ( ( (> :C= C= C= C= C= C= C= C=L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+ + +8& & &  7  ": : : )* )* )* )* )* )* )* )*X qi_&/_&8+%F&-r]&7%<&,yry||o%>&,yry||o%>&.1%@%' ( ( ( (   r5   