o
    à8Va‰U  ã                   @   sš  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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m Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z(m)Z)m*Z* edƒ\Z+Z,Z-eddd\Z.Z/Z0edƒed	ƒZ1Z2d
d„ Z3dd„ Z4dd„ Z5dd„ Z6dd„ Z7dd„ Z8e*dd„ ƒZ9e*dd„ ƒZ:dd„ Z;dd„ Z<dd„ Z=d d!„ Z>d"d#„ Z?e)d$d%„ ƒZ@d&d'„ ZAd(d)„ ZBd*d+„ ZCd,d-„ ZDd.d/„ ZEd0d1„ ZFd2S )3é    )ÚsymbolsÚ	factorialÚsqrtÚRationalÚatanÚIÚlogÚfpsÚOÚSumÚooÚSÚpiÚcosÚsinÚFunctionÚexpÚ
DerivativeÚasinÚairyaiÚacosÚacoshÚgammaÚerfÚasechÚAddÚMulÚ	integrate)	Úrational_algorithmÚFormalPowerSeriesÚFormalPowerSeriesProductÚFormalPowerSeriesComposeÚFormalPowerSeriesInverseÚsimpleDEÚrational_independentÚexp_reÚhyper_re)ÚraisesÚXFAILÚslowzx y zzn m kT)ZintegerÚfÚrc                  C   s  dt d d t d   } t| t tƒdt d   d ttd ƒttƒ  ddfks+J ‚dt  t d  t d  t d t d   } t| t tƒddt d   d t d dfksWJ ‚ttt tt   tt   t d   } t| t tƒtt d   t tt  tt d  t tt   ddfksJ ‚t dt  t d   } t| t tƒd u s£J ‚t| t tddtd	dƒtd
ƒd  t d  td
ƒ d t	j
  td
ƒ d t	j
 t d  td
ƒd t	j
   ddfksâJ ‚dt d dt   d  } t| t tƒd u søJ ‚t| t tddtd	t t d   d td	t t d   d  ddfks J ‚tdt  ƒ} t| t tƒd	t   t ddfks:J ‚tt ƒ} t| t tƒd u sIJ ‚t| t tddttt   d tt t   d  t ddfkslJ ‚t tt ƒ tdt d  ƒd  } t| t tƒd u s‡J ‚t| t tddttt d   d tt t d   d  ttd   ddfks²J ‚tdt  dt   ƒd tt ƒ } t| t tƒd u sÍJ ‚t| t tddd	t   d ttt   d  tt t   d  t	j
 t ddfksûJ ‚ttt ƒt tƒd u sJ ‚d S )Né   é   r   é   iñÿÿÿé   T©Úfulléÿÿÿÿé   é
   )Úxr   Úkr   ÚzÚyÚmr   r   r   ÚHalfr   r   r   r   ©r*   © r<   ú@/usr/lib/python3/dist-packages/sympy/series/tests/test_formal.pyÚtest_rational_algorithm   sx   
