
    (phq9                     ^    S SK rS SKrS SKJr  S SKJrJrJr  S SK	J
r
Jr  S r " S S5      rg)    N)xp_assert_close)symiirorder1_icsymiirorder2_ic_fwdsymiirorder2_ic_bwd)symiirorder1symiirorder2c                    X-  n[         R                  " U 5      n [         R                  " X S-  5      nUSU-   -  SU-
  -  SSU-  [         R                  " SU-  5      -  -
  X"-  -   -  nSU-
  SU-   -  [         R                  " U5      -  nXe-  [         R                  " X0-  5      U[         R
                  " X0-  5      -  -   -  $ )N       @      ?      )npabspowercostansin)kcsrsqomegacssqrsupkc0gammas           R/var/www/html/venv/lib/python3.13/site-packages/scipy/signal/tests/test_splines.py_compute_symiirorder2_bwd_hsr      s    7D
q	AHHSc'"E
#)
c	
*q3wE	***SY68B3Y39%u5E:	*URVVEI5F-FFGG    c                   `   \ rS rSr\R
                  R                  S\R                  \R                  \R                  \R                  /5      \R
                  R                  S/ SQ5      S 5       5       rS r\R
                  R                  S\R                  \R                  \R                  \R                  /5      \R
                  R                  S/ SQ5      S 5       5       r\R
                  R                  SSS	/5      S
 5       r\R
                  R                  SSS	/5      \R
                  R                  S/ SQ5      S 5       5       r\R
                  R                  S\R                  \R                  /5      \R
                  R                  S/ SQ5      S 5       5       r\R
                  R                  S\R                  \R                  /5      \R
                  R                  S/ SQ5      S 5       5       r\R
                  R                  SSS	/5      S 5       rS rS rSrg)
TestSymIIR   dtype	precision)g      gffffff?      ?g      ?gQ~?c                    UnUS::  d  US:  a)  U[         R                  [         R                  1;   a  SnOSnSn[        [         R                  " [         R
                  " U5      [         R
                  " U5      -  5      5      n[         R                  " SXE-  -
  SU-
  -  //US9nSXF-  -   n[         R                  " US-   US9n[        [        XtU5      USS	S
9  [         R                  " XAS9n[         R                  " SSU-  U-  -
  SSU-  -
  -  //US9nSX-  -   nS[         R                  " US-   US9* -  n[        [        XtU5      USS	S
9  g )N        r   ư>dy=333333?r   r"   >gH׊>atolrtolr$   r   )r   float32	complex64intceillogasarrayonesr   r   arange)	selfr"   r#   c_precisionbn_expexpectedxb_ds	            r   test_symiir1_icTestSymIIR.test_symiir1_ic   sL     y3R\\22"# BGGBFF;/"&&);<=::QZAE :;<EJq|# GGEAIU+i8(!	. jj(::C#I%''AsO<=>eMs~% "))EAIU333i8(!	.r   c                 (   Sn[         R                  " S[         R                  S9nSSU-
  -  n[        R                  " [
        [        X!U5        [        R                  " [
        [        USS5        [        R                  " [
        [        USS5        g )Nr)   d   r*   r   r   r
   )r   r5   float64pytestraises
ValueErrorr   )r7   r9   r<   r#   s       r   test_symiir1_ic_fails TestSymIIR.test_symiir1_ic_failsF   sf    GGCrzz* QK	j/1C 	j/1c2>j/1c2>r   c                 H   UnUS::  d  US:  a)  U[         R                  [         R                  1;   a  SnOSnSnSnSn[         R                  " XaS9n[	        [         R
                  " [         R                  " U5      [         R                  " U5      -  5      5      n[         R                  " S	XX-  -
  S	U-
  -  US9n	S	XY-  -   n	[         R                  " XaS9n
XU
-  -  n[         R                  " XaS9nU* S	U-
  -  XZS S
 -  -  US	S & [         R                  " XaS9nS	S	U-
  -  US	S & X-   U-   nU* US-
  -  US
   -  n[         R                  " XaS9nUUS'   [        S	U5       H  nXNUS	-
  U-
     -  UUUS	-
     -  -   UU'   M!     US S S
2   n[        XtXR5      n[        UUSSS9  g )Nr&   r   r'   r(   g333333?r)      r*   r   rB   r   >v!>r,   )r   r/   r0   r5   r1   r2   r3   r4   r6   zerosranger   r   )r7   r"   r#   r8   r   z1nsignalr:   initialposcomp1comp2comp3expected_fwdsym_condexp_outiouts                      r   test_symiir1TestSymIIR.test_symiir1T   s     y3R\\22"# ( BGGBFF;/"&&*<=>**a"+o!b&9Gbl" ii'c'! (C1r6NRSb\1ab	 (RLab	}u, 3"s(#l2&66 ((1*
q!A1q51955WQU^8KKGAJ  $B$-6r5W4d;r   r/   rC   c                 \   [         R                  R                  S5      n[        [         U5      nUR	                  SS9R                  U5      n[        USS5      n[         R                  " / SQUR                  S9nUR                  U:X  d   e[         R                  S[         R                  S	0U   n[        XEUS
9  USU-  -   n[        USS5      nU[         R                  :X  a   UR                  [         R                  :X  d   e[         R                  (       d   e[        XESU-  -   US
9  g )N     sizer$   皙?)gzj?g|ꚁ?g7F?g$d"?gv)u?gx?gF4˯0?g/yR?gdOm6wP?g^ۂ?gnI:5?g(?giԴIM?g|
?gIq?g?r*   gV瞯<gHz>r-                 ?)r   randomRandomStategetattruniformastyper   arrayr"   rC   r/   r   r0   
complex128)r7   r"   rngsresexp_resr-   s          r   test_symiir1_valuesTestSymIIR.test_symiir1_values   s    ii##D)E"KKRK ''.1c3' (( ' /2ii9 yyE!!!

E2::t4U;401H1c3',1RZZ,?syyBLL(RRR]]RRr'z1=r   c                    [        [        U5      nUnUS::  d  US:  a)  U[        R                  [        R                  1;   a  SnOSn[        R                  " SUS9n[        R                  " [        R
                  S-  US9nSS	U-  [        R                  " U5      -  -
  US	-  -   n[        R                  " [        R                  " U[        R                  " U5      -  5      [        R                  " U5      -  5      n[        R                  " [        R
                  U-  5      S	-
  n[        Xx5      n	US	U-  [        R                  " U5      -  -   US	-  -
  XIS	-   -  [        R                  " XYS
-   -  5      -  [        R                  " U5      -  -
  XIS
-   -  [        R                  " XYS	-   -  5      -  [        R                  " U5      -  -   n
[        R                  " [        R                  " U[        R                  " U5      -  5      [        R                  " U5      -  5      n[        R                  " [        R
                  U-  5      S
-
  n[        Xx5      n	XfS	-  U-  [        R                  " U5      -  -   US	-  [        R                  " S
U-  5      -  US
-  [        R                  " S	U-  5      -  -
  XIS
-   -  [        R                  " XYS-   -  5      -  -
  XIS-   -  [        R                  " XYS
-   -  5      -  -   [        R                  " U5      -  -   n[        R                  X4   S S S 24   nUR                  U5      nSn[        R                  " XS9n[        XXR5      n[        XSSS9  g )Nr&   r   r'   r(   r$   r*         @r   r         rA   rK   rL   r,   )rh   r   r/   r0   r4   pir   r2   r3   r   minr_rj   r5   r   r   )r7   r"   r#   r8   rr   r   ublbr:   fwd_initial_1fwd_initial_2r;   rP   rQ   r[   s                   r   test_symiir2_initial_fwd#TestSymIIR.test_symiir2_initial_fwd   s    E"y3R\\22"# JJs%(

2553;e4Q&&A- WWRVVK"&&-78266+;NNOWWRUUU]#a'B EBFF5M!"qD 	NRVVEQY$788266%=HI 	NRVVEQY$788266%=H	I 	 WWRVVK"&&-78266+;NNOWWRUUU]#a'B a!bffUm++TBFF1u9%%TBFF1u9%%&^bffUai%899: ^bffUai%899: >@VVE]KK 	 5556tQw???5)(!&U>Dt<r   c                    UnUS::  d  US:  a)  U[         R                  [         R                  1;   a  SnOSn[         R                  " SUS9n[         R                  " [         R                  S-  US9nSS	U-  [         R
                  " U5      -  -
  XD-  -   nS	U-  [         R
                  " U5      -  nU* U-  nS
n	[         R                  " XS9n
[        XXR5      n[         R                  " U	S	-   US9nUS   US S	& [        S	U	S	-   5       H%  nXjUS	-
     -  X|US-
     -  -   XUS	-
     -  -   X'   M'     [         R                  " S	US9n[         R                  " U	5      n[        XXD-  U5      [        US-   XdU-  U5      -   n[         R                  " UUS SS2   -  5      n[         R                  " US	-  U:  5      S   nUUS      US'   [        US-
  XdU-  U5      [        US	-   XdU-  U5      -   n[         R                  " UUS SS2   -  5      n[         R                  " US	-  U:  5      S   nUUS      US'   [        XXR5      S   n[        UUSSS9  g )Nr&   r   r'   r(   r$   r*   rt   r   r   rA   r   rB   rK   rL   r,   )r   r/   r0   r4   rw   r   r5   r   rM   rN   r6   r   cumsumwherer   r   )r7   r"   r#   r8   rz   r   r   a2a3rP   rQ   icr[   rZ   ic2idxdiff	ic2_0_allrS   	ic2_1_allout_ics                        r   test_symiir2_initial_bwd#TestSymIIR.test_symiir2_initial_bwd   sY     y3R\\22"#JJs%(

2553;e4Q&&.URVVE]"R!V( !E=hhq1uE*Q%BQ q!a%AQ-'"1q5z/9BQUOKCF ! hhq&iil,SaeUC,S1Wba%GHIIdS!BZ/0	hhtqy;./23q6"A,S1Wba%G,S1Wba%GHIIdS!BZ/0	hhtqy;./23q6"A$SU>qA$T:r   c                    [         R                  " SUS9n[         R                  " [         R                  S-  US9nSSU-  [         R                  " U5      -  -
  X3-  -   nSU-  [         R                  " U5      -  nU* U-  nSn[         R                  " XS9n	[        XXB5      n
[         R                  " US-   US9nU
S   US S& [        SUS-   5       H%  nXYUS-
     -  XkUS-
     -  -   X{US-
     -  -   X'   M'     [        XXB5      S   n[         R                  " XS9nUS S S2   US	S & [        US
-
  SS5       H"  nX[U   -  XnUS-      -  -   X~US-      -  -   X'   M$     [        XXB5      n[        XSSS9  g )Nr$   r*   rt   r   r   rA   r   rB   ru   rK   rL   r,   )r   r4   rw   r   r5   r   rM   rN   r   emptyr   r   )r7   r"   r#   rz   r   r   r   r   rP   rQ   r   out1rZ   r   expr[   s                   r   test_symiir2TestSymIIR.test_symiir2!  s    JJs%(

2553;e4Q&&.URVVE]"R!V( !E=xxAU+a5Ra q!a%A!a%=(2QU+;;bA;>NNDG ! "$5<Q? hhq&tt9BCq1ub"%Aq'\BQUO3bq1u:oECF & 6e7t$7r   dtypc                    [        [        U5      n[        R                  R                  S5      nUR	                  SS9R                  U5      n[        USSSS9n[        R                  " / SQUS9nUR                  U:X  d   e[        XES	S
9  USU-  -   n[        R                  " [        5         [        USS5      nS S S 5        g ! , (       d  f       g = f)Nr_   r`   ra   rc   g|=)r#   )g윏 ?g_VQQ/?g|n4T?gAٌ?gJ8]<?gZ(Z?gTV?gRs?g?gd'Q?g*&?g$SЊ?g%֘?g4O?gM4?g!?r*   r+   rd   re   r$   )rh   r   rf   rg   ri   rj   r   rk   r"   r   rD   rE   	TypeError)r7   r   rm   rn   ro   rp   s         r   test_symiir2_valuesTestSymIIR.test_symiir2_valuesD  s    r4 ii##D)KKRK ''-1c3%8 ((  #$
 yyD    	401H]]9%q#s+C &%%s   /C
Cc                     [         R                  " [         R                  " S5      S-  SS5      n[        UR	                  [
        5      SS5      n[        USS5      n[        X25        g )NrA   r   rB   r   r$   )r   r   r6   r   rj   floatr   r7   rn   r;   r[   s       r   test_symiir1_integer_input%TestSymIIR.test_symiir1_integer_input`  sM    HHRYYs^a'Q/c:1c3'&r   c                    [         R                  " [         R                  " S5      S-  SS5      n[        UR	                  [
        5      S[         R                  S-  5      n[        US[         R                  S-  5      n[        X25        g )NrA   r   rB   r   r$   rt   )r   r   r6   r   rj   r   rw   r   r   s       r   test_symiir2_integer_input%TestSymIIR.test_symiir2_integer_inputf  s]    HHRYYs^a'Q/beeckB1c2553;/&r    N)__name__
__module____qualname____firstlineno__rD   markparametrizer   r/   rC   r0   rl   r>   rG   r\   rq   r   r   r   r   r   r   __static_attributes__r   r   r   r    r       s   [["**bjj",,FH[[[*HI*. JH*.X? [["**bjj",,FH[[[*HI@< JH@<D [[Wy)&<=> >>( [[)Y')[[[*HI>= J)>=@ [["**bjj)+[[[*HI+; J++;Z [["**bjj)+[[[*HI8 J+8@ [[Vi%;<, =,6''r   r    )numpyr   rD   scipy._lib._array_apir   scipy.signal._spliner   r   r   scipy.signalr   r   r   r    r   r   r   <module>r      s-      1? ? 3HT' T'r   