
    sg+                        d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
mZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZmZmZmZmZ d dlmZ d dl m!Z!m"Z" d dlm#Z#m$Z$m%Z% d dl&m'Z'm(Z(  e
d      \  Z)Z*Z+ e
d      \  Z,Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;e(d         Z<d! Z=y")#    )Tuple)Function)ooRational)S)symbolsSymbol)
tribonacci	fibonacci)exp)sqrt)cossin)EmptySequence)SeqMulSeqAddSeqPer
SeqFormulasequence)Interval)IndexedIdx)SeqExpr	SeqExprOpRecursiveSeq)raisesslowzx y zzn mc                      t         j                  t        u sJ t         j                  j                  t         j                  u sJ t         j                  j                  t         j
                  u sJ t        t         j                        g k(  sJ y N)r   r   intervalEmptySetlengthZerolist     T/var/www/html/venv/lib/python3.12/site-packages/sympy/series/tests/test_sequences.pytest_EmptySequencer(      sc    ??m+++??##qzz111??!!QVV+++ B&&&r&   c                     t        t        dt        t              t        t        dd            } t        | t               sJ | j                  dt        t        fk(  sJ | j                  t        dd      k(  sJ | j                  dk(  sJ | j                  dk(  sJ | j                  dk(  sJ | j                  t        fk(  sJ t        t        ddd      t        t        dt                    j                  t        u sJ y )N   r   
            )r   r   nyx
