U
    Ç-ej  ã                   @   s¼  d dl mZmZmZ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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mZm Z m!Z!m"Z" d d	l#m$Z$m%Z%m&Z& d d
l'm(Z( d dl)m*Z*m+Z+ d dl,m-Z- dd„ Z.e%dd„ ƒZ/dd„ Z0dd„ Z1dd„ Z2dd„ Z3dd„ Z4dd„ Z5dd„ Z6dd „ Z7d!d"„ Z8d#d$„ Z9d%d&„ Z:d'd(„ Z;d)d*„ Z<d+d,„ Z=d-d.„ Z>d/d0„ Z?d1d2„ Z@d3d4„ ZAd5d6„ ZBd7d8„ ZCd9d:„ ZDd;d<„ ZEd=d>„ ZFd?S )@é    )ÚFloatÚRationalÚooÚpi)ÚS)ÚSymbolÚsymbols)ÚAbs)Úsqrt)ÚacosÚcosÚsin)Útan)ÚCircleÚEllipseÚGeometryErrorÚPointÚPoint2DÚPolygonÚRayÚRegularPolygonÚSegmentÚTriangleÚare_similarÚconvex_hullÚintersectionÚLineÚRay2D)ÚraisesÚslowÚwarns)Úverify_numerically)ÚradÚdeg)Ú	integratec                 C   s&   t dƒ}| | |   k o |k S   S )z.Test if two floating point values are 'equal'.z1.0E-10)r   )ÚaÚbZt_float© r'   úb/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/geometry/tests/test_polygon.pyÚfeq   s    r)   c            &         sº  t ddd‰ t ddd‰t ddd} 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|||ƒ}	ttd
d
ƒƒtd
d
ƒks¤t‚t|tdd
ƒ||ƒ|	ksÀt‚ttdd
ƒ|||ƒ|	ksÜt‚t|||tdd
ƒƒ|	ksøt‚t|tdd
ƒ||ƒ|	kst‚t||tddƒ||ƒ|	ks6t‚ttddƒtddƒtddƒtddƒtddƒtddƒtddƒtddƒtddƒtddƒtddƒtddƒtddƒƒttddƒtddƒtddƒtddƒƒksÐt‚ttd
d
ƒtddƒtdd
ƒtddƒtddƒtd
dƒƒ}
ttdd
ƒtddƒtd
d
ƒtd
dƒtddƒtddƒƒ}ttd
d
ƒtdd
ƒtddƒtddƒƒ}ttd
d
ƒtddƒtddƒtdd
ƒƒ}ttd
d
ƒtddƒtd
dƒƒ}ttddƒtddƒtddƒtddƒƒ}ttˆ ˆƒt| |ƒt||ƒƒ}ttˆ ˆƒt||ƒt| |ƒƒ}ttd
d
ƒtddƒtdd
ƒtddƒƒ}ttd
dƒtddƒtd
d
ƒtdd
ƒƒ}ttd
d
ƒddd}ttd
d
ƒdd
dd}ttddƒtddƒƒ}|
|ks¢t‚t|
j	ƒdks¶t‚t|
j
ƒdksÊt‚|
jddtdƒ  td ƒ td!ƒ ksöt‚|
jd"kst‚|
 ¡ rt‚td#d$d%d&d'ƒ ¡ d(ks2t‚| ¡ s@t‚| ¡ sNt‚|j}|td
