
    (pha                        S SK r S SKrS SKJrJrJrJrJr  S SKJ	r	J
r
JrJr  S SK Jr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%  S SK&J'r'   " S	 S
5      r( " S S5      r) " S S5      r* " S S5      r+ " S S5      r, " S S5      r- " S S5      r. " S S5      r/ " S S5      r0 " S S5      r1 " S S5      r2 " S S 5      r3S! r4S" r5S# r6S$ r7 " S% S&5      r8\ Rr                  Rt                  \ Rr                  Rw                  S'5      \ Rr                  Ry                  S(\S)4\S)4\%S*4\"S)4\#S)4\\R                  " S+5      44\\R                  " S+5      44/5      S, 5       5       5       r=g)-    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                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestToeplitz   c                     [        / SQ5      n[        U/ SQ/ SQ/ SQ/5        [        / SQ/ SQ5      n[        U/ SQ/ SQ/ SQ/5        g )N         )r(   r'   r(   r)   r(   r'   )r'         )r(   r'   r+   r   r	   selfys     [/var/www/html/venv/lib/python3.13/site-packages/scipy/linalg/tests/test_special_matrices.py
test_basicTestToeplitz.test_basic   s:    Y1y)Y?@Y	*1y)Y?@    c                     S[        S5      -   S-  n[        U5      n[        U5      n[        X!5        US S 2S4   n[        XA5        [        USSS 24   USS  R	                  5       5        g )N      ?      @y      ?      ?r   r'   )r   r   r   r	   conj)r/   dataxtcol0s        r1   test_complex_01TestToeplitz.test_complex_01   sd    fSk!j1JQK1#Aw4&1QU8T!"X]]_5r4   c                 j    [        S5      n[        US//5        [        SS5      n[        US//5        g)z*Scalar arguments still produce a 2D array.
      Nr-   )r/   r;   s     r1   test_scalar_00TestToeplitz.test_scalar_00%   s3    RL1tf%R1tf%r4   c                 Z    [        / SQ5      n[        US5      n[        US/S/S//5        g Nr&   r'   r(   r)   r   r   r	   r/   cr;   s      r1   test_scalar_01TestToeplitz.test_scalar_01,   s-    )QN1sQC!o.r4   c                 l    [        / SQ5      n[        U[        S5      5      n[        US/S/S//5        g rE   rF   rG   s      r1   test_scalar_02TestToeplitz.test_scalar_021   s2    )Qa!1sQC!o.r4   c                 n    [        / SQ5      n[        U[        S/5      5      n[        US/S/S//5        g rE   rF   rG   s      r1   test_scalar_03TestToeplitz.test_scalar_036   s4    )Qqc
#1sQC!o.r4   c                 T    [        / SQ5      n[        SU5      n[        U/ SQ/5        g )N)r@   r(   r)   r'   r&   rF   )r/   rr;   s      r1   test_scalar_04TestToeplitz.test_scalar_04;   s#    *QN1yk*r4    N)__name__
__module____qualname____firstlineno__r2   r=   rB   rI   rL   rO   rS   __static_attributes__rU   r4   r1   r#   r#      s&    A	6&/
/
/
+r4   r#   c                       \ rS rSrS rSrg)
TestHankelA   c                     [        / SQ5      n[        U/ SQ/ SQ/ SQ/5        [        / SQ/ SQ5      n[        U/ SQ/ SQ/ SQ/5        g )Nr&   r(   r)   r   )r)   r   r   r)   r+   r,   )r(   r)   r+   )r   r	   r.   s     r1   r2   TestHankel.test_basicB   s:    91y)Y?@9i(1y)Y?@r4   rU   NrV   rW   rX   rY   r2   rZ   rU   r4   r1   r\   r\   A   s    Ar4   r\   c                       \ rS rSrS rSrg)TestCirculantI   c                 H    [        / SQ5      n[        U/ SQ/ SQ/ SQ/5        g )Nr&   )r'   r)   r(   )r(   r'   r)   r*   )r   r	   r.   s     r1   r2   TestCirculant.test_basicJ   s    i 1y)Y?@r4   rU   Nrb   rU   r4   r1   rd   rd   I   s    Ar4   rd   c                       \ rS rSrS rSrg)TestHadamardO   c                    [        S5      n[        US//5        [        S[        S9n[        USS/SS//5        [        S5      n[        U/ SQ/ SQ/ S	Q/ S
Q/5        [        [        [         S5        [        [        [         S5        g )Nr'   r(   dtyper6         r+   r'   r'   r'   r'   )r'   r'   rp   )r'   r'   rp   rp   )r'   rp   rp   r'   r   r,   )r   r	   floatassert_raises
ValueErrorr.   s     r1   r2   TestHadamard.test_basicQ   sy    QK1se$Qe$1SzC;78QK1|---/ 	0
 	j(A.j(A.r4   rU   Nrb   rU   r4   r1   ri   ri   O   s    /r4   ri   c                        \ rS rSrS rS rSrg)
TestLesliec   c                     [        [        [        SS/SS/// SQ5        [        [        [        SS/SS/5        [        [        [        S// 5        g )Nr'   r(   r`   )rr   rs   r   r/   s    r1   test_bad_shapesTestLeslie.test_bad_shapese   sC    j&Aq6Aq6*:IFj&1a&1a&9j&1#r2r4   c                 b    [        / SQSS/5      n[        / SQ/ SQ/ SQ/5      n[        X5        g )Nr&         ?      ?r6          @r7   )r}           r   )r   r~   r   )r   r   r	   )r/   aexpecteds      r1   r2   TestLeslie.test_basicj   s3    9tSk*/*)+ , 	1'r4   rU   NrV   rW   rX   rY   rz   r2   rZ   rU   r4   r1   rv   rv   c   s    3
(r4   rv   c                        \ rS rSrS rS rSrg)TestCompanionr   c                     [        [        [        / SQ5        [        [        [        S/5        [        [        [        / 5        g )N)r   r+   r,   r'   )rr   rs   r   ry   s    r1   rz   TestCompanion.test_bad_shapest   s(    j)Y7j)aS1j)R0r4   c                 
   [        / SQ5      n[        SS/SS//5      n[        X5        [        / SQ5      n[        SS/SS//5      n[        X5        [        S	S
/5      n[        SS/SS/4SS/SS/4/5      n[        X5        g )Nr&          g      r6   r   )r         @g      $      r   r   )g      @r   g      @g            )r   r   r	   )r/   rH   r   s      r1   r2   TestCompanion.test_basicy   s    i 4L#J  	1''(3K#J  	1'&( )U^U^U^U^
  	1'r4   rU   Nr   rU   r4   r1   r   r   r   s    1
(r4   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestBlockDiag   c           
          [        [        S5      SS/SS/SS/// SQ/5      n[        U/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/5        g )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/   r:   s     r1   r2   TestBlockDiag.test_basic   sJ    s1vAAA7)E14444446 	7r4   c                     [        S//5      n[        UR                  [        5        [        S//5      n[        UR                  [        5        g )Ng      ?T)r   r   rm   rq   boolr   s     r1   
test_dtypeTestBlockDiag.test_dtype   s:    wQWWe$x QWWd#r4   c                 r    [        S//S//5      n[        R                  " SS/SS//5      n[        X5        g )Nr'                 ?r   )r   npr   r	   )r/   actualdesireds      r1   test_mixed_dtypesTestBlockDiag.test_mixed_dtypes   s9    aSERD6*((QFQG,-6+r4   c                     [        S5      n[        UR                  S5        [        US//5        [        SS/S5      n[        U/ SQ/ SQ/5        g )Nr'   r'   r'   r(   r)   r+   r_   )r   r   r+   )r   r   shaper	   r/   r   s     r1   test_scalar_and_1d_args%TestBlockDiag.test_scalar_and_1d_args   sF    qMQWWf%1se$1vq!1y)45r4   c                 4    [        [        [        S///5        g )Nr'   )rr   rs   r   ry   s    r1   test_bad_argTestBlockDiag.test_bad_arg   s    j*ug6r4   c                 p    [        5       n[        UR                  S5        [        UR                  S5        g )Nr(   r   )r   r   ndimnbytesr   s     r1   test_no_argsTestBlockDiag.test_no_args   s%    LQVVQQXXq!r4   c           
      x    [        SS/SS/// SS/SS/SS//5      n[        U/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/5        g )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     r1   test_empty_matrix_arg#TestBlockDiag.test_empty_matrix_arg   sX     AA'AAA/1 	1|+++++- 	.r4   c           
          [        SS/SS/// /SS/SS/SS//[        R                  " SS/S	S
95      n[        U/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5        g )Nr'   r   r(   r)   r+   r,   r   r   int32rl   )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     r1   test_zerosized_matrix_arg'TestBlockDiag.test_zerosized_matrix_arg   sm     AA'tAAA/xxAg68 	11111113 	4r4   rU   N)rV   rW   rX   rY   r2   r   r   r   r   r   r   r   rZ   rU   r4   r1   r   r      s*    7$,
67"
.4r4   r   c                       \ rS rSr\R
                  R                  S 5       r\R
                  R                  S5      S 5       r	\R
                  R                  S5      S 5       r
Srg)TestKron   c                     [         R                  " SS9   [        [        R                  " SS/SS//5      [        R                  " / SQ/5      5        S S S 5        g ! , (       d  f       g = f)Nz`kron`matchr'   r(   r)   r+   r'   r'   r'   )pytestdeprecated_callr   r   r   ry   s    r1   test_depTestKron.test_dep   sF    ##(3Aq61a&/*288YK+@A 433s   >A
A*zignore::DeprecationWarningc                 "   [        [        SS/SS//5      [        / SQ/5      5      n[        U[        / SQ/ SQ/5      5        [        SS/SS//5      n[        S/S	//5      n[        X#5      n[        SS
/S	S/SS/SS//5      n[        X5        g )Nr'   r(   r)   r+   r   )r'   r'   r'   r(   r(   r(   )r)   r)   r)   r+   r+   r+   r@      rA         (   !   ,   )r   r   r	   )r/   r   m1m2r   s        r1   r2   TestKron.test_basic   s     AA'(%*<=1e%7%7%9 : 	; QFQF#$RD2$< L2r(r(r(r($ % 	1'r4   c                     [         R                  " S5      n[         R                  " S5      n[        X5      n[        U[         R                  " S5      5        g )N)r   r(   )r'   r)   )r   r   )r   emptyr   r   )r/   r   r   r   s       r1   
test_emptyTestKron.test_empty   s:    XXfXXfL288F+,r4   rU   N)rV   rW   rX   rY   r   markthread_unsafer   filterwarningsr2   r   rZ   rU   r4   r1   r   r      sh    [[B B [[ <=( >( [[ <=- >-r4   r   c                        \ rS rSrS rS rSrg)TestHelmert   c                     [        SS5       Hk  n[        USS9n[        R                  " U5      n[	        UR                  UR                  5      USS9  [	        UR                  R                  U5      USS9  Mm     g )Nr'   r   Tfull-q=atol)ranger   r   r   r   dotT)r/   nHIds       r1   test_orthogonalityTestHelmert.test_orthogonality   s[    q!A%ABAEE!##J7ACCGGAJ7	 r4   c           	         [        SS5       H  n[        USS9n[        U5      nUSS 2S S 24   R                  UR                  4 H  n[        R                  " U5      [        R
                  " X4SU-  5      -
  n[        UR                  UR                  5      U5        [        UR                  R                  U5      [        R                  " US-
  5      SS9  M     M     g )Nr(   r   Tr   r'   r   r   )r   r   r   r   r   r   r   r   )r/   r   H_full	H_partialUCs         r1   test_subspaceTestHelmert.test_subspace   s    q!AQT*F
IABE]__ikk1FF1IA 66acc
A.
BFF1Q3KeD 2 r4   rU   N)rV   rW   rX   rY   r   r   rZ   rU   r4   r1   r   r      s    8Er4   r   c                       \ rS rSrS rSrg)TestHilberti  c                     [        / SQ/ SQ/ SQ/5      n[        [        S5      U5        [        [        S5      S//5        [        S5      n[	        UR
                  S5        g )	N)r6   r~   UUUUUU?)r~   r   r}   )r   r}   g?r)   r'   r6   r   )r   r   )r   r
   r   r	   r   r   )r/   h3h0s      r1   r2   TestHilbert.test_basic  sS    %&&( ) 	"'!*b171:w/QZRXXv&r4   rU   Nrb   rU   r4   r1   r   r     s    	'r4   r   c                        \ rS rSrS rS rSrg)TestInvHilberti  c                 V   [        S//5      n[        [        SSS9U5        [        [        S5      U5        [        SS/SS//5      n[        [        SSS9U5        [        [        S5      U5        [        / SQ/ S	Q/ S
Q/5      n[        [        SSS9U5        [        [        S5      U5        [        / SQ/ SQ/ SQ/ SQ/5      n[        [        SSS9U5        [        [        S5      U5        [        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[        [        SSS9U5        [        [        S5      U5        [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S Q/ S!Q/ S"Q/ S#Q/ S$Q/ S%Q/ S&Q/5      n[        [        S'SS9U5        [	        [        S'5      UR                  [        5      S(S)9  g )*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$  r2  l    pM6= 0	     nC  YJVr     <_ L^V    R8 uxb    eH  EIBQx    HvYP x(6$     7	 >u1)r  r%  r3  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&  r4  rA  rM  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'  r5  rB  rN  rY  l   @/.L  BAyks'9    | 
LjY   iYn\"% #5Ey    X(@T'3?   @,3 Hx+/S    pO3^#
 )r  r(  r6  rC  rO  rZ  rd  l    @+aF}cJ{
;_    P8Xy8Qo& BIhN    `@
oc#dLq,O    pFYRa Ii9M     R/$L@<8zG 0 )r  r)  r7  rD  rP  r[  re  rn  l   $9@t)4   07$$Tv0 l7>?   "`-:M= (^@b)   6a;:BMb-Kx?|#   Z$M~ll )r  r*  r8  rE  rQ  r\  rf  ro  rw  l    l>cTA@8HV-:v    h{d*U zaC<C     dYwMf RyUC#h.    @)]oz+%)r  r+  r9  rF  rR  r]  rg  rp  rx  r  l   @e4jT  GU
    `i
t,@  Y,ch8    E@3I3T X=&@E   ~Si)r  r,  r:  rG  rS  r^  rh  rq  ry  r  r  l    p}v `Xfz~A`si     86Jpsbv  $JY'ip     tk(0u1@<f)r  r-  r;  rH  rT  r_  ri  rr  rz  r  r  r  l   w2T.g]  %\n     PYHul ZR@
R   LwJ)r  r.  r<  rI  rU  r`  rj  rs  r{  r  r  r  r  l    L#(S.,# 2F=EgJ    @}l`L\k)r   r/  r=  rJ  rV  ra  rk  rt  r|  r  r  r  r  r  l   @i7Qt0" 8B3\f	   p1&S,)r!  r0  r>  rK  rW  rb  rl  ru  r}  r  r  r  r  r  r  l     @Y? }xl]R )r"  r1  r?  rL  rX  rc  rm  rv  r~  r  r  r  r  r  r  r  l   /"}+
    r   )rtol)r   r	   r   r
   r   astyperq   )r/   invh1invh2invh3invh4invh5invh17s          r1   r2   TestInvHilbert.test_basic  s   se:at4e<:a=%02wBx! ":at4e<!*Q-7|'&( ) 	:at4e<!*Q-7,0002 3 	:at4e<!*Q-73:<>:	< =
 	:at4e<!*Q-77-
D
!79#$$%=&>==;:ey
 yt 	:b5v>
2e(<5Ir4   c                     [        SS5       HN  n[        U5      n[        U5      n[        U5      n[	        UR                  U5      [        U5      SU-  SU-  S9  MP     g )Nr'   r@   gV瞯<)r   r  )r   r   r   r!   r   r   r   )r/   r   r   brH   s        r1   test_inverseTestInvHilbert.test_inverse  sQ    q"A
A1A QAAEE!Hc!f57qI r4   rU   N)rV   rW   rX   rY   r2   r  rZ   rU   r4   r1   r   r     s    ZJxJr4   r   c                   $   \ rS rSrS\" S//5      \" S//5      4S\" SS/SS//5      \" SS/SS//5      4S\" / SQ/ SQ/ SQ/5      \" / S	Q/ S
Q/ SQ/5      4S\" / SQ/ SQ/ SQ/ SQ/5      \" / SQ/ SQ/ SQ/ SQ/5      4/rS rS rS rS r	Sr
g)
TestPascali  r'   r(   r   r)   r   r&   )r'   r)   r   )r'   r   r   )r'   r'   r   )r'   r(   r'   r+   ro   )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                 "   [        [        U5      U5        [        [        USS9U5        [        [        USS9UR                  5        [        [        USS9U5        [        [        USSS9U5        [        [        USSS9UR                  5        g )Nlower)kindupperFr   )r   r  )r	   r   r   r
   r/   r   symlows       r1   
check_caseTestPascal.check_case  sq    6!9c*6!'2C86!'2CEE:!&%"8#>!&%g"FL!&%g"FNr4   c                 T    U R                    H  u  pnU R                  XU5        M     g N)casesr  r  s       r1   
test_casesTestPascal.test_cases  s"    ::KACOOAC( &r4   c                 B    [        S5      nUS   [        SSSS9:X  d   eg )N2   )rp   rp   b   1   Tr   )r   r   r/   ps     r1   test_bigTestPascal.test_big  s&    2JyDRt4444r4   c                     [        S5      n[        SUR                  SS5      -  UR                  SS5      SS9  [        S5      n[        SUR                  SS5      -  S	UR                  SS5      -  S
S9  g )N"   r(   rp   zn = 34err_msg#   r   r6   zn = 35)r   r   itemr  s     r1   test_thresholdTestPascal.test_threshold  se    
 2JQqvvb"~%qvvb"~xH2JRr2&166"b>(98Lr4   rU   N)rV   rW   rX   rY   r   r  r  r  r  r  rZ   rU   r4   r1   r  r    s     
EA3%L%!,'	
EAq6q6 Aq6q6 	 
E9  9 	  
E< !# $ <! "		#E,O)5Mr4   r  c                      S n / SQn/ SQnU H  nU H  nS H  nU " X4U5        M     M     M      / SQnU H  nU H  nU " X4S5        M     M     g )Nc                     [        XUS9n[        XUS9nUR                  [        5      R	                  UR                  [        5      5      n[        U[        U 5      SXU4-  S9  g )N)r  r   zn=%d  kind=%r exact=%rr  )r   r   r  objectr   r	   r   )r   r  r   ipr  es         r1   check_invpascal'test_invpascal.<locals>.check_invpascal  s_    q511u- IIf!!!((6"231c!f.F/0.>/? 	@r4   )	symmetricr  r  )r'   r(   r,   r$   )TF)   r  r  r  TrU   )r  kindsnsr   r  r   s         r1   test_invpascalr    sa    @ ,E	BD&/ '  
 
BDAT*  r4   c                  B   [        S5      n [        SS/SS//5      n[        X5        [        SSS9n [        XS-  5        [        SSS9n [        X[        S5      -  5        [        / SQ5      n[        S	5      n U R	                  U5      n[        U5      n[        X45        g )
Nr(   r6   rn   r   )scaler   sqrtn)r   r'   r(   r)   r+   r,   r   r'      )r   r   r
   r   r   r   )mr   r:   mxfxs        r1   test_dftr    s    AAsCj3+./Ha*ASAa#.AWAa$s)!34&'AAA	
qB	QBb%r4   c            	      H   [        / 5      n [        U R                  S5        [        S/5      n [        U [        R
                  " S//5      5        [        [        R                  " SS5      5      n [        R
                  " / SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/5      n[        X5        g )Nr   g     ^@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   sizer	   r   r   r   )fdess     r1   test_fiedlerr    s~    AAq"((RD6*+		!Q A
((&&&&&&( )C qr4   c                     [        / 5      n [        U R                  S5        [        S/5      n [        U R                  S5        [        SS/5      n [        U [        R
                  " S//5      5        [        / SQ5      n [        U [        / SQ5      5        [        [        5         [        / SQ5        S S S 5        [        / SQ5      n [        [        U 5      [        R
                  " / SQ5      5        g ! , (       d  f       NG= f)	Nr   r6   r   r   )r   r   r7   )r   r'   r(   )r6   g      0g     U@g      fg     @Z@)g      @r   r7   r6   )r   r   r  r	   r   r   r
   r   rr   rs   r   )fcs    r1   test_fiedler_companionr  +  s    	2	B!	B4	 B!	B8	$Br288cUG,-	?	+Bb)O"<=	z	")$ 
#	7	8Bgbk hh'78: 
#	"s   &C55
Dc                   >   \ rS rSrSrS rS rS rS r\	R                  R                  SSS	/5      \	R                  R                  S
/ SQ5      \	R                  R                  S/ SQ5      \	R                  R                  S/ SQ5      S 5       5       5       5       rSrg)TestConvolutionMatrixi;  zD
Test convolution_matrix vs. numpy.convolve for various parameters.
c                     [         R                  " SSU5      nU(       a  US[         R                  " SSU5      -  -   nU$ )z/Make a complex or real test vector of length n.r   g@r   r   g@)r   linspace)r/   r   cpxr:   s       r1   create_vector#TestConvolutionMatrix.create_vector@  s8    KKc1%Br{{4a000Ar4   c                     [         R                  " [        SS9   [        / SQS5        S S S 5        g ! , (       d  f       g = f)Nzn must be a positive integerr   r&   r   r   r   rs   r    ry   s    r1   
test_bad_n TestConvolutionMatrix.test_bad_nG  s(    ]]:-KLy!, MLLs	   2
A c                     [         R                  " [        SS9   [        / S5        S S S 5        g ! , (       d  f       g = f)Nzlen\(a\)r   r+   r  ry   s    r1   test_empty_first_arg*TestConvolutionMatrix.test_empty_first_argL  s&    ]]:[9r1% :99s   0
>c                     [         R                  " [        SS9   [        SSSS9  S S S 5        g ! , (       d  f       g = f)Nzmode.*must be one ofr   r   r+   zinvalid argument)moder  ry   s    r1   test_bad_mode#TestConvolutionMatrix.test_bad_modeQ  s+    ]]:-CDvq/AB EDDs   /
=r  FTna)r'   r(   r   nvr  )Nr   validsamec                     U R                  X!5      nU R                  X15      nUc"  [        R                  " Xe5      n[        XS5      nO#[        R                  " XeU5      n[        XSU5      nX-  n	[	        Xy5        g r  )r  r   convolver    r
   )
r/   r  r  r  r  r   vy1Ay2s
             r1   test_against_numpy_convolve1TestConvolutionMatrix.test_against_numpy_convolveV  sl    
 r'r'<Q"B"1)AQ4(B"1$/AU!")r4   rU   N)rV   rW   rX   rY   __doc__r  r  r  r  r   r   parametrizer  rZ   rU   r4   r1   r  r  ;  s    -
&
C
 [[UUDM2[[T9-[[T9-[[V%DE
* F . . 3
*r4   r  r,   zf, argsrU   )r,   r  r   c           	         [         R                  R                  S5      nSnSnUR                  X44-   5      nU [        1;   a.  Sn[        R
                  " [        US9   U " U/UQ76   S S S 5        g U " U/UQ76 n[         R                  " UR                  SU5       Vs/ s H  o" U/UQ76 PM     sn5      n	U	R                  UR                  S S U	R                  SS  -   5      n	[        Xy5        g ! , (       d  f       g = fs  snf )Nl   ! )r(   r)   r@   z:Beginning in SciPy 1.17, multidimensional input will be...r   rp   r  )r   randomdefault_rngr   r   warnsFutureWarningasarrayreshaper   r   )
r  argsrngbatch_shaper  r   messageresr   refs
             r1   
test_batchr  g  s     ))


0CK
A

;%&AXJN\\-w7aK$K 8
A++C
**199R+;<+;aakDk+;<
=C
++aggcrlSYYrs^3
4CC 87 =s   
C1D1
C?)>r   numpyr   r   r   r   r   r   numpy.testingr   r	   r
   r   r   rr   	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#   r\   rd   ri   rv   r   r   r   r   r   r   r  r  r  r  r  r  r   r   	fail_slowr  r  rU   r4   r1   <module>r     s     0 0G G *  . . . . .
 ,+ ,+^A AA A/ /(( (( (>A4 A4H- -<E E&' 'eJ eJP0M 0Mf+:& : )* )*X qi_&/_&8+%F&-r]&7%<&,ryy|o%>&.1%@%' ((  r4   