isinstancegenr    r   startstopr"   	variablesr   ss    r'   test_SeqExprr9      s     	aAaB0Aa!!!55Q1I::!R(((77a<<66R<<88r>>;;1$5Aq>5Ar?3::b@@@r&   c                     t        dt        dft        ddf      } t        | t               sJ | j                  t        dt        d      k(  sJ | j                  dk(  sJ | j                  d      dk(  sJ | j                  t        hk(  sJ t        |       dt        ddt        dgk(  sJ | d d  dt        ddt        dgk(  sJ t        dt        dft        t         df      dd dt        ddt        dgk(  sJ t        t        d        t        t        d        t        t        d        t        t        t        d	z  t        dz  ft        dt        f      d d t        t        d	z  t        dz  t        t        d	z  t        dz  gk(  sJ t        t        t        d	z  t        dz  ft        dt        f      d d g d
k(  sJ t        t        t        ft        dt        f      d d dt        d	t        dt        gk(  sJ y )Nr*   r.   r         c                      t        dd      S )Nr*   r-   r.   r   r*   r-   )r   r%   r&   r'   <lambda>ztest_SeqPer.<locals>.<lambda>=   s    vi; r&   c                  :    t        dt        t         t        f      S )Nr>   )r   r1   r   r%   r&   r'   r@   ztest_SeqPer.<locals>.<lambda>>   s    vi!bS"> r&   c                  4    t        t        dz  dt        f      S Nr-   r   )r   r/   r   r%   r&   r'   r@   ztest_SeqPer.<locals>.<lambda>?   s    vadQG4 r&   r-   )r   r*      r.      }      )r   r/   r1   r2   
periodicalr   periodcoefffree_symbolsr$   r   r   
ValueErrormr7   s    r'   test_SeqPerrN   0   s   1ay1a)$Aa   <<5Aq>)))88q==771:??>>aS   7q!Q1a((((Q4Aq!Q1%%%%1a)a"a[)!A.1aAq!2DDDD
:;<
:>?
:451adAqD/Aq":.r2	
AqD!Q$1a4A&' ' '1adAqD/Aq":.r26KKKK1a&1a*%bq)aAq!Q-????r&   c            
      	   t        t        dz  t        ddf      } t        | t               sJ | j                  t        dz  k(  sJ | j	                  d      dk(  sJ t        |       t        d      D cg c]  }|dz  	 c}k(  sJ | d d  t        d      D cg c]  }|dz  	 c}k(  sJ t        t        dz  t        t         df      dd t        d      D cg c]  }|dz  	 c}k(  sJ t        t        dz  dt        f      t        t        dz  t        dt        f      k(  sJ t        t        dz  dt        f      j                  t        t              t        t        dz  dt        f      k(  sJ t        t        t        dz  z  t        dt        f      j                  t        t              t        t        t        dz  z  t        dt        f      k(  sJ t        t        d        t        t        d        t        t        d	        t        t        t        dz  t        z   z  t        d
df      }|j                         t        t        t        dz  z  t        t        z  z   t        d
df      k(  sJ t        t!        t        t        dz  t        z   z        t        d
df      }|j                  d      t        t!        t        t        dz  z        t#        t        t        z        z  t!        t        t        z        t#        t        t        dz  z        z  z   t        d
df      k(  sJ |j                         t        t!        t        t        dz  z  t        t        z  z         t        d
df      k(  sJ |j                  d      t        t!        t        t        dz  z  t        t        z  z         t        d
df      k(  sJ t        t%        t        t        dz  t        z   z        t        d
df      }|j                         t        t%        t        t        dz  z        t%        t        t        z        z  t        d
df      k(  sJ |j                  d      t        t%        t        t        dz  z  t        t        z  z         t        d
df      k(  sJ |j                  dd      t        t%        t        t        dz  t        z   z        t        d
df      k(  sJ y c c}w c c}w c c}w )Nr-   r   r;   r.   	   r<   c                  (    t        t        dz  d      S )Nr-   r?   )r   r/   r%   r&   r'   r@   z!test_SeqFormula.<locals>.<lambda>X   s    z!Q$	: r&   c                  H    t        t        dz  t        t         t        f      S Nr-   )r   r/   r   r%   r&   r'   r@   z!test_SeqFormula.<locals>.<lambda>Y   s    z!Q$RC= r&   c                  B    t        t        t        dz  z  dt        f      S rC   )r   rM   r/   r   r%   r&   r'   r@   z!test_SeqFormula.<locals>.<lambda>Z   s    z!AqD&1b': r&   r*   d   T)trigF)	power_exp)mulrW   )r   r/   r2   formularJ   r$   ranger   rM   subsr1   r   rL   r0   zexpandr   r   r   )r8   iseqs      r'   test_SeqFormular`   G   s   1a4!Q#Aa$$$991771:??7U1X.q!t....Q4%(+QAqD++++adQQK(1-a1I1!Q$1IIIIadQG$
1a4!Q(DDDDadQF#((A.*QTAq62JJJJa1fq!Rj)..q!41QT6Aq":&' ' ' ::;
:=>
::;
Q1q\Aq#;
/C::<:a1fqslQ3K@@@@
SAqD1H&1c{
3C::4: Js1QT6{3qs8/Cc!A#hsSTUVXYUYSY{FZ/Z]^`acf\g$hhhh::<:c!AqD&1Q3,&7!QEEEE::5:!ZAadFQqSL0AAq#;%OOOO
SAqD1H&As
4C::<:c!AqD&k#ac(&:Q3KHHHH:::&*S1a4!A#5FAs*TTTT::%5:1ZAq!taxL@QTUWXZ]S^5____/ /+1Is   2SS"S'c                     t        t        dz  t        ddf      } t        dt        ddf      }t        t        dz        }t        t        dz  t        ddf      | k(  sJ t        dt        ddf      |k(  sJ t        t        dz        |k(  sJ y )Nr-   r   r;   r>   )r   r/   r   r   )formperinters      r'   test_sequencere   g   s    adQ1I&D
Q1I
&Cq!tEAqD1a)$,,,I1ay)S000AqD>U"""r&   c                  |   t        t        dz  t        ddf      } t        dt        ddf      }t	        | |      }|j
                  t        dz  dfk(  sJ |j                  t        dd      k(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  t        t        fk(  sJ y )Nr-   r   r+   r>   r;   r<   )r   r/   r   rM   r   r3   r    r   r4   r5   r"   r6   )rb   rc   r8   s      r'   test_SeqExprOprg   q   s    adQ2J'D
Q2J
'C$A55QT9%%%%::!R(((77a<<66R<<88q==;;1a&   r&   c            	      v   t        dt        dt        f      } t        t        dz        }t        dt        ddf      }t        t        dz  d      }t        t        dz  d      }t	               t
        j                  k(  sJ t	        t
        j                        t
        j                  k(  sJ t	        |       | k(  sJ t	        | t
        j                        | k(  sJ t	        ||      t
        j                  k(  sJ t	        ||d	
      }|j                  ||fk(  sJ |d d  g dk(  sJ t        |      g dk(  sJ t        t	        | |d	
      t              sJ t	        | |      }t        |t               sJ |t        dt        ddf      k(  sJ t	        ||      }t        |t              sJ |t        dt        dz  z  d      k(  sJ t	        |||       t	        | t        dt        dz  z  d            k(  sJ t	        |t	        ||             t	        | t        dt        dz  z  d            k(  sJ t	        | t	        ||      d	
      t	        | t        dt        dz  z  d            k(  sJ t	        t        dt        dt        f      t        dt        dt        f            t        dt        dt        f      k(  sJ y )Nr>   r   r-   r*   r-   r*   r;   r<   r+   r*   r;   Fevaluate)r-   r<   r+         )r-   rG   rG   r.   r.   r;   r-   rG   )r   r/   r   r   r   r   r   argsr$   r2   rM   rc   rb   per_bouform_bou	form_bou2r8   s1s2s           r'   test_SeqAddrx   ~   s   
Q2J
'CadDVaAY'G!Q$(H1a4(I8q&&&!//"aoo555#;##q'3...'8$777w	E2A66i))))Q4%%%%7((((fS'E:FCCC	W	Bb&!!!*Q1I6666	h	Bb*%%%AadFG,,,,$#&sJqAvw/01 1 1$x-.sJqAvw/01 1 1#vdH->sJqAvw/01 1 1 &!Q,fVaBZ.HIv1bz"# # #r&   c            	      p   t        dt        dt        f      } t        t        dz        }t        dt        ddf      }t        t        dz  t        ddf      }t        t        dz  d	      }t	               t
        j                  k(  sJ t	        t
        j                        t
        j                  k(  sJ t	        |       | k(  sJ t	        | t
        j                        t
        j                  k(  sJ t	        ||      t
        j                  k(  sJ t	        ||d
      }|j                  ||fk(  sJ |d d  g dk(  sJ t        |      g dk(  sJ t        t	        | |d
      t              sJ t	        | |      }t        |t               sJ |t        dt        ddf      k(  sJ t	        ||      }t        |t              sJ |t        t        dz  d      k(  sJ t	        |||       t	        | t        t        dz  d            k(  sJ t	        |t	        ||             t	        | t        t        dz  d            k(  sJ t	        | t	        ||d
      d
      t	        || |d
      k(  sJ t	        t        dt        dt        f      t        dt        dt        f            t        dt        dt        f      k(  sJ y )Nr>   r   r-   ri   r*   r;   r<   r+   rk   Frl   )r*   rD   rP          )r*   rG   r.   r-   r-   r<   rG   rj   )r*   rG   )
r   r/   r   r   r   r   r   rq   r$   r2   rr   s           r'   test_SeqMulr|      s   
Q2J
'CadDVaAY'G!Q$Ar
+H1a4(I8q&&&!//"aoo555#;##q'1??:::'8$777w	E2A66i))))Q4$$$$7''''fS'E:FCCC	W	Bb&!!!*Q1I6666	h	Bb*%%%AqD'****$#&sJq!tW-./ / /$x-.sJq!tW-./ / /#vdI',.8=?tS)e45 5 5 &!Q,fVaBZ.HIv1bz"# # #r&   c                     t        dt        dt        f      t        t        dz        } t        d      z   t        dt        dt        f      k(  sJ | t        t        dz        z   t        t        dz  t        dz  z         k(  sJ | z   t	        |       k(  sJ t        t        fd       t        t        fd       y )	Nri   r   r-   r-   r.   )r.   r;   r.   c                       t         z   S r   r/   rc   s   r'   r@   ztest_add.<locals>.<lambda>       cAg r&   c                      t          z   S r   r   r   s   r'   r@   ztest_add.<locals>.<lambda>       a#g r&   r   r/   r   r   r   r   	TypeErrorrb   rc   s    @r'   test_addr      s    
!Q
$CadD&.!VFQ2J%????*QT""jA1&====:T****
9o&
9o&r&   c                     t        dt        dt        f      t        t        dz        } t        d      z
  t        dt        dt        f      k(  sJ | t        t        dz        z
  t        t        dz  t        dz  z
        k(  sJ | z
  t	        |        k(  sJ t        t        fd       t        t        fd       y )	Nri   r   r-   r~   )r   r.   c                       t         z
  S r   r   r   s   r'   r@   ztest_sub.<locals>.<lambda>   r   r&   c                      t          z
  S r   r   r   s   r'   r@   ztest_sub.<locals>.<lambda>   r   r&   r   r   s    @r'   test_subr      s    
!Q
$CadD&.!VHq!Rj%AAAA:ad#$
1a4!Q$;(????:dU++++
9o&
9o&r&   c                  d   t        dt        dt        f      j                  d      t        dt        dt        f      k(  sJ t	        t        dz        j                  d      t	        dt        dz  z        k(  sJ t
        j                  j                  d      t
        j                  k(  sJ t        dt        dt        f      t        d      z  t        dt        dt        f      k(  sJ t	        t        dz        t	        t        dz        z  t	        t        d	z        k(  sJ t
        j                  t	        t        dz        z  t
        j                  k(  sJ t	        t        dz        t
        j                  z  t
        j                  k(  sJ t        t        d
        t        t        d        y )Nri   r   r-   rp   rU   r~   )r-   r<   r.   r;   c                  4    t        t        dz        t        z  S rS   )r   r/   r%   r&   r'   r@   z%test_mul__coeff_mul.<locals>.<lambda>   s    hq!tnq0 r&   c                  4    t         t        t         dz        z  S rS   )r/   r   r%   r&   r'   r@   z%test_mul__coeff_mul.<locals>.<lambda>   s    a(1a4.0 r&   )	r   r/   r   	coeff_mulr   r   r   r   r   r%   r&   r'   test_mul__coeff_mulr      sI   &1a*%//2fVaBZ6PPPPad%%a(JqAv,>>>>??$$S)Q__<<<&1a*%8v1bz"# # #adjA..*QT2BBBB??Z1--@@@adaoo-@@@
901
901r&   c                      t        dt        dt        f       t        dt        dt        f      k(  sJ t        t        dz         t        t        dz         k(  sJ y )N)r*   r   )r   r-   r-   )r   r/   r   r   r%   r&   r'   test_negr      sR    7Q2J''6'Aq":+FFFFq!t
AqD5 1111r&   c            	         t        dt        dt        f      } t        dt        dt        f      }t        t        dz        }t        t        dz        }| |z   |z   t	        | ||      k(  sJ | |z   |z
  t	        | ||       k(  sJ | |z   t
        j                  z
  t	        | |      k(  sJ | |z   |z   t	        t        dt        dt        f      |      k(  sJ t
        j                  | z
  |  k(  sJ ||z   t        dt        dz  z        k(  sJ | |z  |z  t        | ||      k(  sJ ||z  t        t        dz        k(  sJ || z  t        t        dz         k(  sJ || |z   z  t        |t	        | |            k(  sJ || | z   z  t        ||      k(  sJ |j                  t              t        t        t        dz  z  t        dt        f      k(  sJ | j                  t              t        t        dt        z  ft        dt        f      k(  sJ y )Nri   r   rp   r-   r.   )r.   r<   rG   )
r   r/   r   r   r   r   r   r   r   rM   )rc   per2rb   form2s       r'   test_operationsr      s   
!Q
$C&1a*%DadDq!tE:T5!9999:TE6!:::::'6#t+<<<<:vfq!Rj'A4 HHHH??S SD((($;*Qq!tV,,,,:T5!9999$;*QT****4%<:q!te,,,,3;6$sE0B#CCCC39d!3333>>!
1QT6Aq": >>>>==vq!A#hAr
;;;;r&   c                      t        dt              } t        d|       }t        || ddf      d d  t	        d      D cg c]  }|j                  | |       c}k(  sJ t        d| ddf      d d  g dk(  sJ y c c}w )	Nr^   )clsrr   r;   r<   ri   )r*   r-   r*   r-   r*   r-   )r   r   r   r   rZ   r[   r   )r^   r   js      r'   test_Idx_limitsr     sy    AQAa!Q#A&q*JA166!Q<*JJJJ&1a)$Q'+==== +Ks   A6c                  l   t        dt        ddf      j                  d      ddgk(  sJ t        dt        ddf      j                  d      g dk(  sJ t        t        t        d	z  z  t        t        z  z   t        dt
        f      j                  d      g d
k(  sJ t        t        t        z  t        ddf      j                  d      t        gk(  sJ t        d      j                  dd      g dk(  sJ t        dt        d      z   dz  t        z  dt        d      z    dz  t         z  z         j                  d      ddgk(  sJ t        t        dt        d      z   dz  t        z  z  t        dt        d      z    dz  t         z  z  z   t        dt
        f      j                  d      ddgk(  sJ t        dt        ddf      j                  d      g k(  sJ t        dt        ddf      j                  dt              g d fk(  sJ t        dt        ddf      j                  dt              t        dd      dt        dd      gdt        dz  z  dt        z  z   dz
  dt        d	z  z  dt        dz  z  z
  dt        z  z   dz
  z  fk(  sJ t        t        t                    j                  dt              ddgt         t        dz  t        z   dz
  z  fk(  sJ t        t        t                    j                  dt              g dt         t        d	z  t        dz  z   t        z   dz
  z  fk(  sJ y )N)r   r*   r*   r-   r.   r;   rD         "   7   r   r+   r,   r*   )r*   r-   rG            iF  i
  i2  i  iv i*    )r;   r   r<   ir.   )rG   irG   r      r   r>   r;   )r   r   r*   r-   )r*   r-   r.   rG   r<   rG   )r-   r.   rG   r;   r<   O   r<   )gfvar)r-   r.   rG   r;   rD         i   irz   (   r   )r*   r*   r*   )
r   r/   find_linear_recurrencer1   r0   r   r   r   r   r
   r%   r&   r'   test_find_linear_recurrencer     sA   92J&&r*q!f5 5 5 !Rj004H H HAadF1Q3JAr
+BB2F  AqD1Qr(#::2>1#EEEG33B:iGGGa$q'k1_q(47{^A! 44R8QFC C CADGQ**Q!d1g+q0@QB/G-GGqH$$R(QF3 3 3KAq	*AA!DJJJNAq!9-DDQQDO
Dz  NAq!9-DDQQDO	"a#xA/#ad(RT/A2E1a4RTUVXYUYRYHY\^_`\`H`bcHc1def f fIaL!88!8D	
AAqD1HqL!"# # #JqM"99"19E	QB1q!ta!+,-. . .r&   c                      t        d      } t        d      }t         | |dz
         | |dz
        z    | |      |ddg      }|j                  d      dk(  sJ y )Nr0   r/   r*   r-   r   r.   )r   r	   r   rJ   )r0   r/   fibs      r'   test_RecursiveSeqr   4  sW    AsA
qQx!AE(*AaD!aV
<C99Q<1r&   N)>sympy.core.containersr   sympy.core.functionr   sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   r	   %sympy.functions.combinatorial.numbersr
   r   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.seriesr   sympy.series.sequencesr   r   r   r   r   sympy.sets.setsr   sympy.tensor.indexedr   r   r   r   r   sympy.testing.pytestr   r   r1   r0   r\   r/   rM   r(   r9   rN   r`   re   rg   rx   r|   r   r   r   r   r   r   r   r   r%   r&   r'   <module>r      s    ' ( + " - G 6 9 = &  $ - C C -
'
1au~1'A"@.`@#
!$#N%#P
'
'2 2
<0> . ..r&   