d
ƒ td kspt‚|td
dƒ td ksŒt‚| tˆ ˆƒ¡d ks¦t‚| tddƒ¡s¼t‚| td
d
ƒ¡d(ksÖt‚| tdd
ƒ¡d(ksðt‚|
 ttd)d)ƒdƒ¡d(kst‚|
 ttd)dƒddƒ¡d(ks2t‚| d¡ˆ d
dgksLt‚| ttddƒtd*d*ƒtdd*ƒƒ¡dtdƒ ks‚t‚| ttdd!ƒtdd!ƒtd!d+ƒtdd+ƒƒ¡dks¸t‚ttd,d-D ttd
d
ƒtdd
ƒtddƒƒ ttd
d
ƒtd
dƒtddƒƒ¡ W 5 Q R X t|ƒtttd
d
ƒtddƒtd
dƒƒƒks>t‚t|
ƒt|ƒksTt‚t|ƒt|ƒksjt‚t|ƒt|ƒks€t‚|ttddƒtd
dƒtd
d
ƒƒks¨t‚ttddƒtd
dƒtd
d
ƒƒ|ksÐt‚|td
dƒksät‚td
dƒ|ksøt‚| d.¡ t d.ddd
¡td
d
ƒks"t‚tt‡ ‡fd/d0„ƒ | |¡tdtd1d2ƒƒtdtd3dƒƒgksft‚|jd
ksvt‚|t td
d
ƒddd
ƒks”t‚||ks¢t‚|j!d
 tdd
ƒks¼t‚|j	d
 td
d
ƒksÖt‚| "td ¡ |j!d
 td
dƒksþt‚t td
d
ƒddƒ}
t td
d
ƒddƒ}tt#d4d0„ ƒ tt#d5d0„ ƒ ttd6d0„ ƒ |
|ksZt‚|
j$ttddƒ kstt‚|
j%ttddƒ ksŽt‚|j&dt'td ƒ ksªt‚|j(|
j(  krÌtd
d
ƒksÒn t‚|
j)|
j*  krîdksôn t‚|j+ttd
d
ƒdƒk	st‚|j,ttd
d
ƒ|j&ƒk	s.t‚|j-|j&  k	rZddtdƒ  d k	s`n t‚| "td ¡ |j}|td
dƒ dt d k	s”t‚|
 ¡ 	s¢t‚|
j.d
k	s²t‚|
 td
d
ƒ¡	sÈt‚|
 td7d
ƒ¡d(k	sât‚| td
d8ƒ¡	søt‚|
 "td ¡ |
j.td k
st‚|
j!d
 tddtdƒ ƒk
s<t‚|
j	D ]@}t/|tƒ
rh|td
d
ƒk
s€t‚n|ddtd fk
sBt‚
qB|
td
d
ƒk
s˜t‚|
|k
s¦t‚|
}|
 0td ¡t td
d
ƒddttddƒ ƒk
sÜt‚|
|k
sêt‚|
jd9tdƒ d: dt1td ƒ  kst‚|
j2d;ttdƒ d! tdd!ƒ ƒ ksBt‚|
 3dd¡t |
j4|
j*d |
j5|
j.ƒksnt‚t d<ddƒ 3dd¡ttdd
ƒtd
dƒtdd
ƒtd
dƒƒks®t‚t6|
ƒt7|
ƒksÄt‚|j}t8|td
d
ƒ  9¡ t:d=ƒƒsìt‚t8|tddƒ  9¡ t:d>ƒƒst‚t8|tddƒ  9¡ t:d?ƒƒs0t‚t8|tdd
ƒ  9¡ t:d@ƒƒsRt‚|j}t8|td
d
ƒ  9¡ t:d=ƒƒszt‚t8|tddƒ  9¡ t:d>ƒƒsœt‚t8|tddƒ  9¡ t:d?ƒƒs¾t‚t8|tdd
ƒ  9¡ t:d@ƒƒsàt‚td
d
ƒ}
tdd
ƒ}td
dƒ}t|
||ƒ}t|
|ttddƒttdAdƒƒƒƒ}t|
t|d
ƒtd
|ƒƒ}|j
}t|
||
ƒt|
||
ƒ  krxt;|
|ƒks~n t‚tt#dBd0„ ƒ t|
|
|
ƒ|
ks¢t‚t||d |d ƒt;||d ƒksÊt‚|jtdCdƒksàt‚| <¡ sît‚| <¡ d(ks t‚| <¡ st‚|
|kst‚|j
d
 |ks0t‚t;d<dDƒ|ksDt‚tddƒ|ksXt‚| ¡ sft‚t8|j|
  9¡ t 9¡ d ƒsˆt‚| =¡ d(ksšt‚| =¡ s¨t‚| =¡ d(ksºt‚t>||ƒd(ksÎt‚t>||ƒsÞt‚t>||ƒd(ksòt‚| ?td
d
ƒ¡d(kst‚| ?|¡d(ks t‚| @¡ } | |
 t;|
ttddƒtddƒƒƒksRt‚| @¡ | t;tdd
ƒttddƒdtdƒ d ƒƒksŒt‚td
|ƒ}| @¡ | t;|t|tdƒd  d
ƒƒksÄt‚dEdFtdƒ  dG }!|jAt|!|!ƒksît‚|j-|j,j*  krddtdƒ d  ks"n t‚|j-|j,j*  krLdtdƒ d ksRn t‚|j-|j,j*  krˆ|d dtdƒ tB|ƒ  ksŽn t‚|jC|j
d  dtdƒ d ks´t‚|jD|j
d  tEdCtdƒ dHtdƒ d ƒksèt‚|j+j4td)d)ƒks t‚|jF}"|jGttddƒtddƒƒks(t‚|"|
 t;|
ttddƒtddƒƒƒksRt‚|jF|
 t;|
t|d |d ƒƒkszt‚t|"|
 |"| |"| ƒ|jGgks t‚|jHttd)d
ƒtd
d)ƒtd)d)ƒƒksÊt‚|jIttd)d
ƒtd
d)ƒtd)d)ƒƒksôt‚|jIttd
d
ƒtd
d)ƒtd)d)ƒƒkst‚|jJ}#|#|
 t;|
ttddƒtddƒƒƒksNt‚|#|  K|d
 ¡sft‚|#| |d ks|t‚|jL|
ksŒt‚tdIƒ}	|	jLtdJƒks¨t‚tt|  M¡ Ž ƒdksÂt‚tt|# M¡ Ž ƒdksÜt‚tt|" M¡ Ž ƒdksöt‚ttd
d
ƒtdd
ƒtddƒtd
dƒƒ}
ttd
tdƒd ƒtdtdƒd ƒtdtdKƒd ƒtd
tdKƒd ƒƒ}ttddƒtddƒtddƒƒ}ttddƒttdƒd dƒtdtdƒd ƒƒ}t||ƒ}$tddƒ}%|
 |$¡|ksÖt‚|
 |%¡d
ksêt‚| |$¡tdƒd kst‚| |%¡tdƒd ks"t‚ttd,d- |
 |¡|d ksHt‚W 5 Q R X |
 |¡tdƒd ksnt‚ttd,d-6 | |¡tdƒd ttdƒdC ƒd  ks¬t‚W 5 Q R X d S )LNÚxT©ÚrealÚyÚqÚuÚvÚwÚx1r   é   é   é   éÿÿÿÿéüÿÿÿé   iõÿÿÿéñÿÿÿgffffff@gffffff!ÀgÍÌÌÌÌÌ Àéþÿÿÿé   éýÿÿÿé
   é   é   é   é÷ÿÿÿ)Úng      @é   é   é   )r6   r5   )r3   r6   ©r3   r5   ©r6   r6   ©r4   r   Fç      @é   é   ú1Polygons may intersect producing erroneous output)ÚmatchÚtc                      s$   t tˆ dƒtdˆƒtˆ ˆƒƒ d¡S )Nr   r*   )r   r   Úarbitrary_pointr'   ©r*   r-   r'   r(   Ú<lambda>~   s     ÿÿztest_polygon.<locals>.<lambda>i¬ÿÿÿé   é!   c                   S   s   t tddƒtddƒtddƒƒS ©Nr   r5   ©r   r   r'   r'   r'   r(   rQ      s   ÿÿc                   S   s   t tddƒddƒS ©Nr   r5   r3   rU   r'   r'   r'   r(   rQ      ó    c                   S   s   t tddƒddƒS )Nr   r5   rI   rU   r'   r'   r'   r(   rQ      rW   é   gš™™™™™@iÿÿÿiâ  é   ©r   r   z0.7853981633974483z1.2490457723982544z1.8925468811915388z2.3561944901923449éK   c                   S   s   t tddƒƒS )Nr   )r   r   r'   r'   r'   r(   rQ   ×   rW   é   ©r5   r   éú   é}   é2   éûÿÿÿzãTriangle(
    Point(100080156402737/5000000000000, 79782624633431/500000000000),
    Point(39223884078253/2000000000000, 156345163124289/1000000000000),
    Point(31241359188437/1250000000000, 338338270939941/1000000000000000))z¼Point(-78066086905059984021699779471538701955848721853/80368430960602242240789074233100000000000000,20151573611150265741278060334545897615974257/160736861921204484481578148466200000000000)é	   )Nr   r   ÚHalfr   r   r   ÚAssertionErrorr   ÚlenÚargsÚsidesÚ	perimeterr
   ZareaZ	is_convexÚanglesr   Zencloses_pointÚenclosesr   r   Zplot_intervalZdistancer    ÚUserWarningÚhashrO   Úsubsr   Ú
ValueErrorr   r   r   ZverticesÚspinr   Zinterior_angleZexterior_angleZapothemr   ZcircumcenterZcircumradiusZradiusZcircumcircleÚincircleÚinradiusZrotationÚ
isinstanceÚrotater   ÚlengthÚscaleÚcenterZ_nÚreprÚstrr)   Zevalfr   r   Zis_rightÚis_equilateralr   Z
is_similarÚ	bisectorsÚincenterr	   ÚexradiiZ	excentersr   ÚmediansZcentroidÚmedialÚnine_point_circleÚ	altitudesÚequalsZorthocenterÚvalues)&r.   r/   r0   r1   r2   Zhalfr%   r&   ÚcrN   Úp1Úp2Úp3Úp4Zp5Zp6Zp7Zp8Zp9Zp10Zp11Zp12ÚrZdict5Zdict1ÚvarZp1_oldri   Út1Út2Út3Ús1rz   ZicÚmr€   Zpt1Zpt2r'   rP   r(   Útest_polygon   sr   "        ý$ü
   ý   ý  þ  þ þ  þ þ þ  þ  þ,ÿ
 "ÿ
ÿ
$ÿÿ
ÿÿ0((ÿ
0("2 "
2,,
ÿ
$ÿ
""""""""


"4(" ÿ ÿ
.40<&4"*(&* ÿ ÿ*  þ  þ þ þ

ÿ"ÿr   c                  C   s²  t ddƒt ddƒt ddƒt ddƒt ddƒt ddƒt ddƒt ddƒt ddƒt d	dƒt d
dƒg} t| d | d | d | d | d
 | d ƒ}|  | d ¡ t ddƒt ddƒt ddƒt ddƒg}t|d |d ƒ}t|Ž |ksÚt‚t| Ž |ksêt‚t| d ƒ| d kst‚t| d | d ƒt| d | d ƒks.t‚t| d gd Ž | d ksNt‚tt ddƒtt ddƒt ddƒƒtt ddƒdd	ƒgŽ tt ddƒt ddƒt d	dƒt ddƒƒks®t‚d S )Nra   r6   r:   r5   r<   r   r3   r4   r?   r>   rb   r=   iÓÿÿÿi«ÿÿÿéU   é   ièÿÿÿ)r   r   Úappendr   r   rd   r   )ÚpÚchZ	another_pZch2r'   r'   r(   Útest_convex_hullO  s4          þ*ÿ* 
þ$ýr•   c                  C   sŒ   t tddƒtddƒtddƒtddƒttjtjƒƒ} |  tdtjƒ¡dksLt‚|  ttjtjƒ¡dksht‚|  ttddƒtjƒ¡dksˆt‚d S )Nr   r5   Fr4   r?   T)r   r   r   rc   rj   rd   r   )Úsr'   r'   r(   Útest_enclosesk  s    "ÿr—   c                   C   sÆ   t ddt tddƒtddƒtddƒƒks,t‚t ddt tddƒtddƒtd	tdƒd ƒƒks`t‚t d
dt tddƒtddƒttdƒd tdƒd ƒƒksœt‚t ddd ks®t‚ttdƒƒdksÂt‚d S )N)r4   r?   r@   )Zsssr   r4   r?   )é   r3   r˜   )Zasar3   r5   )r5   é-   r3   )Úsas)r5   r3   r@   é´   )r   r   rd   r
   r#   r"   r'   r'   r'   r(   Útest_triangle_kwargsu  s    ÿ$ÿ,ÿrœ   c                  C   sÔ   t ddƒt tjtddƒƒt ddƒg} t ddƒt dtddƒƒt dd	ƒg}t| Ž  d
