U
    —9%e‡d  ã                   @   s˜  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d„ Z+dd„ Z,e%dd„ ƒZ-dd„ Z.dd„ Z/dd„ Z0dd„ Z1dd„ Z2d d!„ Z3d"d#„ Z4d$d%„ Z5e%d&d'„ ƒZ6d(d)„ Z7d*d+„ Z8d,d-„ Z9d.d/„ Z:d0d1„ Z;d2d3„ Z<d4d5„ Z=d6d7„ Z>d8S )9é    )Ú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                  C   s  ddl m} m} ttddƒddƒ}t|jddƒt|  | d d d | | d d d  d ƒksht‚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 )Nr   ©ÚxÚyé   é   é   )Z_slopeé   é   é   é    é   é   éþÿÿÿé   é   é´   )Ú	sympy.abcr    r!   r   r   ÚstrÚequationÚAssertionError)r    r!   Úe1Úe2Úe3© r6   ú`/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/geometry/tests/test_ellipse.pyÚ!test_ellipse_equation_using_slope   s    F>r8   c                     s~  ddl m‰m‰m‰ m‰m} m}m} tˆd ˆd  dˆ  dˆ  d ƒtt	t
dƒd dƒtd	ƒd ƒkspt‚tˆd ˆd  d
ˆ  dˆ  d ƒtt	ddƒdƒks¬t‚tˆ 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st‚tˆd ˆd  ƒtt	ddƒdƒksFt‚tˆ d ˆd  dddtt	ddƒdƒksvt‚tˆ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st‚td
ˆd  d
ˆd   d
ˆ  dˆ  d ƒtt	tddƒtddƒƒdtdƒ d
 ƒksrt‚ttˆ d ˆd  dƒdˆdtt	ddƒdƒks¨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ddd\‰‰ˆ ˆd  ˆ ˆd   | ˆ  |ˆ  | }tt|ƒ ¡ ˆ  ƒ|kszt‚d S )Nr   )r    r!   ÚaÚbÚcÚdÚer$   r#   r'   r%   éýÿÿÿr+   é9   r*   é   éüÿÿÿr9   r:   r   r)   r"   é	   éÿÿÿÿé   c                      s(   t ˆ d ˆd  dˆ   dˆ  d ƒS )Nr$   r#   r'   é   ©r   r6   r   r6   r7   Ú<lambda>.   ó    z+test_object_from_equation.<locals>.<lambda>c                      s   t ˆ d ˆd  d ƒS )Nr$   r@   rF   r6   r   r6   r7   rG   /   rH   c                      s   t ˆ d ˆd  d dddS )Nr$   r@   r9   r:   r   rF   r6   ©r9   r:   r6   r7   rG   0   rH   c                      s   t ˆ d dˆ  d ƒS )Nr$   r*   r%   rF   r6   r   r6   r7   rG   1   rH   c                      s0   t dˆ d  dˆd   dˆ   dˆ  d ƒS )Nr*   r$   r'   r%   r@   rF   r6   r   r6   r7   rG   2   rH   c                      s(   t ˆ d ˆd  dˆ   dˆ  d ƒS )Nr$   r#   r'   r%   rF   r6   rI   r6   r7   rG   3   rH   zx yT©Úreal)r/   r    r!   r9   r:   r;   r<   r=   r   r   r   r   r2   r   r   r   r   Ú
ValueErrorr	   r   r1   )r;   r<   r=   Úeqr6   )r9   r:   r    r!   r7   Útest_object_from_equation!   s*    $L<B.*0662^6,rN   c            *   
      sœ  t ddd‰t ddd‰t ddd} t d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
