o
    GZ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sJ t dtd d
 ksJ t ddtd d	 tdd ks„J t ddt dtdd ksµJ t tjdj	t ksĄJ t
t tjdt tjd ksŃJ t tdj	t ksŪJ t
t tdt td ddt   ksšJ t ddtu słJ 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sJ t dddksJ t dddksJ t ddtddks”J t ddtddks®J t ddtddks»J t ddtddksČJ t d d ” td!d d"”sŁJ d S )#Nr   é’’’’é   é   ił’’’é   é   é   éZ   i±  é   é   é   iN iE éž’’’é   éż’’’éx   éü’’’éū’’’éü   iŪ’’’i’’’i’’’i÷’’’ićż’’iļ’’’ių’’’iD"  é   é   z1.2020569031595942854g¬Ņ¶OÉż;)r   r   r#   r   r   ŚHalfr%   r
   r	   Śfuncr   r   ŚevalfZ
epsilon_eqr   © r?   r?   ś`/var/www/auris/lib/python3.10/site-packages/sympy/functions/special/tests/test_zeta_functions.pyŚtest_zeta_eval   sX   $ "*’’rA   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?   r@   Śtest_zeta_seriesR   s   8’rC   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?   r@   Śtest_dirichlet_eta_evalW   s   "rI   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?   r@   Śtest_riemann_xi_evalc   s
   &rL   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sJ t
dtt	 t”ttt	ks”J tt
ttd t” tttks³J d S )Nr   ©Ś	Piecewiser+   r*   )r$   )Z$sympy.functions.elementary.piecewiserN   Ś
isinstancer   r#   rK   r   r   r"   r$   r   r   r(   r'   rM   r?   r?   r@   Śtest_rewritingk   s   * $ (rP   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sJ tt	 ttsJ tt ttsJ ttt ts¢J 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?   r@   Ś<lambda>   ó    z"test_derivatives.<locals>.<lambda>c                      rS   )Nr.   rT   r?   rV   r?   r@   rX      rY   c                      ó   t  t d”S )Nr+   ©r   r'   rU   r?   ©r%   r?   r@   rX      ó    c                      rZ   )Nr-   r[   r?   r\   r?   r@   rX      r]   )Śsympy.core.functionrR   r   r#   r$   Śdiffr   r'   r(   r   ŚrandcplxŚtdr   r   rQ   r?   rV   r@   Śtest_derivatives|   s(   $(’(’,&rb   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   Zfree_symbolsr`   ŚabsŚsubsrF   Śreplacer   r   )r=   ŚtargetŚexpandedrd   r$   r?   r?   r@   Śmyexpand   s   
’’rh   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  sJ dt
 d tt dt
  ” t
dt
  ksJ t	t dt
d s¤J d S )	Nr   r+   r)   r.   r-   r*   r3   r8   )r   r(   r   r   r   r   r	   r   r   rh   r'   r   r   rG   r?   r?   r?   r@   Śtest_polylog_expansion    s   <0 .ri   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sJ d S )
Nr+   r:   rE   r*   r-   r.   r   é	   é   )r   r'   rB   r   r   r   r?   r?   r?   r@   Śtest_polylog_series®   s   L0’’

’4’
’
’rl   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¶óń?gü©ńŅMbP?)r   r   r   r   ŚInfinityZdoitrF   )rm   r?   r?   r@   Śtest_issue_8404ø   s   ,’’rp   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sJ tt || t || dd| ddddds J qsqmddlm} t d|dtddftj ks¹J d S )Nr*   r.   r4   r:   r+   r-   F)ŚevaluategVēÆŅ<r'   )r)   r   rD   r5   r3   )r$   r%   rW   Śdr   )ŚIntegral)r   r	   r   r   r   r<   r   r   r>   r   Śranger"   Zsympy.integrals.integralsrs   r#   )r'   r(   Ś_rs   r?   r?   r@   Śtest_polylog_values¾   s    *,J.
’
’ż&rv   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   sJ t ttttddd sJ t ttttddd sJ t ttttddd sŖJ t ttttddd søJ t tdttdt  tttd  dt  tttd d   sŪJ t ttttd sęJ t tt ttd sņJ t tttt tdd ttd sJ d S )	Nr+   r)   r*   r5   r-   r2   r8   r:   )rh   r   r(   r$   r   r'   r   r   r<   r   r   r   r   r   r	   r?   r?   r?   r@   Śtest_lerchphi_expansionĻ   s(    .’’,2’.rw   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      ų?)	rO   r   r#   r$   r   Z
EulerGammar   ZComplexInfinityr'   r?   r?   r?   r@   Śtest_stieltjesč   s   rx   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½Õē(¤²?)rc   r   r>   r?   r?   r?   r@   Śtest_stieltjes_evalfł   s   "ry   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 sJ d S )Nr$   T)Zextended_realr%   )Zextended_positiver(   F)Śzeror*   r+   )r   r   r   Ś	is_finiter#   )r$   r%   r(   r?   r?   r@   Ś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sJ t d} td|  td|  ksJ d S )NrF   T)Znonnegativern   r+   r*   )r   r   rK   r   r$   r   r	   r   r   r(   r   r%   r   )rF   Zz2nr?   r?   r@   Śtest_issue_14177  s   *.2(  r}   N)EZsympy.concrete.summationsr   r^   r   Zsympy.core.numbersr   r   r   r   r   r	   r
   Zsympy.core.singletonr   Zsympy.core.symbolr   Z$sympy.functions.elementary.complexesr   r   Z&sympy.functions.elementary.exponentialr   r   r   Z(sympy.functions.elementary.miscellaneousr   Z&sympy.functions.special.zeta_functionsr   r   r   r   r   r   Zsympy.series.orderr   r   Z%sympy.functions.combinatorial.numbersr   r   r   r   Zsympy.testing.pytestr   Zsympy.core.randomr    ra   r!   r`   r"   r#   r$   r%   r'   r(   rA   rC   rI   rL   rP   rb   rh   ri   rl   rp   rv   rw   rx   ry   r|   r}   r?   r?   r?   r@   Ś<module>   sF    $ :
