Ë
    7^(h�g  ã                   ó|  — d dl mZ d dlmZmZmZ d dlmZ d dl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 d	l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„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5e%d„ «       Z6d„ Z7d„ Z8d„ Z9d„ Z:d „ Z;d!„ Z<d"„ Z=d#„ Z>y$)%é    )Úexpand)ÚRationalÚooÚpi)ÚEq)ÚS)ÚSymbolÚsymbols)ÚAbs)Úsqrt)Úsec)Ú	Segment2D)ÚPoint2D)ÚCircleÚEllipseÚGeometryErrorÚLineÚPointÚPolygonÚRayÚRegularPolygonÚSegmentÚTriangleÚintersection)ÚraisesÚslow)Ú	integrate)Ú
elliptic_e)ÚMaxc                  óL  — ddl m} m} t        t	        dd«      dd«      }t        |j                  d¬«      «      t        |  |z   dz   dz  dz  | |z   dz
  dz  dz  z   dz
  «      k(  sJ ‚t        t	        dd«      d	d«      }t        |j                  d¬«      «      t        |  |z   dz  dz  | |z   dz  d
z  z   dz
  «      k(  sJ ‚t        t	        dd«      dd«      }t        |j                  d¬«      «      t        d| z  |z   dz
  dz  dz  | d|z  z   dz
  dz  dz  z   dz
  «      k(  sJ ‚y )Nr   ©ÚxÚyé   é   é   )Ú_slopeé   é   é   é    é   é   éþÿÿÿé   é   é´   )Ú	sympy.abcr"   r#   r   r   ÚstrÚequation)r"   r#   Úe1Úe2Úe3s        ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/geometry/tests/test_ellipse.pyÚ!test_ellipse_equation_using_sloper9      s7  € ßä	”�q˜!“˜a Ó	#€BÜˆr�{‰{ !ˆ{Ó$Ó%¬¨q¨b°1©f°q©j¸1©_¸QÑ->À!ÀaÁ%È!Á)ÈaÁÐPRÑARÑ-RÐUVÑ-VÓ)WÒWÐWÐWä	”�q˜!“˜a Ó	#€BÜˆr�{‰{ !ˆ{Ó$Ó%¬¨q¨b°1©f°q©[¸©]¸aÀ!¹eÀa¹ZÈ¹]Ñ-JÈQÑ-NÓ)OÒOÐOÐOä	”�q˜!“˜a Ó	#€BÜˆr�{‰{ !ˆ{Ó$Ó%¬¨b°©d°Q©h¸©l¸QÑ->¸rÑ-AÀQÈÈ1ÉÁWÈrÁ\ÐTUÑDUÐVYÑDYÑ-YÐ\]Ñ-]Ó)^Ò^Ð^Ñ^ó    c            
      ó  ‡‡‡‡— ddl mŠmŠmŠmŠm} m}m} t        ‰dz  ‰dz  z   d‰z  z   d‰z  z   dz
  «      t        t        t        d«      dz  d«      t        d	«      dz  «      k(  sJ ‚t        ‰dz  ‰dz  z   d
‰z  z   d‰z  z   dz   «      t        t        dd«      d«      k(  sJ ‚t        ‰dz  ‰dz  z   d
‰z  z   d‰z  z   dz   dd¬«      t        t        dd«      d«      k(  sJ ‚t        ‰dz  ‰dz  z   dz
  «      t        t        dd«      d«      k(  sJ ‚t        ‰dz  ‰dz  z   «      t        t        dd«      d«      k(  sJ ‚t        ‰dz  ‰dz  z   dd¬«      t        t        dd«      d«      k(  sJ ‚t        ‰dz  ‰dz  z   d
‰z  z   dz   «      t        t        dd«      d«      k(  sJ ‚t        ‰dz  ‰dz  z   d
‰z  z   dz   «      t        t        dd«      d«      k(  sJ ‚t        ‰dz
  dz  ‰dz  z   dz
  «      t        t        dd«      d«      k(  sJ ‚t        d
‰dz  z  d
‰dz  z  z   d
‰z  z   d‰z  z   dz
  «      t        t        t        dd«      t        dd«      «      dt        d«      z  d
z  «      k(  sJ ‚t        t        ‰dz  ‰dz  z   d«      d‰¬«      t        t        dd«      d«      k(  sJ ‚t        t        ˆˆfd„«       t        t        ˆˆfd„«       t        t        ˆˆfd„«       t        t        ˆˆfd„«       t        t        ˆˆfd„«       t        t         ˆˆfd„«       t#        dd¬«      \  ŠŠ‰‰dz  z  ‰‰dz  z  z   | ‰z  z   |‰z  z   |z   }t%        t        |«      j'                  «       ‰z  «      |k(  sJ ‚y )Nr   )r"   r#   ÚaÚbÚcÚdÚer&   r%   r*   r(   éýÿÿÿr.   é9   r-   é   éüÿÿÿr<   r=   r!   r,   r$   é	   éÿÿÿÿé   c                  óJ   •— t        ‰ dz  ‰dz  z   d‰ z  z   d‰z  z   dz   «      S )Nr&   r%   r*   é   ©r   r!   s   €€r8   ú<lambda>z+test_object_from_equation.<locals>.<lambda>.   s/   ø€ ¤&¨¨A©°°1±©°q¸±sÑ):¸Q¸q¹SÑ)@À2Ñ)EÓ"F€ r:   c                  ó2   •— t        ‰ dz  ‰dz  z   dz   «      S )Nr&   rC   rJ   r!   s   €€r8   rK   z+test_object_from_equation.<locals>.<lambda>/   s   ø€ ¤&¨¨A©°°1±©°rÑ)9Ó":€ r:   c                  ó8   •— t        ‰ dz  ‰dz  z   dz   dd¬«      S )Nr&   rC   r<   r=   r!   rJ   ©r<   r=   s   €€r8   rK   z+test_object_from_equation.<locals>.<lambda>0   s!   ø€ ¤&¨¨A©°°1±©°rÑ)9¸SÀCÔ"H€ r:   c                  ó2   •— t        ‰ dz  d‰z  z   dz   «      S )Nr&   r-   r(   rJ   r!   s   €€r8   rK   z+test_object_from_equation.<locals>.<lambda>1   s   ø€ ¤&¨¨A©°°!±©°a©Ó"8€ r:   c                  óV   •— t        d‰ dz  z  d‰dz  z  z   d‰ z  z   d‰z  z   dz   «      S )Nr-   r&   r*   r(   rC   rJ   r!   s   €€r8   rK   z+test_object_from_equation.<locals>.<lambda>2   s8   ø€ ¤&¨¨A°©F©°a¸¸A¹±hÑ)>ÀÀ1ÁÑ)DÀqÈÁsÑ)JÈRÑ)OÓ"P€ r:   c                  óJ   •— t        ‰ dz  ‰dz  z   d‰ z  z   d‰z  z   dz
  «      S )Nr&   r%   r*   r(   rJ   rN   s   €€r8   rK   z+test_object_from_equation.<locals>.<lambda>3   s/   ø€ œv a¨¡d¨Q°©T¡k°A°a±CÑ&7¸!¸A¹#Ñ&=ÀÑ&AÓB€ r:   zx yT©Úreal)r2   r"   r#   r<   r=   r>   r?   r@   r   r   r   r   r   r   r   r   Ú
ValueErrorr
   r   r4   )r>   r?   r@   Úeqr<   r=   r"   r#   s       @@@@r8   Útest_object_from_equationrV   !   sy  û€ ß-×-Ñ-Ü�!�Q‘$˜˜A™‘+  !¡Ñ# a¨¡cÑ)¨AÑ-Ó.´&¼ÄÀ2ÃÈÁÈBÓ9OÔQUÐVXÓQYÐ\]ÑQ]Ó2^Ò^Ð^Ð^Ü�!�Q‘$˜˜A™‘+  !¡Ñ# a¨¡cÑ)¨BÑ.Ó/´6¼'À"Àb»/È1Ó3MÒMÐMÐMÜ�!�Q‘$˜˜A™‘+  !¡Ñ# a¨¡cÑ)¨BÑ.°#¸Ô=ÄÌÐPRÐTVËÐYZÓA[Ò[Ð[Ð[Ü�!�Q‘$˜˜A™‘+ Ñ"Ó#¤v¬g°a¸«m¸QÓ'?Ò?Ð?Ð?Ü�!�Q‘$˜˜A™‘+Ó¤&¬°°A«¸Ó":Ò:Ð:Ð:Ü�!�Q‘$˜˜A™‘+ ¨Ô,´´w¸qÀ!³}ÀaÓ0HÒHÐHÐHÜ�!�Q‘$˜˜A™‘+  !¡Ñ# aÑ'Ó(¬F´7¸2¸q³>À1Ó,EÒEÐEÐEÜ�!�Q‘$˜˜A™‘+  !¡Ñ# aÑ'Ó(¬F´7¸1¸b³>À1Ó,EÒEÐEÐEÜ�1�q‘5˜1‘*˜q !™tÑ# aÑ'Ó(¬F´7¸1¸a³=À!Ó,DÒDÐDÐDÜ�!�Q˜‘T‘(˜Q  1¡™XÑ%¨¨!©Ñ+¨a°©cÑ1°BÑ6Ó7¼6Ä'Ì(ÐSUÐWXË/Ô[cÐdfÐhiÓ[jÓBkÐmnÔosÐtuÓovÑmvÐwxÑmxÓ;yÒyÐyÐyÜ”"�Q˜‘T˜A˜q™D‘[ "Ó%¨°Ô2´f¼WÀQÈ»]ÈAÓ6NÒNÐNÐNÜ
Œ=ÔFÔGÜ
Œ=Ô:Ô;Ü
Œ=ÔHÔIÜ
Œ=Ô8Ô9Ü
Œ=ÔPÔQÜ
Œ:ÔBÔCä�5˜tÔ$�D€A€qØ	
ˆ1ˆa‰4‰�!�A�q‘D‘&‰˜1˜Q™3Ñ	  1¡Ñ	$ qÑ	(€BÜ”&˜“*×%Ñ%Ó'¨Ñ)Ó*¨bÒ0Ð0Ñ0r:   c                  óþ;  ‡*‡+‡,‡-‡.— t        dd¬«      Š-t        dd¬«      Š.t        dd¬«      } t        dd¬«      }t        j                  }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
|z  d	«      d|z  }}t        t        dd«      t        d
d«      t        dd«      «      t        ||«      k(  sJ ‚t        t        dd«      t        dd«      t        d	d	«      «      t        t        dd«      t        d	d	«      «      k(  sJ ‚t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t	        d dd«      j                  t        dd«      k(  sJ ‚||k(  sJ ‚|‰+k7  sJ ‚||k7  sJ ‚||v sJ ‚||v sJ ‚‰+‰+v sJ ‚d‰+vsJ ‚|‰+vsJ ‚|j                  t        k(  sJ ‚‰+j                  t        d	z  k(  sJ ‚|j                  t        |z  t!        |«      z  k(  sJ ‚|j                  |j                  k(  sJ ‚|j"                  |j"                  k(  sJ ‚|j"                  d	t        z  |z  k(  sJ ‚|j%                  «       ‰+j%                  «       cxk(  r| t         t        gk(  sJ ‚ J ‚|j%                  ‰-«      ‰+j%                  ‰-«      cxk(  r‰-t         t        gk(  sJ ‚ J ‚|j&                  dk(  sJ ‚|j(                  dk(  sJ ‚|j*                  dk(  sJ ‚|j,                  dk(  sJ ‚t	        ddd«      t        dd«      k(  sJ ‚t	        ddd«      t/        t        dd«      t        d	d«      «      k(  sJ ‚t	        ddd«      t/        t        dd«      t        dd	«      «      k(  sJ ‚t1        |«      t1        t        t        dd«      t        dd«      t        dd«      «      «      k(  sJ ‚||v sJ ‚t        ||«      |v du sJ ‚|j3                  |«      dk(  sJ ‚|j3                  t        dd«      «      dkD  sJ ‚|j5                  t/        t        dd«      t        dd«      «      «      du sJ ‚|j5                  t        ||«      «      du sJ ‚|j5                  t7        ||«      «      du sJ ‚|j5                  |«      du sJ ‚|j5                  t9        t        dd«      t        dd«      t        dd«      «      «      du sJ ‚|j5                  t;        |dd
«      «      du sJ ‚|j5                  t;        |dd
«      «      du sJ ‚|j5                  t;        |dd
«      «      du sJ ‚‰+j=                  «       ‰+v sJ ‚t        t        ˆ-ˆ.fd„«       t        t        d«      d«      t        t        d«       d«      }}t	        t        dd«      dd	«      }|j>                  ||f||ffv sJ ‚t        d	«      d	z  }t        ||«      }|t        |d«      z   }|t        dd«      z   }|jA                  |«      |jA                  |«      k(  sJ ‚‰+jA                  |«      t        t        tC        d
d	«      d«      t        tC        d
d	«      t        j                  «      «      gk(  sJ ‚‰+jA                  |«      t        t        dd	«      t        tC        dd«      d	«      «      gk(  sJ ‚|jA                  |«      t        |t        dt        d	«      «      «      gk7  sJ ‚|jA                  |«      g k(  sJ ‚‰+jE                  t        ||t        |d«      z   «      «      sJ ‚‰+jE                  t        ||t        |d«      z   «      «      sJ ‚|jE                  t        |t        dt        d	«      «      «      «      sJ ‚|jE                  t        t        dd«      t        dd«      «      «      du sJ ‚|jE                  |«      du sJ ‚|jE                  t	        t        d	d«      dd«      «      du sJ ‚|jE                  t9        t        dd«      t        dd«      t        d	d«      «      «      du sJ ‚|jE                  t9        t        dd«      t        dd«      t        d	d«      «      «      du sJ ‚t        t        dd«      d
«      jE                  t        t        dd«      d«      «      du sJ ‚t	        t        dd«      d	d«      jA                  t        dd«      «      t        t        dd«      t        tC        dd«      tC        dd«      «      «      t        t        dd«      t        tC        dd«      tC        dd«      «      «      gk(  sJ ‚t	        t        dd«      d	d«      jA                  t        d
d«      «      t        t        d
d«      t        dd«      «      t        t        d
d«      t        d
d«      «      gk(  sJ ‚t        t        dd«      d	«      jA                  t        d
d
«      «      t        t        d
d
«      t        dd
«      «      t        t        d
d
«      t        d
d«      «      gk(  sJ ‚t        t        dd«      d	«      jA                  t        dd	t        d	«      z  z
  d«      «      t        t        dd	t        d	«      z  z
  d«      t        dt        d	«      z
  dt        d	«      z
  «      «      t        t        dd	t        d	«      z  z
  d«      t        dt        d	«      z
  dt        d	«      z   «      «      gk(  sJ ‚t        t        dd«      d«      jA                  t        dd«      «      t        t        dd«      t        tC        dd«      tC        dd«      «      «      t        t        dd«      t        dd«      «      gk(  sJ ‚t        t        dd«      d«      jA                  t        dd«      «      t        t        dd«      t        dd «      «      t        t        dd«      t        tC        dd«      tC        d!d«      «      «      gk(  sJ ‚d"„ Š,ˆ,fd#„}t	        t        dd«      d	d«      Š*‰*jG                  t        dd«      «      t        t        dd«      t        dd«      «      t        t        dd«      t        dd«      «      gk(  sJ ‚‰*jG                  t        dd«      «      t        t        dd«      t        dd«      «      gk(  sJ ‚‰*jG                  d$«      t        t        dd«      t        dd«      «      gk(  sJ ‚ |‰*jG                  t        dd«      d	«      t        t        tC        d%d&«      tC        dd«      «      t        tC        d'd&«      tC        d(d)«      «      «      t        t        tC        d*d+«      tC        d,d-«      «      t        tC        d.d+«      tC        d/d	«      «      «      gd	«      sJ ‚t        t        d
«      t        j                  «      }|‰*v sJ ‚ |‰*jG                  |d	«      t        t        tC        d0d1«      tC        dd«      «      t        tC        d2d1«      tC        dd3«      «      «      t        t        tC        d&d4«      tC        dd	«      «      t        tC        d5d4«      tC        d6d&«      «      «      gd	«      sJ ‚t	        d7d	d	t        d
«      z  d
z  «      Š* |‰*jG                  dd	«      t        t        tC        d8d«      tC        d9d:«      «      t        tC        d;d«      tC        d	d«      «      «      t        t        dd«      t        d	d<«      «      gd	«      sJ ‚t	        d7‰-d«      Š*‰*jG                  ‰-dz   df«      t        t        dd«      t        dd«      «      gk(  sJ ‚t        tH        ˆ*ˆ-fd=„«       d
}d}t	        |||«      }|jJ                  t        |d	z  |d	z  z
  «      k(  sJ ‚|jJ                  |z  }|jL                  |k(  sJ ‚|jN                  |d|z
  z  k(  sJ ‚|jP                  |d|z   z  k(  sJ ‚|jR                  |d|d	z  z
  z  k(  sJ ‚t	        |||«      }|jJ                  t        |d	z  |d	z  z
  «      k(  sJ ‚|jJ                  |z  }|jL                  |k(  sJ ‚|jN                  |d|z
  z  k(  sJ ‚|jP                  |d|z   z  k(  sJ ‚t        t        dd>«      t        dd«      «      }t        t        d>d«      t        dd«      «      }t        t        dd«      t        dd«      «      }t        t        d?d«      t        dd@«      «      }t        t        d	«      d	z  t        d	«      d	z  «      t        t        d	«       d	z  t        d	«       d	z  «      g}tU        ‰+|«      g k(  sJ ‚tU        |t        dd«      «      t        dd«      gk(  sJ ‚tU        ||«      t        dd«      gk(  sJ ‚tU        ||«      t        dd«      gk(  sJ ‚tU        ||«      ||d   |d   gfv sJ ‚tU        ||	«      t        dd«      t        dd«      gk(  sJ ‚tU        ||
«      t        t        d	«      d	z  t        d	«      d	z  «      gk(  sJ ‚|jU                  |«      t        dd«      gk(  sJ ‚‰+jU                  |«      g k(  sJ ‚|jU                  t        t        dd	«      d«      «      t        dd«      gk(  sJ ‚|jU                  t        t        dd«      d«      «      g k(  sJ ‚|jU                  t	        t        d	d«      dd«      «      t        dd«      gk(  sJ ‚|jU                  t	        t        dd«      dd«      «      g k(  sJ ‚|jU                  t        d	d«      «      g k(  sJ ‚|jU                  |«      |k(  sJ ‚tU        t	        t        dd«      d	d«      t	        t        d
d«      dd	«      «      t        d	d«      gk(  sJ ‚tU        t        t        dd«      d	«      t        t        d
d«      d«      «      t        d	d«      gk(  sJ ‚tU        t        t        dd«      d	«      t        t        d d«      d«      «      g k(  sJ ‚tU        t	        t        dd«      dd(«      t	        t        dd«      ddA«      «      t        dBdd¬C«      gk(  sJ ‚tU        t	        t        dd«      dd(«      t	        t        dd«      dDdA«      «      g k(  sJ ‚t        d7t        j                  «      jU                  tW        dEdFd$«      «      t        tC        dd	«      d«      t        t        j                  d«      gk(  sJ ‚t        tX        ˆ+fdG„«       t        tX        ˆ+fdH„«       t        tX        ˆ+fdI„«       t        |d
«      }t        |d«      } t        t        dd«      d«      }!|jU                  | «      g k(  sJ ‚|jU                  |!«      g k(  sJ ‚|jU                  |«      |k(  sJ ‚t        d	«      }tW        t        d|«      t        d| «      t        |d«      «      }"tU        |"|«      }#t[        |#«      dk(  sJ ‚t        dd«      |#v sJ ‚t        dd«      |#v sJ ‚t        |d	z  |d	z  «      |#v sJ ‚t        |d	z  | d	z  «      |#v sJ ‚t        t        dd«      d«      }$t	        t        dd«      ddJ«      }%tU        |$|%«      t        dd«      t        d>d«      gt        d>d«      t        dd«      gfv sJ ‚|%jA                  t        dd«      «      g k(  sJ ‚t	        t        dd«      d
d	«      }%|%jA                  t        d
d«      «      t        t        d
d«      t        d
dK«      «      gk(  sJ ‚t	        t        dd«      dd@«      }t	        t        d	d«      dd-«      Š+tC        dLd(«      }&d	t        dM«      z  d(z  }'t        |&|'d-z  z
  |&d	z  |'z   «      t        |&|'d-z  z   |&d	z  |'z
  «      g}(|jU                  ‰+«      |(k(  sJ ‚t	        t        ‰-‰.«      dd-«      Š+t        dM«      }'t        |' dNz  |&z   |'tC        d	d(«      z  |&d	z  z   «      t        |'dNz  |&z   |'tC        dOd(«      z  |&d	z  z   «      g}(|jU                  ‰+«      D �cg c]  }|j]                  ‰-d	‰.di«      ‘Œ c}|(k(  sJ ‚|jE                  |jA                  |t        |d«      z   «      d   «      sJ ‚t	        dPd
d	«      Š*‰*jA                  t        d@d«      «      t        t        d@d«      t        dd«      «      t        t        d@d«      t        tC        dQd«      tC        dRd«      «      «      gk(  sJ ‚t	        d7dd	«      Š*‰*j_                  ‰*j                  «      sJ ‚‰*j_                  ‰*j                  t        d‰*j,                  tC        dd@«      z
  «      z   «      sJ ‚‰*j_                  ‰*j                  t        ‰*j*                  tC        dd@«      z
  d«      z   «      sJ ‚‰*j_                  ‰*j                  t        ‰*j*                  d«      z   «      du sJ ‚‰*j_                  ‰*j                  t        ‰*j*                  tC        dd@«      z   d«      z   «      du sJ ‚t	        d7d	d«      Š*‰*j_                  ‰*j                  «      sJ ‚‰*j_                  ‰*j                  t        d‰*j,                  tC        dd@«      z
  «      z   «      sJ ‚‰*j_                  ‰*j                  t        ‰*j*                  tC        dd@«      z
  d«      z   «      sJ ‚‰*j_                  ‰*j                  t        ‰*j*                  d«      z   «      du sJ ‚‰*j_                  ‰*j                  t        ‰*j*                  tC        dd@«      z   d«      z   «      du sJ ‚|j_                  t        dd«      «      du sJ ‚|j_                  t        dSdT«      «      du sJ ‚‰*ja                  d	d
«      t	        d7dd
«      k(  sJ ‚‰*ja                  d
d«      t	        d7dd«      k(  sJ ‚‰*jc                  t        «      ‰*k(  sJ ‚‰*jc                  t        dP«      t	        t        d	d«      d	d«      k(  sJ ‚t        tH        ˆ*fdU„«       t        t        dd«      d«      })|)jc                  t        d	z  «      t        t        dd«      d«      k(  sJ ‚|)jc                  t        d
z  «      t        t        t        j                  t        d
«      d	z  «      d«      k(  sJ ‚|)jc                  t        d
z  t        dd«      «      t        t        dd«      d«      k(  sJ ‚|)jc                  t        d
z  t        dd«      «      t        t        t        j                  t        d
«      d	z  z   t        j                  t        d
«      d	z  z   «      d«      k(  sJ ‚y c c}w )VNr"   TrR   r#   ÚtÚy1r   r$   r&   r%   r,   r*   c                  ó   — t        d d d d«      S ©Nr$   ©r   © r:   r8   rK   z#test_ellipse_geom.<locals>.<lambda>R   s   € œw t¨T°4¸Ó;€ r:   c                  ó   — t        «       S ©Nr\   r]   r:   r8   rK   z#test_ellipse_geom.<locals>.<lambda>S   s   € œw›y€ r:   c                  ó,   — t        t        dd«      «      S ©Nr   ©r   r   r]   r:   r8   rK   z#test_ellipse_geom.<locals>.<lambda>T   s   € ¤&¬¨q°!«Ó"5€ r:   c                  óB   — t        t        d«      t        d«      z  «      S )Nr"   r#   )r   r	   r]   r:   r8   rK   z#test_ellipse_geom.<locals>.<lambda>U   s   € ¤&¬°«´V¸C³[Ñ)@Ó"A€ r:   ©r$   r$   rF   Fç      à¿g      à?c                  óR   •— t        t        ‰ ‰«      dd«      j                  d¬«      S )Nr$   r"   )Ú	parameter)r   r   Úarbitrary_pointr!   s   €€r8   rK   z#test_ellipse_geom.<locals>.<lambda>†   s%   ø€ œw¤u¨Q°£{°A°qÓ9×IÑIÐTWÐIÓX€ r:   é   éM   rC   é„   é!   é   é(   é   r-   rG   éZ   c                 óª   — t        | j                  |j                  z
  «      d| z  k  xr) t        | j                  |j                  z
  «      d| z  k  S )zF tests whether l1 and 12 are within 10**(-prec)
        of each other é
   )ÚabsÚp1Úp2)Úl1Úl2Úprecs      r8   Úlines_closez&test_ellipse_geom.<locals>.lines_close¶   sG   € ô �2—5‘5˜2Ÿ5™5‘=Ó! B¨$¨¡KÑ/ÒT´C¸¿¹ÀÇÁ¹Ó4FÈÈtÈeÉÑ4TÐTr:   c                 óD   •‡— t        ˆˆfd„t        | |«      D «       «      S )Nc              3   ó8   •K  — | ]  \  }} ‰||‰«      –— Œ y ­wr_   r]   )Ú.0rv   rw   ry   rx   s      €€r8   ú	<genexpr>z=test_ellipse_geom.<locals>.line_list_close.<locals>.<genexpr>»   s   øè ø€ ÒI±°°R‘;˜r 2 t×,ÑIùs   ƒ)ÚallÚzip)Úll1Úll2rx   ry   s     `€r8   Úline_list_closez*test_ellipse_geom.<locals>.line_list_closeº   s   ù€ ÜÔI¼3¸sÀC»=ÔIÓIÐIr:   ©r   r$   iÍÿÿÿrI   içÿÿÿé   éS   é   é   éùÿÿÿr(   rB   é÷ÿÿÿi«þÿÿé«   iVÿÿÿé@   é   é)   iÕÿÿÿ©r   r   iÀÿÿÿéìÿÿÿéG   iáÿÿÿrD   c                  ó0   •— ‰ j                  ‰dz   df«      S r[   )Únormal_lines)r@   r"   s   €€r8   rK   z#test_ellipse_geom.<locals>.<lambda>Õ   s   ø€ ¨¯©¸¸A¹¸q°zÓ(B€ r:   éûÿÿÿéöÿÿÿrr   gš™™™™™É?g      @©Úevaluateg+‡ÙÎ÷ï?)rF   r   ©r$   r   c                  ó0   •— t        ‰ t        dd«      «      S )N)r   r   r   )r   r   r$   )r   r   ©r6   s   €r8   rK   z#test_ellipse_geom.<locals>.<lambda>  s   ø€ œl¨2¬t°I¸yÓ/IÓJ€ r:   c                  ó.   •— t        ‰ t        d«      «      S )Nri   )r   r   r™   s   €r8   rK   z#test_ellipse_geom.<locals>.<lambda>  s   ø€ œl¨2¬x¸«|Ó<€ r:   c                  ó0   •— t        j                  ‰ d«      S r[   )r   r   r™   s   €r8   rK   z#test_ellipse_geom.<locals>.<lambda>	  s   ø€ œg×2Ñ2°2°qÓ9€ r:   r/   éôÿÿÿé5   i—  éD   r.   ©r$   r&   é   r)   g333333Ó?gš™™™™™Ù?c                  ó4   •— ‰ j                  t        dz  «      S )Nr%   )Úrotater   )r@   s   €r8   rK   z#test_ellipse_geom.<locals>.<lambda>P  s   ø€ ¨¯©´°A±«€ r:   )2r	   r   ÚHalfr   r   r   r   r   r   r   r   rT   r   ÚcenterÚarear   rs   ÚcircumferenceÚplot_intervalÚminorÚmajorÚhradiusÚvradiusr   ÚhashÚ__cmp__Úenclosesr   r   r   rh   ÚfociÚtangent_linesr   Ú
is_tangentr’   ÚNotImplementedErrorÚfocus_distanceÚeccentricityÚ	periapsisÚapoapsisÚsemilatus_rectumr   r   Ú	TypeErrorÚlenÚsubsÚencloses_pointÚscaler¢   )/rX   rY   Úhalfrt   ru   Úp4r5   r7   Úc1Úc2Úc3rv   ÚcenÚradÚf1Úf2ÚefÚvÚp1_1Úp1_2Úp1_3r‚   Úpr©   r¨   Úe4Úeccrw   Úl3Úl4Ú	pts_c1_l3ÚcsmallÚcbigÚcoutÚt1ÚpointsÚcircÚelipr<   r>   ÚansÚcirr@   r6   ry   r"   r#   s/                                             @@@@@r8   Útest_ellipse_geomrÚ   :   st  ü€ äˆs˜Ô€AÜˆs˜Ô€AÜˆs˜Ô€AÜ	�˜4Ô	 €BÜ�6‰6€DÜ	ˆq�!‹€BÜ	ˆq�!‹€BÜ	ˆq�!‹€Bä	��Q˜Ó	€BÜ	��T˜1Ó	€BÜ	��R˜Ó	€BÜ	��A‹€BÜ	��A‹€BÜ	””d˜1“gœt A›wÓ'¨Ó	+€BÜ	ˆb�"‹€Bô �Q�t‘V˜QÓ  4¡ˆ€CÜ”%˜˜1“+œu Q¨›{¬E°!°Q«KÓ8¼FÀ3ÈÓ<LÒLÐLÐLÜ”%˜˜1“+œu Q¨›{¬E°!°Q«KÓ8¼IÄgÈaÐQRÃmÔU\Ð]^Ð`aÓUbÓ<cÒcÐcÐcä
Œ:Ñ;Ô<Ü
Œ:Ñ(Ô)Ü
Œ=Ñ5Ô6Ü
Œ=ÑAÔBô �4˜˜AÓ×%Ñ%¬¨q°!«Ò4Ð4Ð4Ø�Š8€Oˆ8Ø�Š8€Oˆ8Ø�Š8€Oˆ8Ø�‰8€Oˆ8Ø�‰8€Oˆ8Ø�‰8€Oˆ8Ø�B‰;Ðˆ;Ø�R‰<Ðˆ<Ø�7‰7”bŠ=Ðˆ=Ø�7‰7”b˜‘dŠ?Ðˆ?Ø�7‰7”b˜‘eœC ›G‘mÒ#Ð#Ð#Ø�7‰7�b—g‘gÒÐÐØ×Ñ˜r×/Ñ/Ò/Ð/Ð/Ø×Ñ˜q¤™t B™wÒ&Ð&Ð&Ø×ÑÓ ×!1Ñ!1Ó!3ÔC¸¼B¸3Ä°|ÒCÐCÑCÐCÐCØ×Ñ˜AÓ "×"2Ñ"2°1Ó"5ÔE¸!¼b¸SÄ"¸ÒEÐEÑEÐEÐEà�8‰8�qŠ=Ðˆ=Ø�8‰8�qŠ=Ðˆ=Ø�:‰:˜Š?Ðˆ?Ø�:‰:˜Š?Ðˆ?ä�6˜1˜aÓ ¤E¨!¨Q£KÒ/Ð/Ð/Ü�6˜1˜aÓ ¤G¬E°!°Q«K¼¸qÀ!»Ó$EÒEÐEÐEÜ�6˜1˜aÓ ¤G¬E°!°Q«K¼¸qÀ!»Ó$EÒEÐEÐEô �‹8”tœF¤5¨¨A£;´°a¸³¼UÀ1Àb»\ÓJÓKÒKÐKÐKØ�‰8€Oˆ8Ü��R‹L˜BÐ 5Ñ(Ð(Ð(Ø�:‰:�b‹>˜QÒÐÐØ�:‰:”e˜A˜q“kÓ" QÒ&Ð&Ð&ð �;‰;”wœu T¨4Ó0´%¸¸S³/ÓBÓCÀtÑKÐKÐKØ�;‰;”t˜B “|Ó$¨Ñ-Ð-Ð-Ø�;‰;”s˜2˜r“{Ó# uÑ,Ð,Ð,Ø�;‰;�r‹?˜eÑ#Ð#Ð#Ø�;‰;Ü”�d˜DÓ!¤5¨¨sÓ#3´U¸3À³_ÓEóGØJNñOð Oð Oà�;‰;”~ b¨#¨qÓ1Ó2°dÑ:Ð:Ð:Ø�;‰;”~ b¨!¨QÓ/Ó0°EÑ9Ð9Ð9Ø�;‰;”~ b¨!¨QÓ/Ó0°EÑ9Ð9Ð9à×ÑÓ 2Ñ%Ð%Ð%Ü
Œ:ÔXÔYô ”4˜“8˜QÓ¤¬¨R« y°!Ó!4ˆ€BÜ	”�q˜!“˜a Ó	#€BØ�7‰7˜˜B�x " b Ð*Ñ*Ð*Ð*ô 	ˆQ‹�!‰€AÜ��A‹;€DØ”�d˜A“Ñ€DØ”�a˜“Ñ€DØ×Ñ˜BÓ 2×#3Ñ#3°BÓ#7Ò7Ð7Ð7Ø×Ñ˜DÓ!¤d¬5´¸!¸Q³ÀÓ+CÄUÌ8ÐTUÐWXË>Ô[\×[aÑ[aÓEbÓ&cÐ%dÒdÐdÐdØ×Ñ˜DÓ!¤d¬5°°A«;¼¼hÀqÈ!»nÈaÓ8PÓ&QÐ%RÒRÐRÐRØ×Ñ˜DÓ!¤d¨4´°q¼$¸q»'Ó1BÓ&CÐ%DÒDÐDÐDØ×Ñ˜BÓ 2Ò%Ð%Ð%Ø�=‰=œ˜d B¬¨t°Q«Ñ$7Ó8Ô9Ð9Ð9Ø�=‰=œ˜d B¬¨t°Q«Ñ$7Ó8Ô9Ð9Ð9Ø�=‰=œ˜d¤E¨!¬T°!«WÓ$5Ó6Ô7Ð7Ð7Ø�=‰=œœe A q›k¬5°°A«;Ó7Ó8¸EÑAÐAÐAØ�=‰=˜Ó Ñ$Ð$Ð$Ø�=‰=œ¤ q¨!£¨a°Ó3Ó4¸Ñ<Ð<Ð<Ø�=‰=Ü”�a˜“œU 1 b›\¬5°°A«;Ó7ó9Ø<AñBð Bð Bà�=‰=Ü”�a˜“œU 1 a›[¬%°°1«+Ó6ó8Ø;@ñAð Að Aä”%˜˜1“+˜qÓ!×,Ñ,¬V´E¸!¸Q³KÀÓ-CÓDÈÑMÐMÐMä”5˜˜A“;  1Ó%×3Ñ3´E¸!¸Q³KÓ@Ü	Œe�A�q‹kœ5¤¨"¨bÓ!1´8¸CÀÓ3DÓEÓ	FÜ	Œ%��1‹+”uœX b¨!›_¬h°r¸1«oÓ>Ó?ð	AòAð Að Aô ”5˜˜A“;  1Ó%×3Ñ3´E¸!¸Q³KÓ@Ü	Œe�A�q‹kœ5  A›;Ó	'¬¬e°A°q«k¼5ÀÀA»;Ó)GÐHòIð Ið Iä”%˜˜1“+˜qÓ!×/Ñ/´°a¸³Ó<Ü	Œe�A�q‹kœ5  A›;Ó	'¬¬e°A°q«k¼5ÀÀA»;Ó)GÐHòIð Ið Iä”%˜˜1“+˜qÓ!×/Ñ/´°a¸!¼DÀ»G¹)±mÀQÓ0GÓHÜ	Œe�A˜œ$˜q›'™	‘M 1Ó%¤u¨Q´°a³©[¸!¼dÀ1»g¹+Ó'FÓ	GÜ	Œ%��A”d˜1“g‘I‘˜qÓ
!¤5¨¬T°!«W©°a¼$¸q»'±kÓ#BÓCð	GòGð Gð Gô ”%˜˜1“+˜qÓ!×/Ñ/´°a¸³Ó<Ü	Œe�A�q‹kœ5¤¨"¨bÓ!1´8¸A¸r³?ÓCÓ	DÜ	Œ%��1‹+”u˜Q “{Ó#ð	%ò%ð %ð %ô ”%˜˜1“+˜qÓ!×/Ñ/´°a¸³Ó<Ü	Œe�A�q‹kœ5  A›;Ó	'ÜŒU�1�a‹[œ%¤¨¨B£´¸"¸bÓ1AÓBÓCð	EòEð Eð EòUôJô 	”�a˜“˜Q Ó"€AØ�>‰>œ%  1›+Ó&Ü	Œe�A�q‹kœ5  A›;Ó	'¬¬e°A°q«k¼5ÀÀA»;Ó)GÐHòIð Ið Ià�>‰>œ%  1›+Ó&Ü	Œe�A�q‹kœ5  A›;Ó	'Ð(ò)ð )ð )à�>‰>˜&Ó!Ü	Œe�A�q‹kœ5  A›;Ó	'Ð(ò)ð )ð )á˜1Ÿ>™>¬%°°1«+°qÓ9ÜŒU”8˜C Ó$¤h¨r°1£oÓ6¼¼hÀsÈBÓ>OÔQYÐZ\Ð^`ÓQaÓ8bÓcÜŒU”8˜B Ó#¤X¨b°!£_Ó5´u¼XÀbÈ"Ó=MÌxÐXZÐ\]ËÓ7_Ó`ð<bàcdôfð fð fô 	Œd�1‹g”q—v‘vÓ€AØ�‰6€Mˆ6Ù˜1Ÿ>™>¨!¨QÓ/ÜŒU”8˜D #Ó&¬°°RÓ(8Ó9¼5ÄÈ$ÐPSÓATÔV^Ð_`ÐbdÓVeÓ;fÓgÜŒU”8˜B Ó#¤X¨b°!£_Ó5´u¼XÀbÈ"Ó=MÌxÐX[Ð]_ÓO`Ó7aÓbð2dàefôhð hð hô 	�˜˜1œT !›W™9 Q™;Ó'€AÙ˜1Ÿ>™>¨&°!Ó4ÜŒU”8˜C Ó$¤h¨s°BÓ&7Ó8¼%ÄÈÈbÓ@QÔS[Ð\]Ð_aÓSbÓ:cÓdÜŒU�1�b‹\œ5  B›<Ó(ð7*à+,ô.ð .ð .ô 	�˜˜1Ó€AØ�>‰>˜1˜q™5 !˜*Ó%¬$¬u°Q¸«{¼EÀ!ÀQ»KÓ*HÐ)IÒIÐIÐIÜ
ÔÔ BÔCà€EØ€EÜ	��U˜EÓ	"€BØ×Ñ¤ U¨A¡X°°q±Ñ%8Ó 9Ò9Ð9Ð9Ø
×
Ñ
˜eÑ
#€CØ�?‰?˜cÒ!Ð!Ð!Ø�<‰<˜5 ! c¡'™?Ò*Ð*Ð*Ø�;‰;˜%  S¡™/Ò)Ð)Ð)Ø×Ñ %¨¨S°A©X©Ñ"6Ò6Ð6Ð6ä	��U˜EÓ	"€BØ×Ñ¤ U¨A¡X°°q±Ñ%8Ó 9Ò9Ð9Ð9Ø
×
Ñ
˜eÑ
#€CØ�?‰?˜cÒ!Ð!Ð!Ø�<‰<˜5 ! c¡'™?Ò*Ð*Ð*Ø�;‰;˜%  S¡™/Ò)Ð)Ð)ô 
Œe�A�r‹lœE ! Q›KÓ	(€BÜ	Œe�B˜‹mœU 1 b›\Ó	*€BÜ	Œe�B˜‹mœU 1 a›[Ó	)€BÜ	Œe�C˜‹mœU 1 b›\Ó	*€BÜ”t˜A“w˜q‘y¤$ q£'¨!¡)Ó,¬e´T¸!³W°H¸Q±JÄÀaÃÀÈÁ
Ó.KÐL€Iä˜˜BÓ 2Ò%Ð%Ð%Ü˜œE ! Q›KÓ(¬U°1°a«[¨MÒ9Ð9Ð9Ü˜˜BÓ¤E¨!¨Q£K =Ò0Ð0Ð0Ü˜˜BÓ¤E¨!¨R£L >Ò1Ð1Ð1Ü˜˜BÓ I°	¸!±¸iÈ¹lÐ/KÐ#LÑLÐLÐLÜ˜˜BÓ¤E¨!¨Q£K´°q¸!³Ð#=Ò=Ð=Ð=Ü˜˜BÓ¤E¬$¨q«'°!©)´T¸!³W¸Q±YÓ$?Ð#@Ò@Ð@Ð@Ø�?‰?˜2Ó¤5¨¨A£; -Ò/Ð/Ð/Ø�?‰?˜2Ó "Ò$Ð$Ð$Ø�?‰?œ6¤%¨¨1£+¨qÓ1Ó2´u¸QÀ³{°mÒCÐCÐCØ�?‰?œ6¤%¨¨1£+¨qÓ1Ó2°bÒ8Ð8Ð8Ø�?‰?œ7¤5¨¨A£;°°1Ó5Ó6¼5ÀÀA»;¸-ÒGÐGÐGØ�?‰?œ7¤5¨¨A£;°°1Ó5Ó6¸"Ò<Ð<Ð<Ø�?‰?œ5  A›;Ó'¨2Ò-Ð-Ð-Ø�?‰?˜2Ó "Ò$Ð$Ð$Üœ¤ a¨£¨Q°Ó2´G¼EÀ!ÀQ»KÈÈAÓ4NÓOÔTYÐZ[Ð]^ÓT_ÐS`Ò`Ð`Ð`Üœœu Q¨›{¨AÓ.´´u¸QÀ³{ÀAÓ0FÓGÌEÐRSÐUVËKÈ=ÒXÐXÐXÜœœu Q¨›{¨AÓ.´´u¸QÀ³{ÀAÓ0FÓGÈ2ÒMÐMÐMÜœ¤ a¨£¨Q°Ó3´W¼UÀ1Àa»[È!ÈSÓ5Qó 
Ü�C˜ UÔ+Ð,ò-ð -ð -äœ¤ a¨£¨Q°Ó3´W¼UÀ1Àa»[È%ÐQTÓ5UÓVÐZ\Ò\Ð\Ð\Ü�&œ!Ÿ&™&Ó!×.Ñ.Ü�˜& &Ó)ó+äŒh�r˜1‹o˜qÓ!¤5¬¯©°Ó#3ð/5ò5ð 5ð 5ô Œ9ÓJÔKÜ
Œ9Ó<Ô=Ü
Œ9Ó9Ô:ä�B˜‹]€FÜ�"�a‹=€DÜ”%˜˜1“+˜qÓ!€Dà×Ñ˜tÓ$¨Ò*Ð*Ð*à×Ñ˜tÓ$¨Ò*Ð*Ð*à×Ñ˜vÓ&¨&Ò0Ð0Ð0äˆQ‹€AÜ	”%˜˜1“+œu Q¨¨›|¬U°1°a«[Ó	9€BÜ˜"˜bÓ!€FÜˆv‹;˜!ÒÐÐÜ��A‹;˜&Ñ Ð Ð Ü��B‹<˜6Ñ!Ð!Ð!Ü��1‘�a˜‘c‹?˜fÑ$Ð$Ð$Ü��1‘�q�b˜‘dÓ˜vÑ%Ð%Ð%ä”%˜˜1“+˜qÓ!€DÜ”5˜˜A“;  2Ó&€DÜ˜˜dÓ#Ü
��1‹+”u˜R “|Ð	$¤u¨R°£|´U¸1¸a³[Ð&AÐBñCð Cð Cà×Ñœe A q›kÓ*¨bÒ0Ð0Ð0Ü”5˜˜A“;  1Ó%€DØ×Ñœe A q›kÓ*Ü	Œe�A�q‹kœ5  C›=Ó	)Ð*ò+ð +ð +ô 
”�q˜!“˜a Ó	$€BÜ	”�q˜!“˜a Ó	#€BÜ��RÓ€AØ	Œ$ˆt‹*‰�R‰€AÜ��Q�q‘S‘˜!˜A™# ™'Ó"¤E¨!¨a°©c©'°1°Q±3¸±7Ó$;Ð
<€CØ�?‰?˜2Ó #Ò%Ð%Ð%Ü	”�q˜!“˜a Ó	#€BÜˆT‹
€AÜ�!��B‘˜‘˜Aœh q¨"›oÑ-°°!±Ñ3Ó4´e¸A¸b¹DÀ1¹HÀaÌÐQSÐUWÓHXÑFXÐ[\Ð]^Ñ[^ÑF^Ó6_Ð
`€CØ)+¯©¸Ó)<Ö= AˆA�F‰F�A�q˜!˜A�;ÕÒ=ÀÒDÐDÐDð �=‰=˜×)Ñ)¨"¬u°R¸«|Ñ*;Ó<¸QÑ?Ô@Ð@Ð@ä�˜˜1Ó€AØ�?‰?œ5  Q›<Ó(Ü	Œe�B˜‹lœE ! Q›KÓ	(ÜŒU�2�q‹\œ5¤¨"¨a£´(¸2¸q³/ÓBÓCð	EòEð Eð Eô
 	�˜˜1Ó€AØ×Ñ˜AŸH™HÔ%Ð%Ð%Ø×Ñ˜AŸH™H¤u¨Q°·	±	¼HÀQÈ»OÑ0KÓ'LÑLÔMÐMÐMØ×Ñ˜AŸH™H¤u¨Q¯Y©Y¼À!ÀR»Ñ-HÈ!Ó'LÑLÔMÐMÐMØ×Ñ˜AŸH™H¤u¨Q¯Y©Y¸Ó':Ñ:Ó;¸uÑDÐDÐDØ×ÑØ	�‰”5˜Ÿ™¤X¨a°£_Ñ4°aÓ8Ñ8ó:Ø=BñCð Cð Cä�˜˜1Ó€AØ×Ñ˜AŸH™HÔ%Ð%Ð%Ø×Ñ˜AŸH™H¤u¨Q°·	±	¼HÀQÈ»OÑ0KÓ'LÑLÔMÐMÐMØ×Ñ˜AŸH™H¤u¨Q¯Y©Y¼À!ÀR»Ñ-HÈ!Ó'LÑLÔMÐMÐMØ×Ñ˜AŸH™H¤u¨Q¯Y©Y¸Ó':Ñ:Ó;¸uÑDÐDÐDØ×ÑØ	�‰”5˜Ÿ™¤X¨a°£_Ñ4°aÓ8Ñ8ó:Ø=BñCð Cð Cà×ÑœU 1 a›[Ó)¨UÑ2Ð2Ð2Ø×ÑœU 3¨›_Ó-°Ñ5Ð5Ð5à�7‰7�1�a‹=œG F¨A¨qÓ1Ò1Ð1Ð1Ø�7‰7�1�a‹=œG F¨A¨qÓ1Ò1Ð1Ð1Ø�8‰8”B‹<˜1ÒÐÐØ�8‰8”B˜Ó¤7¬5°°A«;¸¸1Ó#=Ò=Ð=Ð=Ü
ÔÓ 6Ô7ô ”�q˜!“˜aÓ
 €CØ�:‰:”b˜‘dÓœv¤e¨A¨q£k°1Ó5Ò5Ð5Ð5Ø�:‰:”b˜‘dÓœv¤e¬A¯F©F´D¸³G¸A±IÓ&>ÀÓBÒBÐBÐBØ�:‰:”b˜‘dœE ! Q›KÓ(¬F´5¸¸A³;ÀÓ,BÒBÐBÐBØ�:‰:”b˜‘dœE ! Q›KÓ(¬F´5¼¿¹Ä$ÀqÃ'È!Á)Ñ9KÌQÏVÉVÔVZÐ[\ÓV]Ð^_ÑV_ÑM_Ó3`ÐbcÓ,dÒdÐdÑdùòQ >s   Áb7Aw:c                  ó^  — t        ddd ¬«      } | j                  t        d«      dz  k(  sJ ‚t        dd t        d«      dz  ¬«      }|j                  dk(  sJ ‚t        d dt        d«      dz  ¬«      }|j                  dk(  sJ ‚t        t        dd«      dd¬«      }|j                  dk(  sJ ‚t        t        d„ «       t        t        d„ «       t        t        d	„ «       t        d dd d«      j                  dk(  sJ ‚t        t        d
„ «       t        t        d„ «       t        t        d„ «       y )Nr&   r$   )rª   r«   r´   r%   r   ©rª   r´   c                  óJ   — t        t        dd«      dt        d«      dz  ¬«      S ©Nr%   r$   r&   rÜ   )r   r   r   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>k  s"   € ¤'¬%°°1«+¸qÔQRÐSTÓQUÐVWÑQWÔ"X€ r:   c                  óD   — t        t        dd«      dt        d«      ¬«      S )Nr%   r$   r,   rÜ   )r   r   r   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>l  s   € ¤'¬%°°1«+¸qÌsÐSTËvÔ"V€ r:   c                  óf   — t        t        dd«      dt        j                  t        d«      z
  ¬«      S rÞ   )r   r   r   ÚPir]   r:   r8   rK   z#test_construction.<locals>.<lambda>m  s$   € ¤'¬%°°1«+¸qÌqÏtÉtÔTUÐVWÓTXÉyÔ"Y€ r:   c                  ó    — t        d d dd¬«      S )Nr$   )r´   r\   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>s  s   € ¤'¨$°°aÈÔ"J€ r:   c                  ó2   — t        t        dd«      dd¬«      S )Nr%   r$   rA   rÜ   ©r   r   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>v  s   € ¤'¬%°°1«+¸qÐQSÔ"T€ r:   c                  ó2   — t        t        dd«      dd¬«      S )Nr%   r$   re   rÜ   rä   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>w  s   € ¤'¬%°°1«+¸qÐQUÔ"V€ r:   )	r   r´   r   r«   rª   r   r   r   Úlength)r5   r6   r7   rÌ   s       r8   Útest_constructionrç   [  s  € Ü	˜ A°DÔ	9€BØ�?‰?œd 1›g a™iÒ'Ð'Ð'ä	˜ D´t¸A³w¸q±yÔ	A€BØ�:‰:˜Š?Ðˆ?ä	˜ q´t¸A³w¸q±yÔ	A€BØ�:‰:˜Š?Ðˆ?ô 
”�q˜!“ a°aÔ	8€BØ�:‰:˜Š?Ðˆ?ô Œ=ÑXÔYÜ
Œ=ÑVÔWÜ
Œ=ÑYÔZô �4˜˜D !Ó$×+Ñ+¨qÒ0Ð0Ð0ä
Œ=ÑJÔKô Œ=ÑTÔUÜ
Œ=ÑVÕWr:   c                  óþ  — t        dd¬«      } t        t        dd«      | | «      }t        d«      t        d«      }}t        dd«      D ]Z  }|j	                  «       }|j                  ||«      j                  t        ||f|j                  «      «      j                  d«      rŒZJ ‚ |j	                  d¬	«      }|j                  ||«      j                  t        ||f|j                  «      «      j                  d«      sJ ‚y )
NrY   TrR   r   ÚrxÚryr,   r$   )Úseed)
r	   r   r   ÚrangeÚrandom_pointr4   rº   r   ÚargsÚequals)rY   r7   ré   rê   ÚindÚrs         r8   Útest_ellipse_random_pointrò   y  sÚ   € Ü	�˜4Ô	 €BÜ	”�q˜!“˜b "Ó	%€BÜ�D‹\œ6 $›<ˆ€BÜ�Q˜‹{ò IˆØ�O‰OÓˆà�{‰{˜2˜rÓ"×'Ñ'¬¨R°¨H°a·f±fÓ(=Ó>×EÑEÀaÕHÐHÐHðIð
 	�‰˜QˆÓ€AØ�;‰;�r˜2Ó×#Ñ#¤C¨¨R¨°!·&±&Ó$9Ó:×AÑAÀ!ÔDÐDÑDr:   c                  ó8   — t        t        dd«      «      dk(  sJ ‚y )Nrƒ   r&   zCircle(Point2D(0, 1), 2))Úreprr   r]   r:   r8   Ú	test_reprrõ   †  s   € Ü”�v˜qÓ!Ó"Ð&@Ò@Ð@Ñ@r:   c                  óÚ  — t        dd«      } | j                  d«      t        dd«      k(  sJ ‚| j                  d¬«      t        dd«      k(  sJ ‚| j                  d«      t        ddd«      k(  sJ ‚t        d	dd
«      j                  dd
d«      t        t        dd«      dd«      k(  sJ ‚t        d	d«      j                  dd
d«      t        t        dd«      dd«      k(  sJ ‚t        d	dd
«      j                  d
d
d«      t        t        dd«      dd«      k(  sJ ‚t        d	d«      j                  d
d
d«      t        t        dd«      d«      k(  sJ ‚t        t        dd«      d«      j                  t	        dd
«      t	        dd
«      d«      t        d	d«      k(  sJ ‚t        d	d«      j                  dd«      t        dd«      k(  sJ ‚t        d	d«      j                  d
d
«      t        d	d«      k(  sJ ‚y )Nrd   r&   rF   )rF   r$   )r#   )r$   rF   )r&   r$   r*   rŽ   r%   )r*   r,   rD   r”   rE   r-   iøÿÿÿr$   r,   )r   r¼   r   r   r   Ú	translate)r>   s    r8   Útest_transformrø   Š  s÷  € Üˆv�qÓ€AØ�7‰7�2‹;œ& ¨!Ó,Ò,Ð,Ð,Ø�7‰7�Rˆ7‹=œF 7¨AÓ.Ò.Ð.Ð.Ø�7‰7�1‹:œ ¨¨AÓ.Ò.Ð.Ð.ä�6˜1˜aÓ ×&Ñ& q¨!¨VÓ4Ü”�b˜#“  1Ó%ò&ð &ð &ä�&˜!Ó×"Ñ" 1 a¨Ó0Ü”�b˜#“  1Ó%ò&ð &ð &ä�6˜1˜aÓ ×&Ñ& q¨!¨VÓ4Ü”�b˜#“  1Ó%ò&ð &ð &ä�&˜!Ó×"Ñ" 1 a¨Ó0ÜŒu�R˜‹~˜qÓ!ò"ð "ð "ä”%˜˜C“. !Ó$×*Ñ*¬8°A°q«>¼8ÀAÀq»>È6ÓRÜˆv�qÓòð ð ä�&˜!Ó×&Ñ& q¨!Ó,Üˆv�qÓòð ð ä�&˜!Ó×"Ñ" 1 aÓ(Üˆv�qÓòð ñ r:   c                  ój  — 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J ‚|j                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚y )
Nr   r%   r,   r&   r.   rG   )rA   r“   r%   r,   )r“   r‰   rE   r,   )r.   r.   r&   r&   )r   r   r   Úbounds)r5   r6   r¿   rÀ   s       r8   Útest_boundsrû      s¤   € Ü	”�q˜!“˜a Ó	#€BÜ	”�q˜"“˜q !Ó	$€BÜ	”�a˜“˜aÓ	 €BÜ	”�b˜!“œe A q›k¬5°°A«;Ó	7€BØ�9‰9˜Ò&Ð&Ð&Ø�9‰9˜Ò&Ð&Ð&Ø�9‰9˜Ò&Ð&Ð&Ø�9‰9˜Ò&Ð&Ñ&r:   c                  ó`  ‡‡— t        d«      } t        d«      Št        d| f‰¬«      }t        ddd«      }|j                  |j	                  |«      j                   k(  sJ ‚t        ddd	«      Š‰j                  ‰j	                  t        dd¬«      «      j                   k(  sJ ‚‰j                  ‰j	                  t        dt        ¬«      «      j                   k(  sJ ‚t        t        ˆˆfd
„«       t        dd«      j	                  t        dd«      «      t        t        dd«      d«      k(  sJ ‚y )Nr=   Úmr   ©ÚsloperŽ   r—   )r&   r%   r$   r&   c                  ó<   •— ‰ j                  t        d‰¬«      «      S )Nr—   rþ   )Úreflectr   )r@   rý   s   €€r8   rK   ztest_reflect.<locals>.<lambda>´  s   ø€ ¨¯	©	´$°vÀQÔ2GÓ(H€ r:   rƒ   rd   rF   )r	   r   r   r¥   r  r   r   r   r²   r   r   )r=   ÚlrÔ   r@   rý   s      @@r8   Útest_reflectr  «  sü   ù€ Üˆs‹€AÜˆs‹€AÜˆa�ˆV˜1Ô€AÜ	�&˜& &Ó	)€BØ�7‰7�r—z‘z !“}×)Ñ)Ð)Ò)Ð)Ð)Ü�˜˜1Ó€AØ�6‰6�a—i‘i¤ V°1Ô 5Ó6×;Ñ;Ð;Ò;Ð;Ð;Ø�6‰6�a—i‘i¤ V´2Ô 6Ó7×<Ñ<Ð<Ò<Ð<Ð<Ü
ÔÔ HÔIÜ�&˜!Ó×$Ñ$¤T¨&°&Ó%9Ó:¼fÄWÈQÐPQÃ]ÐTVÓ>WÒWÐWÑWr:   c                  ó¶  ‡— t        t        dd«      dd«      Št        t        dd«      d«      } ‰j                  t        dd«      «      du sJ ‚‰j                  t        dd«      «      du sJ ‚‰j                  ‰«      du sJ ‚‰j                  t        d	d
d«      «      du sJ ‚‰j                  t        d	dd«      «      du sJ ‚| j                  t        ddd
«      «      du sJ ‚| j                  t        dd«      «      du sJ ‚| j                  t        dd«      «      du sJ ‚| j                  t	        dd«      «      du sJ ‚| j                  t	        dd«      «      du sJ ‚| j                  t	        dd«      «      du sJ ‚| j                  t	        dd«      «      du sJ ‚| j                  t	        dd«      «      du sJ ‚| j                  t        dd«      «      du sJ ‚‰j                  t        dd«      «      du sJ ‚‰j                  t        d	d«      «      du sJ ‚| j                  t        d	d«      «      du sJ ‚‰j                  t        dd«      «      du sJ ‚‰j                  t        dd«      «      du sJ ‚‰j                  t        dd«      «      du sJ ‚‰j                  t        dd«      «      du sJ ‚‰j                  t        dd «      «      du sJ ‚‰j                  t        d	d!«      «      du sJ ‚‰j                  t        dd"«      «      du sJ ‚‰j                  t        dd#«      «      du sJ ‚‰j                  t        d	d$d%«      «      du sJ ‚‰j                  t        d&d'd(«      «      du sJ ‚‰j                  t        ddd)«      «      du sJ ‚‰j                  t        ddd*«      «      du sJ ‚‰j                  t        dd+dd*«      «      du sJ ‚‰j                  t        d,ddd-«      «      du sJ ‚| j                  t        d,ddd-«      «      du sJ ‚‰j                  t        d	dd.d*«      «      du sJ ‚‰j                  t        d/d0d1«      «      du sJ ‚‰j                  t        d/d0d+d*«      «      du sJ ‚‰j                  t        dd2d3«      «      du sJ ‚| j                  t        d	d«      «      du sJ ‚‰j                  t        dd«      «      du sJ ‚‰j                  t        dd«      «      du sJ ‚‰j                  t        d	d$d%«      «      du sJ ‚‰j                  t        d&d'd(«      «      du sJ ‚‰j                  t        d,ddd-«      «      du sJ ‚| j                  t        d,ddd-«      «      du sJ ‚‰j                  t        d/d0d+d*«      «      du sJ ‚‰j                  t        dd2d3«      «      du sJ ‚t        t        ˆfd4„«       t        t        ˆfd5„«       y )6Nr   r%   r,   r&   r.   rG   FTrŽ   r$   )r&   r.   )r0   r.   )rG   r.   )r“   r.   )iñÿÿÿr�   )rA   r.   )rA   iêÿÿÿ)rŒ   r/   )rE   r/   )rE   r�   )r&   r,   )rE   r,   ©r&   r&   )rˆ   rG   rŸ   ©r%   r   )ri   ri   )rA   r   )rA   r,   )r%   r,   )rr   r   )rr   rr   rd   )gìQ¸…ëÀgü©ñÒMbP¿)rA   r$   )r,   r,   )r,   r“   )iœÿÿÿiÎÿÿÿ)iØÿÿÿi²þÿÿ)iºÿÿÿiÌÿÿÿrƒ   )r   r,   )r   r“   )rA   r“   )r%   r“   )rG   rG   )r%   ri   )r%   rœ   )r-   r,   )r,   rG   )r-   r“   c                  ó<   •— ‰ j                  t        ddd«      «      S ra   )r±   r   ©r5   s   €r8   rK   z!test_is_tangent.<locals>.<lambda>è  s   ø€ ˜bŸm™m¬E°!°Q¸«NÓ;€ r:   c                  ó8   •— ‰ j                  t        d«      «      S )Nr,   )r±   r   r  s   €r8   rK   z!test_is_tangent.<locals>.<lambda>é  s   ø€ ˜bŸm™m¬H°Q«KÓ8€ r:   )
r   r   r   r±   r   r   r   r   r   r¸   )r¿   r5   s    @r8   Útest_is_tangentr
  ¸  s´  ø€ Ü	”�q˜!“˜a Ó	#€BÜ	”�a˜“˜aÓ	 €BØ�=‰=œ˜q !›Ó%¨Ñ.Ð.Ð.Ø�=‰=œ˜q !›Ó%¨Ñ.Ð.Ð.Ø�=‰=˜Ó Ñ$Ð$Ð$Ø�=‰=œ ¨¨AÓ.Ó/°5Ñ8Ð8Ð8Ø�=‰=œ ¨¨AÓ.Ó/°4Ñ7Ð7Ð7Ø�=‰=œ ¨!¨QÓ/Ó0°DÑ8Ð8Ð8Ø�=‰=œ ¨!Ó,Ó-°Ñ5Ð5Ð5Ø�=‰=œ ¨Ó+Ó,°Ñ4Ð4Ð4Ø�=‰=œ˜X zÓ2Ó3°uÑ<Ð<Ð<Ø�=‰=œ˜X zÓ2Ó3°uÑ<Ð<Ð<Ø�=‰=œ˜Y¨Ó1Ó2°eÑ;Ð;Ð;Ø�=‰=œ˜W hÓ/Ó0°DÑ8Ð8Ð8Ø�=‰=œ˜V VÓ,Ó-°Ñ5Ð5Ð5Ø�=‰=œ ¨Ó0Ó1°TÑ9Ð9Ð9Ø�=‰=œ ¨Ó1Ó2°eÑ;Ð;Ð;Ø�=‰=œ ¨Ó0Ó1°UÑ:Ð:Ð:Ø�=‰=œ ¨Ó2Ó3°uÑ<Ð<Ð<Ø�=‰=œ ¨Ó2Ó3°uÑ<Ð<Ð<Ø�=‰=œ ¨6Ó2Ó3°uÑ<Ð<Ð<Ø�=‰=œ ¨&Ó1Ó2°eÑ;Ð;Ð;Ø�=‰=œ ¨&Ó1Ó2°dÑ:Ð:Ð:Ø�=‰=œ˜g xÓ0Ó1°UÑ:Ð:Ð:Ø�=‰=œ˜f fÓ-Ó.°%Ñ7Ð7Ð7Ø�=‰=œ˜g Ó7Ó8¸EÑAÐAÐAØ�=‰=œ˜g wÓ/Ó0°DÑ8Ð8Ð8Ø�=‰=œ ¨°Ó9Ó:¸eÑCÐCÐCØ�=‰=œ ¨k¸:ÓFÓGÈ5ÑPÐPÐPØ�=‰=œ ¨&°&Ó9Ó:¸eÑCÐCÐCØ�=‰=œ ¨&°&Ó9Ó:¸eÑCÐCÐCØ�=‰=œ ¨'°6¸6ÓBÓCÀuÑLÐLÐLØ�=‰=œ ¨7°F¸GÓDÓEÈÑMÐMÐMØ�=‰=œ ¨7°F¸GÓDÓEÈÑNÐNÐNØ�=‰=œ ¨°¸Ó@ÓAÀUÑJÐJÐJØ�=‰=œ ¨(°FÓ;Ó<ÀÑEÐEÐEØ�=‰=œ ¨(°G¸VÓDÓEÈÑNÐNÐNØ�=‰=œ ¨°Ó9Ó:¸eÑCÐCÐCØ�=‰=œ ¨Ó2Ó3°uÑ<Ð<Ð<Ø�=‰=œ ¨&Ó1Ó2°eÑ;Ð;Ð;Ø�=‰=œ ¨&Ó1Ó2°dÑ:Ð:Ð:Ø�=‰=œ ¨°Ó9Ó:¸eÑCÐCÐCØ�=‰=œ ¨k¸:ÓFÓGÈ5ÑPÐPÐPØ�=‰=œ ¨7°F¸GÓDÓEÈÑMÐMÐMØ�=‰=œ ¨7°F¸GÓDÓEÈÑNÐNÐNØ�=‰=œ ¨(°G¸VÓDÓEÈÑNÐNÐNØ�=‰=œ ¨°Ó9Ó:¸eÑCÐCÐCÜ
