U
    -e                     @   sL   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
 dd ZdS )	    )Rational)	fibonacci)Ssymbols)raiseslinrecc                     s  t ddgddgdddkstt dddddgddd	dgd
ddksFtt d	d	ddgddgdddkshtt d	d	dddgdddgdddkstt ddddgddddgdddkstt d	gd ddddg d	gd dddg dddkstt ddddgddddgddstt ddddgddddgdds4ttdd tdd D sRttd!d td"d#D spt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d*d+kstt  d d d d ddtd,d-ks(tt  dd  d d d.dtd/d0ksVtt d	gd1 tddtddg d2dtd3d4ksttt	d5d6  tt	 fd7d6 tt
 fd8d6 tt	fd9d6 tt	 fd:d6 t | gdddgddd   |    |  ks,tt dddg| gddd; d<  d=|   ksdtt d	dddggd>dd? d@  kstt d	gd dddg | gdAddB dC  dD|   kstt g ddgddd	kstt | gdddgdddkstd S )EN      Zcoeffsinitni*              r   
   i                 l   X;GD7          F   l   Y!Hc"6)`ToNR0s(Wm"j  7   2   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"   f/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/discrete/tests/test_recurrences.py	<genexpr>   s   ztest_linrec.<locals>.<genexpr>_   s   c                 s   s0   | ](}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           	   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 ddddgddddd	gdd
S )Nr   r   r   r   r	   r   r   r   r   r   r   r"   r"   r"   r#   <lambda>,       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.   -   r/   c                      s   t  d d d d ddS )Nr   ir   r   r"   r0   r"   r#   r.   .   r/   c                      s   t  ddS Nr   )r   r   r"   )r2   xr"   r#   r.   /   r/   c                      s   t  ddS r3   r   r"   )r1   yr"   r#   r.   0   r/   i i#
 i    i|i4.\i  l   `7u)l   <=C^l   x)m )r   AssertionErrorallranger   ZHalfr   r   r   	TypeError
ValueError)zr"   )r1   r2   r4   r5   r#   test_linrec   sp    ("&.$$*$


&



"
r=   N)Zsympy.core.numbersr   Z%sympy.functions.combinatorial.numbersr   Z
sympy.corer   r   Zsympy.testing.pytestr   Zsympy.discrete.recurrencesr   r=   r"   r"   r"   r#   <module>   s
   