a
    {ždv>  ć                   @   sl  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 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mZ d dlmZ d dl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 Z,dd Z-dd Z.dd Z/dd Z0dd Z1dd Z2dd Z3d d! Z4d"d# Z5e$d$d% Z6e$d&d' Z7d(d) Z8d*d+ Z9d,d- Z:d.d/ Z;d0S )1é    )ŚTuple)Ś
Derivative)ŚIŚRationalŚooŚpi)ŚS)Śsymbols)ŚexpŚlog)Śsqrt)Ścos)Śgamma)Śappellf1ŚhyperŚmeijerg)ŚO)ŚxŚzŚk)Ślimit)ŚraisesŚslow)Śrandom_complex_numberŚverify_numericallyŚtest_derivative_numericallyc                  C   s.   t ddtd } |  t”| d t ks*J d S )N© é   )r   r   Śdiff)Śpr   r   śq/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/functions/special/tests/test_hyper.pyŚtest_TupleParametersBase   s    r!   c                  C   s   t tdd  tddtttddtdtks4J tddt} | jtddksTJ | jtdd	d
ksjJ | jtksxJ | jdu sJ t	tt t tt
tts¦J t	ttdtdt  tdt tsŠJ tt t t ft t ft} t| tsžJ td\}}}}}t||f|||ft t”|| || |  t|d |d f|d |d |d ft kspJ ttgg t t”tttgg ttksJ ddlm} t|tg|tg|tttgtg|tksąJ tddtddjtu süJ d S )Nc                   S   s   t ddtS )Né   r   )r   r   r   r   r   r    Ś<lambda>   ó    ztest_hyper.<locals>.<lambda>©r"   r   ©r"   r"   r   ©é   é   é   r(   r)   r*   T)r"   r"   z
a1:3, b1:4r   ©Ś
polar_liftF©Śevaluate)r   Ś	TypeErrorr   r   r   ŚapŚbqŚargumentŚis_commutativeŚtnr
   r   ŚrandcplxŚtdr	   r   r   Ś$sympy.functions.elementary.complexesr,   r   r   Śfunc)ŚhŚa1Śa2Śb1Śb2Zb3r,   r   r   r    Ś
test_hyper   s.    & *’<’
.’
r>   c                  C   s|  ddl m} m}m} ddlm} t t t d   }}}|t| |g|gdt|t|  | |  t|  | t| |   ksJ t	|t||g|gd 
” t||g|gd 
”  dk sĘJ |tg g tttksāJ |tg d¢g ttg d¢g tksJ |tddgg gdgdggtttd ks>J |tddgg gg g gttddgg gg g gtksxJ d S )Nr   )ŚaŚbŚc)Śexpand_funcr*   r"   ē»½×Łß|Ū=©r"   r   r(   )Ś	sympy.abcr?   r@   rA   Śsympy.core.functionrB   r5   r   r   ŚabsŚnr   r
   r   r   )r?   r@   rA   rB   r:   r<   Śc1r   r   r    Śtest_expand_func@   s"    4’’’*2’rJ   c                 C   s@   ddl m} |  |”}|s| S t|dks.J |  | ” |i”S )Nr   ©ŚDummyr"   )Śsympy.core.symbolrL   ZatomsŚlenZxreplaceŚpop)ŚexprŚsymrL   Zdumr   r   r    Śreplace_dummyR   s    