| d	ƒd|  }}ttddƒtd
dƒtddƒƒt||ƒksòt‚ttddƒtddƒtd	d	ƒƒt	t
ddƒt
d	d	ƒƒks,t‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ td ddƒjtddƒks‚t‚||kst‚|ˆksžt‚||ks¬t‚||ksºt‚||ksÈt‚ˆˆksÖt‚dˆksät‚|ˆksòt‚|jtkst‚ˆjtd	 kst‚|jt| t|ƒ ks2t‚|j|jksDt‚|j|jksVt‚|jd	t | ksnt‚| ¡ ˆ ¡   kr–| t tgksœn t‚| ˆ¡ˆ ˆ¡  krÈˆt tgksÎn t‚|jdksÞt‚|jdksît‚|jdksþt‚|jdkst‚tdddƒtddƒks*t‚tdddƒttddƒtd	dƒƒksRt‚tdddƒttddƒtdd	ƒƒkszt‚t|ƒtttddƒtddƒtddƒƒƒksªt‚||ks¸t‚t||ƒ|kdksÐt‚| |¡dksät‚| tddƒ¡dksþt‚| ttddƒtddƒƒ¡dks$t‚| t||ƒ¡dks>t‚| t||ƒ¡dksXt‚| |¡dkslt‚| ttddƒtddƒtddƒƒ¡dksšt‚| t|dd
ƒ¡dks¶t‚| t|dd
ƒ¡dksÒt‚| t|dd
ƒ¡dksît‚ˆ ¡ ˆks t‚tt‡‡fdd„ƒ ttdƒdƒttdƒ dƒ }}ttddƒdd	ƒ}|j ||f||ffksbt‚td	ƒd	 }t||ƒ}|t|dƒ }|tddƒ }| !|¡| !|¡ks®t‚ˆ !|¡ttt"d
d	ƒdƒtt"d
d	ƒtjƒƒgksät‚ˆ !|¡ttdd	ƒtt"ddƒd	ƒƒgkst‚| !|¡t|tdtd	ƒƒƒgks8t‚| !|¡g ksLt‚ˆ #t||t|dƒ ƒ¡slt‚ˆ #t||t|dƒ ƒ¡sŒt‚| #t|tdtd	ƒƒƒ¡s¬t‚| #ttddƒtddƒƒ¡dksÒt‚| #|¡dksæt‚| #ttd	dƒddƒ¡dkst‚| #ttddƒtddƒtd	dƒƒ¡dks6t‚| #ttddƒtddƒtd	dƒƒ¡dksdt‚ttddƒd
ƒ #ttddƒdƒ¡dkst‚ttddƒd	dƒ !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ƒ !td
dƒ¡ttd
dƒtddƒƒttd
dƒtd
dƒƒgksHt‚ttddƒd	ƒ !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	ƒ !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	s(t‚ttddƒdƒ !tddƒ¡t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ƒ !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‚d#d$„ ‰‡fd%d&„}ttddƒd	dƒ‰ ˆ  $tddƒ¡ttddƒtddƒƒttddƒtddƒƒgk
sDt‚ˆ  $tddƒ¡ttddƒtddƒƒgk
srt‚ˆ  $d'¡ttddƒtddƒƒgk
sšt‚|ˆ  $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/d0ƒƒtt"d1d.ƒt"d2d	ƒƒƒgd	ƒst‚ttd
ƒtjƒ}|ˆ ks0t‚|ˆ  $|d	¡ttt"d3d4ƒt"ddƒƒtt"d5d4ƒt"dd6ƒƒƒttt"d)d7ƒt"dd	ƒƒtt"d8d7ƒt"d9d)ƒƒƒgd	ƒs¢t‚td:d	d	td
ƒ d
 ƒ‰ |ˆ  $d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d:ˆdƒ‰ ˆ  $ˆd df¡ttddƒtddƒƒgksPt‚tt%‡ ‡fd@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sDt‚|j(|d|  ks\t‚|j)|d|  kstt‚ttddAƒtddƒƒ}ttdAdƒtddƒƒ}ttddƒtddƒƒ}ttdBdƒtddCƒƒ}ttd	ƒd	 td	ƒd	 ƒttd	ƒ d	 td	ƒ d	 ƒg}t+ˆ|ƒg kst‚t+|tddƒƒtddƒgks:t‚t+||ƒtddƒgksVt‚t+||ƒtddƒgksrt‚t+||ƒ||d |d gfks–t‚t+||	ƒtddƒtddƒgksºt‚t+||
