o
    8Va                     @   sD   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 Z
dS )    )Rational	fibonacci)Ssymbols)raiseslinrecc                     s  t ddgddgdddksJ t g dg ddddksJ t g d	d
dgdddks-J t g dg ddddks<J t g dg ddddksKJ t dgd g d dgd g d dddksdJ t g dg dddsqJ t g dg ddds~J tdd  td!d"D sJ td#d  td$d%D sJ tjtd&d'td(d)d*td+d,td&d(g dd-d+td(d*td&d*td-d,d)gtd.\} t  d d( d d' d/dtd0d1ksJ t  d d' d d' ddtd2d3ksJ t  d&d  d d& d4dtd5d6ksJ t dgd7 td-d&td'd(g d8dtd9d:ks'J ttd;d<  tt fd=d< tt	 fd>d< ttfd?d< tt fd@d< t | gg dAd'dd-   |    |  ksuJ t g dB| gdddC dD  dE|   ksJ t g dFgdGddH dI  ksJ t dgd g d | gdJddK dL  dM|   ksJ t g ddgdddksJ t | gg dd-dd&ksJ d S )NN      ZcoeffsZinitni*  r	               )r	   r	   r   r   
   i  )r   r                  l   X;GD7 )r   r   r	   r	   r   )r	   r   r         r   r   r      )r	   r   r   r   F   l   Y!Hc"6)`ToNR0s(Wm"j  r   7   )r	   r	   r   r   2   )r	   r   r   i  l   wN;ELM$xqK a>'  i c                 s   s.    | ]}t d d gdd g|dt|kV  qdS )r	   r   r   Nr   r   .0r    r#   G/usr/lib/python3/dist-packages/sympy/discrete/tests/test_recurrences.py	<genexpr>   s    &ztest_linrec.<locals>.<genexpr>_   s   c                 s   s2    | ]}t d d gd d g|dt|d  kV  qdS )r	   r   Nr    r!   r#   r#   r$   r%      s    *iS  ig  r   r   r            	   r   zx y zP   l   ua#o[|,VNM,e*iG l	             VvRl   9g9Z
(#l         kr#   l   6Nn&`^W*H
UeX`h"l   EW&G <   i  l          Pjej~Tl   yk%+Gk& c                   S   s   t g dg dddS )Nr   r   r	   r   r   r#   r#   r#   r$   <lambda>+   s    ztest_linrec.<locals>.<lambda>c                      s   t  d d d d ddS )Nr   r   r   r   r   r#   abr#   r$   r/   ,       c                      s   t  d d d d ddS )Nr   ir   r   r#   r0   r#   r$   r/   -   r3   c                      s   t  ddS Nr   )r   r   r#   )r2   xr#   r$   r/   .       c                      s   t  ddS r4   r   r#   )r1   yr#   r$   r/   /   r6   )r	   r	   r	   )r	   r   r	   i i#
 i )r   r   r	   r      i|i4.\i  l   `7u)l   <=C^l   x)m )
r   allranger   ZHalfr   r   r   	TypeError
ValueError)zr#   )r1   r2   r5   r7   r$   test_linrec   sp   (*$
&



 
&r>   N)Zsympyr   r   Z
sympy.corer   r   Zsympy.testing.pytestr   Zsympy.discrete.recurrencesr   r>   r#   r#   r#   r$   <module>   s
    