o
    oh*                     @   s   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 d dlmZ d dlmZ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 Zdd Zdd Zdd Zdd Zdd Z dS )    )find_simple_recurrence_vectorfind_simple_recurrencerationalize"guess_generating_function_rationalguess_generating_functionguess)Product)Function)Rational)S)Symbolsymbols)sympify)RisingFactorial	factorial	fibonacci)expc                   C   s&   t dd tdD g dksJ d S )Nc                 S      g | ]}t |qS  r   .0kr   r   s/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/concrete/tests/test_guess.py
<listcomp>       z6test_find_simple_recurrence_vector.<locals>.<listcomp>   )   r   )r   ranger   r   r   r   "test_find_simple_recurrence_vector   s
   r    c                  C   s   t d} td}tdd tdD | | | |d  | |d  ks&J t d}td}g d} td	D ]}| d
| d  d| d   d| d    q6t| ||dd|| d||d   d
||d   ||d  kssJ tg ddks}J d S )Nanc                 S   r   r   r   r   r   r   r   r      r   z/test_find_simple_recurrence.<locals>.<listcomp>r   r      )r   r   r         r         )ANi)r   r#   r$   J   r   r&   r   r   r#   U      r%   ?   r   )r	   r   r   r   append)r!   r"   fir   r   r   r   test_find_simple_recurrence   s    86
r3   c                  C   s   ddl m} m}m} t| |d tjksJ t|dtddks$J t|dtddks1J t|dd	td
dks>J d S )Nr   cospimpfr&   z0.333333333333333r   z-0.333333333333333r      )maxcoeffic  q   )mpmathr5   r6   r7   r   r   Halfr
   r4   r   r   r   test_rationalize)   s
   r=   c                  C   sF   t d} tdd tddD d|  d | d  |  d  ks!J d S )	Nxc                 S   r   r   r   r   r   r   r   r   3       z;test_guess_generating_function_rational.<locals>.<listcomp>r%   r$   r&   r#   r   )r   r   r   r>   r   r   r   'test_guess_generating_function_rational1   s   rA   c                  C   s6  t d} tdd tddD d d|  d | d  |  d	  ks#J tg d
d d	| d d| d   d|   d	  tj ksBJ ttdd | tdd d| d  d|   d	  ks_J tdd tdD dgdd d	|  d	  ksxJ tdd tdD dgd| d	 t|  | d | d	  dksJ d S )Nr>   c                 S   r   r   r   r   r   r   r   r   9   r?   z2test_guess_generating_function.<locals>.<listcomp>r%   r$   ogfr&   r#   r   )r   r#   r%      )   |   i  i  i  iZ/  i  r.   zF[3/2, 11/2, 0, -121/2, -363/2, 121, 4719/2, 11495/2, -8712, -178717/2]   c                 S   r   r   )r   r   r   r   r   r   A   r   r   egf)typesc                 S   s   g | ]}|d  qS )r   r   r   r   r   r   r   C   r   )rG   lgdegf)r   r   r   r   r<   r   r
   r   r@   r   r   r   test_guess_generating_function7   sD   ($ rJ   c               	   C   sN  t d\} }tg dddt|d |d| d fgksJ tg dtd| d gks-J tg ddd	d| d  td
d| d d d|  d  d   tttdd|d ttdd|d  ttdd|d ttdd|d   |d| d f gksJ tg dg ksJ t d\}}tg d||gdtd|d gksJ d S )Nzi0 i1)r   r#         x   F)evaluater   r#   )r   r#      *   i  i  iT i r.   )niter      r&   r%   rO   )r   r   r#   zx y)	variables)r   r   r   r   r
   )i0i1r>   yr   r   r   
test_guessG   s*   . ( 
,rX   N)!sympy.concrete.guessr   r   r   r   r   r   sympy.concrete.productsr   sympy.core.functionr	   sympy.core.numbersr
   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.sympifyr   (sympy.functions.combinatorial.factorialsr   r   %sympy.functions.combinatorial.numbersr   &sympy.functions.elementary.exponentialr   r    r3   r=   rA   rJ   rX   r   r   r   r   <module>   s      