,ÿ(
ÿ$
:ÿÿÿþýÿ8
ÿ

ÿ.
ÿ ,
ÿÿ
ÿ 4ÿÿÿ
ÿr>   c                  C   s   t } | g tƒg ksJ ‚| ttƒttƒgtƒttƒttƒgks J ‚| td ttƒtttƒ td gtƒtd td  tttƒ ttƒ gksGJ ‚| tjtttƒ ttƒttƒt ttƒttƒtgtƒtd tttƒ ttƒ ttƒt ttƒ ttƒgks~J ‚d S )Nr-   r.   r,   )r$   r5   r   r   r   ZOner   )Zrir<   r<   r=   Útest_rational_independentB   s   *$"ÿ42ÿr?   c                  C   s  t ttƒttƒD ]} | ttƒ tttƒtƒ dfksJ ‚ t ttƒttƒD ]} | ttƒtttƒttƒ dfks9J ‚ t tdt ƒttƒD ]} | td tttƒtdƒ tttƒtƒ dfks_J ‚ t ttƒttƒD ]} | ttttƒtƒ td d tttƒttƒ  dfks‡J ‚ t ttƒttƒ ttƒD ]} | dttƒ dtttƒƒ  tttƒttƒ dfks²J ‚ t dt dt  t ttƒD ]} | dt ttƒ td d tttƒtƒ  dfksÞJ ‚ t t	tƒttƒD ]} | t ttƒ tttƒttƒ dfksþJ ‚ d S d S )Nr,   r-   )
r#   r   r5   r*   r   r   r   r   Únr   )ZDEr<   r<   r=   Útest_simpleDEL   s0   $$2.
ÿ8 6*þrA   c                  C   sr  t tƒ tt tƒtƒ } t| ttƒttƒ ttd ƒ ksJ ‚t tƒtt tƒttƒ } t| ttƒttƒttd ƒ ks=J ‚t tƒtt tƒtƒ tt tƒttƒ } t| ttƒttƒttd ƒ ttd ƒ kshJ ‚tt tƒtƒtt tƒttƒ } t| ttƒttƒttd ƒ ks‰J ‚tt tƒtdƒtt tƒtdƒ tt tƒƒ } t| ttƒttƒttd ƒ ttd ƒ ks·J ‚d S )Nr,   r-   r.   r/   )r*   r5   r   r%   r+   r6   ©Údr<   r<   r=   Útest_exp_ref   s   &$&0$,4rD   c                  C   sÂ  t tƒtt tƒttƒ } t| ttƒttƒtd td  ttd ƒ  ks&J ‚t t tƒ tt tƒttƒ } t| ttƒtd td  ttd ƒ ttƒ ksOJ ‚dt tƒ dtt tƒtƒ  tt tƒttƒ } t| ttƒdt d ttd ƒ td td  ttd ƒ  dttƒ  ksŽJ ‚dt t tƒ td d tt tƒtƒ  } t| ttƒtttƒ dt ttd ƒ  t d ttd ƒ  ksÆJ ‚td d tt tƒtƒ ttd d  tt tƒttƒ  } t| ttƒttd  t ttƒ dt td td   d ttd ƒ  ksJ ‚td d tt tƒtdƒ dt tt tƒttƒ  tt tƒtƒ } t| ttƒttd  td  dt td   t ttƒ t td  td  ttd ƒ  ks_J ‚d S )	Nr,   r-   r.   éþÿÿÿr4   r/   é	   é(   )r*   r5   r   r&   r+   r6   r@   rB   r<   r<   r=   Útest_hyper_rew   s0   44.
>ÿ*
4ÿ:
>
ÿ2ÿ
. ÿÿrH   c                  C   s   t dƒdksJ ‚t dtƒdksJ ‚t dtdddksJ ‚t dtdddks'J ‚t dt dtd   ƒdt dtd   ks?J ‚t tdt ƒdddtdt ƒksRJ ‚t td t d ƒ} t| tƒscJ ‚| jtd t d kspJ ‚| d dksxJ ‚| d td ks‚J ‚|  d	¡td t d ttd	 ƒ ks—J ‚|  ¡ td t d ks¥J ‚t tdt ƒƒ} t| tƒs´J ‚| jtdt ƒks¿J ‚|  	tt
¡| ksÉJ ‚| d d
… dttd  d td d td	  d	 gksæJ ‚|  t¡tksïJ ‚|  d¡ttd d  td d  td	 d	  td
 d
  ksJ ‚| jjd }| jtd|   t|  | |dtfƒks/J ‚| jd d| d d