dd¡t|Ž ksdt‚tdddƒ d
dd¡tt ddƒt dd	ƒt ddƒt ddƒƒks¤t‚tdddƒ d
d
¡tt	ddƒd
ddƒksÐt‚d S )Nr   r5   r?   r7   iöÿÿÿr<   iÛÿÿÿr:   éùÿÿÿr3   r4   )r?   r@   rZ   éúÿÿÿióÿÿÿ)
r   r   rc   r   r   ru   rd   r   r   r   )ZptsZpts_outr'   r'   r(   Útest_transform€  s    $"$ÿÿrŸ   c            	      C   sj  t ddd} t ddd}t dƒ}t dƒ}td|f|d}t| |ƒ}| |¡}| |¡j}| |¡j}t||ƒsrt‚td	d
dƒ tdt	d¡t
tddƒtddƒtddƒƒks®t‚td	d
dƒ tdt	d¡t
tddƒtddƒtddƒƒksêt‚td	d
dƒ tddd¡t
tddƒtddƒtddƒƒks(t‚td	d
dƒ tddd¡t
tddƒtddƒtddƒƒksft‚d S )Nr*   Tr+   r-   r&   rŽ   r   ©Zsloper]   )r3   r   )r3   r3   rH   r@   r?   r3   )r   r4   r6   r:   r5   r>   )r   r   r   ZreflectZperpendicular_segmentrt   r!   rd   r   r   r   )	r*   r-   r&   rŽ   Úlr“   rˆ   ZdpZdrr'   r'   r(   Útest_reflectŠ  s,    

ÿÿÿ
ÿr¢   c                  C   sr  t ddƒt ddƒt ddƒ  } }}tt ddƒt ddƒt ddƒt ddƒƒ}tt ddƒt ddƒt ddƒt ddƒƒ}tt ddƒt ddƒt dd	ƒt ddƒt d
dƒƒ}t| ||ƒ}| ¡ | tt ddƒt dtdƒd ƒƒksÖt‚| ¡ tddƒ ttddƒtt	t
dtdƒ d ƒd ƒdtt
dtdƒ d ƒd ƒ ƒƒks8t‚| ¡ tddƒ ttddƒtdtdƒdt	t
dtdƒ d ƒd ƒ dtt
dtdƒ d ƒd ƒ   d  tdƒdtt
dtdƒ d ƒd ƒ dt	t
dtdƒ d ƒd ƒ   d d ƒƒksþt‚| ¡ tddƒ ttddƒtdt	t
tdƒd ƒd td  ƒ dt	t
tdƒd ƒ d td  ƒ ƒƒksnt‚d S )Nr   r5   r3   r4   r6   r@   r?   rD   r;   é   iíÿÿÿrC   rb   é‘   ra   r‘   )r   r   r   rz   r   r
   rd   r   r   r   r   r   r   )r„   r…   r†   r“   r.   ÚpolyrN   r'   r'   r(   Útest_bisectors   s6    "&&..<ÿ2ÿÿ$ÿÿÿÿÿ
Jÿr¦   c                   C   sJ   t tddƒtddƒtddƒƒjtdtdƒd  dtdƒd  ƒksFt‚d S rV   )r   r   r{   r
   rd   r'   r'   r'   r(   Útest_incenter°  s     ÿr§   c                   C   s,   t tddƒtddƒtddƒƒjdks(t‚d S )Nr   r?   r4   r5   )r   r   rq   rd   r'   r'   r'   r(   Útest_inradius´  s    r¨   c                   C   sP   t tddƒtddƒtddƒƒjttdtdƒ dtdƒ ƒdtdƒ ƒksLt‚d S )Nr   r3   )r   r   rp   r   r
   rd   r'   r'   r'   r(   Útest_incircle·  s    &ÿr©   c                  C   sB   t tddƒtddƒtddƒƒ} | j| jd  dtdƒ ks>t‚d S )Nr   r>   r3   r:   r=   )r   r   r|   rg   r
   rd   ©rN   r'   r'   r(   Útest_exradii»  s    r«   c                  C   sP   t tddƒtddƒtddƒƒ} | jtddƒ ttddƒttjtjƒƒksLt‚d S rT   )r   r   r}   r   r   rc   rd   rª   r'   r'   r(   Útest_medians¿  s    r¬   c                   C   sN   t tddƒtddƒtddƒƒjt ttjdƒttjtjƒtdtjƒƒksJt‚d S rT   )r   r   r~   r   rc   rd   r'   r'   r'   r(   Útest_medialÃ  s    $ÿr­   c                   C   sL   t tddƒtddƒtddƒƒjtttddƒtddƒƒtdƒd ƒksHt‚d S )Nr   r5   r?   r3   )r   r   r   r   r   r   r
   rd   r'   r'   r'   r(   Útest_nine_point_circleÇ  s    "ÿr®   c                   C   sÐ   t tddƒtddƒtddƒƒjttddƒttjtjƒƒks>t‚t tddƒtddƒtddtdƒ ƒƒjtddtdƒ d ƒks€t‚t tddƒtddƒtd	dƒƒjttt	d
