o
    GZh+  ć                   @   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   ŚintervalZEmptySetŚlengthZZeroŚlist© r!   r!   śP/var/www/auris/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   (r3   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s§J t ttd
 td 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                   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 )Nr6   )r   r+   r   r!   r!   r!   r"   r8   >   ó    c                   S   s   t td dtfS ©Nr'   r   )r   r)   r   r!   r!   r!   r"   r8   ?   r9   r'   )r   r$   é   r(   é   é}   é   )r   r)   r+   r,   Z
periodicalr   ZperiodŚcoeffZfree_symbolsr    r   r   Ś
ValueErrorŚmr1   r!   r!   r"   Śtest_SeqPer0   s"    4$’24rB   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sJ t ttd  tdtf 	tt
”t t
td  tdtfksØJ 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sįJ 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sJ |jdddt tt
td t  tddfks°J d S )Nr'   r   r4   r(   é	   c                 S   ó   g | ]}|d  qS ©r'   r!   ©Ś.0Śir!   r!   r"   Ś
<listcomp>N   ó    z#test_SeqFormula.<locals>.<listcomp>r5   c                 S   rD   rE   r!   rF   r!   r!   r"   rI   O   rJ   c                 S   rD   rE   r!   rF   r!   r!   r"   rI   P   rJ   c                   S   s   t td dS )Nr'   r7   )r   r)   r!   r!   r!   r"   r8   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"   r8   Y   ó    c                   S   s   t ttd  dtfS r:   )r   rA   r)   r   r!   r!   r!   r"   r8   Z   rL   r$   éd   T)ZtrigF)Ś	power_exp)ŚmulrN   )r   r)   r,   Zformular?   r    Śranger   rA   Śsubsr+   r   r@   r*   ŚzŚexpandr   r   r   )r2   Śseqr!   r!   r"   Śtest_SeqFormulaG   s2   "4*0’, V26 668rU   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   r4   r6   )r   r)   r   r   )ŚformŚperŚinterr!   r!   r"   Śtest_sequenceg   s   rY   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%   r6   r4   r5   )r   r)   r   rA   r   r-   r   r   r.   r/   r   r0   )rV   rW   r2   r!   r!   r"   Śtest_SeqExprOpq   s   
rZ   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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  dksµJ t||| t| tdtd  dksÉJ t|t|| t| tdtd  dksßJ t| t||d	d
t| tdtd  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 )Nr6   r   r'   ©r$   r'   r$   r4   ©r5   r%   ©r$   r4   F©Śevaluate)r'   r5   r%   é   é   )r'   r>   r>   r(   r(   r4   ©r'   r>   )r   r)   r   r   r   r   r   Śargsr    r,   rA   ©rW   rV   Zper_bouZform_bouZ	form_bou2r2   Śs1Śs2r!   r!   r"   Śtest_SeqAdd~   sB   


’’’ ’rg   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sJ t| |}t	|t sJ |t dtddfks J t||}t	|ts¬J |ttd dks·J t||| t| ttd dksÉJ t|t|| t| ttd dksŻJ t| t||d
dd
dt|| |d
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 )Nr6   r   r'   r[   r$   r4   r5   r%   r]   Fr^   )r$   r;   rC   é    é   )r$   r>   r(   r'   r'   r5   r>   r\   )r$   r>   )
r   r)   r   r   r   r   r   rc   r    r,   rd   r!   r!   r"   Śtest_SeqMul„   sJ   


’’
’’ž ’rj   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 )
Nr[   r   r'   ©r'   r(   )r(   r4   r(   c                      s    t  S r   ©r)   r!   ©rW   r!   r"   r8   Ö   ó    ztest_add.<locals>.<lambda>c                      s   t   S r   rl   r!   rm   r!   r"   r8   ×   rn   ©r   r)   r   r   r   r   Ś	TypeError©rV   r!   rm   r"   Śtest_addĶ   s    (rr   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 )
Nr[   r   r'   rk   )é’’’’rs   r(   c                      s    t  S r   rl   r!   rm   r!   r"   r8   ć   rn   ztest_sub.<locals>.<lambda>c                      s   t   S r   rl   r!   rm   r!   r"   r8   ä   rn   ro   rq   r!   rm   r"   Śtest_subŚ   s    (rt   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 )Nr[   r   r'   rb   rM   rk   )r'   r5   r(   r4   c                   S   s   t td t S rK   )r   r)   r!   r!   r!   r"   r8   ó   ó    z%test_mul__coeff_mul.<locals>.<lambda>c                   S   s   t tt d  S rK   )r)   r   r!   r!   r!   r"   r8   ō   ru   )	r   r)   r   Ś	coeff_mulr   r   r   r   rp   r!   r!   r!   r"   Śtest_mul__coeff_mulē   s   *&’(rw   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   )rs   r'   r'   )r   r)   r   r   r!   r!   r!   r"   Śtest_neg÷   s   &$ry   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sJ || ttd ksJ ||  ttd  ksJ || |  t|t| |ksŖJ || |   t||ks·J | t	”tt	td  tdtfksŹJ |  t	”t t	dt	 ftdtfksŻJ d S )Nr[   r   rb   r'   r(   )r(   r5   r>   )
r   r)   r   r   r   r   r   r   rv   rA   )rW   Zper2rV   Zform2r!   r!   r"   Śtest_operationsü   s"   & &*rz   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 )NrH   )ŚclsŚrr   r4   c                    s   g | ]}   |”qS r!   )rQ   )rG   Śj©rH   r|   r!   r"   rI     s    z#test_Idx_limits.<locals>.<listcomp>r5   r[   )r$   r'   r$   r'   r$   r'   )r   r   r   r   rP   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s„J t dtddf d”g ks“J t dtddfjdtdg d fksĒJ 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s’J 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(   r4   r;   é   é   é"   é7   r   r%   r&   r$   )r$   r'   r>   é   é   é   iF  i¹
  iŻ2  iń  i©v i* é   )r4   rx   r5   iõ’’’r(   )r>   iś’’’r>   rs   é   r   r6   r4   )r   r   r$   r'   )r$   r'   r(   r>   r5   r>   )r'   r(   r>   r4   r5   éO   r5   )Zgfvar)r'   r(   r>   r4   r;   é   é   iģ’’’é   iį’’’rh   é(   r   )r$   r$   r$   )
r   r)   Z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   r?   )r*   r)   Zfibr!   r!   r"   Śtest_RecursiveSeq4  s   *r   N)>Zsympy.core.containersr   Zsympy.core.functionr   Zsympy.core.numbersr   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z%sympy.functions.combinatorial.numbersr	   r
   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.seriesr   Zsympy.series.sequencesr   r   r   r   r   Zsympy.sets.setsr   Zsympy.tensor.indexedr   r   r   r   r   Zsympy.testing.pytestr   r   r+   r*   rR   r)   rA   r#   r3   rB   rU   rY   rZ   rg   rj   rr   rt   rw   ry   rz   r   r   r   r!   r!   r!   r"   Ś<module>   sD    	 
'(