ƒttd	ƒd	 td	ƒd	 ƒgksæt‚| +|¡tddƒgkst‚ˆ +|¡g kst‚| +ttdd	ƒdƒ¡tddƒgks>t‚| +ttddƒdƒ¡g ks^t‚| +ttd	dƒddƒ¡tddƒgksˆt‚| +ttddƒddƒ¡g ksªt‚| +td	dƒ¡g ksÄt‚| +|¡|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sDt‚t+ttddƒd	ƒttd!dƒdƒƒg kspt‚t+ttddƒdd+ƒttddƒddDƒƒtddƒgks¨t‚t+ttddƒdd+ƒttddƒdEdDƒƒg ksØt‚td:tjƒ +t,dFdGd'ƒ¡tt"dd	ƒdƒttjdƒgkst‚tt-‡fdHd„ƒ tt-‡fdId„ƒ tt-‡fdJd„ƒ t|d
ƒ}t|dƒ} ttddƒdƒ}!| +| ¡g ks‚t‚| +|!¡g ks–t‚| +|¡|ksªt‚td	ƒ}t,td|ƒtd| ƒt|dƒƒ}"t+|"|ƒ}#t.|#ƒdksît‚tddƒ|#kst‚tddƒ|#kst‚t|d	 |d	 ƒ|#ks2t‚t|d	 | d	 ƒ|#ksPt‚ttddƒdƒ}$ttddƒddKƒ}%t+|$|%ƒtddƒtdAdƒgtdAdƒtddƒgfksªt‚|% !tddƒ¡g ksÄt‚ttddƒd
d	ƒ}%|% !td
dƒ¡ttd
dƒtd
dLƒƒgkst‚ttddƒddCƒ}ttd	dƒdd0ƒ‰t"dMd+ƒ}&d	tdNƒ d+ }'t|&|'d0  |&d	 |' ƒt|&|'d0  |&d	 |' ƒg}(| +ˆ¡|(ksŠt‚ttˆˆƒdd0ƒ‰tdNƒ}'t|' dO |& |'t"d	d+ƒ |&d	  ƒt|'dO |& |'t"dPd+ƒ |&d	  ƒg}(‡‡fdQdR„| +ˆ¡D ƒ|(kst‚| #| !|t|dƒ ¡d ¡s6t‚tdSd
d	ƒ‰ ˆ  !tdCdƒ¡ttdCdƒtddƒƒttdCdƒtt"dTdƒt"dUdƒƒƒgkst‚td:dd	ƒ‰ ˆ  /ˆ j¡s®t‚ˆ  /ˆ jtdˆ jt"ddCƒ ƒ ¡sÖt‚ˆ  /ˆ jtˆ jt"ddCƒ dƒ ¡sþt‚ˆ  /ˆ jtˆ jdƒ ¡dks t‚ˆ  /ˆ jtˆ jt"ddCƒ dƒ ¡dksLt‚td:d	dƒ‰ ˆ  /ˆ j¡sjt‚ˆ  /ˆ jtdˆ jt"ddCƒ ƒ ¡s’t‚ˆ  /ˆ jtˆ jt"ddCƒ dƒ ¡sºt‚ˆ  /ˆ jtˆ jdƒ ¡dksÜt‚ˆ  /ˆ jtˆ jt"ddCƒ dƒ ¡dkst‚| /tddƒ¡dks"t‚| /tdVdWƒ¡dks<t‚ˆ  0d	d
¡td:dd
ƒksZt‚ˆ  0d
d ¡td:d d ƒksxt‚ˆ  1t¡ˆ ksŒt‚ˆ  1tdS¡ttd	dƒd	dƒks°t‚tt%‡ fdXd„ƒ ttddƒdƒ})|) 1td	 ¡ttddƒdƒksöt‚|) 1td
 ¡tttjtd