… }}t|ƒD ]\}}|d
krK n|| |ksTJ ‚q@ttƒ  t¡} t| tƒseJ ‚|  ¡ ttd d  td
 d  ttd ƒ ks€J ‚ttdd„ ƒ ttdd„ ƒ d S )Nr,   r-   ú+©Údirú-F)ZhyperÚrationalr   r/   r3   r.   é   r2   ©r@   éx   c                   S   s   t tt ƒS ©N)r	   r8   r5   r<   r<   r<   r=   Ú<lambda>¶   ó    ztest_fps.<locals>.<lambda>c                   S   s   t tddS )Nr   rJ   )r	   r5   r<   r<   r<   r=   rR   ·   rS   )r	   r5   r   Ú
isinstancer   ÚfunctionÚtruncater
   Ú
polynomialZsubsr8   Zas_leading_termÚakÚ	variablesÚinfiniter   r   Ú	enumerater   r'   ÚNotImplementedErrorÚ
ValueError)r*   r6   ZftÚsÚiÚtr<   r<   r=   Útest_fps‘   s@   0&*:D0
6ra   c                  C   sn  t dt ƒdt ksJ ‚t td t d td  ddtd t d td  ks*J ‚dtd d td   } t | tƒ ¡ tddƒttddƒ  dtd  d	  d
td  d  dtd  d  dtd  d  ttd ƒ ksqJ ‚dt td  td  td td   } t | tƒ ¡ tjttddƒ  dtd  d	  d
td  d  dtd  d  dtd  d  ttd ƒ ks¾J ‚tdt td   } t | tdd ¡ ttd  dtd   dtd   dtd   ttd ƒ ksñJ ‚dtd dt  d  } t | tdd ¡ tjtd  td d  td d	  td d	  ttd ƒ ks(J ‚tdt ƒ} t | tƒ ¡ ttd d  td d  td d  td d  ttd ƒ ksXJ ‚t | tdd ¡ t | tdd ¡ ksmJ ‚t | tdƒ ¡ tdƒtddƒ td d d  td d d  td d d  td d d  td  ttd d tdfƒ ks°J ‚t | tddd ¡ tdƒtddƒ t d d d  t d d d  t d d d  t d d d  td  ttd d tdfƒ ksùJ ‚ttƒ} t | tdd ¡ ttd d  td d  ttd ƒ ksJ ‚t | tddd ¡ t | tddd ¡ ks4J ‚t | tddd ¡ tdƒtddƒ dtd d  d  dtd d  d  dtd d  d  dtd d  d  td  ttd d tdfƒ ksJ ‚t | tdddd ¡ tdƒtddƒ dt d d  d  dt d d  d  dt d d  d  dt d d  d  td  ttd d tdfƒ ksÓJ ‚tttƒ tdtd  ƒd  } t | tdd ¡ td d td d   ttd ƒ ksJ ‚tdt dt  ƒd ttƒ } t | tddjd!d"dtd  d dtd#  d#  ttd! ƒ ks5J ‚d S )$Nr,   r-   r.   r2   rJ   r3   r/   é   é   é1   é   é   é    iA  é@   rN   éq   éñ   Tr0   é   éQ   éD  é¿  )r1   rK   é   é   iw  iq  é)   i	=  é   r4   rO   é   )	r	   r5   rV   r   r
   r   r:   r   r   r;   r<   r<   r=   Útest_fps__rationalº   s¨   <Fÿ
