
    tKg"                         d dl Zd dl mZ d dlmZmZmZ d dlZd dlmZ d dl	m
c mZ d dlm
Z
  G d d      Zd Zd	 Zd
 Zd Zy)    N)array)assert_allcloseassert_array_equalassert_almost_equal)raises)signalc                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y	)
TestBSplinesa  Test behaviors of B-splines. Some of the values tested against were
    returned as of SciPy 1.1.0 and are included for regression testing
    purposes. Others (at integer points) are compared to theoretical
    expressions (cf. Unser, Aldroubi, Eden, IEEE TSP 1993, Table 1).c                    t         j                  j                  d       t        t        t
        j                  t        dg      d       t         j                  j                  d       t         j                  j                  dd      }ddd|z  z
  z  }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      }t        t        j                  |d      |       y )Ni0  r      
         )g7ݿgD @g5P?gB߸"@gyӼ®@gE5`@g&)#@gEf!g<@gSbυ.X gFgg$`#@)gI<M$k@gYvR@gd)B	g,#@gd?H#gk"`	@g)k	gi	V@gH-Q#@gn)Ҕ g3%0?g@	)gAZg9s@g /{Dg٩@gEC@g'UE@gآ?@gւ gzk@ga"@g򿽴~gKG#@)g$9gL|wglT@g?ss}aJ?g7iH^	gt,`?gh@glA1mg(T#g* #gDV#@g@)g'"@ga+ٓgE=a@g:"gIV@g5@gYd\gі1pg"2 g:i@gi^J @g`HQ!)g^!g#Mƽ!@g论H&@gfQq@g%gm̂r!@g
,@gY bgY#@g/-i@g Vqg")gH"@ggʜ6@ggeg&P@gY2#Cg
0@g|0g *!/@g(gqq?g)a)gF!Ígzǫg^geF?g
O0!gV<gtСg%9W@g^[H#@g3Fz?g.5 gsd?)g놎g,
@gA/u@g`9ogebgȀ@gMgZa@g<ˉ8g:ɘ%@gdH	g4g:Ns@)gg-ҿgE- g)in"@gd.xg2~wgďgYr4Q?gkM-:g,@g+ @gVu)g@+_$?gKGj?g[ C$}@g_gD/X@gHgJSʌ@g@ggN+gë	gk8gjZ@)gݵB`#@g+N?g	gg'g=!"F@gƱҟ"g'-:@g#g'gj \B@g~ge@g$q߼)
nprandomseedr   	TypeErrorbspspline_filterr   randr   )selfdata_array_realresult_array_reals      d/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/signal/tests/test_bsplines.pytest_spline_filterzTestBSplines.test_spline_filter   s    
		uy#++UA3Z;
		u))..R0a/ 112!@@?@@@@?@@A@C#A$BJ 	))/1=)	+    c                     t         j                  j                  d       t        t	        j
                  dd      d       t        t	        j
                  t        dg      d      t        dg             y )Ni0  r   g<~?      ?r   g?)r   r   r   r   r   gauss_spliner   r   )r   s    r   test_gauss_splinezTestBSplines.test_gauss_splineD   sN    
		uC,,Q24EF((ta8%:MNr   c                 b    g d}t        t        j                  |d      t        g d             y )N)              r"      )硫Y.?gye~?r%   )r   r   r   r   )r   knotss     r   test_gauss_spline_listz#TestBSplines.test_gauss_spline_listI   s(    !C,,UA6!"EF	Hr   c                 t   t         j                  j                  d       t        t	        j
                  t        dg            dg       t        g d      }t        t	        j
                  t        g d      d      |       t        g d      }t        t	        j
                  t        g d            |       y )Ni0  r   r#   )g{߮]?gzU%?gz@g6fw@gven'@r   r   r$         r   )g|-?g>!<m @g6L@glMO@g>}@)r   r   r   r   r   	cspline1dr   r   )r   c1dc1d0s      r   test_cspline1dzTestBSplines.test_cspline1dO   s    
		u3==s4rd; ! " 	e,<&=qA3G " #e,<&=>Er   c                    t         j                  j                  d       t        t	        j
                  t        dg            dg       t        t        t        j
                  t        g d      d       t        t        t        j
                  t        g d      d       t        g d      }t        t	        j
                  t        g d            |       y )Ni0  r   r#   r)   r   r"   )g)`O?gAk2 @g@go@g5ڕ@)