rR   c                  C   s¢   ddl m}  ddlm} ddlm}m} |d}ttddt	 
| ”|| t	| || |d| |d	| |dtfks|J td
dt 
| ”td
dtksJ d S )Nr   )ŚSumrK   )ŚRisingFactorialŚ	factorialr   r%   )r"   r(   r   r(   rD   )é’’’’r(   )Zsympy.concrete.summationsrS   rM   rL   Z(sympy.functions.combinatorial.factorialsrT   rU   rR   r   r   Śrewriter   r   )rS   rL   rT   rU   Z_kr   r   r    Śtest_hyper_rewrite_sum[   s    ’’’
’rX   c                   C   s  t ddgtjdksJ t dddgtjtu s2J t ddgtjdksJJ t ddgtjtu sbJ t dd	gtjdkszJ t d
dgtjtu sJ t dddgtjdks¬J t g d¢ddgtjdksŹJ t ddgddgtjtu sčJ t g d¢dgtjdksJ t dg tjtu sJ t ddgdgdjdks<J t ddgdgdjdksZJ t ddgdgdjdksxJ t ddgdgdjdksJ d S )Nr%   r(   r"   r)   rD   r   )r   r"   r   )rV   r"   r   éü’’’)rV   éž’’’r   rV   )rV   r   rZ   )rV   r"   r(   r   )rV   r   r(   r)   TF)r   r   Zradius_of_convergencer   Zconvergence_statementr   r   r   r    Śtest_radius_of_convergenceh   s    r[   c                  C   s¢  t tdd  t tdd  tddtttddtdtd	td
tksNJ tddddt} | jtddksrJ | jtdddd	d
ksJ | jtdd	d
ks¢J | jtddddksŗJ | j	tddddddddd	ksÜJ | j
tdddddksöJ | jtksJ | jdksJ | jdks&J | jdu s6J | jdu sFJ tg g gtjgdggdjdu slJ tddgdgd	gd
gtjtjksJ ttt t tdt t tttsĀJ ttttt t tdttjtd d	  tttsJ tttddt tdtdttdt ts8J t tdd  t tdd  tt ft dt  ft t t ft} t| tsJ tt t ft t t ft} t| ts¾J tt t tt tt t t} t| tsņJ td\}}}}}}}}t||f||f||f||ft t”t|d |f||f||f||ft|d t||f||f||f||ft  t ksJ tttgg g g t t”ttttgg g g ttksĄJ dd lm }	 t|	|g|	|g|	|g|	|g|	tt|g|g|g|g|	tksJ dd!l!m"}
m#}m$}m%}m&} t|
g|g|g|gt '|”t| t(||  t(|
 | d  t(|| t(| | d   ksJ d S )"Nc                   S   s
   t dtS )Nr"   ©r   r   r   r   r   r    r#   |   r$   ztest_meijer.<locals>.<lambda>c                   S   s   t dddtS )N)r&   ©r   ©r(   ©r)   r\   r   r   r   r    r#   }   r$   )r%   r^   )r_   )r*   r"   r   r(   r)   r*   r%   r'   )é   é   é   é	   )é
   é   é   é   é   r`   ra   rb   rc   rd   re   rf   rg   rh   éK   rV   TFr   c                   S   s   t dtfdftS )N©)r(   r"   r]   ©r   r   )r   r   r   r   r   r   r    r#      r$   c                   S   s   t ddtS )Nrj   )r&   rk   )r   r   r   r   r   r    r#      r$   za1:3, b1:3, c1:3, d1:3r+   )r?   r@   rA   ŚdŚs))r   r/   r   r   r   Zanr0   ZaotherZbmr1   Zbotherr2   ŚnuŚdeltar3   Z	is_numberr   ŚHalfr4   r
   r   r   r   r   Ś
ValueErrorr5   r   r6   r	   r   r   r7   r,   rE   r?   r@   rA   rl   rm   Z	integrandr   )Śgr:   r;   r<   r=   rI   Śc2Śd1Zd2Śplr?   r@   rA   rl   rm   r   r   r    Śtest_meijer{   sz    
 ’"&(.’’
 ’
’’’$"&’’’
’
*’
B’rv   c               
   C   sÖ  t g ddgddtgg t t”ttt g ddgddtgg t dt g g d¢ddtdgg t  ksfJ t } d}tt tgg g g | tsJ tt td gg g g | ts¬J tt g tgg g | tsČJ tt g g tgg | tsäJ tt g g g tg| tsJ tt tg|g|d gg | ts(J tt tg|d g|gg | tsNJ tt t|gg g |d g| tstJ tt t|d gg g |g| tsJ tdd}tt |d g|g|d tg|g| tsŅJ d S )Nr"   r   r   )r"   r"   r"   r*   r(   )r   r   r   r   r   r5   r6   r   )Śyr?   r@   r   r   r    Śtest_meijerg_derivative¾   s$     ’’ &&&&
rx   c                   C   sŽ   t g dgdgg t ” dt ks$J t dgg g dgt ” dt ksHJ t g g dgg t ” dt ksjJ t g g dgtjgt ” dt ksJ t g g tjgdgt ” dt ks¶J t ddgg dgdgt ” tu sŚJ d S )Nr"   r   r   r)   )r   r   Z
get_periodr   r   rp   r   r   r   r   r    Śtest_meijerg_periodŅ   s    $$"’’’’ry   c                  C   s“   ddl m}  | dt t t }t}tg g |j|ks:J tdgg |j|ksRJ tdgdg|j|kslJ tddgdg|j|ksJ tddgdg| dt t jdks°J d S )Nr   ©Ś	exp_polarr   r"   )Ś&sympy.functions.elementary.exponentialr{   r   r   r   r   r2   )r{   r?   r@   r   r   r    Śtest_hyper_unpolarifyŻ   s    r}   c                     sV  ddl m} m}m}m}m}m}m}m}m	}m
}	m}
m} ddlm ddlm} td\ }G  fddd| }|| d”|dt|d	kf d
fksØJ |tt |  d”|dt|d	kfd
fksąJ |dt t |  d”|t|d	kf d
fksJ |dt t |  d”|t|d	kfd
fks\J |dt t |  d”|d t|d	kf d
fksJ |dt t |  d”|d t|d	kfd
fksąJ || d” ksųJ |tt |  d”ksJ fdd}td	d |||ttjd	gtddg||s^J || |t  gg ||sJ || |t  tj gd  g||s²J |||| td	d	gdg| |sÜJ |||ttjtjgtddg||s
J |||td	d	gtddg||s4J || |t  tj  gtjg||sdJ || |d| d  d	  t  tj   gtjg| |” |s°J ||	|| d ttddd	d	gddg| |sčJ ||
 |t   gtjg||sJ || |d  | td	  d	  gtddg| |sRJ d S )Nr   )ŚHyperRepŚHyperRep_atanhŚHyperRep_power1ŚHyperRep_power2ŚHyperRep_log1ŚHyperRep_asin1ŚHyperRep_asin2ŚHyperRep_sqrts1ŚHyperRep_sqrts2ŚHyperRep_log2ŚHyperRep_cosasinŚHyperRep_sinasinrz   )Ś	Piecewisez	a b c d zc                       sL   e Zd Ze fddZefddZefddZefddZd	S )
ztest_hyperrep.<locals>.myrepc                    s    S ©Nr   ©Śclsr   )r?   r   r    Ś_expr_smallō   s    z(test_hyperrep.<locals>.myrep._expr_smallc                    s    S r   r   r   )r@   r   r    Ś_expr_small_minusų   s    z.test_hyperrep.<locals>.myrep._expr_small_minusc                    s    | S r   r   ©r   r   rH   )rA   r   r    Ś	_expr_bigü   s    z&test_hyperrep.<locals>.myrep._expr_bigc                    s    | S r   r   r   )rl   r   r    Ś_expr_big_minus   s    z,test_hyperrep.<locals>.myrep._expr_big_minusN)Ś__name__Ś
__module__Ś__qualname__Śclassmethodr   r   r   r   r   ©r?   r@   rA   rl   r   r    Śmyrepó   s   r   Śnonrepr"   Tr   r(   r)   r*   Śnonrepsmallc              	      sŗ  t |  d”| tddtddtjtjds0dS t |  d”  tt   ” t	”|   tt   ” d” tddtddtjtjdsdS |   tt   ” d”}t
|  d” ” |  d” ”  d	krądS  fd
d}dD ]Ā}|| dt t | tt d }|| dt t | tt  t t d }t || sT dS || dt t |d  t t d }|| dt t | tt  tt d }t || sņ dS qņdS )z2 Test that func is a valid representation of hyp. r   rV   r   r   Fr   g     š?g÷’’’’’ļ?rC   c                    s6   |    | ” d”}|   | ”  t”S )Nr   )ŚsubsrW   Śreplacer
   )r8   r?   r@   Śrv)r{   r   r   r    Śdosubs$  s    z(test_hyperrep.<locals>.t.<locals>.dosubs)	r   r"   r   r(   r)   rV   rZ   éż’’’rY   r"   T)r4   rW   r   r   rp   r   r   r   r   r
   rG   rH   )r8   Zhypr   rP   r   rH   Śexpr1Śexpr2rz   )r   r    Śt  s8    ’
’’ü( *&(ztest_hyperrep.<locals>.trZ   )Śsympy.functions.special.hyperr~   r   r   r   r   r   r   r   r   r   r   r   r|   r{   Z$sympy.functions.elementary.piecewiser   r	   rW   rG   r   r   r   r   r   rp   r   )r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r¢   r   )r?   r@   rA   rl   r{   r    Śtest_hyperrepč   sL    8,’’
’
’
’
$"
,$0*.*0
8’
8*r¤   c                  C   sō  ddl m}  ddlm} ddlm} t }t| tt	 t
  }t	tg |d d gg|d g| d |d d gg|d d  }|||}dD ]X}d	D ]N}t|| jt|t|id
dk s¾J t|| jt|t| id
dk sJ qqd}	| t|”}dD ]}dtddddtddddfD ]n}t|| jt|t||	 |||	 id
dk sTJ t|| jt|t| |	 || |	 id
dk sJ qqütdd| t
 t	 d tdd| t
t	 d  dtt	  }
|
t	td  jdddksšJ d S )Nr   rz   )Śbesseli)Ślr"   r   r)   )ē      ą?ē      ų?)g        g¹?g333333Ó?r§   gé?r"   g/Ż$@g.@)r   rC   gvIhĀ%<=r§   r(   g      Š?g      č?g      š?rØ   ))r§   r   ))r§   r   r§   r   T)Zchop)r|   r{   Zsympy.functions.special.besselr„   rE   r¦   r5   r   r   r   r   r   rG   rH   r   r   r   r
   )r{   r„   r¦   r?   Śargr    r”   Zx_Zk_ZepsrP   r   r   r    Śtest_meijerg_evalB  s>    B
$*"
’’

’’’
žrŖ   c                  C   s   t d\} }tdtddtddf| d  | ”dd| d  d	  d
| d  d  t| d  ksfJ tdtdd| |ddksJ d S )Nzk, xr&   r)   r(   r*   r   r"   rc   é   éQ   i`  r`   r   )r	   r   r   Zseriesr   r   )r   r   r   r   r    Śtest_limitsb  s
    $.’r­   c               	   C   sĀ   t d\} }}}}}t| |||||t| |||||ks<J t| |||||t| |||||ksdJ t| |||tjtjtju sJ t| |||tjtjdd}|jtu s¬J | ” tju s¾J d S )Nza b1 b2 c x yFr-   )r	   r   r   ZZeroZOner8   Zdoit)r?   r<   r=   rA   r   rw   Śfr   r   r    Śtest_appellf1k  s    (( rÆ   c               	   C   s  ddl m}  td\}}}}}}}| t||||||||| t|d ||d |d || | kshJ | t||||||||| t|d ||d |d || | ks®J | t|||||||dksĪJ | t|||||||tt|||||||ksJ d S )Nr   )r   za b1 b2 c x y zr"   )rF   r   r	   r   r   )r   r?   r<   r=   rA   r   rw   r   r   r   r    Śtest_derivative_appellf1v  s    FF r°   c                  C   sÜ   t d\} }}}tddtd  tdd ”dtd d  td d	  td
 d  ttd  ksbJ tt tdd ”t| |f| |ft tdd ”ksJ t| |f||ft tdd ”t| |f||ftttd  ksŲJ d S )Nza1 b1 a2 b2r%   rD   r   ra   r"   r(   r)   é   r`   ih  )r	   r   r   Z_eval_nseriesr   r
   r   )r:   r<   r;   r=   r   r   r    Śtest_eval_nseries  s    R4r²   N)<Zsympy.core.containersr   rF   r   Zsympy.core.numbersr   r   r   r   Zsympy.core.singletonr   rM   r	   r|   r
   r   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   Z'sympy.functions.special.gamma_functionsr   r£   r   r   r   Zsympy.series.orderr   rE   r   r   r   Zsympy.series.limitsr   Zsympy.testing.pytestr   r   Zsympy.core.randomr   r5   r   r4   r   r6   r!   r>   rJ   rR   rX   r[   rv   rx   ry   r}   r¤   rŖ   r­   rÆ   r°   r²   r   r   r   r    Ś<module>   s@   %	C
Y
		