ƒd	 ƒdƒks$t‚|) 1td
 tddƒ¡ttddƒdƒksPt‚|) 1td
 tddƒ¡tttjtd
ƒd	  tjtd
ƒd	  ƒdƒks˜t‚d S )YNr    TrJ   r!   ÚtÚy1r   r"   r$   r#   r)   r'   c                   S   s   t d d d dƒS ©Nr"   ©r   r6   r6   r6   r7   rG   R   rH   z#test_ellipse_geom.<locals>.<lambda>c                   S   s   t ƒ S ©NrR   r6   r6   r6   r7   rG   S   rH   c                   S   s   t tddƒƒS ©Nr   )r   r   r6   r6   r6   r7   rG   T   rH   c                   S   s   t tdƒtdƒ ƒS )Nr    r!   )r   r   r6   r6   r6   r7   rG   U   rH   ©r"   r"   rC   Fç      à¿g      à?c                      s   t tˆ ˆƒddƒjddS )Nr"   r    )Z	parameter)r   r   Úarbitrary_pointr6   r   r6   r7   rG   †   rH   é   éM   r@   é„   é!   é   é(   é   r*   rD   éZ   c                 S   s4   t | j|j ƒd|  k o2t | j|j ƒd|  k S )zF tests whether l1 and 12 are within 10**(-prec)
        of each other é
   )ÚabsÚp1Úp2)Úl1Úl2Úprecr6   r6   r7   Úlines_close¶   s    z&test_ellipse_geom.<locals>.lines_closec                    s   t ‡‡ fdd„t| |ƒD ƒƒS )Nc                 3   s   | ]\}}ˆ ||ˆƒV  qd S rS   r6   )Ú.0rd   re   )rg   rf   r6   r7   Ú	<genexpr>»   s     z=test_ellipse_geom.<locals>.line_list_close.<locals>.<genexpr>)ÚallÚzip)Zll1Zll2rf   )rg   )rf   r7   Úline_list_closeº   s    z*test_ellipse_geom.<locals>.line_list_close©r   r"   iÍÿÿÿrE   içÿÿÿé   éS   é   é   éùÿÿÿr%   r?   é÷ÿÿÿi«þÿÿé«   iVÿÿÿé@   é   é)   iÕÿÿÿ©r   r   iÀÿÿÿéìÿÿÿéG   iáÿÿÿrA   c                      s   ˆ   ˆd df¡S rQ   )Únormal_linesr6   )r=   r    r6   r7   rG   Õ   rH   éûÿÿÿéöÿÿÿr`   gš™™™™™É?g+‡ÙÎ÷ï?)rC   r   ©r"   r   c                      s   t ˆ tddƒƒS )N)r   r   r   )r   r   r"   )r   r   r6   ©r4   r6   r7   rG     rH   c                      s   t ˆ tdƒƒS )NrX   )r   r   r6   r   r6   r7   rG     rH   c                      s   t  ˆ d¡S rQ   )r   r   r6   r   r6   r7   rG     rH   r,   éôÿÿÿé5   i—  éD   r+   c                    s   g | ]}|  ˆ d ˆdi¡‘qS ©r$   r"   )Úsubs)rh   Úpr   r6   r7   Ú
