ó
~9­\c           @   sN  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 m Z m Z m Z m Z m Z d  d l m Z m Z d  d l m Z m Z e d ƒ \ Z Z Z e d ƒ \ Z Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) e d „  ƒ Z* d S(   iÿÿÿÿ(   t   St   Tuplet   symbolst   Intervalt   EmptySequencet   oot   SeqPert
   SeqFormulat   sequencet   SeqAddt   SeqMult   Indexedt   Idxt   sqrtt	   fibonaccit
   tribonacci(   t   SeqExprt	   SeqExprOp(   t   raisest   slows   x y zs   n mc           C   sm   t  t j t ƒ s t ‚ t j j t j k s3 t ‚ t j j t j k sN t ‚ t t j ƒ g  k si t ‚ d  S(   N(	   t
   isinstanceR    R   t   AssertionErrort   intervalt   EmptySett   lengtht   Zerot   list(    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_EmptySequence   s    c          C   sô   t  d t t f t d d f ƒ }  t |  t  ƒ s6 t ‚ |  j d t t f k sT t ‚ |  j t d d ƒ k sr t ‚ |  j	 d k s‡ t ‚ |  j
 d k sœ t ‚ |  j d k s± t ‚ |  j t f k sÉ t ‚ t  d t d t f ƒ j t k sð t ‚ d  S(   Ni   i    i
   i   i   i   (   i   i   i   (   R   t   nt   yt   xR   R   t   genR   R   t   startt   stopR   t	   variablesR   (   t   s(    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_SeqExpr   s    !c          C   sO  t  d t d f t d d f ƒ }  t |  t  ƒ s6 t ‚ |  j t d t d ƒ k sW t ‚ |  j d k sl t ‚ |  j d ƒ d k s‡ t ‚ |  j	 t h k sŸ t ‚ t
 |  ƒ d t d d t d g k sÉ t ‚ |  d t d d t d g k sî t ‚ t  d t d f t t d f ƒ d d !d t d d t d g k s5t ‚ t t d „  ƒ t t d „  ƒ t t d „  ƒ t  t t d	 t d f t d t f ƒ d  t t d	 t d t t d	 t d g k sÀt ‚ t  t t d	 t d f t d t f ƒ d  d d d
 d d d g k st ‚ t  t t f t d t f ƒ d  d t d	 t d t g k sKt ‚ d  S(   Ni   i   i    i   i   c           S   s   t  d d ƒ S(   Ni   i   i   i    (   i   i   i   (   i    i   i   (   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   <lambda>/   t    c           S   s   t  d t t t f ƒ S(   Ni   i   i   (   i   i   i   (   R   R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   0   R&   c           S   s   t  t d d t f ƒ S(   Ni   i    (   R   R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   1   R&   i   i   i   i}   i   (   R   R   R   R   R   t
   periodicalR   t   periodt   coefft   free_symbolsR   R   R   t
   ValueErrort   m(   R#   (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_SeqPer"   s     !!*%G*1Kc          C   s  t  t d t d d f ƒ }  t |  t  ƒ s1 t ‚ |  j t d k sJ t ‚ |  j d ƒ d k se t ‚ t |  ƒ g  t d ƒ D] } | d ^ q{ k sš t ‚ |  g  t d ƒ D] } | d ^ q« k sÊ t ‚ t  t d t t d f ƒ d d !g  t d ƒ D] } | d ^ qø k st ‚ t  t d d t f ƒ t  t d t d t f ƒ k sRt ‚ t  t d d t	 f ƒ j
 t	 t ƒ t  t d d t f ƒ k s–t ‚ t  t	 t d t d t f ƒ j
 t	 t ƒ t  t t d t d t f ƒ k sèt ‚ t t d „  ƒ t t d „  ƒ t t d	 „  ƒ d  S(
   Ni   i    i   i   i	   i   c           S   s   t  t d d ƒ S(   Ni   i    i   (   i    i   i   (   R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   J   R&   c           S   s   t  t d t t t f ƒ S(   Ni   (   R   R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   K   R&   c           S   s   t  t t d d t f ƒ S(   Ni   i    (   R   R,   R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   L   R&   (   R   R   R   R   t   formulaR)   R   t   rangeR   R,   t   subsR   R   R+   (   R#   t   i(    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_SeqFormula9   s    50M;D))c          C   s°   t  t d t d d f ƒ }  t d t d d f ƒ } t  t d ƒ } t t d t d d f ƒ |  k sl t ‚ t d t d d f ƒ | k s t ‚ t t d ƒ | k s¬ t ‚ d  S(   Ni   i    i   i   i   (   i   i   i   (   i   i   i   (   R   R   R   R   R   (   t   formt   pert   inter(    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_sequenceO   s    ($c          C   sÞ   t  t d t d d f ƒ }  t d t d d f ƒ } t |  | ƒ } | j t d d	 f k sb t ‚ | j t d d ƒ k s€ t ‚ | j	 d k s• t ‚ | j
 d k sª t ‚ | j d k s¿ t ‚ | j t t f k sÚ t ‚ d  S(
   Ni   i    i
   i   i   i   i   (   i   i   i   (   i   i   i   (   R   R   R   R,   R   R   R   R   R   R    R!   R   R"   (   R3   R4   R#   (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_SeqExprOpY   s    c          C   s+  t  d t d t f ƒ }  t t d ƒ } t  d t d d f ƒ } t t d d ƒ } t t d d ƒ } t ƒ  t j k s~ t ‚ t t j ƒ t j k sœ t ‚ t |  ƒ |  k s´ t ‚ t |  t j ƒ |  k sÒ t ‚ t | | ƒ t j k sð t ‚ t | | d t ƒ} | j	 | | f k s t ‚ | d d d d	 d
 g k sBt ‚ t
 | ƒ d d d d	 d
 g k sit ‚ t t |  | d t ƒt ƒ st ‚ t |  | ƒ } t | t  ƒ s±t ‚ | t  d t d d f ƒ k sÕt ‚ t | | ƒ } t | t ƒ sùt ‚ | t d t d d ƒ k st ‚ t | | |  ƒ t |  t d t d d ƒ ƒ k sTt ‚ t | t | |  ƒ ƒ t |  t d t d d ƒ ƒ k s’t ‚ t |  t | | ƒ d t ƒt |  t d t d d ƒ ƒ k sÖt ‚ t t  d t d t f ƒ t  d t d t f ƒ ƒ t  d t d t f ƒ k s't ‚ d  S(   Ni   i   i   i    i   i   i
   t   evaluatei   i   i   (   i   i   i   (   i   i   (   i   i
   (   i   i   (   i   i   i   i   i   i   (   i   i
   (   i   i
   (   i   i
   (   i   i
   (   i   i   (   i   i   (   i   i   (   R   R   R   R   R	   R    R   R   t   Falset   argsR   R   R,   (   R4   R3   t   per_bout   form_bout	   form_bou2R#   t   s1t   s2(    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_SeqAddf   s:    "'$$#)))0c          C   s)  t  d t d t f ƒ }  t t d ƒ } t  d t d d f ƒ } t t d t d d f ƒ } t t d d ƒ } t ƒ  t j k s‡ t ‚ t t j ƒ t j k s¥ t ‚ t |  ƒ |  k s½ t ‚ t |  t j ƒ t j k sÞ t ‚ t | | ƒ t j k sü t ‚ t | | d t ƒ} | j	 | | f k s,t ‚ | d d	 d
 d d g k sNt ‚ t
 | ƒ d d	 d
 d d g k sut ‚ t t |  | d t ƒt ƒ s™t ‚ t |  | ƒ } t | t  ƒ s½t ‚ | t  d t d d f ƒ k sát ‚ t | | ƒ } t | t ƒ st ‚ | t t d d ƒ k s$t ‚ t | | |  ƒ t |  t t d d ƒ ƒ k sXt ‚ t | t | |  ƒ ƒ t |  t t d d ƒ ƒ k s’t ‚ t |  t | | d t ƒd t ƒt | |  | d t ƒk sÔt ‚ t t  d t d t f ƒ t  d t d t f ƒ ƒ t  d t d t f ƒ k s%t ‚ d  S(   Ni   i   i   i    i   i   i
   R8   i   i	   i    i   i   (   i   i   i   (   i   i   (   i   i   (   i   i   i   i   i   i   (   i   i
   (   i   i
   (   i   i
   (   i   i   (   i   i   (   i   i   (   R   R   R   R   R
   R    R   R   R9   R:   R   R   (   R4   R3   R;   R<   R=   R#   R>   R?   (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_SeqMul   s<    !"'$$%%!0c             s×   t  d t d t f ƒ ‰  t t d ƒ }  ˆ  t  d	 ƒ t  d
 t d t f ƒ k sV t ‚ |  t t d ƒ t t d t d ƒ k sˆ t ‚ ˆ  |  t ˆ  |  ƒ k s§ t ‚ t t ‡  f d †  ƒ t t ‡  f d †  ƒ d  S(   Ni   i   i    i   i   c              s   ˆ  t  S(   N(   R   (    (   R4   (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   ¾   R&   c              s   t  ˆ  S(   N(   R   (    (   R4   (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   ¿   R&   (   i   i   (   i   i   (   i   i   (   R   R   R   R   R   R	   R   t	   TypeError(   R3   (    (   R4   s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_addµ   s    .2c             sØ   t  d t d t f ƒ ‰  t t d ƒ }  ˆ  t  d	 ƒ t  d
 t d t f ƒ k sV t ‚ |  t t d ƒ t t d t d ƒ k sˆ t ‚ ˆ  |  t ˆ  |  ƒ k s¨ t ‚ t t ‡  f d †  ƒ t t ‡  f d †  ƒ d  S(   Ni   i   i    i   iÿÿÿÿc              s   ˆ  t  S(   N(   R   (    (   R4   (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   Ë   R&   c              s   t  ˆ  S(   N(   R   (    (   R4   (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   Ì   R&   (   i   i   (   i   i   (   iÿÿÿÿiÿÿÿÿ(   R   R   R   R   R   R	   R   RB   (   R3   (    (   R4   s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_subÂ   s    .2 c           C   sw  t  d t d t f ƒ j d ƒ t  d t d t f ƒ k s? t ‚ t t d ƒ j d ƒ t d t d ƒ k sr t ‚ t j j d ƒ t j k s“ t ‚ t  d t d t f ƒ t  d ƒ t  d t d t f ƒ k sÓ t ‚ t t d ƒ t t d ƒ t t d ƒ k st ‚ t j t t d ƒ t j k s-t ‚ t t d ƒ t j t j k sSt ‚ t t	 d	 „  ƒ t t	 d
 „  ƒ d  S(   Ni   i   i    i   id   i   i   i   c           S   s   t  t d ƒ t S(   Ni   (   R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   Û   R&   c           S   s   t  t t  d ƒ S(   Ni   (   R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyR%   Ü   R&   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (
   R   R   R   t	   coeff_mulR   R   R    R   R   RB   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_mul__coeff_mulÏ   s    ?3!!4&&c           C   sc   t  d t d t f ƒ t  d t d t f ƒ k s7 t ‚ t t d ƒ t t d ƒ k s_ t ‚ d  S(   Ni   iþÿÿÿi    iÿÿÿÿi   (   i   iþÿÿÿ(   iÿÿÿÿi   (   R   R   R   R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_negß   s    7c          C   s]  t  d t d t f ƒ }  t  d t d t f ƒ } t t d ƒ } t t d ƒ } |  | | t |  | | ƒ k sv t ‚ |  | | t |  | | ƒ k s t ‚ |  | t j t |  | ƒ k sÃ t ‚ |  | | t t  d	 t d t f ƒ | ƒ k sø t ‚ t j |  |  k st ‚ | | t d t d ƒ k s6t ‚ |  | | t |  | | ƒ k s\t ‚ | | t t d ƒ k s|t ‚ | | t t d ƒ k sžt ‚ | |  | t | t |  | ƒ ƒ k sÊt ‚ | |  |  t | | ƒ k sít ‚ | j	 t
 ƒ t t
 t d t d t f ƒ k s"t ‚ |  j	 t
 ƒ t  t
 d t
 f t d t f ƒ k sYt ‚ d  S(
   Ni   i   i    i   i   i   (   i   i   (   i   i   (   i   i   (   R   R   R   R   R	   R   R    R   R
   RE   R,   (   R4   t   per2R3   t   form2(    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_operationsä   s"    &'&5$& ",#5c          C   s¦   t  d d t ƒ}  t d |  ƒ } t | |  d d f ƒ g  t d ƒ D] } | j |  | ƒ ^ qD k sk t ‚ t d	 |  d d f ƒ d d d d d d g k s¢ t ‚ d  S(
   NR1   t   clst   ri    i   i   i   i   (   i   i   (   R   R   R   R   R/   R0   R   R   (   R1   RL   t   j(    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_Idx_limitsü   s    Jc           C   sc  t  d' t d d f ƒ j d ƒ d d g k s3 t ‚ t  d( t d d f ƒ j d ƒ d d d d g k sl t ‚ t  t t d t t t d t f ƒ j d ƒ d d d d g k sµ t ‚ t  t t t d d f ƒ j d ƒ t g k sé t ‚ t  d) ƒ j d d ƒ d d d g k st ‚ t  d t d ƒ d t d t d ƒ d t ƒ j d ƒ d d g k sgt ‚ t  t d t d ƒ d t t d t d ƒ d t t d t f ƒ j d ƒ d d g k sÌt ‚ t  d* t d d f ƒ j d ƒ g  k sùt ‚ t  d+ t d d f ƒ j d d t ƒg  d  f k s2t ‚ t  d, t d d f ƒ j d d t ƒt	 d! ƒ d d" t	 d# ƒ d g d$ t d d% t d d# t d d& t d d! t d f k sÀt ‚ t  t
 t ƒ ƒ j d  d t ƒd d g t t d t d f k s
t ‚ t  t t ƒ ƒ j d  d t ƒd d d g t t d t d t d f k s_t ‚ d  S(-   Ni    i   i   i   i   i   i   i   i"   i7   i
   i   i   i   i   i€   iF  i¹
  iÝ2  iñ  i©v i‚* i   iþÿÿÿi   iõÿÿÿiúÿÿÿiÿÿÿÿi   iO   t   gfvari   i   iìÿÿÿi   iáÿÿÿi    i(   (   i    i   i   i   i   i   i   i   i   i"   i7   (   i   i   i   i   i   i€   iF  i¹
  iÝ2  iñ  i©v i‚* (   i   i   i   (   i   i   i   i   i   (   i   i   i   i   i   iO   (   i   i   i   i   i   i   (   R   R   t   find_linear_recurrenceR   R   R   R   R   t   NoneR    R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   test_find_linear_recurrence  s*    -6.4-98--$$j,N(+   t   sympyR    R   R   R   R   R   R   R   R   R	   R
   R   R   R   R   R   t   sympy.series.sequencesR   R   t   sympy.utilities.pytestR   R   R   R   t   zR   R,   R   R$   R-   R2   R6   R7   R@   RA   RC   RD   RF   RG   RJ   RN   RR   (    (    (    s@   lib/python2.7/site-packages/sympy/series/tests/test_sequences.pyt   <module>   s&   j						
		'	(						