r   r   r   r   r   	qspline1dr   r   
ValueErrorr   )r   q1d0s     r   test_qspline1dzTestBSplines.test_qspline1dZ   s    
		u3==s4rd;z3==%0@*A2Fz3==%0@*A3G " #e,<&=>Er   c           	         t         j                  j                  d       t        t	        j
                  t        ddg      dg      t        dg             t        t	        j
                  t        g d      g       t        g              g d}|d   |d   z
  }g d}t        g d      }t	        j                  |      }t        g d	      }t        t	        j
                  ||||d   
      |       y )Ni0  r#   r   r   r   r   
r   r   r   r$   r*   r+      r   &g      g      g      g      g      g      g      g      g       g      r"   g      r#   g      ?r   g      ?       @g      @g      @g      @      @g      @g      @g      @g      @g      @g      @g      @       @g      !@g      "@g      #@g      $@g      %@g      &@g      '@g      (@g      )@
gw/@~jt@&1@Zd;@K7	@Zd@"~@jt@tV?K7A`@)&rC   SW@rB   7.O@rA   00/@g)-3/@rL   rA   rK   rB   rJ   rC   ^:@rD   4Ev@rE   c4~#.@rF   uyJ9@rG   /~	@rH   Y@@rI   rR   rH   rQ   rG   rP   rF   rO   rE   rN   rD   rM   rC   rJ   dxx0)	r   r   r   r   r   cspline1d_evalr   r   r,   r   xrT   newxycjnewys          r   test_cspline1d_evalz TestBSplines.test_cspline1d_evald       
		u**5"a>B4@%+N3--eJ.?D 9	&-qT!A$Y  ! "]]1 5 6 	**2tqtDdKr   c           	         t         j                  j                  d       t        t	        j
                  t        ddg      dg      t        dg             t        t	        j
                  t        g d      g       t        g              g d}|d   |d   z
  }g d}t        g d      }t	        j                  |      }t        g d	      }t        t	        j
                  ||||d   
      |       y )Ni0  r#   r   r6   r7   r   r<   r@   )&rC   TW
@rB   oR@rA   bP@geW/@rb   rA   ra   rB   r`   rC    B@rD   HG(@rE   nfWΜ=@rF   %d	O@rG   u#	@rH   )C@rI   rh   rH   rg   rG   rf   rF   re   rE   rd   rD   rc   rC   r`   rS   )	r   r   r   r   r   qspline1d_evalr   r   r1   rW   s          r   test_qspline1d_evalz TestBSplines.test_qspline1d_eval{   r^   r   N)__name__
__module____qualname____doc__r   r    r'   r/   r4   r]   rj    r   r   r
   r
      s2    H
/+bO
H	FFL.Lr   r
   c            	      *   t        j                  g d      } t         j                  j                  dd      }t	        j
                  || | dd         t        j                  t        d      5  t	        j
                  || | dd         d d d        t        j                  t        d      5  t	        j
                  || dd  |        d d d        t        j                  t        d      5  t	        j
                  || j                  dd	      |        d d d        t        j                  t        d      5  t	        j
                  || | j                  dd	             d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   mxY w# 1 sw Y   y xY w)
Nr   r=   r>   r=   r      	   r   z
odd lengthmatchr   object too deepr:   )
r   r   r   r   r   sepfir2dpytestr   r2   reshapefiltimages     r   test_sepfir2d_invalid_filterr}      s   88-.DIINN1a E
OOE4ab* 
z	6tT!"X. 
7	z	6tABx. 
7 
z):	;t||Ar2D9 
<	z):	;tT\\!R%89 
<	; 
7	6	6	6 
<	;	;	;s0   -E%+E1)(E=4(F	%E.1E:=F	Fc                     t        j                  g d      } t         j                  j                  dd      }t	        j
                  t        d      5  t        j                  |j                  ddd      | |        d d d        t	        j
                  t        d      5  t        j                  |d   | |        d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)Nrq      rv   rt   r*   zobject of too small depthr   )
r   r   r   r   rx   r   r2   r   rw   ry   rz   s     r   test_sepfir2d_invalid_imager      s    88-.DIINN1a E 
z):	;aA.d; 
< 
z)D	Ea$- 
F	E 
<	; 
F	Es   )CCCCc                      t         j                  j                  d       t         j                  j                  dd      } t	        j
                  | d       y )NiW
G   I   r?   )r   r   r   r   r   	cspline2dr|   s    r   test_cspline2dr      s6    IINN9IINN2r"E
UC r   c                      t         j                  j                  d       t         j                  j                  dd      } t	        j
                  |        y )NiW
r   r   )r   r   r   r   r   	qspline2dr   s    r   test_qspline2dr      s4    IINN9IINN2r"E
Ur   )numpyr   r   numpy.testingr   r   r   rx   r   scipy.signal._bsplinesr   	_bsplinesr   scipyr
   r}   r   r   r   ro   r   r   <module>r      sG     0 0   $ $ CL CLL:$	.!r   