dƒdƒtt	ddƒt	ddƒƒƒksÌt‚d S )Nr   r5   r=   r@   r4   r?   rž   r6   r<   é@   r;   iãÿÿÿrJ   r   r3   )
r   r   Z	eulerliner   r   r   rc   rd   r
   r   r'   r'   r'   r(   Útest_eulerlineË  s    ÿ&ÿ&ÿr°   c                  C   s^  t tddƒtddƒtddƒƒ} ttddƒtddƒtddƒtdtddƒƒttjdƒtddƒtddƒƒ}|  |¡ttddƒdƒttdtddƒƒtddƒƒttddƒtddƒƒgks²t	‚| | ¡ttddƒdƒttddƒtdtddƒƒƒttddƒtddƒƒgkst	‚|  tddƒ¡tddƒgks$t	‚|  tdd	ƒ¡g ks>t	‚| t
d
dƒ¡tddƒtddƒttddƒdƒtddƒgks~t	‚| t
ddƒ¡g ks˜t	‚| tddƒ¡ttddƒtddƒƒgksÆt	‚| tddƒ¡tddƒtddƒgksðt	‚|  | ¡tt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ƒtddƒƒttddƒtdtddƒƒƒttdtddƒƒttjtddƒƒƒttddƒtddƒƒtttjtddƒƒtddƒƒttddƒtddƒƒgksèt	‚| t tddƒtddƒtddƒƒ¡ttddƒtddƒƒttddƒtddƒƒgks>t	‚|  tdddƒ¡g ksZt	‚d S )Nr   r5   ra   r7   r@   gš™™™™™¹¿r4   éôÿÿÿiÕÿÿÿ)r±   r   ©rK   r   )r±   rK   )rK   rK   )r<   r?   r]   )r   r6   r:   r6   r=   r;   r>   )r±   r9   )r   r   r   r   r   rc   r   r   r   rd   r   r   r   r   )Zpoly1Zpoly2r'   r'   r(   Útest_intersectionÓ  sZ     
  þþ
þ"  ÿÿÿ ÿ"û"*ÿ
r³   c                     s’   t dƒ‰tddddƒ‰ ˆ  dˆ¡ˆtddƒiks4t‚tdd	d
dƒ} |  dˆ¡ˆddtdƒ  iksft‚tt‡ ‡fdd„ƒ tt‡ ‡fdd„ƒ d S )NrN   rZ   )r   r5   )r5   r5   r]   )g      à?r5   r4   rD   rF   )r3   r?   ©r?   r   rž   r@   c                      s   ˆ   dˆ¡S )N)r@   r>   )Úparameter_valuer'   ©ÚsqrN   r'   r(   rQ   ü  rW   z&test_parameter_value.<locals>.<lambda>c                      s   ˆ   ttddƒdƒˆ¡S rT   )rµ   r   r   r'   r¶   r'   r(   rQ   ý  rW   )r   r   rµ   r   rd   r
   r   rn   )r.   r'   r¶   r(   Útest_parameter_valueõ  s    $r¸   c                     sÀ   t tddƒtddƒtddƒtddƒtddƒtddƒƒ} tdƒ‰|  ˆ¡‰d| j ‰ ‡ ‡‡fdd„ttdˆ  ƒƒD ƒtddƒtddƒtddƒtddƒtddƒtddƒtddƒtddƒgks¼t‚d S )Nr   r=   r@   rN   c                    s   g | ]}ˆ  ˆˆ | ¡‘qS r'   )rm   )Ú.0Úi©ZDELTAÚptrN   r'   r(   Ú
