
    g+                        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=d"S )#    )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 d S N)r   r   intervalEmptySetlengthZerolist     ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/series/tests/test_sequences.pytest_EmptySequencer(      sf    ?m++++?#qz1111?!QV++++  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 d S )N   r   
            )r   r   nyx
isinstancegenr    r   startstopr"   	variablesr   ss    r'   test_SeqExprr9      s     	aAaB00Aa!!!!!5Q1I:!R((((7a<<<<6R<<<<8r>>>>;1$5Aq>>5Ar??3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 |                     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 d S )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                  H    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                  @    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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>>))))8q====771::????>aS    77q!Q1a(((((QQQ4Aq!Q1%%%%%1a)a"a[))!A#.1aAq!2DDDDD
:;;<<<
:>>???
:445551adAqD/Aq":..rr2	
AqD!Q$1a4A&' ' ' '1adAqD/Aq":..rr26K6K6KKKKK1a&1a*%%bqb)aAq!Q-???????r&   c            
         t          t          dz  t          ddf          } t          | t                     sJ | j        t          dz  k    sJ |                     d          dk    sJ t          |           d t          d          D             k    sJ | d d          d t          d          D             k    sJ t          t          dz  t          t           df          dd         d	 t          d          D             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          	                    t          t                    t          t          dz  dt          f          k    sJ t          t          t          dz  z  t          dt          f          	                    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          }|                                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          }|                    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 |                                t          t!          t          t          dz  z  t          t          z  z             t          ddf          k    s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          }|                                t          t%          t          t          dz  z            t%          t          t          z            z  t          ddf          k    sJ |                    d          t          t%          t          t          dz  z  t          t          z  z             t          ddf          k    sJ |                    dd          t          t%          t          t          dz  t          z   z            t          ddf          k    sJ d S )Nr-   r   r;   r.   	   c                     g | ]}|d z  S r-   r%   .0is     r'   