<listcomp>/  s     z%test_ellipse_geom.<locals>.<listcomp>©r"   r$   é   r&   g333333Ó?gš™™™™™Ù?c                      s   ˆ   td ¡S )Nr#   )Úrotater   r6   )r=   r6   r7   rG   O  rH   )2r   r   ZHalfr   r   r   r   r   r2   r   r   r   rL   r   ÚcenterÚarear   ra   ÚcircumferenceZplot_intervalÚminorÚmajorÚhradiusÚvradiusr   ÚhashZ__cmp__Zenclosesr   r   r   rW   ZfociÚtangent_linesr   Ú
is_tangentr{   ÚNotImplementedErrorZfocus_distanceÚeccentricityZ	periapsisZapoapsisZsemilatus_rectumr   r   Ú	TypeErrorÚlenZencloses_pointÚscaler‰   )*rO   rP   Zhalfrb   rc   Zp4r3   r5   Úc1Úc2Úc3rd   ZcenZradÚf1Úf2ZefÚvZp1_1Zp1_2Zp1_3rl   r…   rŽ   r   Úe4Zeccre   Úl3Úl4Z	pts_c1_l3ZcsmallZcbigZcoutÚt1ZpointsÚcircZelipr9   r;   ZansZcirr6   )r=   r4   rg   r    r!   r7   Útest_ellipse_geom:   s.   





