U
    ˜9%e;  ã                   @   sn  d dl mZ d dlmZ d dl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 d dlmZmZ d d	lmZ d d
lmZmZ d dlmZ d dlm Z  d dlm!Z" d dl#m$Z$m%Z% d dl&m'Z' eddd\Z(Z)Z*dd„ Z+dd„ Z,dd„ 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.„ Z8e%d/d0„ ƒZ9d1S )2é    )ÚSum)ÚAdd)ÚIÚRationalÚooÚpi)ÚS)ÚSymbolÚsymbols)ÚbinomialÚ	factorialÚsubfactorial)Ú	fibonacciÚharmonic)ÚexpÚlog)Úsqrt)ÚcosÚsin)Úgamma)Ú	limit_seq)Údifference_delta)ÚraisesÚXFAIL)ÚAccumulationBoundszn m kT©Úintegerc                     st   t t d  } | t ‰ t| ƒdt  d ks,t‚tˆ t dƒtdt  d  ksLt‚tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Né   é   é   é   c                      s   t ˆ ƒS ©N)Údd© ©Úe2r#   ú_/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/series/tests/test_limitseq.pyÚ<lambda>   ó    z'test_difference_delta.<locals>.<lambda>c                      s   t ˆ ttƒS r!   )r"   Únr   r#   r$   r#   r&   r'      r(   )r)   Úkr"   ÚAssertionErrorr   Ú
ValueError©Úer#   r$   r&   Útest_difference_delta   s     r/   c                  C   s  t dt tdtfƒ} t| tƒdtd  ks.t‚t| tdƒtdd„ tdƒD ƒŽ ksTt‚t dt tddt fƒ} t| tƒtdd„ tdƒD ƒŽ kst‚tt dt tdtfƒ } t| tƒdt dt tdtfƒ ksÎt‚t dt tdtftdtfƒ} t| tƒttƒkst‚d S )Nr   é   c                 S   s   g | ]}d |t  d   ‘qS ©r   ©r)   ©Ú.0Úir#   r#   r&   Ú
<listcomp>"   s     z.test_difference_delta__Sum.<locals>.<listcomp>é   c                 S   s    g | ]}d |dt   d   ‘qS )r   r7   r2   r3   r#   r#   r&   r6   %   s     )	r   r*   r)   r"   r+   r   ÚrangeÚmr   r-   r#   r#   r&   Útest_difference_delta__Sum   s    &$&r:   c                  C   sª   t t t d   } t| t ƒdt  d ks*t‚t| t dƒdt  d ksFt‚t tdt tdt fƒ } t| t ƒddt d   ks|t‚t| t dƒdtdd„ tdƒD ƒŽ  ks¦t‚d S )	Nr   r   r7   r   é   r0   c                 S   s   g | ]}d |t  d   ‘qS r1   r2   r3   r#   r#   r&   r6   5   s     z.test_difference_delta__Add.<locals>.<listcomp>)r)   r"   r+   r   r*   r   r8   r-   r#   r#   r&   Útest_difference_delta__Add.   s    r<   c                  C   sä   dt  } t| t ƒddt   ks"t‚t| t dƒddt   ks>t‚ddt   } t| t ƒdddt    ksht‚t| t dƒdddt    ksˆt‚t d } t| t ƒt d d t d  ks²t‚t t  } t| t ƒt d t d  t t   ksàt‚d S )Nr   r7   r   é   éÿ   r   )r)   r"   r+   r-   r#   r#   r&   Útest_difference_delta__Pow8   s     "r?   c                      sê  t dt tƒtt dt tƒtdtfƒ ‰ tˆ ƒtdƒd ks@t‚tˆ tƒˆ ksRt‚dtd  dtd   d dtd  dt  d  ‰ tˆ tƒtdƒd ks t‚ttƒtttƒtdtfƒ ttdt ƒd   ‰ tˆ tƒdksât‚ttd tdt t tdtfƒ tdtfƒdt t  ‰ tˆ tƒdks.t‚tt dt tƒt dt tƒ tdtfƒt dt tƒt dt tƒ  ‰ tˆ tƒtdƒd ksŽt‚tttƒd t tddt fƒttƒd  ‰ tˆ tƒtj	d ksÔt‚t
t‡ fdd	„ƒ d S )
Nr   r   r7   r   r0   i—I i—E c                      s   t ˆ t ƒS r!   )r   r9   r#   r-   r#   r&   r'   ]   r(   z test_limit_seq.<locals>.<lambda>)r   r)   r   r*   r   r   r+   r9   r   ÚOner   r,   r#   r#   r-   r&   Útest_limit_seqH   s     (408&ÿ,rA   c                   C   sh  t dt td  tƒdkst‚t dtd  tdt   tƒdksDt‚t dt dt  td  tƒdksjt‚t ttt ƒtƒdks„t‚t tdt t ƒtƒdks¢t‚t tjd t tƒdks¾t‚t tddƒt tƒdksÚt‚t t	d t tƒdksôt‚t t
tƒt	d t  tƒdkst‚t td t	d t  tƒdks<t‚t ttd  t	d t  tƒdksdt‚d S )	Néÿÿÿÿr   r   éþÿÿÿr   r7   r0   é   )r   r)   r+   r   r   r   r   ZNegativeOner   r   r   r#   r#   r#   r&   Útest_alternating_sign`   s    &&$$rE   c                   C   sÄ   t dt tƒtddƒkst‚t ttt ƒtƒtddƒks<t‚t ttt d ƒd tƒtddƒksdt‚t ddt  tdt   tƒtddƒkst‚t dt td  ddt   tƒtddƒksÀt‚d S )	NrB   r   r   r   éýÿÿÿr7   rC   r0   )r   r)   r   r+   r   r   r   r#   r#   r#   r&   Útest_accum_boundsn   s
     (,rG   c                  C   sô   ddl m} m}m} ttd|  | d|fƒt|ƒ |ƒtjks@t	‚ttd|  | d|fƒd|  |ƒtj
