o
    jg+                     @   s  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d Z.dd Z/dd Z0dd Z1dd Z2dd Z3dd Z4d d! Z5d"d# Z6d$d% Z7d&d' Z8d(d) Z9d*d+ Z:d,d- Z;e(d.d/ Z<d0d1 Z=d2S )3    )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                   C   sH   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 r#   r#   Y/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/series/tests/test_sequences.pytest_EmptySequence   s   r%   c                  C   s   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s6J | jdks=J | jtfksEJ t tdddttdtjtu sWJ d S )N   r   
            )r   r   nyx
isinstancegenr   r   startstopr    	variablesr   sr#   r#   r$   test_SeqExpr   s   (r5   c                  C   s  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s5J t	| dtddtdgksCJ | d d  dtddtdgksSJ t dtdftt
 dfdd dtddtdgksmJ ttdd  ttdd  ttd	d  t ttd
 td ftdt
fd d ttd
 td ttd
 td gksJ t ttd
 td ftdt
fd d g dksJ t ttftdt
fd d dtd
tdtgksJ d S )Nr&   r*   r         c                   S   s
   t ddS )Nr&   r)   r*   r   r&   r)   )r   r#   r#   r#   r$   <lambda>=   s   
 ztest_SeqPer.<locals>.<lambda>c                   S   s   t dtt tfS )Nr8   )r   r-   r   r#   r#   r#   r$   r:   >       c                   S   s   t td dtfS Nr)   r   )r   r+   r   r#   r#   r#   r$   r:   ?   r;   r)   )r   r&      r*      }      )r   r+   r-   r.   
periodicalr   periodcoefffree_symbolsr"   r   r   
ValueErrormr3   r#   r#   r$   test_SeqPer0   s"    4$24rG   c                  C   sd  t td tddf} t| t sJ | jtd ksJ | ddks#J t| dd tdD ks2J | d d  d	d tdD ksCJ t td tt dfdd d
d tdD ks]J t td dtft td tdtfksrJ t td dtf	tt
t td dt
fksJ t ttd  tdtf	tt
t t
td  tdtfksJ ttdd  ttdd  ttdd  t t
td t  tddf}| t t
td  t
t  tddfksJ t tt
td t  tddf}|jddt tt
td  tt
t  tt
t tt
td    tddfksJ | t tt
td  t
t  tddfks5J |jddt tt
td  t
t  tddfksPJ t tt
td t  tddf}| t tt
td  tt
t  tddfks{J |jddt tt
td  t
t  tddfksJ |jdddt tt
td t  tddfksJ d S )Nr)   r   r6   r*   	   c                 S      g | ]}|d  qS r)   r#   .0ir#   r#   r$   
<listcomp>N       z#test_SeqFormula.<locals>.<listcomp>r7   c                 S   rI   rJ   r#   rK   r#   r#   r$   rN   O   rO   c                 S   rI   rJ   r#   rK   r#   r#   r$   rN   P   rO   c                   S   s   t td dS )Nr)   r9   )r   r+   r#   r#   r#   r$   r:   X   s    z!test_SeqFormula.<locals>.<lambda>c                   S   s   t td tt tfS Nr)   )r   r+   r   r#   r#   r#   r$   r:   Y       c                   S   s   t ttd  dtfS r<   )r   rF   r+   r   r#   r#   r#   r$   r:   Z   rQ   r&   d   T)trigF)	power_exp)mulrT   )r   r+   r.   formularC   r"   ranger   rF   subsr-   r   rE   r,   zexpandr   r   r   )r4   seqr#   r#   r$   test_SeqFormulaG   s2   "4*0, V26 668r\   c                  C   s|   t td tddf} tdtddf}t td }ttd tddf| ks&J tdtddf|ks2J ttd |ks<J d S )Nr)   r   r6   r8   )r   r+   r   r   )formperinterr#   r#   r$   test_sequenceg   s   r`   c                  C   s   t td tddf} tdtddf}t| |}|jtd dfks"J |jtddks,J |jdks3J |j	dks:J |j
dksAJ |jttfksJJ d S )Nr)   r   r'   r8   r6   r7   )r   r+   r   rF   r   r/   r   r   r0   r1   r    r2   )r]   r^   r4   r#   r#   r$   test_SeqExprOpq   s   
ra   c                  C   s*  t dtdtf} ttd }t dtddf}ttd d}ttd d}t tjks,J ttjtjks6J t| | ks>J t| tj| ksHJ t||tjksRJ t||d	d
}|j||fksbJ |d d  g dksnJ t|g dksxJ t	t| |d	d
tsJ t| |}t	|t sJ |t dtddfksJ t||}t	|tsJ |tdtd  dksJ t||| t| tdtd  dksJ t|t|| t| tdtd  dksJ t| t||d	d
t| tdtd  dksJ tt dtdtft dt
dtft dtdtfksJ d S )Nr8   r   r)   r&   r)   r&   r6   r7   r'   r&   r6   Fevaluate)r)   r7   r'         )r)   r@   r@   r*   r*   r6   r)   r@   )r   r+   r   r   r   r   r   argsr"   r.   rF   r^   r]   per_bouform_bou	form_bou2r4   s1s2r#   r#   r$   test_SeqAdd~   sB   


 rq   c                  C   s"  t dtdtf} ttd }t dtddf}ttd tddf}ttd d	}t tjks/J ttjtjks9J t| | ksAJ t| tjtjksLJ t||tjksVJ t||d