,:.2((0&ÿÿ
 
6.&   &"ÿÿ
ÿÿ
,  ÿÿ
*ÿ
*ÿ
&00ÿÿ
 ÿÿ
 ÿÿ
*ÿ
ÿ
ÿ
,,þþ
,,þþ
,þþ
0 
 
8"$$,( *"84,80
ÿ 
ÿÿ


 
&ÿ
ÿ

4J$$ ÿÿ
(("ÿÿ
(("ÿÿ
$$.,r¤   c                  C   sþ   t ddd d} | jtdƒd ks$t‚t dd tdƒd d}|jdksHt‚t d dtdƒd d}|jdkslt‚t tddƒddd}|jdksŽt‚ttdd„ ƒ ttd	d„ ƒ ttd
d„ ƒ t d dd dƒj	dksÐt‚ttdd„ ƒ ttdd„ ƒ ttdd„ ƒ d S )Nr$   r"   )r   r   r•   r#   r   ©r   r•   c                   S   s   t tddƒdtdƒd dS ©Nr#   r"   r$   r¥   )r   r   r   r6   r6   r6   r7   rG   j  rH   z#test_construction.<locals>.<lambda>c                   S   s   t tddƒdtdƒdS )Nr#   r"   r)   r¥   )r   r   r   r6   r6   r6   r7   rG   k  rH   c                   S   s   t tddƒdtjtdƒ dS r¦   )r   r   r   ÚPir6   r6   r6   r7   rG   l  rH   c                   S   s   t d d dddS )Nr"   )r•   rR   r6   r6   r6   r7   rG   r  rH   c                   S   s   t tddƒdddS )Nr#   r"   r>   r¥   ©r   r   r6   r6   r6   r7   rG   u  rH   c                   S   s   t tddƒdddS )Nr#   r"   rV   r¥   r¨   r6   r6   r6   r7   rG   v  rH   )
r   r•   r   r2   r   r   r   r   r   Úlength)r3   r4   r5   rŸ   r6   r6   r7   Útest_constructionZ  s    rª   c                  C   s¨   t ddd} ttddƒ| | ƒ}t dƒt dƒ }}tddƒD ]4}| ¡ }| ||¡ t||f|jƒ¡ 	d¡s:t
‚q:|jdd	}| ||¡ t||f|jƒ¡ 	d¡s¤t
‚d S )
NrP   TrJ   r   ÚrxÚryr)   r"   )Úseed)r   r   r   ÚrangeZrandom_pointr1   r„   rk   ÚargsÚequalsr2   )rP   r5   r«   r¬   ÚindÚrr6   r6   r7   Útest_ellipse_random_pointx  s    *r³   c                   C   s   t tddƒƒdkst‚d S )Nrm   r$   zCircle(Point2D(0, 1), 2))Úreprr   r2   r6   r6   r6   r7   Ú	test_repr…  s    rµ   c                  C   s€  t ddƒ} |  d¡t ddƒks"t‚| jddt ddƒks<t‚|  d¡tdddƒksVt‚td	dd
ƒ dd
d¡ttddƒddƒks‚t‚t d	dƒ dd
d¡ttddƒddƒks¬t‚td	dd
ƒ d
d
d¡ttddƒddƒksØt‚t d	dƒ d
d
d¡t tddƒdƒkst‚t tddƒdƒ tdd
ƒtdd
ƒd¡t d	dƒks8t‚t d	dƒ dd¡t ddƒksZt‚t d	dƒ d
d
¡t d	dƒks|t‚d S )NrU   r$   rC   )rC   r"   )r!   )r"   rC   rƒ   r'   rx   r#   )r'   r)   rA   r}   rB   r*   iøÿÿÿr"   r)   )r   r˜   r2   r   r   r   Ú	translate)r;   r6   r6   r7   Útest_transform‰  s2    
ÿÿÿÿ
$ÿ
ÿ
ÿr·   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snt‚|jdks|t‚|jd	ksŠt‚d S )
Nr   r#   r)   r$   r+   rD   )r>   r|   r#   r)   )r|   rs   rB   r)   )r+   r+   r$   r$   )r   r   r   Zboundsr2   )r3   r4   r™   rš   r6   r6   r7   Útest_boundsŸ  s    r¸   c                     sÒ   t dƒ} t dƒ‰td| fˆd}tdddƒ}|j| |¡j ksDt‚tddd	ƒ‰ ˆ jˆ  tddd¡j kspt‚ˆ jˆ  tdtd¡j kst‚tt	‡ ‡fd
d„ƒ t
ddƒ tddƒ¡t
tddƒdƒksÎt‚d S )Nr:   Úmr   ©Zsloperx   r~   )r$   r#   r"   r$   c                      s   ˆ   tdˆd¡S )Nr~   rº   )Úreflectr   r6   ©r=   r¹   r6   r7   rG   ³  rH   ztest_reflect.<locals>.<lambda>rm   rU   rC   )r   r   r   r‹   r»   r2   r   r   r   r”   r   r   )r:   Úlr¢   r6   r¼   r7   Útest_reflectª  s      r¾   c                     sÌ  t tddƒddƒ‰ ttddƒdƒ} ˆ  tddƒ¡dks:t‚ˆ  tddƒ¡dksRt‚ˆ  ˆ ¡dksdt‚ˆ  t d	d
dƒ¡dks~t‚ˆ  t d	ddƒ¡dks˜t‚|  t ddd
ƒ¡dks²t‚|  tddƒ¡dksÊt‚|  tddƒ¡dksât‚|  tddƒ¡dksút‚|  tddƒ¡dkst‚|  tddƒ¡dks.t‚|  tddƒ¡dksHt‚ˆ  tddƒ¡dksbt‚ˆ  td	dƒ¡dks|t‚|  td	dƒ¡dks–t‚ˆ  tddƒ¡dks°t‚ˆ  tddƒ¡dksÊt‚ˆ  tddƒ¡dksät‚ˆ  tddƒ¡dksþt‚ˆ  tddƒ¡dkst‚ˆ  td	dƒ¡dks2t‚ˆ  tdd ƒ¡dksLt‚ˆ  tdd!ƒ¡dksft‚ˆ  td	d"d#ƒ¡dks‚t‚ˆ  td$d%d&ƒ¡dksžt‚ˆ  tddd'ƒ¡dksºt‚ˆ  tddd(ƒ¡dksÖt‚ˆ  tdd)dd(ƒ¡dksôt‚ˆ  td*ddd+ƒ¡dkst‚|  td*ddd+ƒ¡dks0t‚ˆ  td	dd,d(ƒ¡dksNt‚ˆ  td-d.d/ƒ¡dksjt‚ˆ  td-d.d)d(ƒ¡dksˆt‚ˆ  tdd0d1ƒ¡dks¤t‚t	t
‡ fd2d3„ƒ t	t
‡ fd4d3„ƒ d S )5Nr   r#   r)   r$   r+   rD   FTrx   r"   )r$   r+   )r-   r+   )rD   r+   )r|   r+   )iñÿÿÿry   )r>   r+   )r>   iêÿÿÿ)rv   r,   )rB   r,   )rB   ry   ©r$   r$   )rr   rD   r‡   ©r#   r   )rX   rX   )r>   r   )r>   r)   )r#   r)   )r`   r   )r`   r`   rU   )gìQ¸…ëÀgü©ñÒMbP¿)r>   r"   )r)   r)   )r)   r|   )iœÿÿÿiÎÿÿÿ)iØÿÿÿi²þÿÿ)iºÿÿÿiÌÿÿÿrm   )r   r)   )r   r|   )r>   r|   )r#   r|   )rD   rD   )r#   rX   )r#   r€   )r*   r)   )r)   rD   )r*   r|   c                      s   ˆ   tdddƒ¡S rT   )r“   r   r6   ©r3   r6   r7   rG   Ü  rH   z!test_is_tangent.<locals>.<lambda>c                      s   ˆ   tdƒ¡S )Nr)   )r“   r   r6   rÁ   r6   r7   rG   Ý  rH   )r   r   r   r“   r2   r   r   r   r   r   r–   )r™   r6   rÁ   r7   Útest_is_tangent·  sL    rÂ   c                      sJ   t dƒ‰ttddƒddƒ‰ ˆ  dˆ¡ˆdiks2t‚tt‡ ‡fdd„ƒ d S )NrO   r   r#   r)   rÀ   c                      s   ˆ   dˆ¡S )N)r'   r   )Úparameter_valuer6   ©r=   rO   r6   r7   rG   ä  rH   z&test_parameter_value.<locals>.<lambda>)r   r   r   rÃ   r2   r   rL   r6   r6   rÄ   r7   Útest_parameter_valueà  s    rÅ   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ƒ}|| ¡ d ksÄt‚|| ¡ d ksØt‚|| ¡ d ksìt‚| tddƒ¡}dt dt dt f}||ks t‚d S )Nzx, yr   r)   r'   r%   r@   r$   r|   r`   é   rA   r#   r"   r*   iD  iM  iX  )r	   r   r   r   r   Zsecond_moment_of_arear2   r   )	r    r!   r=   ZI_yyZI_xxÚYZI_xyr¢   Út2r6   r6   r7   Útest_second_moment_of_areaç  s    ,,"rÉ   c                  C   s¤  t ddd} tddƒ}| ¡ dt ks*t‚| ¡ dt dt fksFt‚td| d	 ƒ}| ¡ t| d
  t| ƒ d t|  t| ƒd
  d  kst‚| ¡ t| d
  tdƒ t| d
  tdƒ fksÄt‚tddd\}}t	d||ƒ}| ¡ t| |d	  tdƒ t|d	  | tdƒ fkst‚| ¡ t|d
  | tdƒ t| |d
  tdƒ  ks\t‚| 