<listcomp>  s     z$test_issue_12966.<locals>.<listcomp>r5   )r   r   r   rO   rh   ÚrangeÚintrd   )r¥   r'   r»   r(   Útest_issue_12966   s"    " ÿ

       þrÀ   c                  C   s  t dƒ\} }dddg\}}}d}d| d  d }t| d td|d|fƒ | ddfƒ}tdt|d |d|fƒ | ddfƒ}t| t||d|fƒ | ddfƒ}	t|||ƒ}
||
 |¡d  dks¾t‚||
 |¡d  dksØt‚|	|
 |¡d  dksòt‚ddd	dg\}}}}t| d td|ddfƒ | ddfƒ}tdt|d |ddfƒ | ddfƒ}t| t||ddfƒ | ddfƒ}	t||||ƒ}|| |¡d  dks˜t‚|| |¡d  dks´t‚|	| |¡d  dksÐt‚ttddƒd
dƒ}| ¡ dtdƒ tdƒ dtdƒ tdƒ dfkst‚d S )Núx, yrZ   r´   )r   r3   r5   r?   r3   r   ©r?   r3   r@   r4   iS  é    )	r   r$   r   Zsecond_moment_of_areard   r   r   r
   r   )r*   r-   r„   r…   r†   r“   Zeq_yZI_yyZI_xxZI_xyÚtriangler‡   Ú	rectanglerˆ   r'   r'   r(   Útest_second_moment_of_area  s*    $$ $$ rÆ   c                  C   sx  t ddd\} }td| df| |fd|fƒ}| ¡ | |d  d | d | d fksVt‚| | d |d	 f¡d
