o
    8Va                     @   sP   d dl Z d dlmZmZ d dlmZ d dlmZmZ dd Z	dd Z
d	d
 ZdS )    N)symbolsexp)optimize)	SumApproxSeriesApproxc                  C   s@   t d} d|  }t| didd}t||g}|d dksJ d S )Nx   )g#Bǻg#B;gؗҜ<boundsreltolr   )r   r   r   )r   expr1Z
sum_approxZapx1 r   I/usr/lib/python3/dist-packages/sympy/codegen/tests/test_approximations.pytest_SumApprox_trivial   s
   r   c                  C   s   t d\} }}t|| d |d  d  }| d|di}t|dd}t|dd}t|d	d}t||gt| |d   d
ksAJ t||gt| |d d   d
ksWJ t||gt| |d d | d    d
ksqJ d S )Nzx y z   r   )r   gMbP?)d   i  g{Gz?r	   gh㈵>gdy=r   )r   r   r   r   simplify)r   yzr   bnds1Zsum_approx_m2Zsum_approx_m5Zsum_approx_m11r   r   r   test_SumApprox_monotone_terms   s   (,8r   c                  C   sv  t d\} }dt|fD ]}t d} t| | }| di}t|dd}t|dd}t|dd}||  d ||  d	  d
 }t|}	|	|  | d
 d
  }
|	|  | d
 d
  | d d  }|	|  | d
 d
  | d d  | d d  }t||g}t||g}t||g}|| |
  d	ksJ || |  d	ksJ || |  d	ksJ t|ddd}t||g|ksJ qd S )Nzx zr   r   )r   g      ?r	   g?g?r   r               )r
   r   Z	max_order)r   r   r   mathr   r   )r   r   Zfactorr   r   Zseries_approx_50Zseries_approx_10Zseries_approx_05cZf0Zref_50Zref_10Zref_05Zres_50Zres_10Zres_05Zmax_ord3r   r   r   test_SeriesApprox_trivial   s,   
 ,r   )r   Zsympyr   r   Zsympy.codegen.rewritingr   Zsympy.codegen.approximationsr   r   r   r   r   r   r   r   r   <module>   s    