td	 ¡}| ¡ t|d	  | tdƒ t| |d	  tdƒ fks¨t‚| ¡ t|d
  | tdƒ t| |d
  tdƒ  ksæt‚t	||fd	dƒ}| ¡ dt dt fkst‚| ¡ dt ks*t‚t	tddƒd	d	ƒ}| ¡ d	t d	t fksZt‚| td	d	ƒ¡d	t d	t fks€t‚| d¡d	t d	t fks t‚d S )Nr<   T)Zpositive)r#   rD   r%   i   é€   )r$   rB   r$   r#   ru   r(   za, b)r'   r*   r'   r*   r&   éx   r   r¿   )r   r   Zpolar_second_moment_of_arear   r2   Zsection_modulusr
   r   r	   r   r‰   r   )r<   r;   r9   r:   r=   r6   r6   r7   Ú4test_section_modulus_and_polar_second_moment_of_areaø  s*    
<4>>>>&rÌ   c                  C   s¾   t dƒ} t dƒ}ttddƒ| |ƒjd|  t| d |d  | d  ƒ ksLt‚ttddƒddƒjdttdƒd	 ƒ ksxt‚td d
d dƒjdt ks”t‚ttd dddj 	d¡d ƒdk sºt‚d S )NÚMr¹   r   r'   r$   r)   r,   rB   r@   r"   r#   )r   r   rÆ   gûRÃeé†9@g»½×Ùß|Û=)
r   r   r   rŒ   r   r2   r   r   ra   Zevalf)rÍ   r¹   r6   r6   r7   Útest_circumference  s    <,rÎ   c                   C   s   t ddƒtddƒkst‚d S )Nr‡   r   r"   r$   )r   r   r2   r6   r6   r6   r7   Útest_issue_15259!  s    rÏ   c                  C   sš   d} d}t ddƒ}t|| ƒ}| | |¡d ¡dks8t‚|jjjsFt‚|jjjsTt‚|j	js`t‚t|| dd}|jjj
s|t‚|jjj
sŠt‚|j	j
s–t‚d S )Ng'‹FÌ´˜?)g–mi$¶?gTF\ý´?r   gÇ•¶Ÿ­?TF)Úevaluate)r   r   r“   r’   r2   rŠ   r    Zis_Rationalr!   ZradiusZis_Float)ZRiZCiÚAr;   Úur6   r6   r7   Útest_issue_15797_equals%  s    

