a
     ¬<bˆ  ã                   @   sf  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,„ Z7e%d-d.„ ƒZ8d/S )0é    )Ú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,J ‚tˆ t dƒtdt  d  ksLJ ‚tt‡ fdd„ƒ tt‡ fdd„ƒ d S )Né   é   é   é   c                      s   t ˆ ƒS ©N)Údd© ©Úe2r#   úp/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/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"   r   Ú
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.J ‚t| tdƒtdd„ tdƒD ƒŽ ksTJ ‚t dt tddt fƒ} t| tƒtdd„ tdƒD ƒŽ ksJ ‚tt dt tdtfƒ } t| tƒdt dt tdtfƒ ksÎJ ‚t dt tdtftdtfƒ} t| tƒttƒksJ ‚d S )Nr   é   c                 S   s   g | ]}d |t  d   ‘qS ©r   ©r)   ©Ú.0Úir#   r#   r&   Ú
<listcomp>"   r(   z.test_difference_delta__Sum.<locals>.<listcomp>é   c                 S   s    g | ]}d |dt   d   ‘qS )r   r6   r1   r2   r#   r#   r&   r5   %   r(   )r   r*   r)   r"   r   ÚrangeÚmr   r,   r#   r#   r&   Útest_difference_delta__Sum   s    &$&r9   c                  C   sª   t t t d   } t| t ƒdt  d ks*J ‚t| t dƒdt  d ksFJ ‚t tdt tdt fƒ } t| t ƒddt d   ks|J ‚t| t dƒdtdd„ tdƒD ƒŽ  ks¦J ‚d S )	Nr   r   r6   r   é   r/   c                 S   s   g | ]}d |t  d   ‘qS r0   r1   r2   r#   r#   r&   r5   5   r(   z.test_difference_delta__Add.<locals>.<listcomp>)r)   r"   r   r*   r   r7   r,   r#   r#   r&   Útest_difference_delta__Add.   s    r;   c                  C   sä   dt  } t| t ƒddt   ks"J ‚t| t dƒddt   ks>J ‚ddt   } t| t ƒdddt    kshJ ‚t| t dƒdddt    ksˆJ ‚t d } t| t ƒt d d t d  ks²J ‚t t  } t| t ƒt d t d  t t   ksàJ ‚d S )Nr   r6   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@J ‚tˆ tƒˆ ksRJ ‚dtd  dtd   d dtd  dt  d  ‰ tˆ tƒtdƒd ks J ‚ttƒtttƒtdtfƒ ttdt ƒd   ‰ tˆ tƒdksâJ ‚ttd tdt t tdtfƒ tdtfƒdt t  ‰ tˆ tƒdks.J ‚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ŽJ ‚tttƒd t tddt fƒttƒd  ‰ tˆ tƒtjd ksÔJ ‚t	t
‡ fdd	„ƒ d S )
Nr   r   r6   r   r/   i—I i—E c                      s   t ˆ t ƒS r!   )r   r8   r#   r,   r#   r&   r'   ]   r(   z test_limit_seq.<locals>.<lambda>)r   r)   r   r*   r   r   r8   r   ÚOner   r+   r#   r#   r,   r&   Útest_limit_seqH   s     (408&ÿ,r@   c                   C   sh  t dt td  tƒdksJ ‚t dtd  tdt   tƒdksDJ ‚t dt dt  td  tƒdksjJ ‚t ttt ƒtƒdks„J ‚t tdt t ƒtƒdks¢J ‚t tjd t tƒdks¾J ‚t tddƒt tƒdksÚJ ‚t td t tƒdksôJ ‚t t	tƒtd t  tƒdksJ ‚t td td t  tƒdks<J ‚t ttd  td t  tƒdksdJ ‚d S )	Néÿÿÿÿr   r   éþÿÿÿr   r6   r/   é   )
r   r)   r   r   r   r   ZNegativeOner   r   r   r#   r#   r#   r&   Útest_alternating_sign`   s    &&$$rD   c                   C   sÄ   t dt tƒtddƒksJ ‚t ttt ƒtƒtddƒks<J ‚t ttt d ƒd tƒtddƒksdJ ‚t ddt  tdt   tƒtddƒksJ ‚t dt td  ddt   tƒtddƒksÀJ ‚d S )	NrA   r   r   r   éýÿÿÿr6   rB   r/   )r   r)   r   r   r   r   r#   r#   r#   r&   Útest_accum_boundsn   s
     (,rF   c                  C   sô   ddl m} m}m} ttd|  | d|fƒt|ƒ |ƒtjks@J ‚ttd|  | d|fƒd|  |ƒtj	u slJ ‚tt
d|  | ƒtt
d| |ƒ|d| fƒ | ƒtdƒd ksªJ ‚tt|d td| | |d|fƒ |d| fƒd|  |   | ƒdksðJ ‚d S )Nr   ©ÚxÚyÚzr   r   r6   r   )Z	sympy.abcrH   rI   rJ   r   r   r   r   Z
EulerGammaÚInfinityr   rG   r#   r#   r&   Útest_limitseq_sumv   s    ,,,
ÿ,
ÿÿÿrL   c                   C   s&   t ttƒttƒ tƒtdƒks"J ‚d S )NrA   )r   r   r)   r   r   r#   r#   r#   r&   Útest_issue_9308€   s    rM   c                  C   s4   t ddd} tt| d ƒt| ƒ | ƒtjks0J ‚d S )Nr)   Tr   r   )r	   r   r   r   ZGoldenRatior1   r#   r#   r&   Útest_issue_10382„   s    rN   c                   C   s    t tddƒt tƒdksJ ‚d S )NrA   r   r   )r   r   r)   r#   r#   r#   r&   Útest_issue_11672‰   s    rO   c                   C   s"   t dt ttƒ tƒdksJ ‚d S )Nr/   r   )r   r)   r   r#   r#   r#   r&   Útest_issue_16735   s    rP   c                   C   s(   t dtttjd  ƒ tƒdks$J ‚d S )Nr   r   r   )r   r   r)   r   r?   r#   r#   r#   r&   Útest_issue_19868‘   s    rQ   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sRJ ‚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ÌJ ‚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(J ‚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„J ‚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üJ ‚d S )Nr6   r   r   rC   r   é   )r   r)   r   r*   r   r   r   r   r,   r#   r#   r&   Útest_limit_seq_fail•   s$    "ÿ(4ÿH&ÿ&2ÿrS   N)9Z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)   r8   r*   r.   r9   r;   r>   r@   rD   rF   rL   rM   rN   rO   rP   rQ   rS   r#   r#   r#   r&   Ú<module>   s<   