ÿÿ(Bÿ
ÿÿ:ÿ<
ÿ>
ÿ*0ÿÿÿÿ
ÿ4ÿÿÿÿ
ÿ@
ÿ8ÿÿÿÿ
ÿ<ÿÿÿÿ
ÿ < Lrt   c                  C   s¶  t tƒ} t| tƒ ¡ ttd d  td d  ttd ƒ ks!J ‚ttƒ} t| tƒ ¡ dtd d  td d  ttd ƒ ksBJ ‚ttƒ} t| tƒ ¡ dt td d  td d  td d  td d  ttd ƒ ksqJ ‚ttƒ} t| tƒ ¡ ttd d  td d  ttd ƒ ks’J ‚tttƒƒ} t| tƒ ¡ tt	d ƒttt	d ƒ  td tt	d ƒ d  td tt	d ƒ d  dtd  tt	d ƒ d  td tt	d ƒ d  ttd ƒ ksçJ ‚tt
tƒƒ} t| tƒ ¡ tt ttd  d  ttd  d	  ttd ƒ ksJ ‚tdt ƒ} t| tƒ ¡ t	d t td d  td d  ttd ƒ ks9J ‚tttƒ tdtd  ƒd  } t| td
d ¡ td d td d  ttd ƒ ksgJ ‚tdt ƒ} t| td
d ¡ ttd d  td d  td d  td d  ttd ƒ ks™J ‚ttd ƒ} t| tƒ ¡ dtddƒ ttddƒƒ dt	  dtddƒ td  dttddƒƒ   ttd ƒ ksÕJ ‚ttƒt tƒ } t| tƒ ¡ ttd  td d  td d  ttd ƒ ksÿJ ‚ttƒt tƒ t } t| tƒ ¡ dt td d  td d  td d  ttd ƒ ks/J ‚t tƒttƒ } t| tƒ ¡ tdtd  d  dtd  d  ttd ƒ ksYJ ‚d S )Nr.   rN   r3   rP   r,   r-   r/   é   rc   F©rM   rr   é   éZ   é   )r   r5   r	   rV   r
   r   r   r   r   r   r   r   r   r   r   r   r;   r<   r<   r=   Útest_fps__hyperî   sX   ::Bÿ:Jÿÿ
ÿÿHD <>
ÿ"&ÿ
ÿ
ÿDLHrz   c                  C   sv  t d tt ƒ } t| t ƒ ¡ dt d  ddt d    tddƒ t d d  t d d  tt d ƒ ks6J ‚t d tt ƒ } t| t d	d
 ¡ t d t d d  tt d ƒ ksYJ ‚ttt ƒƒt  } t| t ƒ ¡ t t d d  t d d  t d d  t d d  tt d ƒ ksŠJ ‚t d ttt ƒƒ } t| t ƒ ¡ t d t d d  t d d  t d d  tt d ƒ ks¹J ‚d S )Néûÿÿÿr,   r/   rN   r-   rP   é°  é€‰ Frv   r.   r3   ru   éÐ  é€  )	r5   r   r	   rV   r   r
   r   r   r   r;   r<   r<   r=   Útest_fps_shift  s    Hÿÿ>ÿ6ÿr€   c                  C   s”  t tt ƒ tdt d  ƒd  } t| t ƒ ¡ t d d t d d  tt d ƒ ks+J ‚tt ƒtt ƒ tt ƒ tdt  ƒ } t| t ƒ ¡ t dt d  d  t d d  t d d  tt d ƒ ksbJ ‚dt  tt ƒ } t| t ƒ ¡ dt  t  t d d  t d d  tt d ƒ ks‹J ‚tt ƒtt ƒ dt d   } t| t ƒ ¡ d	t d d  d
t d  d  dt d  d  dt d  d  tt d ƒ ksÈJ ‚d S )Nr,   r-   r/   rr   rN   r.   r3   rP   rE   rs   ro   ru   éw   )	r5   r   r   r	   rV   r
   r   r   r   r;   r<   r<   r=   Útest_fps__Add_expr0  s    6$JBJÿr‚   c                  C   s„  t tƒ} t| ttƒ| ksJ ‚t| tt ƒ ¡ tdtd  ttfƒks$J ‚ttƒ} t| ttƒ ¡ dtdtd  ttfƒ ks?J ‚t| tt ƒ ¡ dtdtd  ttfƒ ksWJ ‚ttƒ} t| ttdd ¡ ddtd   ddtd    dt  td  tdtd  ttfƒ ksŠJ ‚t| tt dd ¡ ddtd   ddtd    dt  td  tdtd  ttfƒ ksºJ ‚t	dt ƒ} t| ttƒddtd   dd	td	    ddtd    ddtd    dt  t	dt ƒ tdtd  ttfƒ ksýJ ‚t| tt ƒddtd   dd	td	    ddtd    ddtd    dt  t
