
    \h                        S SK Jr  S SKJrJrJr  S SKJr  S SKJ	r	  S SK
JrJr  S SK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  \	" S5      u  rrr\" 5       S 5       rS rS r S r!S r"S r#S r$S r%S r&g)    )Add)Rationaloopi)S)symbols)explog)	Piecewise)cossinsinctan)fourier_series)FourierSeries)raises)	lru_cachezx y zc                      [        [        [        [        * [        45      n [        [        S-  [        * [        45      n[        [        S[        S:  4[        S45      [        [        * [        45      nXU4$ )N   r   T)r   xr   r   fofefps      W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/series/tests/test_fourier.py_get_examplesr      s]    	AsB<	(B	1sBi	(B		1a!e*r4j9AsB<	HB2:    c                  "   [        5       u  pn[        S[        * [        45      S:X  d   e[        S[        S:  4[        S45      R                  [        [        * [        45      R                  5       UR                  5       :X  d   e[        U [        5      (       d   eU R                  [        :X  d   eU R                  [        :X  d   eU R                  [        * [        4:X  d   eU R                  S5      S[        S[        -  5      -  S-  :X  d   eUR                  S5      S[        S[        -  5      -  S-  :X  d   eUR                  S5      S[        S[        -  5      -  S-  :X  d   eU R                  [        5      S[        [        5      -  :X  d   eUR                  [        5      [        S-  S-  :X  d   eUR                  [        5      [        S-  :X  d   eU R                  5       S[        [        5      -  [        S[        -  5      -
  S[        S[        -  5      -  S-  -   :X  d   eUR                  5       S[        [        5      -  [        S[        -  5      -   [        S-  S-  -   :X  d   eUR                  5       S[        [        5      -  S[        S[        -  5      -  S-  -   [        S-  -   :X  d   eU R                  S S9nSS[        [        5      -  [        S[        -  5      * /n[        U5       H  u  pVUS:X  a    OXE   U:X  a  M   e   S	 nU" U S5        U" US5        U" US5        U R                  [        [        S-  5      U :X  d   e[!        ["        S
 5        [!        ["        S 5        [!        ["        S 5        g )N   r   T   r   	   )nc                 N    [        U 5       H  u  p#X0U   :X  d   eX!:X  d  M    g    g N)	enumerate)fiindts       r   _check_iter'test_FourierSeries.<locals>._check_iter6   s(    lFC#;;x #r   c                  "    [        [        S5      $ )N)r   r   r   r   r    r   r   <lambda>$test_FourierSeries.<locals>.<lambda>B   s    ~a;r   c                  8    [        [        [        S[        45      $ Nr   )r   r   r   r/   r   r   r0   r1   C   s    ~a!Q<r   c                  <    [        [        [        -  S[        45      $ r3   )r   r   yr   r/   r   r   r0   r1   D   s    ~acAr7;r   )r   r   r   r   r   truncate
isinstancer   functionperiodtermr   r   as_leading_termr&   subsr   
ValueError)r   r   r   fotsr(   r*   r+   s           r   test_FourierSeriesr@      s   JBB!rc2Y'1,,,q!a%j2t*-NAsB<(F F Fb-((((;;!4419999"b	!!!771:3qs8a'''771:C!Hq(((771:3qs8a'''a Ac!fH,,,a BEAI---a BF***;;=Ac!fHs1Q3x/1S1X:>BBBB;;=Bs1vIAaC02q519<<<<;;=Ac!fH#ac(
Q7"q&@@@@
+++
C	
Ac!fHs1Q3xi A#6tqyy 
 AAA771adr!!!
:;<
:<=
:;<r   c                  P   [        S[        S:  4[        S45      n [        U [        SS45      nUR                  S5      S[	        S[
        -  [        -  S-  5      -  S[
        -  -  S[        S[
        -  [        -  S-  5      -  S[
        S-  -  -  -
  :X  d   eUR                  5       S[	        [
        [        -  S-  5      -  [
        -  [	        [
        [        -  5      [
        -  -
  S[        [
        [        -  S-  5      -  [
        S-  -  -
  [        R                  -   :X  d   eg )Nr   Tr   r       r"   )
r   r   r   r:   r   r   r   r6   r   Half)pr'   s     r   test_FourierSeries_2rF   G   s    1a!e*q$i(Aq1b!*%A66!93qtAvz?*ad33qtAvz?*aAg67 8 8 8::<Ac"Q$(mOb03r!t9r>Ac"Q$(mOb!e3467ff= > > >r   c                  4   [        S[        [        :  4S5      n [        U [        SS[        -  45      nUR	                  S5      S[        -  [        [        5      -  SS[        -  -  [        S[        -  5      -  -   SS[        -  -  [        S[        -  5      -  -   :X  d   eUR                  S5      S[        -  [        [        5      -  [        [        S-  5      -  SS[        -  -  [        S[        -  5      -  [        S[        -  S-  5      -  -   :X  d   eg)	zETest if fourier_series approximates discontinuous function correctly.r   )Tr   r   r    rC      N)r   r   r   r   r6   r   sigma_approximationr   )square_waver?   s     r   test_square_waverL   Q   s    QBK4K{Q1R4L1A::a=AFSVOa1r6lSQZ.GG	QVs1q5z!" " " "  #q2vAb1f'E	QVs1q5z!DR!$44(5 5 5 5r   c                  >   [        [        [        S[        45      n U R                  S5      [        S-  [	        S[        -  5      -
  [	        S[        -  5      S-  -
  [	        S[        -  5      S-  -
  :X  d   e[        [        [        SS45      n U R                  S5      [
        R                  [	        S[        -  [        -  5      [        -  -
  [	        S[        -  [        -  5      S[        -  -  -
  [	        S[        -  [        -  5      S[        -  -  -
  :X  d   eg )Nr   rC   r      r    r   )r   r   r   r6   r   r   rD   )r?   s    r   test_sawtooth_waverO   \   s    q1a*%A::a=
1s1Q3x#ac(1*$s1Q3xz12 2 2q1a)$A::a=	QrT!VR#ad1f+qt"44s1R46{AbD7IIJ J Jr   c                    ^ [        5       u  mpU R                  S5      R                  [        S-  5      nUR	                  5       S[        [        5      -  [        S[        -  5      -
  S[        S-  -  S-  -   :X  d   eUR                  [        * S-  5      R	                  5       S[        [        5      -  S[        S[        -  5      -  S-  -   S[        S[        -  5      -  S-  -   :X  d   eTR                  S5      nUR	                  5       S[        [        5      -  S[        S[        -  5      -  -
  S[        S[        -  5      -  -   :X  d   eU R                  S5      R                  S5      nUR	                  5       S[        S[        -  S-   5      -  [        S[        -  S-   5      -   [        S-  S-  -   :X  d   eU R                  S5      R                  [        * 5      R                  S5      R                  S5      R                  S5      nUR	                  5       S	[        S[        -  S-   5      -  S[        S
[        -  S
-   5      -  -   S[        -  -
  S[        S-  -  S-  -   :X  d   e[        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        g )NrH   r   rC   r    rI   rN   r   r!   i   c                  .   > T R                  [        5      $ r%   )shiftr   r   s   r   r0   0test_FourierSeries__operations.<locals>.<lambda>x   s    rxx{r   c                  @   > T R                  [        [        5      5      $ r%   )shiftxr   r   rT   s   r   r0   rU   y   s    ryyQ0r   c                  <   > T R                  [        [        -  5      $ r%   )scaler   r5   rT   s   r   r0   rU   z   s    rxx!}r   c                  4   > T R                  [        S-  5      $ )Nr   )scalexr   rT   s   r   r0   rU   {   s    ryyAr   )r   rY   rS   r   r6   r   r   r   r[   rW   r   r=   )r   r   fesfosfxflr   s         @r   test_FourierSeries__operationsr`   e   s5   JB
((2,

RU
#C<<>Qs1vXAaC01RU7Q;>>>>88RCE?##%!CF(aAaCj1n*E+,S1X:>+; < < < ((1+C<<>Qs1vX#ac(
2Qs1Q3xZ????	1		Q	B;;=Bs1Q37|Oc!A#'l:RUQYFFFF	1		RC	 	'	'	*	1	1!	4	:	:1	=B;;=SQqS1W-#bdRi.0@@rT"$%b!eGaK0 1 1 1 :*+
:01
:,-
:./r   c                  R   [        5       u  pnU * R                  5       S[        [        5      -  [        S[        -  5      -   S[        S[        -  5      -  S-  -
  :X  d   eU* R                  5       S[	        [        5      -  [	        S[        -  5      -
  [
        S-  S-  -
  :X  d   eg )NrB   r   r    rC   )r   r6   r   r   r   r   r   s      r   test_FourierSeries__negrb   ~   s    JBBC>>r#a&y3qs83qQqSzA~FFFFC>>r#a&y3qs83b!eai????r   c                    ^ [        5       u  mpTT-   TR                  S5      :X  d   eTT-
  S:X  d   eU * U -
  U R                  S5      :X  d   eTU -   R                  5       S[        [        5      -  [        S[        -  5      -
  S[        [        5      -  -
  [        S[        -  5      -   [        S-  S-  -   :X  d   eTU -
  R                  5       S[        [        5      -  [        S[        -  5      -
  S[        [        5      -  -   [        S[        -  5      -
  [        S-  S-  -
  :X  d   e[        TS-   [        5      (       d   e[        [        U4S j5        g )Nr   r   rB   rC   r    r   c                  8   > T [        [        [        SS45      -   $ )Nr   r   r.   rT   s   r   r0   .test_FourierSeries__add__sub.<locals>.<lambda>   s    rN1q!Qi$@@r   )r   rY   r6   r   r   r   r   r7   r   r   r=   )r   r   r   s     @r   test_FourierSeries__add__subrf      s8   JB7bhhqk!!!7a<<38rxx|###G1SV8c!A#h#63q6#AC!H#L
a%!)$   G1SV8c!A#h#63q6#AC!H#L
a%!)$    b1fc""""
:@Ar   c                  J   [        [        [        5      5      R                  S5      [        [        5      :X  d   e[        [        [        5      [	        [
        5      -  [        [        5      -  [        [        [        * 45      R                  5       [        [        5      [	        [
        5      -  [        [        5      -  :X  d   e[        [        [        5      S-  5      R                  [        5      S[        S[        -  5      -  S-  S[        S[        -  5      -  S-  -   [        S[        -  5      S-  -
  [        S	S5      -   :X  d   e[        [        [        5      S-  5      R                  5       S[        S[        -  5      -  S-  S[        S[        -  5      -  S-  -   [        S	S5      -   :X  d   e[        [        S[        -  S-   5      [        S[        -  S-   5      -   5      R                  [        5      [        S5      * [        S[        -  5      -  [        S[        -  5      [        S5      -  -   [        S5      [        S[        -  5      -  -   [        S5      [        S[        -  5      -  -   :X  d   e[        [        [        5      [        [        5      [        [        5      -  -   5      R                  [        5      S[        [        5      -  :X  d   e[        [        [        [        -  5      [        S
S45      R                  [        5      [        [        [        -  5      :X  d   e[        [        S[        -  [        -  S-   5      [        S[        -  [        -  5      [	        [        [
        -  5      -  -
  [        S
S45      R                  [        5      [	        [        [
        -  5      * [        S[        -  [        -  5      -  [        S5      [        S[        -  [        -  5      -  -
  [        S5      [        S[        -  [        -  5      -  -   :X  d   eg )Nr   rN   ir       r    rC      rI   rH   )r   r   r   r6   r
   r5   r	   zr   r   r   r   r   r/   r   r   test_FourierSeries_finiterk      s5   #a&!**1-Q777 #a&Q-A."bSz:CCEQPSTUPVWZ[\W]I]]]]#a&!)$--b1SQqS\"_qQqSzRT}5TWZ[\]^[^W_`bWb5ba_6   #a&A+&//1S3q1u:5E5JQQTUVYZUZQ[^^`M`5`a_6   #ac!e*s1Q3q5z12;;B?SVGCPQRSPSHDTWZ[\]^[^W_`cde`fWfDfVC!H_E"1vc!A#hE/ / / /#a&QA./88<#a&HHH#bd)aQZ099"=RTJJJ#ad1fqj/C"QKBqD	,AAAr1:NWWXZ[`cdfghdh`i_ijmnoprnrstntju_uVC"QK` "%a&QrT!V"4`5 5 5 5r   N)'sympy.core.addr   sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr   &sympy.functions.elementary.exponentialr	   r
   $sympy.functions.elementary.piecewiser   (sympy.functions.elementary.trigonometricr   r   r   r   sympy.series.fourierr   r   sympy.testing.pytestr   	functoolsr   r   r5   rj   r   r@   rF   rL   rO   r`   rb   rf   rk   r/   r   r   <module>rv      s~     1 1 " % = : J J / . ' 
'
1a  ,=^>5J02@B"5r   