|  |d  d | d  | d fks–t‚tddddƒ}| ¡ dks´t‚td| df| d |fƒ}| ¡ d	|  |d  d | d | d fksüt‚| | d |d f¡d|  |d  d d| d  | d fks@t‚tdddƒ}| ¡ tdƒd tdƒ d fkstt‚d S )Núa, bT©ZpositiverZ   r   r3   rD   r4   r?   r<   rÃ   rb   )é(   r   )rÉ   r˜   )r   r˜   )i”  ip  éQ   é   r>   içÿÿÿiˆ  ra   i   r²   )rK   r˜   i@  i€  )r   r   Zfirst_moment_of_areard   r   )r%   r&   r„   r…   r'   r'   r(   Útest_first_moment-  s    ,@0DrÌ   c                  C   sV  t ddd\} }t dƒ\}}td|fd| df| |fƒ}| t||ƒ¡| |d  d | d	 |  | d | d |  d	 |  fks†t‚| ¡ | d | d | |d  d  ks²t‚tdd
dƒ}| ¡ tddƒtdƒtddƒ fksæt‚| ¡ dtdƒ t	dƒ kst‚tdddddƒ}| ¡ tddƒtddƒfks:t‚| ¡ tddƒksRt‚d S )NrÇ   TrÈ   rÁ   r   rZ   r4   rK   r3   r5   r>   r@   rD   é   )r5   rD   )r4   r?   )r?   r>   )r;   r5   içÿÿi­  iÎÙÿÿi  ióhÿÿéü   )
r   r   Zsection_modulusr   rd   Zpolar_second_moment_of_arear   r   r
   r   )r%   r&   r*   r-   rÅ   ZconvexZconcaver'   r'   r(   Ú4test_section_modulus_and_polar_second_moment_of_area@  s    P,(""rÏ   c                     s¨  t ddtddƒfddtddƒfddd	ƒ‰td
tddƒdfƒ} ˆ | ¡d }ˆ | ¡d }|t ttddƒtddƒƒtdtddƒƒttddƒtddƒƒttddƒtddƒƒtdtddƒƒttddƒtddƒƒttddƒdƒtddƒtdtddƒƒƒ	ksöt‚|t tddƒttddƒtddƒƒttddƒtddƒƒtddƒttddƒtddƒƒttddƒtddƒƒtddƒtddƒttddƒdƒtdtddƒƒƒ
ks’t‚ttddƒddƒ‰ˆ td
dd¡}|d t tdtdƒ d dtdƒ d ƒtddtdƒ ƒtddtdƒ ƒtddƒtddtdƒ  ddtdƒ  ƒƒks2t‚|d t tddƒtdtdƒ d dtdƒ d ƒtddtdƒ  ddtdƒ  ƒtddtdƒ ƒtddtdƒ ƒƒks®t‚d\‰ }d|fd
ˆ dfˆ |fg\}}}}t ||||ƒ‰ˆ td|fdd¡\}}|d kst‚|t tddƒtddƒtddƒtddƒƒks<t‚ˆ td
dd¡\}	}
|	t tddƒtddƒtddƒtddƒƒks‚t‚|
d kst‚tt	‡ ‡fdd„ƒ d S ) NrG   r5   r@   r3   rF   r4   rÂ   )r@   r4   )r6   r4   rZ   rb   r   rA   rR   rž   rË   rÍ   rK   rD   r;   r6   r:   r?   r>   r    r<   )rY   r=   r=   rY   c                      s   ˆ  tdˆ fdd¡S )Nr   r    )Úcut_sectionr   r'   ©r%   r“   r'   r(   rQ   s  rW   z"test_cut_section.<locals>.<lambda>)
r   r   r   rÐ   r   rd   r   r
   r   rn   )r¡   r„   r…   r–   r&   rŠ   r‹   rŒ   Zt4r†   r‡   r'   rÑ   r(   Útest_cut_sectionP  s\    (      ý
