
    sgk                        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l.m/Z/ d Z0e%d        Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d Z?d Z@d ZAd  ZBd! ZCd" ZDd# ZEd$ ZFd% ZGd& ZHy')(    )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)	integrate)rotate_leftc                 @    t        d      }| | |z
  cxk  xr |k  S c S )z.Test if two floating point values are 'equal'.z1.0E-10)r   )abt_floats      T/var/www/html/venv/lib/python3.12/site-packages/sympy/geometry/tests/test_polygon.pyfeqr,      s(    IG8a!e%g%%%%    c                  5  )* t        dd      )t        dd      *t        dd      } t        dd      }t        dd      }t        dd      }t        d	d      }t        j                  }t        d
d
      t        dd
      t        dd      }}}t	        |||      }	t        t        d
d
            t        d
d
      k(  sJ t        |t        dd
      ||      |	k(  sJ t        t        dd
      |||      |	k(  sJ t        |||t        dd
            |	k(  sJ t        |t        dd
      ||      |	k(  sJ t        ||t        dd      ||      |	k(  sJ 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J 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      }t        t        d
d
      dd
d      }t        t        d
d
      t        dd      t        d d!      t        d
d!            }t        t        |j                  d       }t        t        dd      t        dd"            }|
|k(  sJ t        |
j                        dk(  sJ t        |
j                        dk(  sJ |
j                  ddt        d      z  z   t        d#      z   t        d      z   k(  sJ |
j                  d$k(  sJ |
j                         rJ t        d%d&d'd(d)      j                         d*u sJ |j                         sJ |j                         sJ |j                  }|t        d
d
         t         dz  k(  sJ |t        d
d         t         dz  k(  sJ |j#                  t        )*            J |j#                  t        dd            sJ |j#                  t        d
d
            d*u sJ |j#                  t        dd
            d*u sJ |
j%                  t'        t        d+d+      d            d*u sJ |
j%                  t)        t        d+d      dd            d*u sJ |j+                  d      )d
dgk(  sJ |j-                  t        t        dd      t        d,d,      t        dd,                  dt        d      z  k(  sJ |j-                  t        t        dd      t        dd      t        dd-      t        dd-                  dk(  sJ t/        t0        d./      5  t        t        d
d
      t        dd
      t        dd            j-                  t        t        d
d
      t        d
d      t        dd                   d d d        t3        |      t3        t        t        d
d
      t        dd      t        d
d                  k(  sJ t3        |
      t3        |      k(  sJ t3        |      t3        |      k(  sJ t3        |      t3        |      k7  sJ |t        t        dd      t        d
d      t        d
d
            k(  sJ t        t        dd      t        d
d      t        d
d
            |v sJ |t        d
d      k7  sJ t        d
d      |v sJ |j5                  d0      j7                  t        d0d      d
      t        d
d
      k(  sJ t9        t:        )*fd1       |j=                  |      t        dt?        d2d3            t        dt?        d4d            gk(  sJ |j                  d
k(  sJ |tA        t        d
d
      ddd
      k(  sJ ||k(  sJ |jB                  d
   t        dd
      k(  sJ |j                  d
   t        d
d
      k(  sJ |jE                  t         dz         |jB                  d
   t        d
d      k(  sJ tA        t        d
d
      dd      }
tA        t        d
d
      dd      }t9        tF        d5        t9        tF        d6        t9        t:        d7        |
|k7  sJ |
jH                  t         t?        dd      z  k(  sJ |
jJ                  t         t?        dd      z  k(  sJ |jL                  dtO        t         dz        z  k(  sJ |jP                  |
jP                  cxk(  rt        d
d
      k(  sJ  J |
jR                  |
jT                  cxk(  rdk(  sJ  J |jV                  t'        t        d
d
      d      k(  sJ |jX                  t'        t        d
d
      |jL                        k(  sJ |jZ                  |jL                  cxk(  rddt        d      z   z  dz  k(  sJ  J |jE                  t         dz         |j                  }|t        d
d         dt         z  dz  k(  sJ |
j                         sJ |
j\                  d
k(  sJ |
j#                  t        d
d
            sJ |
j#                  t        d8d
            d*u sJ |j#                  t        d
d9            sJ |
jE                  t         dz         |
j\                  t         dz  k(  sJ |
jB                  d
   t        ddt        d      z        k(  sJ |
j                  D ]4  }t_        |t              r|t        d
d
      k(  r#J |ddt         dz  fv r4J  |
t        d
d
      k7  sJ |
|k7  sJ |
}|
ja                  t         dz        tA        t        d
d
      ddt         t?        dd      z        k(  sJ |
|k(  sJ |
j                  d:t        d      z  d;z   dtc        t         dz        z  z  k(  sJ |
jd                  d!t        t        d       dz  t?        dd      z         z  k(  sJ |
jg                  dd      tA        |
jh                  |
jT                  dz  |
jj                  |
j\                        k(  sJ tA        d<dd      jg                  dd      t        t        dd
      t        d
d      t        dd
      t        d
d            k(  sJ tm        |
      to        |
      k(  sJ |j                  }tq        |t        d
d
         js                         tu        d=            sJ tq        |t        dd         js                         tu        d>            sJ tq        |t        dd         js                         tu        d?            sJ tq        |t        dd
         js                         tu        d@            sJ |j                  }tq        |t        d
d
         js                         tu        d=            sJ tq        |t        dd         js                         tu        d>            sJ tq        |t        dd         js                         tu        d?            sJ tq        |t        dd
         js                         tu        d@            sJ tw        |j                  jy                               }tq        |t        |j                        dz
  t         z        sJ tw        |j                  jy                               }tq        |t        |j                        dz
  t         z        sJ 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        |
||
      cxk(  rt{        |
|      k(  sJ  J t9        tF        dB        t	        |
|
|
      |
k(  sJ t	        ||dz  |dz        t{        ||dz        k(  sJ |j                  t?        dCd      k(  sJ |j}                         sJ | j}                         d*u sJ |!j}                         sJ |
|v sJ |j                  d
   |v sJ t{        d<dD      |v sJ t        dd      | vsJ |j                         sJ tq        |j                  |
   js                         t!        jr                         dz        sJ |j                         d*u sJ | j                         sJ |!j                         d*u sJ t        ||       d*u sJ t        ||!      sJ t        | |!      d*u sJ |j                  t        d
d
            d*u sJ |j                  |       d*u sJ |j                         }#|#|
   t{        |
t        t?        dd      t?        dd                  k(  sJ | j                         |   t{        t        dd
      t        t?        dd      dt        d      z  dz              k(  sJ t        d
|      }|!j                         |   t{        |t        |t        d      dz
  z  d
            k(  sJ dEdFt        d      z  z
  dGz  }$|j                  t        |$|$      k(  sJ |jZ                  |jX                  jT                  cxk(  rddt        d      z  dz  z
  k(  sJ  J | jZ                  | jX                  jT                  cxk(  rdt        d      z  dz  k(  sJ  J |!jZ                  |!jX                  jT                  cxk(  r$|dz  dt        d      z   t        |      z  z  k(  sJ  J |j                  |j                  d      dt        d      z  dz  k(  sJ |j                  |j                  d      t        dCt        d      z  dHt        d      z  dz        k(  sJ |jV                  jh                  t        d+d+      k(  sJ |j                  }%|j                  t        t?        dd      t?        dd            k(  sJ |%|
   t{        |
t        t?        dd      t?        dd                  k(  sJ |!j                  |
   t{        |
t        |dz  |dz              k(  sJ t=        |%|
   |%|   |%|         |j                  gk(  sJ |j                  t	        t        d+d
      t        d
d+      t        d+d+            k(  sJ |j                  t'        t        d+d
      t        d
d+      t        d+d+            k(  sJ |j                  t'        t        d
d
      t        d
d+      t        d+d+            k(  sJ |j                  }&|&|
   t{        |
t        t?        dd      t?        dd                  k(  sJ |&|   j                  |"d
         sJ |&|   |"d   k(  sJ |j                  |
k(  sJ t        dI      }	|	j                  t        dJ      k(  sJ t        t=        |#jy                                dk(  sJ t        t=        |&jy                                dk(  sJ t        t=        |%jy                                dk(  sJ t        t        d
d
      t        dd
      t        dd      t        d
d            }
t        t        d
t?        d      dz        t        dt?        d      dz        t        dt?        dK      dz        t        d
t?        dK      dz              }t        t        dd      t        dd      t        dd            }t        t        dd      t        t?        d      dz  d      t        dt?        d      dz              }t        ||      }'t        dd      }(	 |
j-                  |'      |k(  sJ |
j-                  |(      d
k(  sJ |j-                  |'      t?        d      dz  k(  sJ |j-                  |(      t        d      dz  k(  sJ 	 t/        t0        d./      5  |
j-                  |      |dz  k(  sJ 	 d d d        |
j-                  |      t        d      dz  k(  sJ t/        t0        d./      5  |j-                  |      t        d      dz  t        t?        d      dCz        dz  z
  k(  sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)LNxTrealyquvwx1r               igffffff@gffffff!g    
            )n         g      @      )r;   r:   )r8   r;   r8   r:   r;   r;   r9   r   F      @      1Polygons may intersect producing erroneous output)matchtc                  x    t        t         d      t        d      t                     j                  d      S )Nr   r/   )r   r   arbitrary_point)r/   r2   s   r+   <lambda>ztest_polygon.<locals>.<lambda>   s2    waU1a[%1+ //>s/C r-   i   !   c                  X    t        t        dd      t        dd      t        dd            S Nr   r:   r   r    r-   r+   rX   ztest_polygon.<locals>.<lambda>   s(    .q!eA?Q{# r-   c                  0    t        t        dd      dd      S Nr   r:   r8   r]   r^   r-   r+   rX   ztest_polygon.<locals>.<lambda>   s    .q!a"C r-   c                  0    t        t        dd      dd      S )Nr   r:   rP   r]   r^   r-   r+   rX   ztest_polygon.<locals>.<lambda>   s    ~eAqk1cB r-      g@ii  r   r   z0.7853981633974483z1.2490457723982544z1.8925468811915388z2.3561944901923449K   c                  ,    t        t        dd            S )Nr   )r   r   r^   r-   r+   rX   ztest_polygon.<locals>.<lambda>   s    (5A;"7 r-      r:   r      }   2   zTriangle(
    Point(100080156402737/5000000000000, 79782624633431/500000000000),
    Point(39223884078253/2000000000000, 156345163124289/1000000000000),
    Point(31241359188437/1250000000000, 338338270939941/1000000000000000))zPoint(-78066086905059984021699779471538701955848721853/80368430960602242240789074233100000000000000,20151573611150265741278060334545897615974257/160736861921204484481578148466200000000000)	   )Or   r   Halfr   r   r   r&   argsr   lensides	perimeterr   area	is_convexanglesr   encloses_pointenclosesr   r   plot_intervaldistancer!   UserWarninghashrW   subsr   
ValueErrorr   r   r   verticesspinr   interior_angleexterior_angleapothemr   circumcentercircumradiusradiuscircumcircleincircleinradiusrotation
isinstancerotater   lengthscalecenter_nreprstrr,   evalfr   sumvaluesr   is_rightis_equilateralr   
is_similar	bisectorsincenterr
   exradii	excentersr   medianscentroidmedialnine_point_circle	altitudesequalsorthocenter)+r3   r4   r5   r6   r7   halfr(   r)   crU   p1p2p3p4p5p6p7p8p9p10p11p12p13p14rdict5dict1varp1_oldrt   interior_angles_sumt1t2t3s1r   icmr   pt1pt2r/   r2   s+                                            @@r+   test_polygonr      s   sAsAsAsAsAsA	4	 B66DAqk5A;a!qAAqA5A;5A;...1eAqk1a(A---5A;1a(A---1aE!QK(A---1eAqk1a(A---1aq"q!,1115R=%R.%R.c4%V,eCoeS5S>5C=%C.b"uR}eBm5 	c3r3r2c2O	P P P 
aU1b\aU1a[aU1a[
"B 
aU1b\aU1a[aU1a[
"B 
aU1a[aU1a[
"B 
aU1a[aU1a[
"B 
aU1a[a
B 
c1uR~b"uT4(
*B 
aU1a[a
B 
aU1a[a
B 
aU1a[aU1a[
"B aU1a[aU1a["C %1+qA
&C
%1+q!q
)C
aE!QKb"eArl$C ;sxx+
,C 	E"cNE"cN+A 8O8rww<1rxx=A<<1qbz>DH4tAw>>>>77b==||~7GVXv 

)+   <<>><<>>IIEq!a'''q!a'''U1a[)111U1a[)))U1a[)U222U1a[)U222;;veCoq12e;;;;;wuS!}a34===C Q1I---;;b"uR}eBm<>ABT!WM M M;;aU1a[%2,aEGJKL L L	{H
J @aU1a[%1+6??aU1a[%1+>	@@ 8tGE!QKq!eAqkJKKKK8tBx8tBx8tBxq!eAqk5A;????5A;aU1a[9R???q!A;"c"''s(>Ba  
: D E??1%HS",=">b(SUWX/@Z![[[[88q==.q!aA6666#::<<?eAqk)))88A;%1+%%%HHRTN<<?eAqk))) 
aR	+B	aQ	*B
=  
=CD
:BC8O88Aq> 11118Aq> 1111::3r!t9$$$??boo<q!<<<<<??bii-2-----??fU1a[!4444;;&q!bjj9999;;"**?a$q'k):Q)>?????GGBGIIEq!R!+++<<>>;;!U1a[)))U2q\*e333U1c]+++GGBqDM;;"Q$;;q>U1aQi0000ww *c5!%1+%%%1b"q&/)))	*
 q!8O8 F99RT?nU1a["aHQPQNARSSSS<<77tDG|d*Qs2a4y[9999994a
Xa^ ;<<<<<88Aq>ryy"))A+ruubkkBC C C&!Q'--a3aU1a[%A,aEF F F 8s2w
 YYFveAqk"((*E2F,GHHHveAqk"((*E2F,GHHHveAqk"((*E2F,GHHHveAqk"((*E2F,GHHHYYFveAqk"((*E2F,GHHHveAqk"((*E2F,GHHHveAqk"((*E2F,GHHHveAqk"((*E2F,GHHH cjj//12"S_q%8"$<>>>cjj//12"S_q%8"$<>>>
 
q!B	q!B	q!B	"b"	B	"b%AXb!_0EF	GB	"eBlE!RL	1B	BBB72r2#6I'"b/IIIII
=78 BB2%%%B1bd#wr2a4'888877hr1o%%%;;==;;=E!!!;;==8O888A;"66"b(((A;b   <<>>ryy}""$bhhjl333%'''%'''r2%'''r2r2%'''==q!%...==%%% IR=G
E(1a.(1a.13 3 3 3<<>"aU8Aq>1T!W9Q;7"9 9 9 9	q"B<<>"U2tAw{3CQ-G!HHHH
DG
R	B;;%B-''' ;;"++,,?Ad1gIaK?????;;"++,,;$q'	!;;;;;;;"++,,MADGSW7L0MMMMMM ::bhhqk"aQik111 <<$47
BtAwJqL(IIII ??!!U3_444 	

A;;%AA????R5GBhq!nhq!n EFFFF::b>WRr!tRT):;;;;"quae,===99sAauS#OOOO 6%Q-*/3-sC$J J J J6%1+*/3-sC$J J J J IR=GBhq!nhq!n(MNNNNR=1&&&R=BqE!!!>>R	 N 	OA ==A          |Y--/01Q666|Y--/01Q666|QXXZ()Q... 
aU1a[aU1a[
"B 
a!Qq(1+a-!8a!Qq(1+a-!8
:B 
aU1a[a
B 
aU8A;q=!,a!Q
!B d
C
1+C;;st###;;sq   ;;sx{1},,,;;stAwqy(((	{H
J ){{2$q&((() ;;r?d1gai''' 
{H
J G{{24719tHQKN/CA/E#EFFFG GA@ @r) )G Gs0   A$Akh(Aki>>AkkAkkAkkAk(c                     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         }| j                  | d          t        dd      t        dd      t        dd      t        dd      g}t        |d   |d         }t	        | |k(  sJ t	        |  |k(  sJ t	        | d         | d   k(  sJ t	        | d   | d         t        | d   | d         k(  sJ t	        | d   gdz   | d   k(  sJ 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J y )Nrk   r;   r?   r:   rA   r   r8   r9   rD   rC   rl   rB   iiU      i)r   r   appendr   r   r   )pch	another_pch2s       r+   test_convex_hullr   [  s   	r2b!eBmU2r]	q!eAqk5A;aeAqk	q"uQ{	$A 
1qtQqT1R5!A$!	5BHHQqTN sC%R.%R.sC"I
)A,	!
-C	"c)))?b   qt!$$$qtQqT"gadAaD&9999 2	"ae+++ q!aU1a[9&uQ{Aq9; < 	aU1b\5A;aDE E Er-   c            
         t        t        dd      t        dd      t        dd      t        dd      t        t        j                  t        j                              } | j	                  t        dt        j                              du sJ | j	                  t        t        j                  t        j                              du sJ | j	                  t        t        dd      t        j                              du sJ y )Nr   r:   Fr9   rD   T)r   r   r   rm   rv   r   )ss    r+   test_enclosesr   w  s    aU1a[%1+uQ{affaff	A ::eAqvv&'5000::eAFFAFF+,555::eHQNAFF34<<<r-   c                     t        d      t        t        dd      t        dd      t        dd            k(  sJ t        d      t        t        dd      t        dd      t        d	t        d      dz              k(  sJ t        d
      t        t        dd      t        dd      t        t        d      dz  t        d      dz              k(  sJ t        d      J t        t	        d            dk(  sJ y )N)r9   rD   rE   )sssr   r9   rD   )   r8   r   )asar8   r:   )r:   -   r8   )sas)r:   r8   rE      )r   r   r   r$   r#   r^   r-   r+   test_triangle_kwargsr     s    	"q!eAqk5A;78 8 8$q!eAqk5DGAI+>?@ @ @
#q!eAqk5aDGAI+FGH H H	"***s3x=Cr-   c            
      :   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	        |  j                  d
dd      t	        | k(  sJ t        ddd      j                  d
dd      t        t        dd      t        dd	      t        dd      t        dd            k(  sJ t        ddd      j                  d
d
      t        t        dd      d
dd      k(  sJ y )Nr   r:   rD   r<   irA   ir?   r8   r9   )rD   rE   rc   i)	r   r   rm   r   r   r   r   r   r   )ptspts_outs     r+   test_transformr     s   A;affhq!n5uQ{
CCR~uR#q)9:E"bMJGS>1f-71CCCC&!Q'--aF;b#b"uR~uR~NO O O &!Q'--a3wq!}aA./ / /r-   c            	         t        dd      } t        dd      }t        d      }t        d      }t        d|f|      }t        | |      }|j                  |      }|j	                  |      j
                  }|j	                  |      j
                  }t        ||      sJ t        d	d
d      j                  t        dt                    t        t        dd      t        dd      t        dd            k(  sJ t        d	d
d      j                  t        dt                    t        t        dd      t        dd      t        dd            k(  sJ t        d	d
d      j                  t        dd            t        t        dd      t        dd      t        dd            k(  sJ t        d	d
d      j                  t        dd            t        t        dd      t        dd      t        dd            k(  sJ y )Nr/   Tr0   r2   r)   r   r   sloperg   )r8   r   )r8   r8   rO   rE   rD   r8   )r   r9   r;   r?   r:   rC   )
r   r   r   reflectperpendicular_segmentr   r"   r   r   r   )	r/   r2   r)   r   lr   r   dpdrs	            r+   test_reflectr     s   sAsAsAsAaV1AaA			!A	
	 	 	#	*	*B	
	 	 	#	*	*Bb"%%%666*224b3IJE!QKq!eAqk:; ; ;666*224b3IJE"aL%A,b!=> > >666*224a3HIE!QKq!eAqk:; ; ;666*224a3HIE!QKq!eArl;< < <r-   c                     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        | ||      }|j                         |   t	        t        dd      t        dt        d      dz
              k(  sJ |j                         t        dd         t        t        dd      t        t        t        dt        d      z  dz        dz        dt        t        dt        d      z  dz        dz        z
              k(  sJ |j                         t        dd         t        t        dd      t        dt        d      dt        t        dt        d      z  dz        dz        z  dt        t        dt        d      z  dz        dz        z  z   z  dz  z   t        d      dt        t        dt        d      z  dz        dz        z  dt        t        dt        d      z  dz        dz        z  z   z  dz  dz               k(  sJ |j                         t        dd         t        t        dd      t        dt        t        t        d      dz        dz  t        dz  z         z   dt        t        t        d      dz         dz  t        dz  z         z
              k(  sJ y )Nr   r:   r8   r9   r;   rE   rD   rH   r@      irK   rl      rk   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r3   polyrU   s          r+   test_bisectorsr     s   q!eAqk5A;BBaU1a[%1+uQ{CAaU1a[%1+uR|DA5A;aU1a[%A,bRUWDRA;;=aU1d1gk5J KKKK;;=A'5AD471%a'(!c$qay{2CA2E.F*FG,I I I I;;=Q(gb!ngb48Qs4$s)C;PQR;R7S5S	#d1T#Y;s?#A%
&&6' ,((*,+ '+,0HbT!DI+c/=RST=T9U6U	#d1T#Y;s?#A%
&&7' -((*-+-.-/0 	11 1 1 >>GBN+uWR^Sd2hrk*1,r!t344a#tDHRK?P>PQR>RUWXYUY>Y:Z6Z[0] ] ] ]r-   c                      t        t        dd      t        dd      t        dd            j                  t        dt        d      dz  z
  dt        d      dz  z
        k(  sJ y r`   )r   r   r   r   r^   r-   r+   test_incenterr     sW    E!QKq!eAqk:CCT!WQYDGAI./ / /r-   c                  x    t        t        dd      t        dd      t        dd            j                  dk(  sJ y )Nr   rD   r9   r:   )r   r   r   r^   r-   r+   test_inradiusr     s1    E!QKq!eAqk:CCqHHHr-   c            
          t        t        dd      t        dd      t        dd            j                  t        t        dt	        d      z
  dt	        d      z
        dt	        d      z
        k(  sJ y )Nr   r8   )r   r   r   r   r   r^   r-   r+   test_incircler     sa    E!QKq!eAqk:CC%DGQa[11tAw;?@ @ @r-   c                      t        t        dd      t        dd      t        dd            } | j                  | j                  d      dt	        d      z   k(  sJ y )Nr   rC   r8   r?   rB   )r   r   r   rp   r   rU   s    r+   test_exradiir     sI    q!eAqk5A;7A99QWWQZ R$r(]333r-   c                  
   t        t        dd      t        dd      t        dd            } | j                  t        dd         t        t        dd      t        t        j
                  t        j
                              k(  sJ y r\   )r   r   r   r   r   rm   r   s    r+   test_mediansr     s[    q!eAqk5A;7A99U1a[!WU1a[%:O%PPPPr-   c            	      :   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(  sJ y r\   )r   r   r   r   rm   r^   r-   r+   test_medialr     si    E!QKq!eAqk:AAE!&&!$eAFFAFF&;U1aff=MNO O Or-   c            
          t        t        dd      t        dd      t        dd            j                  t        t	        t        dd      t        dd            t        d      dz        k(  sJ y )Nr   r:   rD   r8   )r   r   r   r   r   r   r   r^   r-   r+   test_nine_point_circler     s]    E!QKq!eAqk:LL'(1a.(1a.94719EF F Fr-   c                     t        t        dd      t        dd      t        dd            j                  t        t	        dd      t	        t
        j                  t
        j                              k(  sJ t        t        dd      t        dd      t        ddt        d      z              j                  t	        ddt        d      z  dz        k(  sJ 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J y )Nr   r:   rB   rE   r9   rD   r   r;   rA   @   r@   irQ   r   r8   )	r   r   	eulerliner   r   r   rm   r   r   r^   r-   r+   test_eulerliner     s	   E!QKq!eAqk:DD1wqvvqvv678 8 8E!QKr1uQ$q'	/BCMM1aQik"# # #E!RL%2,b!=GGQ+WXc25FQSUV-XYZ Z Zr-   c                  	   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            }| j                  |      t        t        dd      d      t        t        dt        dd            t        dd            t        t        dd      t        dd            gk(  sJ |j                  |       t        t        dd      d      t        t        dd      t        dt        dd                  t        t        dd      t        dd            gk(  sJ | j                  t        dd            t        dd      gk(  sJ | j                  t        dd	            g k(  sJ |j                  t        d
d            t        dd      t        dd      t        t        dd      d      t        dd      gk(  sJ |j                  t        dd            g k(  sJ |j                  t        dd            t        t        dd      t        dd            gk(  sJ |j                  t        dd            t        dd      t        dd      gk(  sJ | j                  |       t        t        dd      t        dd            t        t        dd      t        dd            t        t        dd      t        dd            gk(  sJ |j                  |      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J |j                  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J | j                  t        ddd            g k(  sJ y )Nr   r:   rk   r<   rE   gr9   i)r   r   rR   r   )r   rR   )rR   rR   )rA   rD   rg   )r   r;   r?   r;   rB   r@   rC   )r   r>   )r   r   r   r   r   rm   r   r   r   r   r   r   r   )poly1poly2s     r+   test_intersectionr    s4   U1a[%1+uQ{;EE!QKr1!RL%8Aq>":!&&$'q!eAqkCE e$!Q)Ca!Q(%1+6aU1a[))+ + + + e$x1~q)AaU1hq!n56aU1a[))+ + + + eAqk*uQ{m;;;eC#./2555d8W565Q<aU8Aq>1-uQ{;< < < <d9h78B>>>c'623aa9 8   fWa01eArla6   e$q!eAqk)JaU1a[)75A;a+L)N N N Ne$r1uQ|)LaeAx1~67a!Q(%R8H*IJaU2q\*affhr2./q!=aU1a[))+ + + + huQ{E!QKr1NO(2q/8Aq>2GGAqM5QRTU;4WXY Y YnZA>?2EEEr-   c                  <   t        d      t        dddd      j                  d      t        dd      ik(  sJ t        dd	d
d      } | j                  d      ddt	        d      z  z   ik(  sJ t        t        fd       t        t        fd       y )NrU   rc   )r   r:   )r:   r:   rg   )g      ?r:   r9   rH   rM   )r8   rD   rD   r   r   rE   c                  (     j                  d      S )N)rE   rC   )parameter_valuesqrU   s   r+   rX   z&test_parameter_value.<locals>.<lambda>  s    r11&!< r-   c                  P     j                  t        t        dd      d            S r\   )r  r   r   r  s   r+   rX   z&test_parameter_value.<locals>.<lambda>	  s!    r11&q!a2H!L r-   )r   r   r  r   r   r   r|   )r3   r  rU   s    @@r+   test_parameter_valuer	    s    sA		0Bh*q(1a..AAAA/AVQ'ArAd1gI~+>>>>
:<=
:LMr-   c                  &   t        t        dd      t        dd      t        dd      t        dd      t        dd      t        dd            } t        d      }| j                  |      }d| j                  z  }t        t        d|z              D cg c]  }|j                  |||z         c}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J y c c}w )Nr   rB   rE   rU   r:   )r   r   r   rW   rq   rangeintr{   )r   rU   ptDELTAis        r+   test_issue_12966r    s    5A;aeArlE!QKb!eBl$DsA			a	 BdnnE).s1U7|)<=ABGGAuQw=aU1a[%2,aaU2q\5Q<q!B> > > >=s   Dc            	      ,   t        d      \  } }g d\  }}}d}d| dz  z
  dz  }t        | dz  t        d|d|f      z  | ddf      }t        dt        |dz  |d|f      z  | ddf      }t        | t        ||d|f      z  | ddf      }	t        |||      }
||
j                  |      d   z
  dk(  sJ ||
j                  |      d   z
  dk(  sJ |	|
j                  |      d   z
  dk(  sJ g d\  }}}}t        | dz  t        d|ddf      z  | ddf      }t        dt        |dz  |ddf      z  | ddf      }t        | t        ||ddf      z  | ddf      }	t        ||||      }||j                  |      d   z
  dk(  sJ ||j                  |      d   z
  dk(  sJ |	|j                  |      d   z
  dk(  sJ t	        t        dd      d	d
      }|j                         dt        d
      z  t        d      z  dt        d
      z  t        d      z  dfk(  sJ y )Nx, y)rc   r  r   r8   rc   r:   rD   r8   r   )rc   r  rD   r8   r  rE   r9   iS      )r	   r%   r   second_moment_of_arear   r   r   r   )r/   r2   r   r   r   r   eq_yI_yyI_xxI_xytriangler   	rectangler   s                 r+   test_second_moment_of_arear    sn   6?DAq)JBBAacE19DadyQ4L9:Q1IFDQ)AqD1a,781a)DDQ)A1d|451ayADr2r"H811!4Q77A===811!4Q77A===811!4Q77A=== 4NBBadiAq!9551ayADQ1a4!Q33aAY?DQ1q!Qi001a)<DBB'I92215a88Q>>>92215a88Q>>>92215a88Q>>> 	uQ{Aq)A""$d1gae);T$q'\!B%=OQR(SSSSr-   c                     t        dd      \  } }t        d| df| |fd|f      }|j                         | |dz  z  dz  | dz  |z  dz  fk(  sJ |j                  | dz  |d	z  f      d
| z  |dz  z  dz  | dz   |z  dz  fk(  sJ t        dddd      }|j                         dk(  sJ t        d| df| dz  |f      }|j                         d	| z  |dz  z  dz  | dz  |z  dz  fk(  sJ |j                  | dz  |dz  f      d| z  |dz  z  dz  d| dz  z  |z  dz  fk(  sJ t        ddd      }|j                         t        d      dz  t        d       dz  fk(  sJ y )Na, bTpositiverc   r   r8   rH   r9   rD   rA   r  rl   )(   r   )r"  r   )r   r   )i  ip  Q      rC   ii  rk   i   r   )rR   r   i@  i  )r	   r   first_moment_of_arear   )r(   r)   r   r   s       r+   test_first_momentr&  9  s   FT*DAq	!Q!Q!Q	0B""$1a41a46!8(<<<<""AaC1:.2a419R<!Q$q2KKKK	(G	4B""$444 
!Q!A#q	*B""$1QT"ad1fRi(@@@@""AaC1:.3q5A:c>2ad719S=2QQQQ	(	+B""$4QsVGAI(>>>>r-   c                     t        dd      \  } }t        d      \  }}t        d|fd| df| |f      }|j                  t        ||            | |dz  z  dz  | d	z  |z   z  | dz  |z  dz  |  d	z  |z   z  fk(  sJ |j	                         | dz  |z  dz  | |dz  z  dz  z   k(  sJ t        dd
d      }|j                         t        dd      t        d      t        dd      z  fk(  sJ |j	                         dt        d      z  t        d      z  k(  sJ t        ddddd      }|j                         t        dd      t        dd      fk(  sJ |j	                         t        dd      k(  sJ y )Nr  Tr   r  r   rc   r9   rR   r8   r:   rC   rE   rH      )r:   rH   )r9   rD   )rD   rC   )r@   r:   ii  ii  ih   )	r	   r   section_modulusr   polar_second_moment_of_arear   r   r   r   )r(   r)   r/   r2   r  convexconcaves          r+   4test_section_modulus_and_polar_second_moment_of_arear.  L  s   6D)DAq6?DAqAAA7I$$U1a[1a1fRi!A6JAqDQRFSUIXYWYZ[W[^_W_L`5aaaa002ad1fRi!AqD&)6KKKKFAq)F!!#AQB8O'PPPP--/1T!W9QqT>AAAfffff=G""$%)=xs?S(TTTT..0HVS4IIIIr-   c                  B	   t        ddt        dd      fddt        dd      fddd	      t        d
t        dd      df      } j                  |       d   }j                  |       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J |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J t        t	        dd      dd      j                  t        d
d            }|d   t        t	        dt        d      z  dz   dt        d      z  dz         t	        ddt        d      z        t	        ddt        d      z        t	        dd      t	        ddt        d      z  z   ddt        d      z  z               k(  sJ |d   t        t	        dd      t	        dt        d      z  dz   dt        d      z  dz         t	        ddt        d      z  z   ddt        d      z  z         t	        ddt        d      z        t	        ddt        d      z              k(  sJ d\  }d|fd
df|fg\  }}}}t        ||||      j                  t        d|fd            \  }}|d k(  sJ |t        t	        dd      t	        dd      t	        dd      t	        dd            k(  sJ j                  t        d
d            \  }	}
|	t        t	        dd      t	        dd      t	        dd      t	        dd            k(  sJ |
d k(  sJ t        t        fd       y )NrN   r:   rE   r8   rM   r9   r  )rE   r9   )r;   r9   rc   rl   r   rF   rY   r   r$  r(  rR   rH   r@   r;   r?   rD   rC   r   rA   )rJ   rB   rB   rJ   c                  @    j                  t        d fd            S )Nr   r   )cut_sectionr   )r(   r   s   r+   rX   z"test_cut_section.<locals>.<lambda>  s    q}}T1a&-BC r-   )	r   r   r   r1  r   r   r   r   r|   )r   r   r   r   r)   r   r   r   t4r   r   r(   r   s              @@r+   test_cut_sectionr3  \  sq   1hq!n-v8Aq>7JFTZ\cdAVhq!na()A	
q	!	B	
q	!	BR (2r"23WQA5OQXYabdfhYikstvxzk{Q|Q!Q0'!Xa^2LgV^_acdVegoprtugvNwA"GBNGBQ4PR R R R R'(2r2BHRQSDT*UW^_ghjln_oqyz|  A  rB  XC1wxAA?RTVWZbceghZiAjlstuwxly  |C  DE  GH  |IA"GBQ$@B B B B
 	wq!}a+A	d6+,AQ4772d1g:>2d1g:>BGAqQUVWQXyDYAd1gIAQtAwYQtTUwY0WY Y Y YQ4771a='"T!W*q."T!W*q.*QQtAwYQtAwY/RQZ1H'RSUWX\]^X_U_J`b b b b DAq!ffq!fq!f5NBBBBA]]4Aa01FB::BAAPRTVXXXX]]4a01FBBAAPRTVXXXX:: :CDr-   c            
         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 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 t        t        dd      t        dd      t        dt        d	                  }|j                         dk(  sJ |j                         dk(  sJ |j	                         dk(  sJ y )
Nr   rE   r8   rD   TFrC   r9      )r   r   is_isosceles
is_scalener   r   )r   r   r   s      r+   test_type_of_triangler8    s+   	q!eAqk5A;	7B??$$$==?e###%''' 
%1+uQ{E!QK	8B??%%%==?d"""%''' 
q!eAqk5DH+=	>B??$$$==?e###$&&&r-   c            	         t        t        dd      t        dd      t        dd      t        dd            } t        t        dd      t        dd      t        dd            }| j                  |      t        d      dz  k(  sJ t        t        dd      t        dd      t        dd      t        dd            }t	        t
        dd      5  | j                  |      dk(  sJ 	 d d d        t        t        dd      t        dd      t        t        j                  t        j                              }t	        t
        dd      5  |j                  |       dk(  sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r:   r8   rS   F)rT   test_stacklevelr;   )r   r   _do_poly_distancer   r!   ry   r   rm   )square1	triangle1square2	triangle2s       r+   test_do_poly_distancer@    sC   uQ{E!QKq!eAqkJGaU1a[%1+>I$$Y/4719<<< eAqk5A;aU1a[IG	{HZ_
a 7((1Q6667
 aeArlE!&&!&&4IJI	{HZ_
a 9**73q8889 97 79 9s   E&E2&E/2E;N)Isympy.core.numbersr   r   r   r   sympy.core.singletonr   sympy.core.symbolr   r	   $sympy.functions.elementary.complexesr
   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   r   r   sympy.geometryr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.testing.pytestr   r    r!   sympy.core.randomr"   sympy.geometry.polygonr#   r$   sympy.integrals.integralsr%   sympy.utilities.iterablesr&   r,   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r&  r.  r3  r8  r@  r^   r-   r+   <module>rM     s    8 8 " / 4 9 E E 8Q Q Q Q Q 5 4 0 + / 1&
 @G @GF
E8= /<,] /I@4QOFZFDN>TD?&J #EJ'&9r-   