U
    ZÊ¹jó  ã                   @   sX   d dl Z d dlmZ d dl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<t‚d S )NÚxé   )g#B’¡œÇ»g#B’¡œÇ;g¼‰Ø—²Òœ<©ÚboundsÚreltolr   )r   r   r   ÚAssertionError)r   Úexpr1Z
sum_approxZapx1© r   úf/var/www/html/bwave/python/venv/lib/python3.8/site-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s‚t‚t||gƒt|ƒ |d d   ¡ d
ks®t‚t||gƒt|ƒ |d d | d    ¡ d
ksât‚d S )Nzx y zé   r   )r   gü©ñÒMbP?)éd   iè  g{®Gáz„?r	   gñhãˆµøä>g•dyáý¥=r   )r   r   r   r   Úsimplifyr   )r   ÚyÚzr   Úbnds1Zsum_approx_m2Zsum_approx_m5Zsum_approx_m11r   r   r   Útest_SumApprox_monotone_terms   s    (,r   c                  C   s~  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�s"t‚|| |  ¡ d	k�s<t‚|| |  ¡ d	k�sVt‚t|ddd�}t||gƒ|kst‚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   r   Ú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sympy.core.symbolr   Z&sympy.functions.elementary.exponentialr   Zsympy.codegen.rewritingr   Zsympy.codegen.approximationsr   r   r   r   r    r   r   r   r   Ú<module>   s   