o
    8Va                     @   s   d dl mZmZmZ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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S )    )find_simple_recurrence_vectorfind_simple_recurrencerationalize"guess_generating_function_rationalguess_generating_functionguess)FunctionSymbolsympifyRationalsymbolsS	fibonacci	factorialexpProductRisingFactorialc                   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   A/usr/lib/python3/dist-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      )Zmaxcoeffic  q   )Z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   ,       z;test_guess_generating_function_rational.<locals>.<listcomp>r%   r$   r&   r#   r   )r	   r   r   r<   r   r   r   'test_guess_generating_function_rational*   s   r?   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   2   r=   z2test_guess_generating_function.<locals>.<listcomp>r%   r$   Z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   :   r   r   egf)typesc                 S   s   g | ]}|d  qS )r   r   r   r   r   r   r   <   r   )rD   Zlgdegf)r	   r   r   r   r:   r
   r   r   r>   r   r   r   test_guess_generating_function0   sD   ($ rF   c               	   C   sJ  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 d S )Nzi0 i1)r   r#         x   F)Zevaluater   r#   )r   r#      *   i  i  iT i r.   )Zniter      r&   r%   rJ   )r   r   r#   zx y)Z	variables)r   r   r   r   r   )Zi0Zi1r<   yr   r   r   
test_guess@   s*   . ( 
(rO   N)Zsympy.concrete.guessr   r   r   r   r   r   Zsympyr   r	   r
   r   r   r   r   r   r   r   r   r    r3   r;   r?   rF   rO   r   r   r   r   <module>   s     4