t  t	dt ƒ tdtd  ttfƒ ks@J ‚d S )
Nr,   rN   r2   Tr0   r3   r.   r-   r/   )r   r5   r	   r   rV   r
   r   r   r   r   r   r;   r<   r<   r=   Útest_fps__asymptotic?  s4   ,.0DÿDÿ
RÿÿN
ÿÿÿrƒ   c                  C   sn  t ttƒƒt } t| tƒ ¡ dttƒ ttƒd  ttddƒ d  ttddƒ d  ttddƒ d	  ttd
dƒ d  ttddƒ d  ttd ƒ ksPJ ‚t ttƒƒt } t| tƒ ¡ ttddƒ ttddƒ d  ttddƒ d  ttd
dƒ d  ttddƒ d	  ttd ƒ ks’J ‚tttƒƒtd  } t| tƒ ¡ ttddƒ ttddƒ d  ttj	 d  ttddƒ d  ttddƒ d
  ttddƒ d  ttd
dƒ d  ttddƒ d  ttd ƒ ksïJ ‚t
ttƒƒ} t| tƒ ¡  ¡ dtd  td d  td d  td d  td d  ttƒ ttddƒ d  ttddƒ d  ttddƒ d  ttd
dƒ d	  ttddƒ d  ttd ƒ ksVJ ‚t
ttƒƒt } t| tƒ ¡  ¡ ttd d  td d  td d  td d  ttddƒ  ttddƒ d  ttddƒ d  ttd
dƒ d  ttddƒ d	  ttd ƒ ksµJ ‚d S )Nr,   rN   r.   r-   rP   r3   r|   rs   r}   rF   i arp   l    LQf éýÿÿÿr2   é   ry   ru   r~   r/   r   i _7 )r   r   r5   r	   rV   r   r
   r   r   r:   r   Úexpandr;   r<   r<   r=   Útest_fps__fractionalW  sŒ   (ÿÿþþ
þÿ0ÿÿ
ÿÿ,ÿÿÿþþ
þÿBÿÿÿþþ
þ
ÿ@ÿÿÿþ
þÿr‡   c                  C   sÈ   t ddt  ƒ} t| tƒt tƒ t td d  td d  td d  td d  ttd ƒ ks4J ‚t| tddt tƒ t td d  td d  td d  td d  ttd ƒ ksbJ ‚d S )	Nr,   r-   r.   r/   r3   rN   Frv   )r   r5   r	   r
   r;   r<   r<   r=   Ú!test_fps__logarithmic_singularityv  s   HÿHÿrˆ   c                  C   sR   t tƒ} t| tƒtdƒttƒ td d  dtd  d  ttd ƒ ks'J ‚d S )Nr-   r/   r.   rh   rN   )r   r5   r	   r   r
   r;   r<   r<   r=   Ú&test_fps__logarithmic_singularity_fail~  s   Jr‰   c                  C   s  t t tt d ƒ } t| t ƒ d¡t td  t td  d  tt td  t ƒ ks+J ‚t t tdt  ƒ } t| t ƒ}|jjd }|j	t
d|   t |t   | |dtfƒksYJ ‚t d t tdt  ƒ } t| t dƒ ¡ t d t tdƒ t d td  d  t d td  d  t d td  d	  t d td
  d  t d td  d  tt d td  t dfƒ ks¸J ‚t td  tt ƒ } t| t ƒ ¡ t td  t t d  t td  d  t td
  d  tt td  t ƒ ksðJ ‚t td  tt ƒ t t tt ƒ  } t| t ƒ ¡ t td  t t  dt td   d  t td  d  dt td   d  t td
  d  dt td   d  tt td  t ƒ ksMJ ‚t t tt ƒ } t| t tƒ ¡ t td   d t td  d  t t td dt     tdt  t  t d  t tfƒ ksJ ‚t td  tt ƒ } t| t ƒ ¡ t td  t td d  d  t td d
  d  tt td d  t ƒ ksÆJ ‚t tt  tt ƒ } t| t ƒ ¡ t tt d  t tt d  d  t tt d  d  tt tt d  t ƒ ksJ ‚d S )Nr-   rc   rN   r,   r   r2   r.   rk   rl   r/   rm   r3   rn   ru   r~   rs   rG   rq   r|   rP   )r5   r@   r   r	   rV   r
   r   rX   rY   rZ   r   r   r   r   r   r   r9   )r*   Úfpr6   r<   r<   r=   Útest_fps_symbolic„  s\   B