rÓ   c                  C   s`   t dƒ\} }}}t| |f||ƒ}| ¡ t| |ft||ƒƒks@t‚tddƒ ¡ tddƒks\t‚d S )Núx y a b©r#   r'   r%   )r	   r   Zauxiliary_circler   r   r2   ©r    r!   r9   r:   r=   r6   r6   r7   Útest_auxiliary_circle4  s     r×   c                  C   sr   t dƒ\} }}}t| |f||ƒ}| ¡ t| |ft|d |d  ƒƒksJt‚tddƒ ¡ tddtdƒ ƒksnt‚d S )NrÔ   r$   rÕ   r%   )r	   r   Zdirector_circler   r   r2   rÖ   r6   r6   r7   Útest_director_circle=  s    *rØ   c            
      C   s
  t ddd\} }}}t dƒ\}}tt||ƒ||ƒ}|j| |jj  tddƒ }|j||jj  tddƒ }|| |jd |jd  tddƒ  }	| 	¡ |	ks t
‚ttddƒddƒ}d| d  tddƒ }d|d  tddƒ }|| d	tddƒ  }	| 	¡ |	kst
‚d S )
Nzx y h kTrJ   za br$   r#   r"   r*   é   )r	   r   r   r   rŠ   r    r   r   r!   Zevoluter2   )
r    r!   ÚhÚkr9   r:   r=   r¢   rÈ   ÚEr6   r6   r7   Útest_evoluteF  s    &rÝ   c                  C   s*   t tddƒddƒ} |  dd¡dks&t‚d S )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   Z_svgr2   rÁ   r6   r6   r7   Útest_svgW  s    rÞ   N)?Z
sympy.corer   Zsympy.core.numbersr   r   r   Zsympy.core.relationalr   Zsympy.core.singletonr   Zsympy.core.symbolr   r	   Z$sympy.functions.elementary.complexesr
   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   Zsympy.geometry.liner   Zsympy.geometry.pointr   Zsympy.geometryr   r   r   r   r   r   r   r   r   r   r   Zsympy.testing.pytestr   r   Zsympy.integrals.integralsr   Z*sympy.functions.special.elliptic_integralsr   r   r8   rN   r¤   rª   r³   rµ   r·   r¸   r¾   rÂ   rÅ   rÉ   rÌ   rÎ   rÏ   rÓ   r×   rØ   rÝ   rÞ   r6   r6   r6   r7   Ú<module>   sL   4
  !)
		