Œ9Ó;Ô<Ü
Œ9Ó8Õ9r:   c                  ó¦   ‡ ‡— t        d«      Št        t        dd«      dd«      Š ‰ j                  d‰«      ‰dik(  sJ ‚t	        t
        ˆ ˆfd„«       y )NrX   r   r%   r,   r  c                  ó(   •— ‰ j                  d‰«      S )N)r*   r   )Úparameter_value©r@   rX   s   €€r8   rK   z&test_parameter_value.<locals>.<lambda>ð  s   ø€ ˜q×0Ñ0°¸Ó;€ r:   )r	   r   r   r  r   rT   r  s   @@r8   Útest_parameter_valuer  ì  sJ   ù€ Üˆs‹€AÜ”�a˜“˜Q Ó"€AØ×Ñ˜V QÓ'¨A¨q¨6Ò1Ð1Ð1Ü
Œ:Ô;Õ<r:   c                  ól  — t        d«      \  } }t        t        dd«      dd«      }dt        t	        d| dz  z
  «      | dz  z  | ddf«      z  dz  }d	t        t	        d
|dz  z
  «      |dz  z  |ddf«      z  dz  }dt	        d| dz  dz  z
  «      z  }t        t        ||| |f«      | z  | ddf«      }||j                  «       d   k(  sJ ‚||j                  «       d   k(  sJ ‚||j                  «       d   k(  sJ ‚|j                  t        dd«      «      }dt        z  dt        z  dt        z  f}||k(  sJ ‚y )Nzx, yr   r,   r*   r(   rC   r&   r“   rr   é   rD   r%   r$   r-   iD  iM  iX  )r
   r   r   r   r   Úsecond_moment_of_arear   )	r"   r#   r@   ÚI_yyÚI_xxÚYÚI_xyrÔ   Út2s	            r8   Útest_second_moment_of_arear  ó  sS  € ä�6‹?�D€A€qÜ”�a˜“˜Q Ó"€AØŒyœ˜b 1 a¡4™i›¨¨A©Ñ-°°2°q¨zÓ:Ñ:¸1Ñ<€DØŒyœ˜b 1 a¡4™i›¨¨A©Ñ-°°2°q¨zÓ:Ñ:¸1Ñ<€DØ	Œ$ˆq�1�a‘4˜‘9‰}Ó