&ÿNÿÿÿÿHÿ$Jÿÿÿ
ÿ8ÿ
ÿH
ÿLÿr‹   c                  C   sf   t tt ƒ tdt  ƒ } t| t ƒ ¡ dt d  dt d   t d d  t d  tt d ƒ ks1J ‚d S )Nr-   r.   r/   r3   rN   )r5   r   r   r	   rV   r
   r;   r<   r<   r=   Útest_fps__slowª  s   NrŒ   c                     sœ  t ttƒƒt ttƒƒ‰ } ˆ |  }|jttƒttƒ ksJ ‚| ¡ dt td d  td d  td d  td d  ttd ƒ ksFJ ‚ˆ d }|jttƒd ksUJ ‚| ¡ dt td d  td d  ttd ƒ ksqJ ‚d|  }|jttƒd ks€J ‚| ¡ dtd d  td d  ttd ƒ ksšJ ‚ˆ t tˆ tƒks¥J ‚|  ¡  d	td d  td d  ttd ƒ ksÀJ ‚ˆ ˆ  tj	u sÉJ ‚ˆ |  }|jttƒttƒ ksÚJ ‚| ¡ d	t td d  td d  td d  td d  ttd ƒ ksJ ‚ˆ d }|jttƒd ksJ ‚| ¡ d	t td d  td d  ttd ƒ ks0J ‚d|  }|jttƒ d ksAJ ‚| ¡ td d td d  ttd ƒ ksZJ ‚t
t‡ fd
d„ƒ t
t‡ fdd„ƒ ˆ d }|jdttƒ ks|J ‚| ¡ dt td d  td d  ttd ƒ ks™J ‚d|  }|jdttƒ ks©J ‚| ¡ ddtd  d  td d  ttd ƒ ksÆJ ‚ˆ |  tˆ | ƒksÒJ ‚ˆ t tˆ tƒksÞJ ‚ˆ  ¡ }|jttƒksìJ ‚| ¡ dtd d  td d  ttd ƒ ksJ ‚|  ¡ }|jttƒ ksJ ‚| ¡ t td d  td d  ttd ƒ ks2J ‚|  ¡  ¡ }|jttƒ ksCJ ‚| ¡ d	td d  td d  ttd ƒ ks^J ‚t tttƒƒƒ}| ¡ }| ¡  ¡ ddttƒ  tj td  td d  td d  td d  td d  ttƒd  ttddƒ d  ttddƒ d  ttddƒ d  ttddƒ d  ttddƒ d  ttd ƒ ksÓJ ‚ˆ  tddf¡tdƒ d ksåJ ‚tˆ tddfƒtdƒ d ks÷J ‚tˆ tƒ}|jttƒ ksJ ‚| ¡ d	td d  td d  ttd ƒ ks"J ‚|  t¡}|jttƒks1J ‚| ¡ ttd d  td d  ttd ƒ ksLJ ‚d S )Nr,   r-   r.   rN   r/   ru   r3   rP   r2   c                      ó   ˆ t ttƒdd S )Nr2   rJ   ©r	   r   r5   r<   ©Úf1r<   r=   rR   Ñ  ó    z&test_fps__operations.<locals>.<lambda>c                      r   )Nr,   ©Zx0rŽ   r<   r   r<   r=   rR   Ò  r‘   rG   rc   rr   éð   i`'  i  i *Âé0   i   rs   i ; rF   i ¾n rp   i ø9r   )r	   r   r5   r   rU   rV   r
   r   r   ZZeror'   r]   r   Zdiffr   r   r†   r:   r   r   )Úf2ZfsumZfsubZfmÚfdÚf3Úfir<   r   r=   Útest_fps__operations¯  s”   Bÿ846B
