o
    h(                     @   s  d dl mZ d dlmZ d dlmZmZmZmZm	Z	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mZmZ d dlmZ d d	lmZmZmZmZmZmZ 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.m/Z/ edZ0edZ1edddZ2edZ3edZ4dd Z5dd Z6dd Z7dd Z8dd Z9d d! Z:d"d# Z;d$d% Z<d&d' Z=d(d) Z>d*d+ Z?d,d- Z@d.d/ ZAd0d1 ZBd2d3 ZCd4d5 ZDd6S )7    )Sum)expand_func)FloatIRationalnanoopizoo)S)Symbol)Abs
polar_lift)exp	exp_polarlog)sqrt)dirichlet_etalerchphipolylog
riemann_xi	stieltjeszeta)O)ArgumentIndexError)	bernoulli	factorialgenocchiharmonic)raises)test_derivative_numericallyrandom_complex_numberverify_numericallyxabT)negativezsc                   C   s  t ttu sJ t tttu sJ t dtddksJ t dttjt ks(J t dttjt ks4J t dtu s<J t ddtu sEJ t ddtu sNJ t dttu sWJ t ddtd d ksdJ t ddt dksoJ t dtd d ks{J t dtd d	 ksJ t dtd d
 ksJ t ddtd d	 tdd ksJ t ddt dtdd ksJ t tjdj	t ksJ t
t tjdt tjd ksJ t tdj	t ksJ t
t tdt td ddt   ksJ t ddtu sJ t ddtu sJ t ddtu sJ t tdksJ t dtddks"J t ddks+J t dtddks7J t ddks@J t dtddksLJ t ddtddksYJ t ddtddksfJ t ddtddkssJ t ddtddksJ t dddksJ t dddksJ t ddtddksJ t ddtddksJ t ddtddksJ t ddtddksJ t dd td!d d"sJ d S )#Nr         i         Z   i           iN iE    x      iiiiiiiiD"        z1.2020569031595942854gҶOɃ;)r   r   r#   r   r   Halfr%   r
   r	   funcr   r   evalf
epsilon_eqr    r@   r@   e/var/www/vscode/kcb/lib/python3.10/site-packages/sympy/functions/special/tests/test_zeta_functions.pytest_zeta_eval   sX   $ "*rB   c                   C   sV   t ttttdt ttttt  t td t  ttt d ttf ks)J d S )Nr*   r+   )r   r#   r$   seriesr'   r   r@   r@   r@   rA   test_zeta_seriesR   s   8rD   c                   C   s   t dtjks	J t dtddksJ t dtdksJ t dtj td ks,J t dddtd ks9J t dtd d ksEJ t dtd tdd ksTJ tt tj	d	d
dksbJ tt ttj	d	d
dksqJ d S )Nr   r)   r+   r.   r*   r4   r2   i  
   nz0.5325931818 + 0.2293848577*Iz3.462349253 + 0.220285771*I)