Ñ€AÜ”Y˜q 1 q b¨! *Ó-¨aÑ/°!°R¸°Ó<€DØ�1×*Ñ*Ó,¨QÑ/Ò/Ð/Ð/Ø�1×*Ñ*Ó,¨QÑ/Ò/Ð/Ð/Ø�1×*Ñ*Ó,¨QÑ/Ò/Ð/Ð/à	
×	 Ñ	 ¤ q¨£Ó	,€BØ
Œb‰&�#”b‘&˜#œb™&Ð	!€BØˆrŠ6€M‰6r:   c                  ój  — t        dd¬«      } t        dd«      }|j                  «       dt        z  k(  sJ ‚|j	                  «       dt        z  dt        z  fk(  sJ ‚t        d| d	z  «      }|j                  «       t        | d
z  z  t        | «      z  dz  t        | z  t        | «      d
z  z  dz  z   k(  sJ ‚|j	                  «       t        | d
z  z  t        d«      z  t        | d
z  z  t        d«      z  fk(  sJ ‚t        dd¬«      \  }}t        d||«      }|j	                  «       t        |z  |d	z  z  t        d«      z  t        |d	z  z  |z  t        d«      z  fk(  sJ ‚|j                  «       t        |d
z  z  |z  t        d«      z  t        |z  |d
z  z  t        d«      z  z   k(  sJ ‚|j                  t        d	z  «      }|j	                  «       t        |d	z  z  |z  t        d«      z  t        |z  |d	z  z  t        d«      z  fk(  sJ ‚|j                  «       t        |d
z  z  |z  t        d«      z  t        |z  |d
z  z  t        d«      z  z   k(  sJ ‚t        ||fd	d«      }|j	                  «       dt        z  dt        z  fk(  sJ ‚|j                  «       dt        z  k(  sJ ‚t        t        dd«      d	d	«      }|j	                  «       d	t        z  d	t        z  fk(  sJ ‚|j	                  t        d	d	«      «      d	t        z  d	t        z  fk(  sJ ‚|j	                  d«      d	t        z  d	t        z  fk(  sJ ‚y )Nr?   T)Úpositive)r%   rG   r(   i   é€   )r&   rE   r&   r%   r‹   r+   za, b)r*   r-   r*   r-   r)   éx   r   r  )r	   r   Úpolar_second_moment_of_arear   Úsection_modulusr   r   r
   r   r¢   r   )r?   r>   r<   r=   r@   s        r8   Ú4test_section_modulus_and_polar_second_moment_of_arear    s  € Üˆs˜TÔ"€AÜˆv�qÓ€AØ×(Ñ(Ó*¨d´2©gÒ5Ð5Ð5Ø×ÑÓ 3¤r¡6¨3¬r©6Ð"2Ò2Ð2Ð2Üˆv�q˜‘sÓ€AØ×(Ñ(Ó*¬b°°A±©g´c¸!³f©n¸RÑ.?Ä"ÀQÁ$ÄsÈ1ÃvÈqÁyÁ.ÐQSÑBSÑ.SÒSÐSÐSØ×ÑÓ¤2 a¨¡d¡7¬1¨R«5¡=´"°Q¸±T±'¼!¸B»%±-Ð"@Ò@Ð@Ð@ä�6 DÔ)�D€A€qÜ�˜˜1Ó€AØ×ÑÓ¤2 a¡4¨¨1©¡9¬Q¨q«T¡>´2°a¸±d±7¸1±9¼Q¸q»T±>Ð"BÒBÐBÐBØ×(Ñ(Ó*¬b°°A±©g°a©i¼¸!»©n¼rÀ!¹tÀAÀqÁD¹yÌÈ1Ë¹~Ñ.MÒMÐMÐMØ	�‰”�A‘‹€AØ×ÑÓ¤2 a¨¡d¡7¨1¡9¬Q¨q«T¡>´2°a±4¸¸1¹±9¼Q¸q»T±>Ð"BÒBÐBÐBØ×(Ñ(Ó*¬b°°A±©g°a©i¼¸!»©n¼rÀ!¹tÀAÀqÁD¹yÌÈ1Ë¹~Ñ.MÒMÐMÐMä��A�˜˜1Ó€AØ×ÑÓ 2¤b¡5¨!¬B©$ -Ò/Ð/Ð/Ø×(Ñ(Ó*¨c´"©fÒ4Ð4Ð4ä”�a˜“˜Q Ó"€AØ×ÑÓ 1¤R¡4¨¬2© ,Ò.Ð.Ð.Ø×ÑœU 1 a›[Ó)¨a´©d°A´b±D¨\Ò9Ð9Ð9Ø×Ñ˜VÓ$¨¬2©¨q´©t¨Ò4Ð4Ñ4r:   c                  óì  — t        d«      } t        d«      }t        t        dd«      | |«      j                  d| z  t	        | dz  |dz  z
  | dz  z  «      z  k(  sJ ‚t        t        dd«      dd«      j                  dt	        t        d«      d	z  «      z  k(  sJ ‚t        d d
d d«      j                  dt        z  k(  sJ ‚t        t        d dd¬«      j                  j                  d«      dz
  «      dk  sJ ‚y )NÚMrý   r   r*   r&   r,   r/   rE   rC   r$   r%   )rª   r«   r  gûRÃeé†9@g»½×Ùß|Û=)	r	   r   r   r¦   r   r   r   rs   Úevalf)r!  rý   s     r8   Útest_circumferencer#    sñ   € Üˆs‹€AÜˆs‹€AÜ”5˜˜A“;  1Ó%×3Ñ3°q¸1±u¼zÈ1ÐPQÉ6ÐTUÐYZÑTZÉ?Ð^_ÐabÑ^bÑJbÓ?cÑ7cÒcÐcÐcä”5˜˜A“;  1Ó%×3Ñ3°r¼JÄqÈÃtÈbÁyÓ<QÑ7QÒQÐQÐQô �4˜˜D !Ó$×2Ñ2°a¼±dÒ:Ð:Ð:ô Œw�t Q°Ô2×@Ñ@×FÑFÀrÓJÐM^Ñ^Ó_ÐbgÒgÐgÑgr:   c                  ó:   — t        dd«      t        dd«      k(  sJ ‚y )NrŸ   r   r$   r&   rb   r]   r:   r8   Útest_issue_15259r%  -  s   € Ü�&˜!Ó¤ a¨£Ò+Ð+Ñ+r:   c                  ó  — d} d}t        dd«      }t        || «      }|j                  |j                  |«      d   «      dk(  sJ ‚|j                  j
                  j                  sJ ‚|j                  j                  j                  sJ ‚|j                  j                  sJ ‚t        || d¬«      }|j                  j
                  j                  sJ ‚|j                  j                  j                  sJ ‚|j                  j                  sJ ‚y )Ng'‹FÌ´˜?)g–mi$¶?gTF\ý´?r   gÇ•¶Ÿ­?TFr•   )