<listcomp>z#test_SeqFormula.<locals>.<listcomp>N   s    ...q!t...r&   r<   c                     g | ]}|d z  S rR   r%   rS   s     r'   rV   z#test_SeqFormula.<locals>.<listcomp>O   s    +++QAqD+++r&   c                     g | ]}|d z  S rR   r%   rS   s     r'   rV   z#test_SeqFormula.<locals>.<listcomp>P   s    1I1I1I1!Q$1I1I1Ir&   c                  2    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                  X    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                  P    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)mulr_   )r   r/   r2   formularJ   r$   ranger   rM   subsr1   r   rL   r0   zexpandr   r   r   )r8   seqs     r'   test_SeqFormularg   G   s   1a4!Q##Aa$$$$$91771::????77..U1XX.......QQQ4++%((+++++++adQQK((1-1I1Ia1I1I1IIIIIadQG$$
1a4!Q(D(DDDDDadQF##((A..*QTAq62J2JJJJJa1fq!Rj))..q!441QT6Aq":&&' ' ' ' :::;;;
:==>>>
:::;;;
Q1q\Aq#;
/
/C::<<:a1fqslQ3K@@@@@@
SAqD1H&&1c{
3
3C::4:  Js1QT6{{3qs88/Cc!A#hhsSTUVXYUYSY{{FZ/Z]^`acf\g$h$hhhhh::<<:c!AqD&1Q3,&7&7!QEEEEEE::5:!!ZAadFQqSL0A0AAq#;%O%OOOOO
SAqD1H&&As
4
4C::<<:c!AqD&kk#ac((&:Q3KHHHHHH:::&&*S1a4!A#5F5FAs*T*TTTTT::%5:11ZAq!taxL@Q@QTUWXZ]S^5_5_______r&   c                  f   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 d S )Nr-   r   r;   r>   )r   r/   r   r   )formperinters      r'   test_sequencerl   g   s    adQ1I&&D
Q1I
&
&Cq!tEAqD1a)$$,,,,I1ay))S0000AqD>>U""""""r&   c                  z   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 d S )Nr-   r   r+   r>   r;   r<   )r   r/   r   rM   r   r3   r    r   r4   r5   r"   r6   )ri   rj   r8   s      r'   test_SeqExprOprn   q   s    adQ2J''D
Q2J
'
'C$A5QT9%%%%%:!R((((7a<<<<6R<<<<8q====;1a&      r&   c            	         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 d S )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   rj   ri   per_bouform_bou	form_bou2r8   s1s2s           r'   test_SeqAddr   ~   sA   
Q2J
'
'CadDVaAY''G!Q$((H1a4((I88q&&&&!/""ao5555#;;##q''3....'8$$7777w	E222A6i)))))QQQ4%%%%%%%77(((((((fS'E:::FCCCCC	W		Bb&!!!!!*Q1I666666	h		Bb*%%%%%AadFG,,,,,,$#&&sJqAvw//001 1 1 1$x--..sJqAvw//001 1 1 1#vdH-->>>sJqAvw//001 1 1 1 &!Q,,fVaBZ.H.HIIv1bz""# # # # # #r&   c            	         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 d S )Nr>   r   r-   rp   r*   r;   r<   r+   rr   Frs   )r*   rD   rP          )r*   rG   r.   r-   r-   r<   rG   rq   )r*   rG   )
r   r/   r   r   r   r   r   rx   r$   r2   ry   s           r'   test_SeqMulr      sE   
Q2J
'
'CadDVaAY''G!Q$Ar
++H1a4((I88q&&&&!/""ao5555#;;##q''1?::::'8$$7777w	E222A6i)))))QQQ4$$$$$$$77'''''''fS'E:::FCCCCC	W		Bb&!!!!!*Q1I666666	h		Bb*%%%%%AqD'******$#&&sJq!tW--../ / / /$x--..sJq!tW--../ / / /#vdI',. . .8=? ? ?tS)e4445 5 5 5 &!Q,,fVaBZ.H.HI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           d S )	Nrp   r   r-   r-   r.   )r.   r;   r.   c                       t           z   S r   r/   rj   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ri   rj   s    @r'   test_addr      s    
!Q
$
$CadD&..!VFQ2J%?%?????*QT"""jA1&=&=====:T******
9oooo&&&
9oooo&&&&&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           d S )	Nrp   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A:ad##$
1a4!Q$;(?(?????:dU++++++
9oooo&&&
9oooo&&&&&r&   c                     t          dt          dt          f                              d          t          dt          dt          f          k    sJ t	          t          dz                                d          t	          dt          dz  z            k    sJ t
          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            d S )Nrp   r   r-   rw   r]   r   )r-   r<   r.   r;   c                  @    t          t          dz            t          z  S r[   )r   r/   r%   r&   r'   r@   z%test_mul__coeff_mul.<locals>.<lambda>   s    hq!tnnq0 r&   c                  @    t           t          t           dz            z  S r[   )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      s   &1a*%%//22fVaBZ6P6PPPPPad%%a((JqAv,>,>>>>>?$$S))Q_<<<<&1a*%%8v1bz""# # # #adjA...*QT2B2BBBBB?Z1---@@@@adao-@@@@
900111
9001111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 d S )N)r*   r   )r   r-   r-   )r   r/   r   r   r%   r&   r'   test_negr      sj    7Q2J'''6'Aq":+F+FFFFFq!t
AqD5 1 111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 |                    t                    t          t          t          dz  z  t          dt          f          k    sJ |                     t                    t          t          dt          z  ft          dt          f          k    sJ d S )Nrp   r   rw   r-   r.   )r.   r<   rG   )
r   r/   r   r   r   r   r   r   r   rM   )rj   per2ri   form2s       r'   test_operationsr      sc   
!Q
$
$C&1a*%%DadDq!tE:T5!9!99999:TE6!:!::::::'6#t+<+<<<<<:vfq!Rj'A'A4 H HHHHH?S SD(((($;*Qq!tV,,,,,,:T5!9!99999$;*QT******4%<:q!te,,,,,,3;6$sE0B0B#C#CCCCC39d!3!33333>>!
1QT6Aq": > >>>>>==vq!A#hAr
;;;;;;;;r&   c                      t          dt                     t          d           t           ddf          d d           fdt	          d          D             k    sJ t          d ddf          d d          g d	k    sJ d S )
NrU   )clsrr   r;   c                 <    g | ]}                     |          S r%   )rc   )rT   jrU   r   s     r'   rV   z#test_Idx_limits.<locals>.<listcomp>  s%    *J*J*JA166!Q<<*J*J*Jr&   r<   rp   )r*   r-   r*   r-   r*   r-   )r   r   r   r   rb   r   )rU   r   s   @@r'   test_Idx_limitsr     s    AQAa!Q##AAA&*J*J*J*J*Jq*J*J*JJJJJ&1a)$$QQQ'+=+=+=======r&   c                     t          dt          ddf                              d          ddgk    sJ t          dt          ddf                              d          g dk    sJ t          t          t          d	z  z  t          t          z  z   t          dt
          f                              d          g d
k    sJ t          t          t          z  t          ddf                              d          t          gk    sJ t          d                              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                                 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                              d          ddgk    sJ t          dt          ddf                              d          g k    sJ t          dt          ddf                              dt                    g d fk    sJ t          dt          ddf                              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                                                  dt                    ddgt           t          dz  t          z   dz
  z  fk    sJ t          t          t                                                  dt                    g dt           t          d	z  t          dz  z   t          z   dz
  z  fk    sJ d S )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   ir   (   r   )r*   r*   r*   )
r   r/   find_linear_recurrencer1   r0   r   r   r   r   r
   r%   r&   r'   test_find_linear_recurrencer     s   92J &&r**q!f5 5 5 5 !Rj 0044H H H HAadF1Q3JAr
++BB2FF~~   AqD1Qr(##::2>>1#EEEEG33B::iiiGGGGa$q''k1_q(477{^A!  44R88QFC C C CADGGQ**Q!d1gg+q0@QB/G-GGqH $$R((QF3 3 3 3KAq	**AA!DDJJJJNAq!9--DDQQDOO
Dz   NAq!9--DDQQDOO	"a#xA/#ad(RT/A2E1a4RTUVXYUYRYHY\^_`\`H`bcHc1def f f fIaLL!!88!8DD	
AAqD1HqL!"# # # #JqMM""99"19EE	QB1q!ta!+,-. . . . . .r&   c                      t          d          } t          d          }t           | |dz
             | |dz
            z    | |          |ddg          }|                    d          dk    sJ d S )Nr0   r/   r*   r-   r   r.   )r   r	   r   rJ   )r0   r/   fibs      r'   test_RecursiveSeqr   4  su    AsA
qqQxx!!AE((*AAaDD!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   rd   r/   rM   r(   r9   rN   rg   rl   rn   r   r   r   r   r   r   r   r   r   r   r%   r&   r'   <module>r      s   ' ' ' ' ' ' ( ( ( ( ( ( + + + + + + + + " " " " " " - - - - - - - - G G G G G G G G 6 6 6 6 6 6 9 9 9 9 9 9 = = = = = = = = & & & & & &              $ $ $ $ $ $ - - - - - - - - C C C C C C C C C C - - - - - - - -
''

1awu~~1' ' 'A A A"@ @ @.` ` `@# # #
! 
! 
!$# $# $#N%# %# %#P
' 
' 
'
' 
' 
'2 2 2 2 2 2
< < <0> > > . . ..    r&   