ÿ:2::686
@
ÿ
ÿÿÿþþþ
ý
ÿ$$
6
:r™   c                     s  t ttƒƒt ttƒƒt ttƒƒ‰ } }tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ ˆ  | t¡‰tˆt	ƒsEJ ‚tˆj
tƒsMJ ‚tˆjtƒsUJ ‚ˆjttƒks^J ‚ˆjttƒksgJ ‚ˆjttƒttƒ kstJ ‚ˆ d¡ttd  td d  ks‡J ‚ˆ d¡ttd  td d  ttd ƒ ks J ‚ˆ d¡ttd  td d  ks³J ‚tt‡fd	d„ƒ tt‡fd
d„ƒ tt‡fdd„ƒ tt‡fdd„ƒ ˆ  |t¡ d¡tdtd  d  ksìJ ‚ˆ  |t¡ d¡tdtd  d  ttd ƒ ksJ ‚d S )Nc                      ó   ˆ   ttƒt¡S rQ   )Úproductr   r5   r<   r   r<   r=   rR     ó    z#test_fps__product.<locals>.<lambda>c                      ó   ˆ   tttƒddtd¡S ©Nr2   rJ   r/   ©r›   r	   r   r5   r<   r   r<   r=   rR     ó    c                      r   ©Nr,   r’   r/   rŸ   r<   r   r<   r=   rR     r    c                      ó   ˆ   tttƒƒtd¡S ©Nr/   )r›   r	   r   r8   r5   r<   r   r<   r=   rR     ó    r/   r-   r.   c                      ó
   ˆ   d¡S ©Nr3   ©Z
