
    (ph6>                     .   S SK rS SKJrJrJr  S SKrS SKJr  S SKJ	s  J
r  S SKJ	r	   " S S5      r\R                  \R                  \\R"                  \R                  \R                  \\\R&                  \R&                  \\0r " S S5      rS	 rS
 rg)    N)assert_almost_equalxp_assert_closexp_assert_equal)raises)signalc                   H    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rSrg)TestBSplines   a  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                    [         R                  R                  S5      n[        [        [
        R                  [         R                  " S/5      S5        UR                  SS5      nSSSU-  -
  -  n[         R                  " / 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[        [
        R                  " US5      U5        g )N0  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RandomStater   	TypeErrorbspspline_filterasarrayrandr   )selfrngdata_array_realresult_array_reals       S/var/www/html/venv/lib/python3.13/site-packages/scipy/signal/tests/test_bsplines.pytest_spline_filterTestBSplines.test_spline_filter   s    ii##E*y#++RZZ_a@((2r*a/ 112JJ@@?@@@@?@@A@C#A$BJ 	))/1=)	+    c           
      >   [         R                  R                  S5      nUR                  SS5      UR                  SS5      S-  -   nSSSU-  -
  -  n[         R                  " / SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/5      n[        [        R                  " US5      USS9  g )Nr      y              ?r   y      ?      ?r   )y$
ݿ%)y @;;R@yH?k៌"y?!@3⟥@yʱƯ@bȺ@ymտ5a@,y`#@A4p)yF! y韷@@_@yw.X /@ @y4 L &Q!yjٿ_#@!yߟk@a
 ƽ!@ySh?@ӿ&@)y?@	X@@yH:#@~%yXH#r!@y} "`	@)ƿ@y@k	ubyoU@I"$#@yA Q#@,i@)yb@r ߂KqyӔ?Ȥ"yr	"@y%`Zv.y$?s@*  7@yxebeyC@P@)y?M@k9FyθUE@4%@@y[y@#?0yN 5H /@ywk@y"a"@$?y~H)y}?\#@A?y	dy{_( y^p@;^F?yu?aJ?U 0!y\@^	Kyx_?+ߡ)yl.@@9UY@yNЪmxp[H#@yDT#bz?yh #F5 y#@^d?y<@V?y{?"@&@@r   gư>)rtol)r   r   r   r   r   r   r   r   )r   r   data_array_complexresult_array_complexs       r   test_spline_filter_complex'TestBSplines.test_spline_filter_complexD   s    ii##E* XXa^chhq!nR.??a(:&:!:;!zz&&&%+&%1& '@ 	))*<a@,4	9r    c                    [         R                  R                  S5        [        [        R
                  " SS5      S5        [        [        R
                  " [         R                  " S/5      S5      [         R                  " S/5      SS9  g )	Ni0  r   g<~?      ?r   g?g&.>atol)r   r   seedr   r   gauss_spliner   r   )r   s    r   test_gauss_splineTestBSplines.test_gauss_splinel   s\    
		uC,,Q24EF((RD)91=

J<0t	
r    c                 z    / SQn[        [        R                  " US5      [        R                  " / SQ5      5        g )N)              r1      )硫Y.?gye~?r4   )r   r   r-   r   r   )r   knotss     r   test_gauss_spline_list#TestBSplines.test_gauss_spline_lists   s+    !C,,UA6JJ'JK	
r    c                    [         R                  R                  S5        [        [        R
                  " [         R                  " S/5      5      S/5        [         R                  " / SQ5      n[        [        R
                  " [         R                  " / SQ5      S5      U5        [         R                  " / SQ5      n[        [        R
                  " [         R                  " / SQ5      5      U5        g )Ni0  r   r2   )g{߮]?gzU%?gz@g6fw@gven'@r)   r   r3         r   )g|-?g>!<m @g6L@glMO@g>}@)r   r   r,   r   r   	cspline1dr   r   )r   c1dc1d0s      r   test_cspline1dTestBSplines.test_cspline1dz   s    
		ubjj!o6=jj & ' 	bjj1A&BAFLzz ' (bjj1A&BCTJr    c                 "   [         R                  R                  S5        [        [        R
                  " [         R                  " S/5      5      S/5        [        [        [        R
                  [         R                  " / SQ5      S5        [        [        [        R
                  [         R                  " / SQ5      S5        [         R                  " / SQ5      n[        [        R
                  " [         R                  " / SQ5      5      U5        g )Ni0  r   r2   r9   r)   r1   )g)`O?gAk2 @g@go@g5ڕ@)
r   r   r,   r   r   	qspline1dr   r   
ValueErrorr   )r   q1d0s     r   test_qspline1dTestBSplines.test_qspline1d   s    
		ubjj!o6=z3=="**5E*FKz3=="**5E*FLzz ' (bjj1A&BCTJr    c           	      h   [         R                  R                  S5        [        [        R
                  " [         R                  " SS/5      S/5      [         R                  " S/5      5        [        [        R
                  " [         R                  " / SQ5      / 5      [         R                  " / 5      5        / SQnUS   US   -
  n/ SQn[         R                  " / SQ5      n[        R                  " U5      n[         R                  " / S	Q5      n[        [        R
                  " XSX!S   S
9U5        g )Ni0  r2   r   r)   r   r   
r   r   r   r3   r:   r;      r   &g      g      g      g      g      g      g      g      g       g      r1   g      r2         ?r)   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`@)&rZ   SW@rY   7.O@rX   00/@g)-3/@rc   rX   rb   rY   ra   rZ   ^:@r[   4Ev@r\   c4~#.@r]   uyJ9@r^   /~	@r_   Y@@r`   ri   r_   rh   r^   rg   r]   rf   r\   re   r[   rd   rZ   ra   dxx0)	r   r   r,   r   r   cspline1d_evalr   r   r<   r   xrk   newxycjnewys          r   test_cspline1d_eval TestBSplines.test_cspline1d_eval   s    
		u**2::r1g+>E

B4(	
 	**2::j+A2F

2	
 .qTAaD[ JJ & ']]1zz : ; 	**2tDdKr    c           	      h   [         R                  R                  S5        [        [        R
                  " [         R                  " SS/5      S/5      [         R                  " S/5      5        [        [        R
                  " [         R                  " / SQ5      / 5      [         R                  " / 5      5        / SQnUS   US   -
  n/ SQn[         R                  " / SQ5      n[        R                  " U5      n[         R                  " / S	Q5      n[        [        R
                  " XSX!S   S
9U5        g )Ni0  r2   r   rH   rI   r   rN   rW   )&rZ   TW
@rY   oR@rX   bP@geW/@ry   rX   rx   rY   rw   rZ    B@r[   HG(@r\   nfWΜ=@r]   %d	O@r^   u#	@r_   )C@r`   r   r_   r~   r^   r}   r]   r|   r\   r{   r[   rz   rZ   rw   rj   )	r   r   r,   r   r   qspline1d_evalr   r   rB   rn   s          r   test_qspline1d_eval TestBSplines.test_qspline1d_eval   s    
		u**2::r1g+>E

B4(	
 	**2::j+A2F

2	
 .qT!A$Y JJ & ']]1zz : ; 	**2tDdKr     N)__name__
__module____qualname____firstlineno____doc__r   r&   r.   r6   r?   rE   rt   r   __static_attributes__r   r    r   r	   r	      s6    H
.+`&9P

	KKL4Lr    r	   c            
       :   \ rS rSrS rS r\R                  R                  S\	R                  \\	R                  \\	R                  \/5      S 5       r\R                  R                  S\	R                  \\	R                  \\	R                  \/5      S 5       r\R                  R%                  SS9S	 5       r\R                  R%                  S
S9\R                  R                  S\	R                  \\	R                  \\	R                  \/5      S 5       5       rSrg)TestSepfir2d   c           	      D   [         R                  " / SQ5      n[         R                  R                  SS5      n[        R
                  " X!USS  5        [        R                  " [        SS9   [        R
                  " X!USS  5        S S S 5        [        R                  " [        SS9   [        R
                  " X!SS  U5        S S S 5        [        R                  " [        SS9   [        R
                  " X!R                  SS	5      U5        S S S 5        [        R                  " [        SS9   [        R
                  " X!UR                  SS	5      5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nz= f! , (       d  f       g = f)
Nr)   rP   rS   rP   r)   r"   	   r   z
odd lengthmatchr   object too deeprL   )
r   arrayr   r   r   sepfir2dpytestr   rC   reshaper   filtimages      r   test_sepfir2d_invalid_filter)TestSepfir2d.test_sepfir2d_invalid_filter   s   xx12		q!$T!"X. ]]:\:OOEab2 ;]]:\:OOE8T2 ; ]]:->?OOE<<2#6= @]]:->?OOEa)<= @? ;::: @???s0   ,E(E/$(F -(F
E,/
E= 
F
Fc                    [         R                  " / SQ5      n[         R                  R                  SS5      n[        R
                  " [        SS9   [        R                  " UR                  SSS5      X5        S S S 5        [        R
                  " [        SS9   [        R                  " US   X5        S S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)Nr      r   r   r:   zobject of too small depthr   )
r   r   r   r   r   r   rC   r   r   r   r   s      r   test_sepfir2d_invalid_image(TestSepfir2d.test_sepfir2d_invalid_image   s    xx12		q!$ ]]:->?OOEMM!Q2D? @ ]]:-HIOOE!Hd1 JI @? JIs   )C C 
C
Cdtypc                 n   [         R                  " / SQ/ SQ/ SQ/ SQ/US9n/ SQnS/n[        R                  " X#U5      n[        U   n[         R
                  " / SQ/ SQ/ SQ/ SQ/US9n[        XWSS9  [        R                  " X$U5      n[         R
                  " / SQ/ SQ/ SQ/ SQ/US9n[        XWSS9  g )	N)r   r   r3   r3   r   r   dtyperO   r   rO   r   )rQ   rS   rT   rT   rS   rQ   gؗҜ<r*   )rP   rS   rU   rU   rS   rP   )r   r   r   r   sepfir_dtype_mapr   r   )r   r   ah1h2resultdtexpecteds           r   test_simpleTestSepfir2d.test_simple   s    
 HH((((* 267 S+d#::====? GIJ 	u5+::77779 ACD 	u5r    c                 @   [         R                  " / SQ/ SQ/ SQ/ SQ/5      n/ SQS/pC[        R                  " US S 2S S S24   X45      n[        R                  " US S 2S S S24   R	                  5       X45      n[        XVSS9  UR                  UR                  :X  d   eg )N)	r   r   r3   r3   r   r   r   r   r3   r   r   r   V瞯<r*   )r   r   r   r   copyr   r   )r   r   r   r   r   result_stridedresult_contigs          r   test_stridedTestSepfir2d.test_strided  s     HH10002 3 B1cc6B;!SqS&	(8"AEB##}':'::::r    z#XXX: filt.size > image.shape: flaky)reasonc           
      D   [         R                  R                  S5        [         R                  " / SQ5      n[         R                  R	                  SS5      n[         R
                  " / SQ/ SQ/ SQ/ SQ/5      n[        [        R                  " X!US S S2   5      U5        g )	Ni  )r)   rP   rS   rP   r)   rR   rP   r:   )g!SB@g¿3=>@gs`[C@gsLhE@)gͨ*C@g5A@g;/K;E@g<f2E@)gE@g>#jD@gB`G@g]n0a#F@)gٕzH@g|FC@gǜgKE@gCF@r3   )	r   r   r,   r   r   r   r   r   r   )r   r   r   r   s       r   test_sepfir2d_strided_2$TestSepfir2d.test_sepfir2d_strided_2  sw     			txx;<		q!$::K L L LN O 	T#A#Y?Jr    z*XXX: flaky. pointers OOB on some platformsc                 "   [         R                  " / SQUS9n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/US9n/ SQ/ S	Q/ S
Q/ SQ/ SQ/n[         R                  " U5      n[        R                  " X2US S S2   5      n[        XTSS9  UR                  [        U   :X  d   e/ SQ/ SQ/ SQ/ SQ/ SQ/n[         R                  " U5      n[        R                  " X2S S S2   US S S2   5      n[        XTSS9  UR                  [        U   :X  d   eg )N)r   r   r:   r   r   r3   r   r   )r   r3   r   r   r   )r   r   r3   r3   r3   )r   r   r3   r   r3   )r   r3   r   r   r3   )r3   r3   r   r   r   )g     ^@g     @Y@g     V@      a@g     _@)     `@g     @_@g     _@      c@g      d@)r   g      a@g     b@g     @d@g      f@)r   g      _@g     `@g     b@g     `b@)g     e@g     c@r   g     d@g     a@r3   r   r*   )g      6@g     A@     D@g      ?@     G@)g      ;@     C@      H@r   g     K@)g     @@g      E@g     H@g     J@g     M@)r   g      F@r   g      B@r   )g     P@g      O@r   g      A@g      G@)r   r   r   r   r   r   r   r   )r   r   r   r   r   r   s         r   test_sepfir2d_strided_3$TestSepfir2d.test_sepfir2d_strided_3  s    xx-T:

O++++	- 59	: 32222	4
 ::h'd3Q3i8u5||/5555-----	/
 ::h'SqS	4!9=u5||/5555r    r   N)r   r   r   r   r   r   r   markparametrizer   uint8intfloat32float	complex64complexr   r   xfailr   r   r   r   r    r   r   r      s   >$	2 [[V	3

E2<<A66. [[V	3

E2<<A	;	; [[CDK EK [[JK[[V	3

E2<<A6 L6r    r   c                      [         R                  R                  S5        [         R                  R                  SS5      n [        R
                  " U S5        g )NiW
G   I   rV   )r   r   r,   r   r   	cspline2dr   s    r   test_cspline2dr   A  s6    IINN9IINN2r"E
UC r    c                      [         R                  R                  S5        [         R                  R                  SS5      n [        R
                  " U 5        g )NiW
r   r   )r   r   r,   r   r   	qspline2dr   s    r   test_qspline2dr   G  s4    IINN9IINN2r"E
Ur    )numpyr   scipy._lib._array_apir   r   r   r   r   scipy.signal._spline_filtersr   _spline_filtersr   scipyr	   r   r   r   float64r   r   r   r   r   r   r   r   r    r   <module>r      s        * * sL sLn HHbjj#rzzJJ

E5LL",,B u6 u6p!r    