kslt	‚ttd|  | ƒttd| |ƒ|d| fƒ | ƒtdƒd ksªt	‚tt|d td| | |d|fƒ |d| fƒd|  |   | ƒdksðt	‚d S )Nr   ©ÚxÚyÚzr   r   r7   r   )Z	sympy.abcrI   rJ   rK   r   r   r   r   Z
EulerGammar+   ÚInfinityr   rH   r#   r#   r&   Útest_limitseq_sumv   s    ,,,
ÿ,
ÿÿÿrM   c                   C   s&   t ttƒttƒ tƒtdƒks"t‚d S )NrB   )r   r   r)   r   r   r+   r#   r#   r#   r&   Útest_issue_9308€   s    rN   c                  C   s8   t ddd} tt| d ƒt| ƒ | ƒ ¡ tjks4t‚d S )Nr)   Tr   r   )r	   r   r   Ztogetherr   ZGoldenRatior+   r2   r#   r#   r&   Útest_issue_10382„   s    rO   c                   C   s    t tddƒt tƒdkst‚d S )NrB   r   r   )r   r   r)   r+   r#   r#   r#   r&   Útest_issue_11672‰   s    rP   c                  C   sV   t ddd\} }tdƒ}tt||  |d|fƒ ¡ || d   |ƒd| d  ksRt‚d S )Nzk, nT)Zpositiver9   r   )r
   r	   r   r   Zdoitr+   )r*   r)   r9   r#   r#   r&   Útest_issue_14196   s    rQ   c                   C   s"   t dt ttƒ tƒdkst‚d S )Nr0   r   )r   r)   r   r+   r#   r#   r#   r&   Útest_issue_16735“   s    rR   c                   C   s(   t dtttjd  ƒ tƒdks$t‚d S )Nr   r   r   )r   r   r)   r   r@   r+   r#   r#   r#   r&   Útest_issue_19868—   s    rS   c                  C   s   t tƒd tdt tƒ tdtfƒ ttt tƒt tdtfƒ  } t| tƒdksRt‚tdt tdt tƒ td  tdtfƒtdt t d tdtfƒttdt tƒtdtfƒ  } t| tƒtdƒd ksÌt‚td tdt td  tdtfƒd  dt tdt t tdtfƒ  } t| tƒdks(t‚t tƒtdt t tdtfƒ ttdt t tƒ td  tdtfƒ  } t| tƒdks„t‚tdt ttƒ td  tddt fƒtdt td  tdtfƒtttƒtddt fƒ  } t| tƒtdƒd ksüt‚d S )Nr7   r   r   rD   r   é   )	r   r)   r   r*   r   r+   r   r   r   r-   r#   r#   r&   Útest_limit_seq_fail›   s$    "ÿ(4ÿH&ÿ&2ÿrU   N):Zsympy.concrete.summationsr   Zsympy.core.addr   Zsympy.core.numbersr   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr	   r
   Z(sympy.functions.combinatorial.factorialsr   r   r   Z%sympy.functions.combinatorial.numbersr   r   Z&sympy.functions.elementary.exponentialr   r   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   Z'sympy.functions.special.gamma_functionsr   Zsympy.series.limitseqr   r   r"   Zsympy.testing.pytestr   r   Z!sympy.calculus.accumulationboundsr   r)   r9   r*   r/   r:   r<   r?   rA   rE   rG   rM   rN   rO   rP   rQ   rR   rS   rU   r#   r#   r#   r&   Ú<module>   s>   