4     þ8   ÿ0   ÿ 00rÒ   c                  C   sò   t tddƒtddƒtddƒƒ} |  ¡ dks.t‚|  ¡ dks>t‚|  ¡ dksNt‚t tddƒtddƒtddƒƒ}| ¡ dks|t‚| ¡ dksŒt‚| ¡ dksœt‚t tddƒtddƒtdtd	ƒƒƒ}| ¡ dksÎt‚| ¡ dksÞt‚| ¡ dksît‚d S )
Nr   r@   r3   r?   TFr>   r4   é   )r   r   Zis_isoscelesrd   Z
is_scalenery   r
   )r„   r…   r†   r'   r'   r(   Útest_type_of_triangleu  s    "rÔ   c               	   C   s  t tddƒtddƒtddƒtddƒƒ} t tddƒtddƒtddƒƒ}|  |¡tdƒd ks^t‚t tddƒtddƒtddƒtddƒƒ}ttddd |  |¡dks¦t‚W 5 Q R X t tddƒtddƒttjtjƒƒ}ttddd | | ¡dksôt‚W 5 Q R X d S )Nr   r5   r3   rL   F)rM   Ztest_stacklevelr6   )	r   r   Z_do_poly_distancer
   rd   r    rk   r   rc   )Zsquare1Z	triangle1Zsquare2Z	triangle2r'   r'   r(   Útest_do_poly_distanceˆ  s    && ÿ" ÿrÕ   N)GZsympy.core.numbersr   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z$sympy.functions.elementary.complexesr	   Z(sympy.functions.elementary.miscellaneousr
   Z(sympy.functions.elementary.trigonometricr   r   r   r   Zsympy.geometryr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.testing.pytestr   r   r    Zsympy.core.randomr!   Zsympy.geometry.polygonr"   r#   Zsympy.integrals.integralsr$   r)   r   r•   r—   rœ   rŸ   r¢   r¦   r§   r¨   r©   r«   r¬   r­   r®   r°   r³   r¸   rÀ   rÆ   rÌ   rÏ   rÒ   rÔ   rÕ   r'   r'   r'   r(   Ú<module>   sN   D
  :

""%