ó
¡¼™\c           @   sˆ  d  d l  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 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 d  d l m Z m Z d  d l  m Z d  d l m Z d  d l m  Z  d „  Z! d	 „  Z" e d
 „  ƒ Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ e d „  ƒ Z, d „  Z- d „  Z. d „  Z/ d „  Z0 d S(   iÿÿÿÿ(
   t   Rationalt   St   Symbolt   symbolst   pit   sqrtt   oot   Point2Dt	   Segment2Dt   I(   t   range(   t   Circlet   Ellipset   GeometryErrort   Linet   Pointt   Polygont   Rayt   RegularPolygont   Segmentt   Trianglet   intersection(   t   raisest   slow(   t	   integrate(   t
   elliptic_e(   t   Maxc          C   sc  d d l  m }  m } t t d d ƒ d d ƒ } t | j d d ƒ ƒ t |  | d d d |  | d d d	 d ƒ k s„ t ‚ t t d d ƒ d
 d ƒ } t | j d d ƒ ƒ t |  | d d |  | d d d ƒ k sê t ‚ t t d d ƒ d d ƒ } t | j d d ƒ ƒ t d |  | d d d |  d | d d d d ƒ k s_t ‚ d  S(   Niÿÿÿÿ(   t   xt   yi   i    i   i   t   _slopei   i   i   i    i   i   iþÿÿÿi   i   i´   (   t	   sympy.abcR   R   R   R   t   strt   equationt   AssertionError(   R   R   t   e1t   e2t   e3(    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt!   test_ellipse_equation_using_slope   s    SKc              sf  d d l  m ‰ m ‰ m ‰  m ‰ t ˆ d ˆ d d ˆ d ˆ d ƒ t t t d ƒ d d ƒ t d	 ƒ d ƒ k s€ t	 ‚ t ˆ d ˆ d d
 ˆ d ˆ d ƒ t t d d ƒ d ƒ k sÊ t	 ‚ t ˆ  d ˆ d d
 ˆ  d ˆ d d d d d ƒt t d d ƒ d ƒ k s t	 ‚ t ˆ d ˆ d d ƒ t t d d ƒ d ƒ k sZt	 ‚ t ˆ d ˆ d ƒ t t d d ƒ d ƒ k st	 ‚ t ˆ  d ˆ d d d d d ƒt t d d ƒ d ƒ k sÒt	 ‚ t ˆ d ˆ d d
 ˆ d ƒ t t d d ƒ d ƒ k st	 ‚ t ˆ d ˆ d d
 ˆ d ƒ t t d d ƒ d ƒ k sVt	 ‚ t d
 ˆ d d
 ˆ d d
 ˆ d ˆ d ƒ t t t d ƒ d t d ƒ d ƒ d t d ƒ d
 ƒ k sÌt	 ‚ t
 t ‡ ‡ f d †  ƒ t
 t ‡ ‡ f d †  ƒ t
 t ‡  ‡ f d †  ƒ t
 t ‡ ‡ f d †  ƒ t
 t ‡ ‡ f d †  ƒ t
 t ‡  ‡ f d †  ƒ d  S(   Niÿÿÿÿ(   R   R   t   at   bi   i   i   i   iýÿÿÿiþÿÿÿi9   i   i   iüÿÿÿi    R   R&   R   R'   i   i   i%   c              s*   t  ˆ  d ˆ d d ˆ  d ˆ d ƒ S(   Ni   i   i   i   (   R   (    (   R   R   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   <lambda>$   t    c              s   t  ˆ  d ˆ d d ƒ S(   Ni   i   (   R   (    (   R   R   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   %   R)   c              s&   t  ˆ  d ˆ d d d d d d ƒS(   Ni   i   R   R&   R   R'   (   R   (    (   R&   R'   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   &   R)   c              s   t  ˆ  d d ˆ d ƒ S(   Ni   i   i   (   R   (    (   R   R   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   '   R)   c              s2   t  d ˆ  d d ˆ d d ˆ  d ˆ d ƒ S(   Ni   i   i   i   i   (   R   (    (   R   R   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   (   R)   c              s*   t  ˆ  d ˆ d d ˆ  d ˆ d ƒ S(   Ni   i   i   i   (   R   (    (   R&   R'   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   )   R)   (   R   R   R   R&   R'   R   R   R   R   R!   R   R   t
   ValueError(    (    (   R&   R'   R   R   s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_object_from_equation   s"    "BJV:6BBBvc    +   	      s‹  t  d d t ƒ‰ t  d d t ƒ}  t  d d t ƒ} t  d d t ƒ} t d d ƒ } t d d ƒ } t d d ƒ } t d d ƒ } t | d d ƒ } t | | d ƒ ‰ t | | | ƒ } t | d ƒ }	 t | d ƒ }
 t t t d ƒ t d ƒ ƒ d ƒ } t | | ƒ } t d	 | d ƒ d
 | } } t t d d ƒ t d	 d ƒ t d d ƒ ƒ t | | ƒ k skt ‚ t t d d ƒ t d d ƒ t d d ƒ ƒ t	 t
 d d ƒ t
 d d ƒ ƒ k s¿t ‚ t t d „  ƒ t t d „  ƒ t d  d d ƒ j t d d ƒ k s	t ‚ | |	 k st ‚ | ˆ k s-t ‚ | | k s?t ‚ | | k sQt ‚ | ˆ k sct ‚ | j t k sxt ‚ ˆ j t d k s‘t ‚ | j t | t | ƒ k s´t ‚ |	 j | j k sÌt ‚ |	 j | j k sät ‚ | j d t | k st ‚ | j ƒ  ˆ j ƒ  k o.| t t g k n s9t ‚ | j ˆ ƒ ˆ j ˆ ƒ k olˆ t t g k n swt ‚ |	 j d k sŒt ‚ |	 j d k s¡t ‚ |	 j d k s¶t ‚ |	 j d k sËt ‚ t dB d d ƒ t d d ƒ k sòt ‚ t dC d d ƒ t t d d ƒ t d d ƒ ƒ k s+t ‚ t dD d d ƒ t t d d ƒ t d d ƒ ƒ k sdt ‚ t |	 ƒ t t t d d ƒ t d d ƒ t d d ƒ ƒ ƒ k s©t ‚ |	 | k s»t ‚ t | | ƒ | k t k sÜt ‚ | j | ƒ d k s÷t ‚ | j t d d ƒ ƒ d k st ‚ | j t t d d ƒ t d d ƒ ƒ ƒ t k sQt ‚ | j t | | ƒ ƒ t k sut ‚ | j t | | ƒ ƒ t k s™t ‚ | j | ƒ t k s´t ‚ | j t t d d ƒ t d d ƒ t d d ƒ ƒ ƒ t k söt ‚ | j t  | d d	 ƒ ƒ t k st ‚ | j t  | d
 d	 ƒ ƒ t k sDt ‚ | j t  | d
 d	 ƒ ƒ t k skt ‚ ˆ j! ƒ  ˆ k sƒt ‚ t t d ƒ d ƒ t t d ƒ d ƒ } } t t d d ƒ d d ƒ } | j" | | f | | f g k sñt ‚ t d ƒ d } t | | ƒ } | t | d ƒ } | t d d ƒ } | j# | ƒ |	 j# | ƒ k sZt ‚ ˆ j# | ƒ t t t$ d	 ƒ d d ƒ t t$ d	 ƒ d t$ d ƒ d ƒ ƒ g k s±t ‚ ˆ j# | ƒ t t d d ƒ t t$ d
 ƒ d d ƒ ƒ g k sôt ‚ |	 j# | ƒ t | t d t d ƒ ƒ ƒ g k s*t ‚ |	 j# | ƒ g  k sEt ‚ ˆ j% t | | t | d ƒ ƒ ƒ spt ‚ ˆ j% t | | t | d ƒ ƒ ƒ s›t ‚ |	 j% t | t d t d ƒ ƒ ƒ ƒ sÈt ‚ | j% t t d d ƒ t d d ƒ ƒ ƒ t k sþt ‚ |	 j% | ƒ t k s	t ‚ |	 j% t t d d ƒ d d ƒ ƒ t k sI	t ‚ |	 j% t t d d ƒ t d d ƒ t d d ƒ ƒ ƒ t k s‹	t ‚ |	 j% t t d d ƒ t d d ƒ t d d ƒ ƒ ƒ t k sÍ	t ‚ t t d
 d
 ƒ d	 ƒ j% t t d d
 ƒ d ƒ ƒ t k s
t ‚ t t d
 d
 ƒ d d ƒ j# t d d ƒ ƒ t t d d ƒ t t$ d ƒ d t$ d ƒ d ƒ ƒ t t d d ƒ t t$ d ƒ d
 t$ d ƒ d
 ƒ ƒ g k s©
t ‚ t t d
 d
 ƒ d d ƒ j# t d	 d ƒ ƒ t t d	 d ƒ t d d ƒ ƒ t t d	 d ƒ t d	 d
 ƒ ƒ g k st ‚ t t d
 d
 ƒ d ƒ j# t d	 d	 ƒ ƒ t t d	 d	 ƒ t d d	 ƒ ƒ t t d	 d	 ƒ t d	 d ƒ ƒ g k st ‚ t t d
 d
 ƒ d ƒ j# t d
 d t d ƒ d
 ƒ ƒ t t d
 d t d ƒ d
 ƒ t d
 t d ƒ d
 t d ƒ ƒ ƒ t t d
 d t d ƒ d
 ƒ t d
 t d ƒ d
 t d ƒ ƒ ƒ g k sTt ‚ d „  ‰ ‡ f d †  } t t d d ƒ d d ƒ ‰  ˆ  j& t d d ƒ ƒ t t d d ƒ t d d ƒ ƒ t t d d ƒ t d d ƒ ƒ g k sçt ‚ ˆ  j& t d d ƒ ƒ t t d d ƒ t d d ƒ ƒ g k s)t ‚ ˆ  j& dE ƒ t t d d ƒ t d d ƒ ƒ g k sbt ‚ | ˆ  j& t d d ƒ d ƒ t t t$ d ƒ d t$ d ƒ d
 ƒ t t$ d ƒ d t$ d ƒ d ƒ ƒ t t t$ d ƒ d t$ d ƒ d  ƒ t t$ d! ƒ d t$ d" ƒ d ƒ ƒ g d ƒ s t ‚ t t d	 ƒ t$ j' ƒ } | ˆ  k sJt ‚ | ˆ  j& | d ƒ t t t$ d# ƒ d$ t$ d ƒ d% ƒ t t$ d& ƒ d$ t$ d
 ƒ d' ƒ ƒ t t t$ d ƒ d( t$ d ƒ d ƒ t t$ d) ƒ d( t$ d* ƒ d ƒ ƒ g d ƒ sÿt ‚ t dF d d t d	 ƒ d	 ƒ ‰  | ˆ  j& dG d ƒ t t t$ d' ƒ d t$ d+ ƒ d, ƒ t t$ d- ƒ d t$ d ƒ d% ƒ ƒ t t d d ƒ t d d. ƒ ƒ g d ƒ sªt ‚ t dH ˆ d ƒ ‰  ˆ  j& ˆ d d f ƒ t t d d ƒ t d d ƒ ƒ g k sÿt ‚ t t( ‡  ‡ f d/ †  ƒ d	 } d } t | | | ƒ } | j) t | d | d ƒ k s]t ‚ | j) | } | j* | k st ‚ | j+ | d | k sœt ‚ | j, | d | k s¹t ‚ | j- | d | d k sÚt ‚ t | | | ƒ } | j) t | d | d ƒ k st ‚ | j) | } | j* | k s5t ‚ | j+ | d | k sRt ‚ | j, | d | k sot ‚ t t d d0 ƒ t d d
 ƒ ƒ } t t d0 d ƒ t d
 d ƒ ƒ } t t d d ƒ t d d ƒ ƒ } t t d1 d ƒ t d d2 ƒ ƒ } t t d ƒ d t d ƒ d ƒ t t d ƒ d t d ƒ d ƒ g } t. ˆ | ƒ g  k sVt ‚ t. |	 t d d ƒ ƒ t d d ƒ g k s†t ‚ t. |	 | ƒ t d d ƒ g k s­t ‚ t. |	 | ƒ t d d ƒ g k sÔt ‚ t. |	 | ƒ | | d | d g g k st ‚ t. |	 |
 ƒ t d d ƒ t d d ƒ g k s6t ‚ t. |	 | ƒ t t d ƒ d t d ƒ d ƒ g k sqt ‚ | j. | ƒ t d d ƒ g k s˜t ‚ ˆ j. | ƒ g  k s³t ‚ | j. t t d d ƒ d ƒ ƒ t d d ƒ g k sìt ‚ | j. t t d
 d ƒ d ƒ ƒ g  k st ‚ | j. t t d d ƒ d d ƒ ƒ t d d ƒ g k sUt ‚ | j. t t d
 d ƒ d d ƒ ƒ g  k s…t ‚ | j. t d d ƒ ƒ g  k s©t ‚ | j. | ƒ | k sÄt ‚ t. t t d d ƒ d d ƒ t t d	 d ƒ d d ƒ ƒ t d d ƒ g k st ‚ t. t t d d ƒ d ƒ t t d	 d ƒ d ƒ ƒ t d d ƒ g k s`t ‚ t. t t d d ƒ d ƒ t t d d ƒ d ƒ ƒ g  k sŸt ‚ t. t t d d ƒ d
 d ƒ t t d d ƒ d d3 ƒ ƒ t d
 d ƒ g k sðt ‚ t. t t d d ƒ d
 d ƒ t t d d ƒ d4 d3 ƒ ƒ g  k s5t ‚ t dI t$ d ƒ d ƒ j. t/ dJ dK dL ƒ ƒ t t$ d ƒ d d ƒ t t$ d ƒ d d ƒ g k sœt ‚ t t0 ‡ f d5 †  ƒ t t0 ‡ f d6 †  ƒ t | d	 ƒ }  t | d
 ƒ }! t t d
 d
 ƒ d ƒ }" |  j. |! ƒ g  k st ‚ |  j. |" ƒ g  k s4t ‚ |  j. |  ƒ |  k sOt ‚ t d ƒ } t/ t d | ƒ t d | ƒ t | d ƒ ƒ }# t. |# |	 ƒ }$ t1 |$ ƒ d k s°t ‚ t d d ƒ |$ k sËt ‚ t d d ƒ |$ k sæt ‚ t | d | d ƒ |$ k s	t ‚ t | d | d ƒ |$ k s-t ‚ t t d d ƒ d
 ƒ }% t t d d ƒ d
 d+ ƒ }& t. |% |& ƒ t d
 d ƒ t d0 d ƒ g t d0 d ƒ t d
 d ƒ g g k s±t ‚ |& j# t d d ƒ ƒ g  k sÕt ‚ t t d d ƒ d	 d ƒ }& |& j# t d	 d ƒ ƒ t t d	 d ƒ t d	 d7 ƒ ƒ g k s2t ‚ t t d d ƒ d
 d2 ƒ } t t d d ƒ d d  ƒ ‰ t$ d8 ƒ d }' d t d9 ƒ d }( t |' |( d  |' d |( ƒ t |' |( d  |' d |( ƒ g }) | j. ˆ ƒ |) k såt ‚ t t ˆ |  ƒ d d  ƒ ‰ t d9 ƒ }( t |( d: |' d |( d |' d ƒ t |( d: |' d; |( d |' d ƒ g }) g  | j. ˆ ƒ D]# } | j2 i d ˆ 6d |  6ƒ ^ qk|) k s t ‚ | j% | j# | t | d ƒ ƒ d ƒ sÏt ‚ t dM d	 d ƒ ‰  ˆ  j# t d2 d ƒ ƒ t t d2 d ƒ t d d ƒ ƒ t t d2 d ƒ t t$ d< ƒ d
 t$ d= ƒ d
 ƒ ƒ g k sUt ‚ t dN d d ƒ ‰  ˆ  j3 ˆ  j ƒ st ‚ ˆ  j3 ˆ  j t d ˆ  j t d d2 ƒ ƒ ƒ s´t ‚ ˆ  j3 ˆ  j t ˆ  j t d d2 ƒ d ƒ ƒ sét ‚ ˆ  j3 ˆ  j t ˆ  j d ƒ ƒ t k st ‚ ˆ  j3 ˆ  j t ˆ  j t d d2 ƒ d ƒ ƒ t k sRt ‚ t dO d d ƒ ‰  ˆ  j3 ˆ  j ƒ s|t ‚ ˆ  j3 ˆ  j t d ˆ  j t d d2 ƒ ƒ ƒ s±t ‚ ˆ  j3 ˆ  j t ˆ  j t d d2 ƒ d ƒ ƒ sæt ‚ ˆ  j3 ˆ  j t ˆ  j d ƒ ƒ t k st ‚ ˆ  j3 ˆ  j t ˆ  j t d d2 ƒ d ƒ ƒ t k sOt ‚ |	 j3 t d d ƒ ƒ t k sst ‚ |	 j3 t d> d? ƒ ƒ t k s—t ‚ ˆ  j4 d d	 ƒ t dP d d	 ƒ k sÁt ‚ ˆ  j4 d	 d@ ƒ t dQ d@ d@ ƒ k sët ‚ ˆ  j5 t ƒ ˆ  k st ‚ ˆ  j5 t dR ƒ t t d d ƒ d d ƒ k s9t ‚ t t( ‡  f dA †  ƒ t t d d ƒ d ƒ }* |* j5 t d ƒ t t d d ƒ d ƒ k s˜t ‚ |* j5 t d	 ƒ t t t$ d ƒ d t d	 ƒ d ƒ d ƒ k sÝt ‚ |* j5 t d	 t d d ƒ ƒ t t d d ƒ d ƒ k st ‚ |* j5 t d	 t d d ƒ ƒ t t t$ d ƒ d t d	 ƒ d t$ d ƒ d t d	 ƒ d ƒ d ƒ k s‡t ‚ d  S(S   NR   t   realR   t   tt   y1i   i   i    i   i   i   c           S   s   t  d  d  d  d ƒ S(   Ni   (   R   t   None(    (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   D   R)   c           S   s   t  t d d ƒ ƒ S(   Ni    (   R   R   (    (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   E   R)   iÿÿÿÿg      à¿g      à?i   iM   i   i„   i!   i   c         S   s@   t  |  j | j ƒ d | k  o? t  |  j | j ƒ d | k  S(   sF    tests whether l1 and 12 are within 10**(-prec)
        of each other i
   (   t   abst   p1t   p2(   t   l1t   l2t   prec(    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   lines_closeœ   s    c            s&   t  ‡ ‡  f d †  t |  | ƒ Dƒ ƒ S(   Nc         3   s'   |  ] \ } } ˆ  | | ˆ ƒ Vq d  S(   N(    (   t   .0R3   R4   (   R6   R5   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pys	   <genexpr>¡   s    (   t   allt   zip(   t   ll1t   ll2R5   (   R6   (   R5   s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   line_list_close    s    i3   i   i   iS   i   i   i   i   i9   i	   iU  i«   i   iª   i@   i   i)   i+   i   iG   i   iüÿÿÿc              s   ˆ  j  ˆ d d f ƒ S(   Ni   (   t   normal_lines(    (   t   eR   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   »   R)   iûÿÿÿiöÿÿÿi
   gš™™™™™É?g+‡ÙÎ÷ï?c              s   t  ˆ  t d d ƒ ƒ S(   Ni    i   (   i    i    i    (   i    i    i   (   R   R   (    (   R#   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   ì   R)   c              s   t  ˆ  t d ƒ ƒ S(   Ni   (   R   R    (    (   R#   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   í   R)   iôÿÿÿi5   i—  iD   iþÿÿÿi   i   g333333Ó?gš™™™™™Ù?i   c              s   ˆ  j  t d ƒ S(   Ni   (   t   rotateR   (    (   R>   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   4  R)   (   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    i    (   i   i   (6   R   t   TrueR    R   R   R   R   R   R!   R   R   R   R*   R   R/   t   centert   areaR   R0   t   circumferencet   plot_intervalt   minort   majort   hradiust   vradiusR   t   hasht   Falset   __cmp__t   enclosesR   R   R   t   arbitrary_pointt   focit   tangent_linesR   t
   is_tangentR=   t   Halft   NotImplementedErrort   focus_distancet   eccentricityt	   periapsist   apoapsist   semilatus_rectumR   R   t	   TypeErrort   lent   subst   encloses_pointt   scaleR?   (+   R   R-   R.   t   halfR1   R2   t   p4R"   R$   t   c1t   c2t   c3R3   t   cent   radt   f1t   f2t   eft   vt   p1_1t   p1_2t   p1_3R<   t   pRF   RE   t   e4t   eccR4   t   l3t   l4t	   pts_c1_l3t   csmallt   cbigt   coutt   t1t   pointst   circt   elipR&   t   ct   anst   cir(    (   R>   R#   R6   R   s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_ellipse_geom,   sº   $BT*#8>'99E!$6$$<''','$WC6++-60<<?*2A*K'K5@O	K--IZIZ I0C'!'!!!!H0''/3;'9-<0$QK?QE<.#$E$->OE/A55.555.5$$**31E=c          C   sè   t  d d d d d d  ƒ }  |  j t d ƒ d k s: t ‚ t  d d d d  d t d ƒ d ƒ } | j d k st t ‚ t  d d  d d d t d ƒ d ƒ } | j d k s® t ‚ t  t d d ƒ d d d d ƒ} | j d k sä t ‚ d  S(   NRG   i   RH   i   RT   i   i    (   R   R/   RT   R   R!   RH   RG   R   (   R"   R#   R$   Rl   (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_construction?  s    %%!c          C   s¬   t  d d t ƒ}  t t d d ƒ |  |  ƒ } t  d ƒ t  d ƒ } } x_ t d d ƒ D]N } | j ƒ  } | j | | ƒ j t | | f | j	 ƒ ƒ j
 d ƒ sV t ‚ qV Wd  S(   NR.   R,   i    t   rxt   ryi   (   R   R@   R   R   R
   t   random_pointR    RZ   R9   t   argst   equalsR!   (   R.   R$   R}   R~   t   indt   r(    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_ellipse_random_pointO  s    c           C   s%   t  t d d ƒ ƒ d k s! t ‚ d  S(   Ni    i   i   s   Circle(Point2D(0, 1), 2)(   i    i   (   t   reprR   R!   (    (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt	   test_reprY  s    c          C   s4  t  d d ƒ }  |  j d ƒ t  d d ƒ k s3 t ‚ |  j d d ƒ t  d d ƒ k sZ t ‚ |  j d ƒ t d d d ƒ k s t ‚ t d d d ƒ j d d d ƒ t t d	 d
 ƒ d d ƒ k sÃ t ‚ t  d d ƒ j d d d ƒ t t d	 d
 ƒ d d ƒ k st ‚ t d d d ƒ j d d d ƒ t t d d
 ƒ d d ƒ k sDt ‚ t  d d ƒ j d d d ƒ t  t d d
 ƒ d ƒ k s€t ‚ t  t d d
 ƒ d ƒ j t d ƒ d t d ƒ d d ƒ t  d d ƒ k sÐt ‚ t  d d ƒ j d d ƒ t  d d ƒ k s t ‚ t  d d ƒ j d d ƒ t  d d ƒ k s0t ‚ d  S(    Ni   i   iÿÿÿÿR   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    (   i   i   (   i   i   (   i    i    (   i    i    (   i   i   (   i    i    (   i    i    (   R   R\   R!   R   R   R   t	   translate(   Rx   (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_transform]  s$    $''$$$!8c          C   sÓ   t  t d d ƒ d d ƒ }  t  t d d ƒ d d ƒ } t t d d ƒ d ƒ } t t d d ƒ t d d ƒ t d d ƒ ƒ } |  j d k s t ‚ | j d k s¥ t ‚ | j d k sº t ‚ | j d k sÏ t ‚ d  S(   Ni    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   t   boundsR!   (   R"   R#   R_   R`   (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_boundss  s    -c             sï   t  d ƒ }  t  d ƒ ‰ t d |  f d ˆ ƒ} t d	 d
 d ƒ } | j | j | ƒ j k sd t ‚ t d d d ƒ ‰  ˆ  j ˆ  j t d d d ƒƒ j k s¤ t ‚ ˆ  j ˆ  j t d d t ƒƒ j k sÒ t ‚ t t	 ‡  ‡ f d †  ƒ d  S(   NR'   t   mi    t   slopei   i   i   c              s   ˆ  j  t d d ˆ ƒƒ S(   Ni   i    RŒ   (   i   i    (   t   reflectR   (    (   R>   R‹   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   ‡  R)   (   i    i    (   i   i    (   i   i   (   i   i    (   i   i    (   i   i    (
   R   R   R   RB   R   R!   R   R   R   RR   (   R'   t   lRt   (    (   R>   R‹   s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_reflect~  s    "..c             s7  t  t d d ƒ d d ƒ ‰  t t d d ƒ d ƒ }  ˆ  j t d d ƒ ƒ t k sW t ‚ ˆ  j t d d ƒ ƒ t k s{ t ‚ ˆ  j ˆ  ƒ t k s– t ‚ ˆ  j t  d d d ƒ ƒ t k s½ t ‚ ˆ  j t  d  d d ƒ ƒ t k sä t ‚ |  j t  d! d d ƒ ƒ t k st ‚ |  j t d" d ƒ ƒ t k s/t ‚ |  j t d# d ƒ ƒ t k sSt ‚ |  j t d$ d% ƒ ƒ t k swt ‚ |  j t d& d' ƒ ƒ t k s›t ‚ |  j t d( d) ƒ ƒ t k s¿t ‚ |  j t d* d+ ƒ ƒ t k sãt ‚ ˆ  j t d, d- ƒ ƒ t k st ‚ ˆ  j t d. d/ ƒ ƒ t k s+t ‚ |  j t d0 d1 ƒ ƒ t k sOt ‚ ˆ  j t d2 d3 ƒ ƒ t k sst ‚ ˆ  j t d4 d5 ƒ ƒ t k s—t ‚ ˆ  j t d6 d7 ƒ ƒ t k s»t ‚ ˆ  j t d8 d9 ƒ ƒ t k sßt ‚ ˆ  j t	 d: d; ƒ ƒ t k st ‚ ˆ  j t	 d< d= ƒ ƒ t k s't ‚ ˆ  j t	 d> d? ƒ ƒ t k sKt ‚ ˆ  j t
 d@ dA dB ƒ ƒ t k srt ‚ ˆ  j t
 dC dD dE ƒ ƒ t k s™t ‚ ˆ  j t
 dF dG dH ƒ ƒ t k sÀt ‚ ˆ  j t
 dI dJ dK ƒ ƒ t k sçt ‚ ˆ  j t
 dL dM dN dO ƒ ƒ t k st ‚ ˆ  j t
 dP dQ dR dS ƒ ƒ t k s;t ‚ |  j t
 dT dU dV dW ƒ ƒ t k set ‚ ˆ  j t
 dX dY dZ d[ ƒ ƒ t k st ‚ ˆ  j t
 d\ d] d^ ƒ ƒ t k s¶t ‚ ˆ  j t
 d_ d` da db ƒ ƒ t k sàt ‚ ˆ  j t
 dc dd de ƒ ƒ t k st ‚ t t ‡  f d †  ƒ t t ‡  f d †  ƒ d  S(f   Ni    i   i   i   iþÿÿÿi   i   i   iûÿÿÿiñÿÿÿiìÿÿÿiýÿÿÿiêÿÿÿi   i   i	   iùÿÿÿi   gìQ¸…ëÀgü©ñÒMbP¿iœÿÿÿiÎÿÿÿiØÿÿÿi²þÿÿiºÿÿÿiÌÿÿÿiôÿÿÿi   c              s   ˆ  j  t d d d ƒ ƒ S(   Ni    (   RP   R   (    (   R"   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   ®  R)   c              s   ˆ  j  t d ƒ ƒ S(   Ni   (   RP   R    (    (   R"   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   ¯  R)   (   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    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    (   gìQ¸…ëÀgü©ñÒMbP¿(   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    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   (   i   iôÿÿÿ(   i   i   (   i   i   (   i   iôÿÿÿ(   i    iûÿÿÿ(   i    i   (   i   i    (   i   i   (   i   iûÿÿÿ(   R   R   R   RP   RJ   R!   R@   R   R   R   R   R   RX   (   R_   (    (   R"   s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_is_tangentŠ  sJ    $$'''$$$$$$$$$$$$$$$$''''****'*'c              si   t  d ƒ ‰ t t d d ƒ d d ƒ ‰  ˆ  j d ˆ ƒ i d ˆ 6k sL t ‚ t t ‡  ‡ f d †  ƒ d  S(   NR-   i    i   i   c              s   ˆ  j  d ˆ ƒ S(   Ni   i    (   i   i    (   t   parameter_value(    (   R>   R-   (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyR(   ¶  R)   (   i   i    (   R   R   R   R‘   R!   R   R*   (    (    (   R>   R-   s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_parameter_value²  s    %c          C   s<  t  d ƒ \ }  } t t d d ƒ d d ƒ } d t t d |  d ƒ |  d |  d d f ƒ d } d t t d | d ƒ | d | d	 d f ƒ d } d
 t d |  d d ƒ } t t | | | | f ƒ |  |  d d f ƒ } | | j ƒ  d k s t ‚ | | j ƒ  d k st ‚ | | j ƒ  d k s8t ‚ d  S(   Ns   x, yi    i   i   i   i   iûÿÿÿi   iüÿÿÿi   i   i   i
   i   (   R   R   R   R   R   t   second_moment_of_areaR!   (   R   R   R>   t   I_yyt   I_xxt   Yt   I_xy(    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_second_moment_of_area¹  s    66/c          C   s,  t  d ƒ }  t  d ƒ } t t d d ƒ |  | ƒ j d |  t |  d | d |  d ƒ k sd t ‚ t t d d ƒ d d ƒ j d t t d ƒ d	 ƒ k s¢ t ‚ t d  d
 d  d
 ƒ j d k sÆ t ‚ t d  d
 d  d ƒ j d t	 k sî t ‚ t
 t d  d d d d ƒj j d ƒ d ƒ d k  s(t ‚ d  S(   Nt   MR‹   i    i   i   i   i   i	   i   i   RG   RH   i   i   gûRÃeé†9@g»½×Ùß|Û=(   R   R   R   RC   R   R!   R   R/   t   lengthR   R0   t   evalf(   R™   R‹   (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_circumferenceÆ  s    L>$(c           C   s(   t  d d ƒ t d d ƒ k s$ t ‚ d  S(   Ni   i   i    (   i   i   (   R   R   R!   (    (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_issue_15259×  s    c          C   sã   d }  d } t  d d ƒ } t | |  ƒ } | j | j | ƒ d ƒ t k sR t ‚ | j j j sg t ‚ | j j	 j s| t ‚ | j
 j sŽ t ‚ t | |  d t ƒ} | j j j s¸ t ‚ | j j	 j sÍ t ‚ | j
 j sß t ‚ d  S(   Ng'‹FÌ´˜?g–mi$¶?gTF\ý´?i    gÇ•¶Ÿ­?t   evaluate(   g–mi$¶?gTF\ý´?(   R   R   RP   RO   R@   R!   RA   R   t   is_RationalR   t   radiusRJ   t   is_Float(   t   Rit   Cit   ARx   t   u(    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_issue_15797Û  s    (c          C   sŽ   t  d ƒ \ }  } } } t |  | f | | ƒ } | j ƒ  t |  | f t | | ƒ ƒ k s` t ‚ t d d ƒ j ƒ  t d d ƒ k sŠ t ‚ d  S(   Ns   x y a bi   i   i   (   i   i   (   i   i   (   R   R   t   auxiliary_circleR   R   R!   (   R   R   R&   R'   R>   (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   test_auxiliary_circleê  s    0N(1   t   sympyR    R   R   R   R   R   R   R   R   R	   t   sympy.core.compatibilityR
   t   sympy.geometryR   R   R   R   R   R   R   R   R   R   R   t   sympy.utilities.pytestR   R   R   t*   sympy.functions.special.elliptic_integralsR   t(   sympy.functions.elementary.miscellaneousR   R%   R+   R{   R|   R„   R†   Rˆ   RŠ   R   R   R’   R˜   Rœ   R   R¦   R¨   (    (    (    s@   lib/python2.7/site-packages/sympy/geometry/tests/test_ellipse.pyt   <module>   s.   FL		ÿ 		
					(				