U
    L?hS                     @   s  d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ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 d dl m!Z! d dl"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.m/Z/m0Z0m1Z1 d dl2m3Z3m4Z4m5Z5m6Z6 d dl m7Z8 d dl m9Z9m:Z: d dl;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZDmEZEmFZF d dlGmHZH d dlImJZJ d dlKmLZLmMZM dd ZNdd ZOdddZPd d! ZQe3d"d# ZRd$d% ZSd&d' ZTd(d) ZUd*d+ ZVd,d- ZWdd/d0ZXe5d1d2 ZYd3d4 ZZd5d6 Z[d7d8 Z\d9d: Z]d;d< Z^d=d> Z_d?d@ Z`ddAdBZae5dCdD ZbdEdF Zce3dGdH Zde5dIdJ ZedKdL Zfe5dMdN ZgdOdP ZhdQdR ZidSdT ZjdUdV ZkdWdX Zle5dYdZ Zmd[d\ Zne5d]d^ Zod_d` Zpe6dadb Zqe5dcdd Zre5dedf Zse5dgdh Zte5didj Zue5dkdl Zvdmdn Zwe5dodp Zxdqdr Zydsdt Zze5dudv Z{e3dwdx Z|e3dydz Z}e3d{d| Z~d}d~ Zdd ZdS )    )	randrange)ShiftAShiftBUnShiftAUnShiftBMeijerShiftAMeijerShiftBMeijerShiftCMeijerShiftDMeijerUnShiftAMeijerUnShiftBMeijerUnShiftCMeijerUnShiftDReduceOrderreduce_orderapply_operatorsdevise_planmake_derivative_operatorFormulahyperexpandHyper_Function
G_Functionreduce_order_meijerbuild_hypergeometric_formula)Sum)Tuple)Expr)I)S)symbols)binomial)	Piecewise)hypermeijerg)zabc)XFAILraisesslowtooslow)verify_numerically)Rationalpi)exp	exp_polarlog)atanh)sqrt)asincossin)besseli)erf)gamma
lowergammac                   C   s   t ttddtjftddtddft ttd  tttt	 d t d t
t	tt
t dt
t   ksztt ttdddgg tddgtddd	gtdttd
  dt
t	 tt
t t
t dttddt ttd
    ttdd ttdd kstd S )N      z1/3            r   z2/3)r   r"   r-   r   Halfr$   r:   r0   r   r.   r3   r8   AssertionErrorr#   r9    rD   rD   W/var/www/html/venv/lib/python3.8/site-packages/sympy/simplify/tests/test_hyperexpand.pytest_branch_bug#   s"    ,&.0 
rF   c                   C   s
  t tg g tttkstt tddgdgt t tdt ksHtt tg tjgtd  d ttksrtt ttg tdgtd  d  t	tkstt ttdtdgtdgtd t t
tksttttdttd  tdtf tstd S )NrA   r=      3/21/2r   )r   r"   r$   r/   rC   r1   r   rB   r5   r6   r4   
isinstancer   r    r%   Zdoitr   rD   rD   rD   rE   test_hyperexpand,   s    ,*0(rK   TrA   Fc              	   C   s   t t| |t}|trdS |s&dS i }|jth }|r|t|D ]\}}	t|| ||	< qBtdd t| 	|D s6q|q6ddddg\}
}}}|rdd	ddg\}
}}}t
t| |t	||tt	|t|
|||d
S )NFTc                 s   s   | ]}|j o|d kV  qdS )r   N)Z
is_Integer).0r&   rD   rD   rE   	<genexpr>E   s     zcan_do.<locals>.<genexpr>r=   r;   r<   rA   )r%   r&   r'   d)r   r"   r$   hasfree_symbols	enumeraterandcplxanyr   substnreplacer0   r/   )apbq	numericaldiv
lowerplanerreplZrandsymsnair%   r&   r'   rO   rD   rD   rE   can_do9   s0    
    ra   c                   C   s   t tjgtddgstt g dtdddgs4tt tddddgddgsRtt tddgtddtddtjdgs~tt td	dtddgtd