_eval_termr<   ©Úfprodr<   r=   rR     ó   
 c                      ó   ˆ j S rQ   ©rZ   r<   r¨   r<   r=   rR     ó    c                      ó
   ˆ   t¡S rQ   ©Z_eval_derivativer5   r<   r¨   r<   r=   rR     rª   c                      r®   rQ   ©r   r5   r<   r¨   r<   r=   rR     rª   )r	   r   r5   r   r   r'   r]   r›   rT   r    Úffpsr   Úgfpsr*   ÚgrU   Ú_eval_termsrV   r
   rW   r\   ©r•   r—   r<   )r   r©   r=   Útest_fps__product   s*   (&2&*<r¶   c                      sÄ  t ttƒƒt ttƒƒt ttƒƒ‰ ‰‰tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ ‡fdd„ƒ tt‡‡fdd„ƒ ˆ  ˆt¡‰tˆt	ƒsYJ ‚tˆj
tƒsaJ ‚tˆjtƒsiJ ‚ˆjttƒksrJ ‚ˆjttƒks{J ‚ˆjtttƒƒks†J ‚ˆ d¡d	t td
 d
  td d  td d  ks£J ‚ˆ ¡ d	t td
 d
  td d  td d  ttd ƒ ksÅJ ‚ˆ d¡d	t td
 d
  td d  ttd ƒ ksâJ ‚tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ ˆ  ˆt¡ d¡d	t td
 d
  ttd ƒ ks"J ‚ˆ  ˆt¡ d¡d	t td
 d
  td d  td d  td d  td d  ttd ƒ ksVJ ‚ˆ  ˆt¡ d¡d	t td
 d
  td d  td d  ttd ƒ ks~J ‚ˆ ˆt¡ d¡ttd d  ttd ƒ ks˜J ‚ˆ ˆt¡ d¡ttd d  td d  dtd  d  ttd ƒ ksÀJ ‚ˆ ˆt¡ d¡ttd d  td d  ttd ƒ ksàJ ‚d S )Nc                      rš   rQ   )Úcomposer   r5   r<   r   r<   r=   rR     rœ   z#test_fps__compose.<locals>.<lambda>c                      r   rž   ©r·   r	   r   r5   r<   r   r<   r=   rR      r    c                      r   r¡   r¸   r<   r   r<   r=   rR   !  r    c                      r¢   r£   )r·   r	   r   r8   r5   r<   r   r<   r=   rR   "  r¤   c                      ó   ˆ   ˆt¡S rQ   ©r·   r5   r<   )r   r—   r<   r=   rR   $  rS   c                      r¹   rQ   rº   r<   rµ   r<   r=   rR   %  rS   rN   r,   r-   r/   rc   r3   ry   c                      r¥   r¦   r§   r<   ©Úfcompr<   r=   rR   2  rª   c                      r«   rQ   r¬   r<   r»   r<   r=   rR   3  r­   c                      r®   rQ   r¯   r<   r»   r<   r=   rR   4  rª   c                      r®   rQ   r°   r<   r»   r<   r=   rR   5  rª   r“   rs   rx   r.   r4   i;  )r	   r   r5   r   r   r'   r]   r·   rT   r!   r±   r   r²   r*   r³   rU   r´   rV   r
   r\   r<   r<   )r   r•   r—   r¼   r=   Útest_fps__compose  s>   (:D:8N
ÿ6
ÿ4PDr½   c                     sÌ  t ttƒƒt ttƒƒt ttƒƒ‰ } }tt‡ fdd„ƒ |  t¡‰tˆt	ƒs)J ‚tˆj
tƒs1J ‚tt‡fdd„ƒ ˆjttƒksCJ ‚ˆjtt ƒksMJ ‚ˆ d¡dt td d  td d  td	 d
  ksjJ ‚ˆ ¡ dt td d  td d  td	 d
  td d  ttd ƒ ks’J ‚ˆ d¡dt td d  td d  td	 d
  ttd ƒ ksµJ ‚tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ tt‡fdd„ƒ |  t¡ d¡dt td d  td d  td	 d
  td d  td d  td d  ttd ƒ ksJ ‚| t¡ ¡ dtd d  dtd	  d
  ttd ƒ ks;J ‚| t¡ d¡dtd d  dtd	  d
  dtd  d  ttd ƒ ksdJ ‚d S )Nc                      r®   rQ   )Úinverser5   r<   r   r<   r=   rR   E  rª   z#test_fps__inverse.<locals>.<lambda>c                      r«   rQ   )r²   r<   ©Úfinvr<   r=   rR   J  r­   r3   r,   r-   r.   rN   r/   ru   rP   c                      r¥   r¦   r§   r<   r¿   r<   r=   rR   R  rª   c                      r«   rQ   )r³   r<   r¿   r<   r=   rR   S  r­   c                      r«   rQ   r¬   r<   r¿   r<   r=   rR   T  r­   c                      r®   rQ   r¯   r<   r¿   r<   r=   rR   U  rª   c                      r®   rQ   r°   r<   r¿   r<   r=   rR   V  rª   rc   r~   rs   r|   é=   )r	   r   r5   r   r   r'   r]   r¾   rT   r"   r±   r   r*   rU   r´   rV   r
   r\   rµ   r<   )r   rÀ   r=   Útest_fps__inverseB  s*   (
:PFZ
ÿ@VrÂ   N)GZsympyr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.series.formalr   r   r    r!   r"   r#   r$   r%   r&   Zsympy.testing.pytestr'   r(   r)   r5   r8   r7   r@   r9   r6   r*   r+   r>   r?   rA   rD   rH   ra   rt   rz   r€   r‚   rƒ   r‡   rˆ   r‰   r‹   rŒ   r™   r¶   r½   rÂ   r<   r<   r<   r=   Ú<module>   s:   x ,2
)
3
/
&Q&