r   r   r±   r°   r¤   r"   Úis_Rationalr#   ÚradiusÚis_Float)ÚRiÚCiÚAr>   Úus        r8   Útest_issue_15797_equalsr.  1  sÙ   € Ø	€BØ	1€BÜˆaÐ#Ó$€AÜˆr�2‹€AØ�<‰<˜Ÿ™¨Ó*¨1Ñ-Ó.°$Ò6Ð6Ð6Ø�8‰8�:‰:×!Ò!Ð!Ð!Ø�8‰8�:‰:×!Ò!Ð!Ð!Ø�8‰8×ÒÐÐÜˆr�2 Ô&€AØ�8‰8�:‰:×ÒÐÐØ�8‰8�:‰:×ÒÐÐØ�8‰8×ÒÐÑr:   c                  óê   — t        d«      \  } }}}t        | |f||«      }|j                  «       t        | |ft	        ||«      «      k(  sJ ‚t        dd«      j                  «       t        dd«      k(  sJ ‚y )Núx y a b©r%   r*   r(   )r
   r   Úauxiliary_circler   r   ©r"   r#   r<   r=   r@   s        r8   Útest_auxiliary_circler4  @  ss   € Ü˜Ó#�J€A€qˆ!ˆQÜ��A�˜˜1Ó€Aà×ÑÓ¤6¨1¨a¨&´#°a¸³)Ó#<Ò<Ð<Ð<ä�&˜!Ó×-Ñ-Ó/´6¸&À!Ó3DÒDÐDÑDr:   c            	      ó  — t        d«      \  } }}}t        | |f||«      }|j                  «       t        | |ft	        |dz  |dz  z   «      «      k(  sJ ‚t        dd«      j                  «       t        ddt	        d«      z  «      k(  sJ ‚y )Nr0  r&   r1  r(   )r
   r   Údirector_circler   r   r3  s        r8   Útest_director_circler7  I  s†   € Ü˜Ó#�J€A€qˆ!ˆQÜ��A�˜˜1Ó€Aà×ÑÓ¤&¨!¨Q¨´°a¸±d¸QÀ¹T±kÓ1BÓ"CÒCÐCÐCä�&˜!Ó×,Ñ,Ó.´&¸ÀÄ4ÈÃ7ÁÓ2KÒKÐKÑKr:   c                  ó¢  — t        dd¬«      \  } }}}t        d«      \  }}t        t        ||«      ||«      }|j                  | |j                  j
                  z
  z  t        dd«      z  }|j                  ||j                  j                  z
  z  t        dd«      z  }||z   |j                  dz  |j                  dz  z
  t        dd«      z  z
  }	|j                  «       |	k(  sJ ‚t        t        dd«      dd«      }d| dz
  z  t        dd«      z  }d|dz
  z  t        dd«      z  }||z   d	t        dd«      z  z
  }	|j                  «       |	k(  sJ ‚y )