d}|j||fksfJ |d d  g dksrJ t|g dks|J t	t| |d
dtsJ t| |}t	|t sJ |t dtddfksJ t||}t	|tsJ |ttd dksJ t||| t| ttd dksJ t|t|| t| ttd dksJ t| t||d
dd
dt|| |d
dksJ tt dtdtft dtdtft dtdtfksJ d S )Nr8   r   r)   rb   r&   r6   r7   r'   rd   Fre   )r&   r=   rH          )r&   r@   r*   r)   r)   r7   r@   rc   )r&   r@   )
r   r+   r   r   r   r   r   rj   r"   r.   rk   r#   r#   r$   test_SeqMul   sJ   



 rt   c                     s   t dtdtf ttd }  t d t dtdtfksJ | ttd  ttd td  ks2J  |  t | ks=J tt fdd tt fd	d d S )
Nrb   r   r)   r)   r*   )r*   r6   r*   c                      s    t  S r   r+   r#   r^   r#   r$   r:          ztest_add.<locals>.<lambda>c                      s   t   S r   rv   r#   rw   r#   r$   r:      rx   r   r+   r   r   r   r   	TypeErrorr]   r#   rw   r$   test_add   s    (r|   c                     s   t dtdtf ttd }  t d t dtdtfksJ | ttd  ttd td  ks2J  |  t |  ks>J tt fdd tt fd	d d S )
Nrb   r   r)   ru   )r}   r*   c                      s    t  S r   rv   r#   rw   r#   r$   r:      rx   ztest_sub.<locals>.<lambda>c                      s   t   S r   rv   r#   rw   r#   r$   r:      rx   ry   r{   r#   rw   r$   test_sub   s    (r~   c                   C   s  t dtdtfdt dtdtfksJ ttd dtdtd  ks(J tjdtjks3J t dtdtft d t dtdtfksIJ ttd ttd  ttd	 ks]J tjttd  tjkskJ ttd tj tjksyJ ttd
d  ttdd  d S )Nrb   r   r)   ri   rR   ru   )r)   r7   r*   r6   c                   S   s   t td t S rP   )r   r+   r#   r#   r#   r$   r:          z%test_mul__coeff_mul.<locals>.<lambda>c                   S   s   t tt d  S rP   )r+   r   r#   r#   r#   r$   r:      r   )	r   r+   r   	coeff_mulr   r   r   r   rz   r#   r#   r#   r$   test_mul__coeff_mul   s   *&(r   c                   C   sJ   t dtdtf t dtdtfksJ ttd  ttd  ks#J d S )N)r&   r   )r}   r)   r)   )r   r+   r   r   r#   r#   r#   r$   test_neg   s   &$r   c                  C   s  t dtdtf} t dtdtf}ttd }ttd }| | | t| ||ks*J | | | t| || ks9J | | tj t| |ksGJ | | | tt dtdtf|ksZJ tj|  |  ksdJ || tdtd  ksrJ | | | t| ||ksJ || ttd ksJ ||  ttd  ksJ || |  t|t| |ksJ || |   t||ksJ |t	tt	td  tdtfksJ | t	t t	dt	 ftdtfksJ d S )Nrb   r   ri   r)   r*   )r*   r7   r@   )
r   r+   r   r   r   r   r   r   r   rF   )r^   per2r]   form2r#   r#   r$   test_operations   s"   & &*r   c                      sr   t dtd td t ddfd d   fddtdD ks%J td	 ddfd d  g d
ks7J d S )NrM   )clsrr   r6   c                    s   g | ]}  |qS r#   )rX   )rL   jrM   r   r#   r$   rN     s    z#test_Idx_limits.<locals>.<listcomp>r7   rb   )r&   r)   r&   r)   r&   r)   )r   r   r   r   rW   r   r#   r#   r   r$   test_Idx_limits  s   
4(r   c                   C   s~  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	  tt  tdtfdg d
ks;J t tt tddfdtgksMJ t dddg dks[J t dtd d t dtd  d t   dddgks|J t tdtd d t  tdtd  d t    tdtfdddgksJ t dtddfdg ksJ t dtddfjdtdg d fksJ t dtddfjdtdtdddtddgdtd  dt  d dtd	  dtd   dt  d  fksJ t ttjdtdddgt td t d  fksJ t t	tjdtdg dt td	 td  t d  fks=J d S )N)r   r&   r&   r)   r*   r6   r=         "   7   r   r'   r(   r&   )r&   r)   r@            iF  i
  i2  i  iv i*    )r6   r   r7   ir*   )r@   ir@   r}      r   r8   r6   )r   r   r&   r)   )r&   r)   r*   r@   r7   r@   )r)   r*   r@   r6   r7   O   r7   )gfvar)r)   r*   r@   r6   r=         i   irr   (   r   )r&   r&   r&   )
r   r+   find_linear_recurrencer-   r,   r   r   r   r
   r	   r#   r#   r#   r$   test_find_linear_recurrence  sL   $$4P
$r   c                  C   sP   t d} td}t| |d | |d  | ||ddg}|ddks&J d S )Nr,   r+   r&   r)   r   r*   )r   r   r   rC   )r,   r+   fibr#   r#   r$   test_RecursiveSeq4  s   *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   r-   r,   rY   r+   rF   r%   r5   rG   r\   r`   ra   rq   rt   r|   r~   r   r   r   r   r   r   r#   r#   r#   r$   <module>   sD    	 
'(
