o
    oh3                     @   s  d Z ddl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 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mZ ddlmZmZmZmZmZm Z m!Z!m"Z" dd Z#dd Z$dd Z%dd Z&dd Z'dd Z(dd Z)dd Z*dd Z+dd  Z,d!d" Z-d#S )$z;Tests for Gosper's algorithm for hypergeometric summation.     )Rationalpi)S)Symbol)binomial	factorial)explog)sqrt)gamma)Poly)simplify)gosper_normal
gosper_sumgosper_term)abjkmnrxc                  C   s   dt  d ddt  d  dt  d  t f} t|  ttddt tt tdd tt tdd fks4J t| dditddt tdd t tdd fksOJ d S )N               polysF)r   r   r   r   )eq r    t/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/concrete/tests/test_gosper.pytest_gosper_normal   s   *0"r"   c                   C   sL   t dt d tt tdt d  tt tj ttdd  ks$J d S )Nr   r   r   )r   r   r   r   Halfr   r    r    r    r!   test_gosper_term   s   r$   c                   C   s8  t dtdtfdt ksJ t ttdtftdt  d ks J t td tdtftdt  ddt   d ks:J t td tdtftd dt d  d ksRJ t dt tdtfddt  d ksfJ t tttdtfd u stJ t ttttdtfd u sJ t tttd  tdtfd u sJ t td tt tdtfd u sJ t ttt tttksJ t ttt tdtfttt tt d ksJ t dt ttt tdtfdksJ t dt ttt tdtfdt  tt  ttt t ksJ t dt d tt tdt d  tdtfdtdt d  tt tdt d  ks6J t ttt t  tt  tt  ttt ttt   tdtf t	tt
t tt
t   ttd  ttd  tttt ttt d  ttt d   dtttt   ksJ d S )Nr   r   r      r   r   )r   r   r   r   r   r   r   r   r   r   r	   r   r    r    r    r!   test_gosper_sum   sP   $40($$&
.*
6,
.r'   c                   C   s  t ttttd  d ksJ t td tttd  dt d  d ks&J t dttd   tdt ks7J t dtd  dtd   d	td   d
t  d  tdt d  ddt d  tdt d   tdt d td dt  d  tdt d  tdt d  ksJ d S )Nr   r   r%   r&      r      r   i  i  i     r   )r   r   r   r    r    r    r!   test_gosper_sum_indefinite>   s   .":>r+   c                   C   s   t ttjtt d ttjtt  tdtftdt t  ddt  dt   ttjdt t  ttjtt  tddt    ksFJ d S )Nr   r&   r   )r   r   r   r#   r   r   r   r    r    r    r!   test_gosper_sum_parametricH   s   .6r,   c                   C   sL   t td td tdtftd dtd  t dtd   d ks$J d S )Nr   r   r   r%   )r   r   r
   r   r    r    r    r!   test_gosper_sum_algebraicN   s
   &r-   c                  C   sV  t dt tdt  } ddt  t dt t dt  }ddt  ddt   t dt t ddt   }ddt  ddt   ddt   t dt t ddt   }ddt  ddt   ddt   ddt   t dt t ddt   }t| td	tf|ksJ t|td	tf|ksJ t|td	tf|ksJ t|td	tf|ksJ d S )
Nr   r   r   r   r      r*   i   r   )r   r   r   r   )f1f2f3f4f5r    r    r!   test_gosper_sum_iteratedS   s   "2>Jr5   c                  C   s  t d } t d dt   }dt d tdt   d  }t d dt   tdt  t  }tdt  tt tt d  tt d  dt    }tdt  t d t d ddt     }dt  d tdt  t d  dt  d d ddt     }t tt tj d  tt d d  }ttd  dt d  dtd  dt  d  d }ddtd  td dtd   d	t  d
   }	td ttd dt  d  td dtd  dtd   dt  d   dtd  td td  dtd   d  d }
tddddt  td  dtd  dtd   dtd   dt  d  dtdt t   }tdddtd  dt  d tdt d  ddt  tt ttd  ttd    }dt d d tdt td  ddt  td   }tdt td  ddt   }dt dt d d dt d  tttj d  ttd d   }t	| t dtf}|d urt
|| dksJ t	|t dtf}|d urt
||	 dksJ t	|t dtf}|d urt
||
 dksJ t	|t dtf}|d urt
|| dksJ t	|t dtf}|d urt
|| dksJ t	|t dtf}|d ur1t
|| dks3J t	|t dtf}|d urIt
|| dksKJ t	|t dtf}|d urdt
|| tdksfJ d S )Nr   r   r   r   r   r(         	      r*      r%      ?   p         i  iQ   i     (   r   )r   r
   r   r   r   r#   r   r   r   r   r   rewriter   )f1af1bf1cf1df1ef1ff1gf1hg1ag1bg1cg1dg1eg1fg1gg1hgr    r    r!   test_gosper_sum_AeqB_part1c   s`   4&:&40$"*< 
*6 F       *rV   c                  C   s  t d tt   } t td  ttt  }tt d d tt t tt t   }t td  td d  ttd  td td  dt td   td  dt t  dt  t d  td d   }tt ttt d }tdt tdt  }d| ddtd    ttd td ttt  ttt    }t| t dtf}|d urt|| dksJ t|t dtf}|d urt|| dksJ t|t dtf}|d urt|| dksJ d S )Nr   r   r   r   )	r   r   r   r   r   r   r   r   r   )f2af2bf2cg2ag2bffg2crU   r    r    r!   test_gosper_sum_AeqB_part2   s.   (B
* r^   c                  C   s   t ddd} t ddd}t ddd}t ddd}|||  |  | |  ||  t||  t||   }dt| d t|d   | |d  ||d   t| | t||    }t||d	|f}t|| d	kslJ d S )
Nr   T)positiver   r   )integerr   r   r   )r   r   r   r   )r   r   r   r   f2dg2drU   r    r    r!   test_gosper_nan   s   8.rc   c                  C   s8  dt d  } dt  d dt d  dt d   dt d   dt   d  }dt  t d dt   d  t d t d d   }t d dt   t d t d   }dt  t d  }dt d  t d dt   d  t d t d d  t d d  t d d   }t d dt d   dt   d	 dt   t d t d d  t d d  t d d   }ttd  dtd  dt  d  }dt td  d }tdddtd  td  td  d  }	td
ddtd d td d     }
tdd	dtd  td d td d    }t| t dtf}|d u sJ t|t dtf}|d ur%t|| dks'J t|t dtd f}|d ur?t|| dksAJ t|t dtf}|d urWt||	 dksYJ t|t dtd f}|d u sjJ t|t dtf}|d urt||
 dksJ t|t dtf}|d urt|| dksJ d S )Nr   r   r%   r      r         r8   r&      r;   r   )r   r   r   r   r   )f3af3bf3cf3df3ef3ff3gg3bg3cg3dg3fg3grU   r    r    r!   test_gosper_sum_AeqB_part3   s8   <0 LD
$*(.    $rt   N).__doc__sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   (sympy.functions.combinatorial.factorialsr   r   &sympy.functions.elementary.exponentialr   r	   (sympy.functions.elementary.miscellaneousr
   'sympy.functions.special.gamma_functionsr   sympy.polys.polytoolsr   sympy.simplify.simplifyr   sympy.concrete.gosperr   r   r   	sympy.abcr   r   r   r   r   r   r   r   r"   r$   r'   r+   r,   r-   r5   rV   r^   rc   rt   r    r    r    r!   <module>   s.    (!
*