r   r   r<   r   r   simplifyr	   strr   r>   r@   r@   r@   rA   test_dirichlet_eta_evalW   s   "rJ   c                   C   s   t dtd ks
J t dtddksJ t dtddks J t dtdtd dt  ks3J t dtd d ks?J d S )Nr*   r,   r   r+   r-   r.      )r   r	   r   rewriter   r@   r@   r@   rA   test_riemann_xi_evalc   s
   &rM   c                  C   sj  ddl m}  tttt| sJ tttt| sJ tttttdddt    ks3J ttjtddttksBJ tttttttsQJ ttttttts`J tttttttsoJ ttt	t
t
dtt	ksJ tttt
t
ttdt ksJ t
dtt	tttt	ksJ tt
ttdt tttksJ d S )Nr   	Piecewiser+   r*   )r$   )$sympy.functions.elementary.piecewiserO   
isinstancer   r#   rL   r   r   r"   r$   r   r   r(   r'   rN   r@   r@   rA   test_rewritingk   s   * $ (rR   c                     s  ddl m}  tttt| ttttksJ ttttt ttd t ks,J ttttttttd tttttt  t ksIJ tttttt tttd t ks_J t	tttt	td tt ksrJ t
  t
 tt ttsJ tt	 ttsJ tt ttsJ ttt tsJ tt fdd tt fdd tt fdd tt fdd d S )	Nr   
Derivativer+   c                         t  tdS )Nr*   r   r#   fdiffr@   r%   cr@   rA   <lambda>       z"test_derivatives.<locals>.<lambda>c                      rU   )Nr.   rV   r@   rX   r@   rA   rZ      r[   c                         t  tdS )Nr+   r   r'   rW   r@   r%   r@   rA   rZ          c                      r\   )Nr-   r]   r@   r^   r@   rA   rZ      r_   )sympy.core.functionrT   r   r#   r$   diffr   r'   r(   r   randcplxtdr   r   rS   r@   rX   rA   test_derivatives|   s(   $((,&rd   c                 C   sj   t | }|d ur||kS || krdS i }| jD ]}t ||< qt| | |tt|  dk S )NFg|=)	r   free_symbolsrb   abssubsrG   replacer   r   )r=   targetexpandedrg   r$   r@   r@   rA   myexpand   s   
rk   c                   C   sL  t tddks	J t tdttksJ t tdtt ks J t tttt tdd t tttt tdd ks>J t tttt d t tttt d ksVJ t	t dt
tdt
  seJ t	t dt
t
dt
  ssJ t	t dt
t
dt
 d  sJ dt
 d tt dt
  t
dt
  ksJ t	t dt
d sJ d S )	Nr   r+   r)   r.   r-   r*   r3   r8   )r   r(   r   r   r   r   r	   r   r   rk   r'   r   r   rH   r@   r@   r@   rA   test_polylog_expansion   s   <0 .rl   c                   C   s$  t dtjtddttd d  td d  td d  ttd  ks&J t dttjtddtd td d  tt ttdd  d  ttdd  d  ttd  ks\J t tdd t tddt tdtd  d  tdtd  d  td d	  ttd  ksJ d S )
Nr+   r:   rF   r*   r-   r.   r   	      )r   r'   rC   r   r   r   r@   r@   r@   rA   test_polylog_series   s   L0

4

ro   c                  C   sL   t ddd} ttdd|  d d  | dtjf dd	 d
k s$J d S )NiT)integerr+   r-   r*   r   r.   gʡE?gMbP?)r   r   r   r   InfinitydoitrG   )rp   r@   r@   rA   test_issue_8404   s   ,rt   c                  C   sv  t ddtd d tt td  ksJ t dtjtd d tdd d  ks+J tjdtdd d tdd  d tdd  d dtd d fD ]} tt d|  t d| dd  d	k sfJ qNt	d
} dD ]4}t
dD ]-}tt || t || dd| ddtjddsJ tt || t || dd| dddddsJ qsqmddlm} t d|dtddftj ksJ d S )Nr*   r.   r4   r:   r+   r-   F)evaluategV瞯<r'   )r)   r   rE   r5   r3   )r$   r%   rY   dr   )Integral)r   r	   r   r   r   r<   r   r   r>   r   ranger"   sympy.integrals.integralsrw   r#   )r'   r(   _rw   r@   r@   rA   test_polylog_values   s    *,J.

&r{   c                	   C   s  t tdtttttsJ t tttdtttt sJ t ttdttdt  tdt d   s5J t ttdtd s@J t ttttjdtd  ttt	tt	t ttt
dt	t t	t   sjJ t tttddt ttttd   sJ t ttttddd sJ t ttttddd sJ t ttttddd sJ t ttttddd sJ t tdttdt  tttd  dt  tttd d   sJ t ttttd sJ t tt ttd sJ t tttt tdd ttd sJ d S )	Nr+   r)   r*   r5   r-   r2   r8   r:   )rk   r   r(   r$   r   r'   r   r   r<   r   r   r   r   r   r	   r@   r@   r@   rA   test_lerchphi_expansion   s(    .,2.r|   c                   C   s   t ttts	J t ttttsJ tdtjksJ tddtjks&J tttu s.J tdttu s7J tdtju s@J tdtju sIJ ttdtju sSJ ttdtju s]J d S )Nr   r+   r)   g      ?)	rQ   r   r#   r$   r   
EulerGammar   ComplexInfinityr'   r@   r@   r@   rA   test_stieltjes   s   r   c                   C   s\   t td d dk sJ t tdd d dk sJ t tdd d dk s,J d S )	Nr   g;x?g&.>g      ?g0}j?r+   r*   g(?)rf   r   r>   r@   r@   r@   rA   test_stieltjes_evalf   s   "r   c                  C   s  t ddd} t ddd}t ddd}td	t jsJ td
jdu s$J ttjd u s-J ttt jd u s8J t| jd u sAJ t|jd u sJJ t| jdu sTJ t|d	 d	|  d
 jd u seJ t| t jdu spJ t|d
 jdu s{J t|d
 jdu sJ d S )Nr$   T)extended_realr%   )extended_positiver(   F)zeror*   r+   )r   r   r   	is_finiter#   )r$   r%   r(   r@   r@   rA   test_issue_10475   s   "r   c                  C   s<  t dddd} t|  tt| d |  d  ksJ t|  ttt| d t|  d  ks3J dt t d|    td|   dtd|    }td|  t|ksYJ ttt	| d tt	t
| t	 ksmJ ttt |  tu szJ ttt | tt | ksJ t d} td|  td|  ksJ d S )NrG   T)nonnegativerq   r+   r*   )r   r   rL   r   r$   r   r	   r   r   r(   r   r%   r   )rG   z2nr@   r@   rA   test_issue_14177  s   *.2(  r   N)Esympy.concrete.summationsr   r`   r   sympy.core.numbersr   r   r   r   r   r	   r
   sympy.core.singletonr   sympy.core.symbolr   $sympy.functions.elementary.complexesr   r   &sympy.functions.elementary.exponentialr   r   r   (sympy.functions.elementary.miscellaneousr   &sympy.functions.special.zeta_functionsr   r   r   r   r   r   sympy.series.orderr   r   %sympy.functions.combinatorial.numbersr   r   r   r   sympy.testing.pytestr   sympy.core.randomr    rc   r!   rb   r"   r#   r$   r%   r'   r(   rB   rD   rJ   rM   rR   rd   rk   rl   ro   rt   r{   r|   r   r   r   r   r@   r@   r@   rA   <module>   sF    $ :