Nzx y h kTrR   za br&   r%   r$   r-   é   )
r
   r   r   rª   r¤   r"   r   r«   r#   Úevolute)
r"   r#   ÚhÚkr<   r=   r@   rÔ   r  ÚEs
             r8   Útest_evoluter>  R  s4  € ä˜¨$Ô/�J€A€qˆ!ˆQÜ�5‹>�D€A€qÜ”�a˜“˜Q Ó"€AØ
�)‰)�Q˜Ÿ™Ÿ™‘^Ñ
$¤x°°1£~Ñ	5€BØ
�)‰)�Q˜Ÿ™Ÿ™‘^Ñ
$¤x°°1£~Ñ	5€BØ
ˆR‰�1—9‘9˜a‘< !§)¡)¨Q¡,Ñ.´¸!¸Q³Ñ?Ñ?€AØ�9‰9‹;˜!ÒÐÐä”�a˜“˜Q Ó"€AØ
ˆQ�‰U‰)”h˜q !“nÑ	$€BØ
ˆQ�‰U‰)”h˜q !“nÑ	$€BØ
ˆR‰�2œ  A›Ñ&Ñ&€AØ�9‰9‹;˜!ÒÐÑr:   c                  ó`   — t        t        dd«      dd«      } | j                  dd«      dk(  sJ ‚y )Nr$   r   r%   r&   z#FFAAFFz”<ellipse fill="#FFAAFF" stroke="#555555" stroke-width="4.0" opacity="0.6" cx="1.00000000000000" cy="0" rx="3.00000000000000" ry="2.00000000000000"/>)r   r   Ú_svgr  s    r8   Útest_svgrA  c  s<   € Ü	”�q˜!“˜a Ó	#€BØ�7‰7�1�iÓ ð  %{ò  {ð  {ñ  {r:   N)?Ú
sympy.corer   Úsympy.core.numbersr   r   r   Úsympy.core.relationalr   Úsympy.core.singletonr   Úsympy.core.symbolr	   r
   Ú$sympy.functions.elementary.complexesr   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr   Úsympy.geometry.liner   Úsympy.geometry.pointr   Úsympy.geometryr   r   r   r   r   r   r   r   r   r   r   Úsympy.testing.pytestr   r   Úsympy.integrals.integralsr   Ú*sympy.functions.special.elliptic_integralsr   r   r9   rV   rÚ   rç   rò   rõ   rø   rû   r  r
  r  r  r  r#  r%  r.  r4  r7  r>  rA  r]   r:   r8   ú<module>rP     sÙ   ðÝ ß 1Ñ 1Ý $Ý "ß /Ý 4Ý 9Ý 8Ý )Ý (÷4÷ 4÷ 4ñ 4÷ .Ý /Ý AÝ 8ò
_ò1ð2 ñ]eó ð]eò@	Xò<
EòAòò,'ò
Xò1:òh=ð ñó ðò 5ò6hò,òòEòLòó"{r:   