ddgstt td	dgtddtjgstt td	dtddgdgstd S )N	   r=   rA   r>   rG   r;   r<   rN   )ra   r   rB   r-   rC   rD   rD   rD   rE   
test_roachP   s    ,("re   c                   C   s   t tdddgtddtjtddgs,tt tddgtdddgsLtt tddtjdgtddtddgsxtt dddgtjdgstt tjgtddtddtddgstd S )Nr;   r=   rA   rG   r<   r>   rN   )ra   r-   r   rB   rC   rD   rD   rD   rE   test_roach_fail\   s
    , ,rf   c                  C   s   ddl m}  ttg dgt| ks&tttdgdgt| ksBtttddgdgtdks`ttddt t gdt gstttdd	tdtd
  kstd S )Nr   oor;   rN   rA   rd   i)r;   rA   )rN   r=   )sympy.core.numbersrh   r   r"   r$   rC   ra   rS   rg   rD   rD   rE   test_polynomialg   s     rj   c                   C   s  t tdgtgtttt d  td  dt  ttd   d  tt ttd t  d ksftt tddgdgtdt dtt d  td   kstt ttj	dgt
ddgtddt d  ttttt d  kstt ttj	tj	gt
ddgtdt d d ttt d   d	t d ttt dtt
dd    ks^tt tddgt
ddgtddt d  tttttdt d  tt d    kstt tt
ddd ddgtj	dgttttt
d	d
 t
d	d  ttt dtd  dt  d	 d t  d	tt d  dtd    ksTtt tdtj	 ddgddgtdttt d d tj	  t kstt tdgtdgttt d tj	  ttd dtt  tt tt d d  ttdtt  tt  kstd S )Nr=   rA   r<   rN   r;   r>   rc   rG   r@   r?   i    #   )r   r"   r%   r$   r/   r:   rC   r1   r   rB   r-   r2   r3   r4   r&   r7   r9   rD   rD   rD   rE   test_hyperexpand_basesp   sD    8<& (
(,$*
"
0*rn   c                   C   s   t tttjt gtjgtdtt dt  d dtt dt  d  ksRtt tttddt gdt gtddt d  t d tj d dt d   kstd S )NrA   rN   r=   r;   )	r   r"   r%   r   rB   r$   r3   rC   r-   rD   rD   rD   rE   test_hyperexpand_parametric   s    .".ro   c                  C   sr   ddl m}  | ttd tdgdtdgtd   ttdt  td  tj tdt   tj ksnt	d S )Nr   simplifyrG   r=   r<   rH   )
sympy.simplify.simplifyrq   r   r$   r"   r   r6   rB   r5   rC   rp   rD   rD   rE   test_shifted_sum   s    *0rs   c                   C   s   t tdd d S )z Steer clear of integers.    
   2   )r   r   rD   rD   rD   rE   _randrat   s    rw   r;   c                 C   s   t  tt    td|    S )z+ Polys is not good with real coefficients. rA   )rw   r   )offsetrD   rD   rE   rS      s    rS   c                  C   s6  ddl m}  |  j}|D ]}||j}i }t|jD ]\}}t|||< q8||}|j	|
d}|j}t||tt|st|j|j d |
d}	t|tt|	tt|st||jdd | }
|j|j }t|
|D ]:\}}t||tt||
dtt|stqqd S )Nr   )FormulaCollectionnonrepsmallc                 S   s
   |  dS )Nrz   )rewrite)trD   rD   rE   <lambda>   s   ztest_formulae.<locals>.<lambda>)sympy.simplify.hyperexpandry   formulaefuncr$   rR   r   rS   rU   closed_formr{   rV   rW   r0   r/   rC   CBZ	applyfuncdiffMzip)ry   r   formulahrepr_   symr   r$   clderiv1deriv2d1d2rD   rD   rE   test_formulae   s8    

 
  r   c                  C   s
  ddl m}  |  j}|D ]}|| D ]}t|jj|jj|jj|jj|j	}i }|j
D ]}t ||< qT||}|j|}|j	}t|||st|j|j d |}	t||	|st||j| }
|j|j }t|
|D ]$\}}t|||||stqq$qd S )Nr   )MeijerFormulaCollection)r~   r   r   r#   r   anrX   bmrY   r$   r   rS   rU   r   rV   rC   r   r   r   r   r   )r   r   sigr   gr   r   r   r$   r   r   r   r   r   rD   rD   rE   test_meijerg_formulae   s,     

r   c                 C   s   t | t  S N)r$   r   )frD   rD   rE   op   s    r   c               	   C   s  t tdgdtdgdtg ks$ttt  t tdgdtddt W 5 Q R X tt& t tdgdgtdgdgt W 5 Q R X tt& t tdgg ttdgg t W 5 Q R X dd tdD \} }}|dt 7 }t	| |g|gt}t	| d |f|gt}t
t|t t| d |f|gt| |f|gtt|tsDtt	| d |d f|gt}t
t|t t| d |d f|gt| |f|gtt|tstd S )	Nr   rD   rA   r=   rI   c                 s   s   | ]}t |V  qd S r   rS   rL   r_   rD   rD   rE   rM      s     ztest_plan.<locals>.<genexpr>r<   )r   r   r$   rC   r)   
ValueErrorr   ranger   r"   rV   r   r   )a1a2b1r   h2rD   rD   rE   	test_plan   sJ    
 
$
*
*  
  r   c            
      C   s  ddt d  } }}dt d }}t| ||f||f}t| d |d |d f|d |d f}t||t}t|t|tg }t|jt}	tt|j	||	|j
 d |ttstt| |d |d f|d |d f}t||t}tt|j	||	|j
 d |tts
td S )NrA   r=   rI   r<   z5/2r   )r   r   r   r$   r   r   r   rV   r   r   r   rC   )
r   r   a3r   b2r   r   opsr   ZderivrD   rD   rE   test_plan_derivatives   s    (($r   c            	      C   s  dd t dD \} }}t| g|gt}tddd ks:ttddd ksLttdtdd ksbtt| |f||ft}tt|||t|tstt| |d f||ft}tt|d ||t|tstt|d	 | f||ft}tt|d	 ||t|ts
t|d	 | |d f}|||f}t	t
||\}}|j| fksJt|j|fks\ttt||tt||tts~td S )
Nc                 s   s   | ]}t |V  qd S r   r   r   rD   rD   rE   rM     s     z+test_reduction_operators.<locals>.<genexpr>r<   r=   r   r;   rA   rI   rG   )r   r"   r$   r   rC   r   rV   applyr   r   r   rX   rY   r   )	r   r   r   r   r   rX   rY   r   r   rD   rD   rE   test_reduction_operators  s"    "$
r   c                  C   sP  dd t dD \} }}}}t| |f|||ft}ttdd  ttdd  tt| |tt| d |f|||fttst	tt||tt| |d f|||fttst	tt
||tt| |f|d ||fttst	tt
||tt| |f||d |fttst	tt
||tt| |f|||d fttsLt	d S )Nc                 s   s   | ]}t |V  qd S r   r   r   rD   rD   rE   rM   '  s     z'test_shift_operators.<locals>.<genexpr>r>   c                   S   s   t dS )Nr   )r   rD   rD   rD   rE   r}   *      z&test_shift_operators.<locals>.<lambda>c                   S   s   t dS )NrA   )r   rD   rD   rD   rE   r}   +  r   rA   )r   r"   r$   r)   r   rV   r   r   r   rC   r   )r   r   r   r   b3r   rD   rD   rE   test_shift_operators&  s    2224r   c                  C   s  dd t dD \} }}}}t| |f|||ft}ttdd  ttdd  ttdd  ttdd  t| |f|||fd	t}t||tt| d
 |f|||fttst	t| |f|||fd
t}t||tt| |d
 f|||fttst	t
| |f|||fd	t}t||tt| |f|d
 ||ftts>t	t
| |f|||fd
t}t||tt| |f||d
 |fttst	t
| |f|||fdt}t||tt| |f|||d
 fttst	d S )Nc                 s   s   | ]}t |V  qd S r   r   r   rD   rD   rE   rM   5  s     z(test_ushift_operators.<locals>.<genexpr>r>   c                   S   s   t dddtS )NrA   rD   r   r   r$   rD   rD   rD   rE   r}   8  r   z'test_ushift_operators.<locals>.<lambda>c                   S   s   t dddtS )NrD   )r;   r   r   r$   rD   rD   rD   rE   r}   9  r   c                   S   s   t dddtS )Nr   )r   r;   rA   r   r   rD   rD   rD   rE   r}   :  r   c                   S   s   t dddtS )Nr   rA   r   r   r   rD   rD   rD   rE   r}   ;  r   r   rA   r=   )r   r"   r$   r)   r   r   rV   r   r   rC   r   )r   r   r   r   r   r   srD   rD   rE   test_ushift_operators4  s     ..00r   c                 C   s   ddl m} ddlm} tt| |||t}|tr:dS |||dddddddd}|s^dS i }tt| |||tj	th D ]\}	}
t
|	||
< q~tt| |||t|||tS )ab  
    This helper function tries to hyperexpand() the meijer g-function
    corresponding to the parameters a1, a2, b1, b2.
    It returns False if this expansion still contains g-functions.
    If numeric is True, it also tests the so-obtained formula numerically
    (at random values) and returns False if the test fails.
    Else it returns True.
    r   )expand)
unpolarifyFT)forceZ
power_baseZ	power_expmulr1   Zmultinomialbasic)Zsympy.core.functionr   $sympy.functions.elementary.complexesr   r   r#   r$   rP   rR   rQ   rS   rV   rU   )r   r   r   r   numericr   r   r]   r^   r_   r`   rD   rD   rE   can_do_meijerJ  s"    	
   $r   c               
   C   s  ddl m}  ddlm} ttg g gdgg gt ttks@tttddgg gdgdggtt	td ksptttddgg gdgdggtttd  kstttg g gt
jgdggtd d tttt kstttg g gdgt
jggtd d tttt ksttg tgtd tt
j gg s:ttg g td gt d gds^tttgtgtgttd gstttdgg g dgttdttdk fdtdt dk ftdgg g dgtdfkstttg dgdgg ttdttdk fdtdt dk ftg dgdgg tdfks4ttg g ttd  gtttd  tt
j gsfttg g tgtgdsttg t
jgtgt gsttg g ttgg sttg g ttgg sttg g ttt
j gttt
j gsttg g tt gdt
jgdsttg g ttt
j ttt
j gg s@ttt
jgg dgtt gs`ttt
jgg tgdt gdsttg tt
j gttgtt
j gdsttg tt
j gtt tt tgg dstttt
j gg tdt t tgg dsttg g g ttgstttddgg g ddgttdttdk ftddtd    d tdt dk ftddgg g ddgtdfkst| |ttdgdt gt d t d t
j gg dt d	tt ttd d t  t kstttdgg tgddgtttftd td ftttt  tt  tt ttd d  ksbttd
t
jfdftd }t|tttdtd	   kstt|ddttt ttd d  kstd S )Nr   	gammasimprp   rA   r=   FTr;   rN   )r   rD   r   )Zplace)sympy.simplify.gammasimpr   rr   rq   r   r#   r$   r/   rC   r1   r   rB   r6   r3   r.   r5   r   r%   r&   r!   absr"   r0   r   r9   )r   rq   r   rD   rD   rE   test_meijerg_expandi  s    (

$$
$$""
"
2    
("( "*,,&
0"
  &r   c                  C   s  ddl m} m} ddlm} tttgg ttgg t	t	t t
t	 tt t d  |tt t	 ksjtttdgg ddgg t	t
t	|dt	 kstttgg ttd gg stttgg td tgg stttgg td tgg sttttgg ttttj gg t	tt t	ttj   dtdtt	  |dtt	 td   dtdtt	  | dtt	      krtttgg tttj tgg t	  krtttgg ttj ttgg t	ksn tttd gg td ttdd td gg std S )Nr   )CiSi)
uppergammarA   r=   r<   )'sympy.functions.special.error_functionsr   r   'sympy.functions.special.gamma_functionsr   r   r#   r%   r&   r$   r/   r9   rC   r   r   rB   r3   r.   r5   r6   r-   )r   r   r   rD   rD   rE   test_meijerg_lookup  s*    . @"
 
 r   c                	   C   s  t g g ttj gtttd  ttd  gs0tt g g dtjgtt gsNtt g g dt tj tt tj gttj gstt g g dttj t tj gtjgstt g g tttj tgdt t gstt g g tttj tdt t gstt tjgg t tgdgstd S )Nr=   r   r<   )r   r%   r   rB   r&   rC   rD   rD   rD   rE   test_meijerg_expand_fail  s    02*(&r   c                  C   s  dd t dD \} }dd t dD \}}dd t dD \}}}}}}	t| g||g|g||gt}
tddd kszttddd kstt| |g||g|g|||gt}tt|||
t	|tstt| |g||g|g|||d	 gt}tt||d	 |
t	|tstt| |d	 g||g|g|||d gt}tt|d	 |d |
t	|tsjtt| g|||d	 g||d g||gt}tt|d |d	 |
t	|td
dst| |g}|||d	 g}|||d	 g}||d	 g}t
t||||\}}|j| fkstt|j||hks0t|j|fksBtt|j||hksZttt|
|t	t||||ttstd S )Nc                 s   s&   | ]}t |d t  |t  V  qdS r>   NrS   r   r   rD   rD   rE   rM     s     ztest_meijerg.<locals>.<genexpr>r=   c                 s   s&   | ]}t |d t  |t  V  qdS r   r   r   rD   rD   rE   rM     s     c                 s   s   | ]}t  V  qd S r   r   r   rD   rD   rE   rM     s     r@   r<   rG   rA   gư>)Ztol)r   r#   r$   r   Zmeijer_minusrC   Zmeijer_plusrV   r   r   r   r   r   setrX   r   rY   r   )r   r   r   r   r   b4b5r   a4a5r   g2r   rY   rX   r   Zniqr   rD   rD   rE   test_meijerg  sD      $&(*(    r   c               
   C   sx  dd t dD \
} }}}}}}}}}	t| g||g|g||gt}
tt||
tt| g||g|d g||gttszttt| |
tt| d g||g|g||gttsttt	||
tt| g||g|g|d |gttsttt
||
tt| g|d |g|g||gtts$tt| g||g|g||gdt}t||
tt| g||g|d g||gttsxtt| g||g|g||gdt}t||
tt| g||g|g|d |gttstt| g||g|g||gdt}t||
tt| d g||g|g||gtts tt| g||g|g||gdt}t||
tt| g|d |g|g||gttsttd S )Nc                 s   s   | ]}t |V  qd S r   r   r   rD   rD   rE   rM     s     z/test_meijerg_shift_operators.<locals>.<genexpr>ru   rA   r   )r   r#   r$   rV   r   r   r   rC   r   r	   r
   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   rD   rD   rE   test_meijerg_shift_operators  sT    &    

  

  

  

  r   c                  C   sV  dd } | t g ddgddgg ttt ds2t| t g ddgddgg ttd  d t ttd  tdd dszt| t g ddgddgg ttd d	 td  ttd  tdd dd
t   dst| t g ddddgddddgg tttd  d
 dst| t ddgg g ddgtdtdt  s<t| t ddgddgddgddgtt tt dt  tdt  d st| t tjgddgddgtddgtttd d dstdd }|g dgddgg st|ddgg g dgst|ddgdddgddd
gddgs,t|ddgdddgddd
gdgsRtd S )Nc                 S   s   ddl m} |||g\}}| }t| } | t|ttdk f|tdt dk f|dfks\dS | jd jd |kr| jd jd |ksdS t d }t| t|	 |t|	  	 dkrdS t| td| 	 |td| 	  	 dkrdS dS )Nr   )sympifyrA   TFru   g|=)
Zsympy.core.sympifyr   r   r!   r   r$   argsrS   rU   r_   )mr%   r&   r   Zm_Zz0rD   rD   rE   r|     s    0(
,4z"test_meijerg_confluence.<locals>.trA   r   r<   r=   rG   r;      r@   c                 S   sJ   t | |||t}t|dd}|t r>|jr:t|jdks>dS t||tS )NT)Zallow_hyperr<   F)r#   r$   r   rP   Zis_Piecewiselenr   rV   )r   rX   r   rY   r   m2rD   rD   rE   u1  s
    z"test_meijerg_confluence.<locals>.ur>   )r#   r$   r1   rC   r-   r   rB   )r|   r   rD   rD   rE   test_meijerg_confluence  s8    *    & 4 <0  
>(r   c                  C   s   ddl m}  tdtddfdft}d}|ttdd  tdtddftd	dftttt   }| 	t
||  d
dstd S )Nr   )RR))g      @rA   rD   r<   r=   r   gwg      r>   g      ?g-q=)Zsympy.polys.domains.realfieldr   r#   r-   r$   r"   r0   r   r.   Zalmosteqr   r_   rC   )r   r   r%   r   rD   rD   rE   test_meijerg_with_Floats=  s
    <r   c               
   C   s  ddl m} m} ddlm} ttdtgtd gtt | tdtksJt	ttdttgtd td gttd  | tdtkst	ttdtttgtd td td gttd  | tdtkst	ttdgtgd  td gd ttd  | tdtkst	|tt
ddt gg dgt gtt t t | tdtksLt	|tt
ddt dt gg dgt t gtt t t | tdtkst	|tt
ddt dt dt gg dgt t t gtt t t | tdtkst	tttddgdgt tdt   ks&t	tttdddgddgt |dtksTt	tttddddgdddgt |dtkst	ttdtdtj gtd tjgtdt td  dtd  t | tdt  kst	tdddgddgst	tdddtd	 gddtgdd
st	tdttttd	 gtd td td tgddsTt	ddlm} tttjtjtjdgtddtddtddgtdd||dttt d  |dtj kst	d S )Nr   )lerchphipolylogr   rA   r=   r<   ru   rN   r>   )r[   FrZ   )AbsrG   )Z&sympy.functions.special.zeta_functionsr   r   r   r   r   r"   r%   r$   rC   r#   r0   r   r.   r1   r   rB   ra   r&   r   r   r-   )r   r   r   r   rD   rD   rE   test_lerchphiF  sh    .$
0
,

 


 

" 

0.2$*
&   &r   c                  C   s"  dd t dD \} }}}}t| ||g||gtg | ||||gfD ]d}t|}|j}|j||ksht|j|| }|j|j }	t	||	D ]\}
}t
|
||stqqDtd\} }}ttd| gd|g||  | d | | d  d|   t| d g|g| | | d d|   d t| g|g|  ks4tt
ttd|gd|g|td|gd|g||sjtttdgd| |g|td| |f||td| d |f| d|    ||d	  td| d |d f| d|  |   kstt
ttdgd||g|tdgd||g||std S )
Nc                 s   s   | ]}t  V  qd S r   r   )rL   _rD   rD   rE   rM   v  s     z$test_partial_simp.<locals>.<genexpr>r>   za b zr<   rA   r=   rD   rG   )r   r   r   r$   r   rC   r   r   r   r   rV   r   r   r"   )r%   r&   r'   rO   er   r   r$   r   r   Zfunc1Zfunc2rD   rD   rE   test_partial_simpt  sD    4&
  
.
  r   c                   C   s  t tttgtgdttttt t  ttt  ttt  ksJtt tttgdt t gdtdtd  tdt t  tdt  tdtd  t  kstt tttgdt t gdtdtd  tdt t  tdt  tdtd  t  kstt tdt td  gdt td  gtd gt d gdtddt  tttd  td   tdt td  td   tdt td  td   tdt td  td   kstt ttgtgddkstttgtgddkstd S )NrA   r;   r=   r   )	r   r"   r%   r&   r'   r9   rC   r#   r$   rD   rD   rD   rE   test_hyperexpand_special  s$    .>>
<B
r   c                  C   s\   ddl m}  ddlm} | ddd}|ttdgg |d gdgtt|d tksXtd S )Nr   )Symbolrp   r_   T)integerrA   )	sympy.core.symbolr   rr   rq   r   r#   r$   r:   rC   )r   rq   r_   rD   rD   rE   test_Mod1_behavior  s     r   c                   C   s   t ddt d dt d gtdddgs.tt tjtd gtddtd gddsXtt g td gsltt tgtd td gstt tgttj dt gstt tgttj dt d gstt tgttj dt d gstt tgttj dt gs
tt tgttj dt d gs.tt tgttj dt d gsRtt tjgtdt gsntt tjgtdt gstt dgdtgstt tttj gdt tdt t d gstt tttj gtjdt dt tj gs tt tgtd gddstd S )NrA   r<   r=   T)r\   )ra   r   r-   rC   r   rB   r%   r&   rD   rD   rD   rE   test_prudnikov_misc  s     .*"" $$00r   c                   C   s  t tt gtjgstt tdt gtjgs2tt tdt gtddgsPtt tdt gtjgsjtt tdt gtddgstt tdt gtddgstt tttj gdt d gstt tttj gdt gstt tttj gdt d gs
tt tttj gtjgs(tt tttj gtddgsJtt ttd d gtd gsltt dtgdgstt dtgtd gddstt tgdt gstt tgdt d gstt tgdt d gstd S )NrA   r<   r=   Fr   )ra   r%   r   rB   rC   r-   r&   rD   rD   rD   rE   test_prudnikov_1  s"    "$""r   c               
   C   s  t j} t|  |  g| gstt|  | gd|  gs8tt|  | gd|  gsRtt|  | gd|  gsltt|  dg| gst|  | fD ]}|  | dd|  dd|  dd|  df	D ]:}|  | d|  d|  d|  fD ]}t||g|gstqqdD ]"}dD ]}t||g|gstqqqd S )Nr<   r>   r?   rA   r=   rG   rA   r=   r<   rG   r   rB   ra   rC   r   pr_   r   rD   rD   rE   test_prudnikov_2  s    ( r   c                  C   s   t j} ttddtddg| gs&tttddtddgd|  gsJtttddtddgd|  gsntttddtddg| gstttddtddgd|  gstd S )NrA   rG   r<   r=   r>   )r   rB   ra   r-   rC   r   rD   rD   rE   test_prudnikov_3  s     $$ r   c                  C   s|   t j} dD ]l}|  | dd|  dd|  dd|  dd|  f
D ]<}dd|  dd|  dd|  dfD ]}t||g|gsZtqZq8q
d S )	Nr   rA   r<   r=   r>   r?   rG   rb   r   r   rD   rD   rE   test_prudnikov_3_slow  s
    ."r   c                  C   s   t j} d|  d|  d|  fD ]}|  | d|  d|  d|  fD ]:}d|  dd|  dd|  dfD ]}t||g|gs\tq\q<dD ]"}dD ]}t||g|gstqq|qd S )Nr<   r>   r?   r=   rG   r   )r=   r<   rG   r   r   rD   rD   rE   test_prudnikov_4   s      r   c                  C   sT  t j} dD ]H}t|dD ]8}dD ].}t|dD ]}t|  ||g||gs.tq.q qq
| dd|  dd|  dfD ]v}| d|  d|  fD ]^}| d|  d|  fD ]F}| d|  d|  fD ].}||kr||krt|  ||g||gstqqqql| dd|  dd|  dfD ]R}dD ]H}| d|  d|  fD ].}dD ]"}t|  ||g||gs"tq"qqqd S )NrA   r=   r<   rG   rA   r<   r=   r>   r   rB   r   ra   rC   )r   r   qr]   r   rD   rD   rE   test_prudnikov_5  s"    ""r   c                  C   s8  t j} d|  d|  fD ]x}dD ]n}| ddfD ]&}dD ]}t| ||g||gs4tq4q,dD ]2}d|  d|  fD ]}t| ||g||gsltqlqXqqdD ]:}dD ]0}dD ]&}dD ]}t| ||g||gstqqqqt| | d|  gd|  d|  gstt| dd|  gd|  d|  gstt| ddgddgs4td S )Nr<   r>   r   rA   r=   )rA   r=   r   )r   r   r_   r   r   rD   rD   rE   test_prudnikov_6$  s"      $&r   c               
   C   s   t dgdgsttj} | d|  d|  d|  fD ]}t |  g|gs0tq0|  | dd|  dd|  dd|  df	D ]@}|  | d|  d|  d|  ddddf	D ]}t |g|gstqqnd S )Nr<   r@   r>   r?   rA   r=   rG   )ra   rC   r   rB   )r   r_   r   rD   rD   rE   test_prudnikov_7>  s    ((r   c               	   C   s  t j} dD ]}dD ]L}td|d D ]8}| dd|  dd|  dfD ]}t||g||gs@tq@q$qd|  d|  fD ]B}| dd|  dd|  dfD ]$}dD ]}t||g||gstqqqpq
|  | d|  d|  fD ]}dD ]B}| dd|  dd|  dfD ]$}dD ]}t||g||gstqqq| d|  d|  fD ]d}| d|  d|  dfD ]H}| dd|  dd|  dfD ](}||kr^t||g||gs^tq^qBq*qd S )Nr   rA   r<   r=   r>   r   )r   r`   ZbiciZdirD   rD   rE   test_prudnikov_8J  s(    
r   c                  C   s^   t dD ] } tg t| d d gstqt dD ]&} tg dt|  d  d gs2tq2d S )Nrb   rA   r=   r>   )r   ra   r   rC   )irD   rD   rE   test_prudnikov_9e  s    r   c               	   C   sp  t j} |  | dd|  dd|  dd|  df	D ]2}dD ](}t|dD ]}t|g||gs@tq@q2q*dD ]@}| d|  d|  d|  fD ]"}dD ]}t|g||gstqq~qbd|  d|  d|  fD ]P}| ddd|  dd|  dfD ]0}t|g| |gstt|gd|  |gstqq| ddd|  dd|  dfD ]$}td|  gd|  |gs&tq&ttddgt jt jgsltd S )	NrA   r<   r=   r>   r?   rG   r   r;   )r   rB   r   ra   rC   r-   r   r   r   r_   rD   rD   rE   test_prudnikov_10m  s     ("r   c                   C   s6  t tttj gdt tdt t gs*tt tttj gtdddt dt tj gs\tt tddtddgtjtjdgstt tddtddgtddtjdgstt tddtddgtddtdddgstt tddtddgtddtdddgstt ddgtddddgs2td S )Nr=   r<   rA   rG   r>   r?   )ra   r%   r   rB   r&   rC   r-   rD   rD   rD   rE   test_prudnikov_11  s    *2(,02r   c                   C   s  t g tttj dt gds tt g tttj dt d gdsDtt g tjtttj gs`tt g tddtttj gstt g tddtjtddgstt g tjtjdgstt g tjtdddgstt g tddtddtddgstt g ddtddgstt g ddtddgs4tt g dtddtddgsVtt g tddtddtddgs~tt g dtddtddgstd S )Nr=   FrA   r<   rG   r>   r?   )ra   r%   r   rB   rC   r-   rD   rD   rD   rE   test_prudnikov_12  s"      $ "&"(r   c                  C   sV   t j} |  | fD ]@}| d|  d|  d|  fD ]"}dD ]}t||g|gs4tq4q,qd S )Nr<   r>   r?   r   r   r   rD   rD   rE   test_prudnikov_2F1  s
    r  c                  C   s  t ttgtd gstt dtgtgs,tt ttgtt tj gsJtt ttgtt tj gshtt ttgtt tdd gstt ttgtt d d gstt ttgtt d d gstt ttgtt d gstt ttgtt d gstt ttgdt gstt ttgtjgs6tt ttgtddgsRtt tdt gtgsltt tdt gtgstt tdt gtgstt tttj gtgstt dtgtgstt dtgtddgstt tddtddgdgsttj} t | d dg| d d gs8tt | d dg| d d	 gsZtt | d dg| d d
 gs|tt | d dg| d d gstt | d dg| d d gstt | d dg| d d gstt | d dg| d d gstt | d dg| d d gs&tt | d dg| d d	 gsHtt | d d dg| d d gsntt | d d dg| d d	 gstt | d d dg| d d gstt | d d dg| d d gstt | d d dg| d d
 gstt | d d dg| d d
 gs,tt | d d dg| d d	 gsRtt | d d dg| d d gsxtt | d d dg| d d gstt | d d dg| d d gstt | d d dg| d d gstt | d d dg| d d gstt | d d dg| d d gs6tt | d d dg| d d gs\tt | d d	 dg| d d gstd S )NrA   r;   r<   r=   rG      rb   r@   r?      r>      r            )	ra   r%   r&   rC   r'   r   rB   r-   ZOne)orD   rD   rE   test_prudnikov_fail_2F1  sX    "  """"""""""&&&&&&&&&&&&&&r	  c                   C   s  t tttdd ttdd gtddtddgs8tt tttdd ttdd gtddtddgsptt tttdd ttdd gtddtddgstt tttdd ttdd gttdd dt d d gstt tddtjtjgddgstt tddtjdgtddtddgs<tt tddtdddgtddtd	dgsntt tddtdddgtddtd
dgstt tddtdddgtddtddgstt tddtdddgtddtddgstt tddtdddgtddtddgs6tt tddtdddgtddtd
dgshtt tjddgtddtddgstd S )NrA   r<   r=   rG   r>   r;   r  rb   r  r  r?   r  r@   )ra   r%   r-   rC   r   rB   rD   rD   rD   rE   test_prudnikov_fail_3F2  s    888B$.222222r
  c                   C   s  t dtgtddt  t gs"tt tddgtjdgs>tt dgtjtjgsVtt tddgtjtddgsxtt tddgtddtddgstt dgtddtddgstt dgtddtddgstt dgtddtddgstt tjdgtddtddtddgs,tt tjdgtddtddtddgsZtt g tddtdgsxtt g tddtd	gstt g tddtd	gstt g tttj dt d gstd S )
NrA   r=   r;   rG   r>   r<   r?   gUUUUUU?gUUUUUU?)ra   r%   r&   rC   r-   r   rB   rD   rD   rD   rE   test_prudnikov_fail_other   s    ""&   ..r  c                  C   s.   t ddgtgd} t| td t ks*td S )Nr;   rA   )r"   r$   r   rC   r   rD   rD   rE   test_bug  s    r  c                  C   sH   t ddd} t| tddks"tt ddd} t| tddksDtd S )N)rd   rc   rm   )r  rA      )r  ird   r;   r@   )r"   r   r-   rC   r   rD   rD   rE   test_omgissue_203#  s    r  N)TrA   F)r;   )T)Zsympy.core.randomr   r~   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.concrete.summationsr   Zsympy.core.containersr   Zsympy.core.exprr   ri   r   Zsympy.core.singletonr   r   r   Z(sympy.functions.combinatorial.factorialsr    Z$sympy.functions.elementary.piecewiser!   Zsympy.functions.special.hyperr"   r#   Z	sympy.abcr$   r%   r&   r'   Zsympy.testing.pytestr(   r)   r*   r+   r,   rV   r-   r.   Z&sympy.functions.elementary.exponentialr/   r0   r1   Z%sympy.functions.elementary.hyperbolicr2   Z(sympy.functions.elementary.miscellaneousr3   Z(sympy.functions.elementary.trigonometricr4   r5   r6   Zsympy.functions.special.besselr7   r   r8   r   r9   r:   rF   rK   ra   re   rf   rj   rn   ro   rs   rw   rS   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r
  r  r  r  rD   rD   rD   rE   <module>   s   d		


	

 

B

&
(	.	

	







	
6

