
    gk                        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& ZHd'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)	integrate)rotate_leftc                 H    t          d          }| | |z
  cxk     o|k     nc S )z.Test if two floating point values are 'equal'.z1.0E-10)r   )abt_floats      ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/geometry/tests/test_polygon.pyfeqr,      s7    IG8a!e%%%%g%%%%%    c                  *B  )* 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 |
                                rJ t          d%d&d'd(d)                                          d*u sJ |                                sJ |                                sJ |j        }|t          d
d
                   t           dz  k    sJ |t          d
d                   t           dz  k    sJ |                    t          )*                    J |                    t          dd                    sJ |                    t          d
d
                    d*u sJ |                    t          dd
                    d*u sJ |
                    t'          t          d+d+          d                    d*u sJ |
                    t)          t          d+d          dd                    d*u sJ |                    d          )d
dgk    sJ |                    t          t          dd          t          d,d,          t          dd,                              dt          d          z  k    s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                                        t          t          d
d
          t          d
d          t          dd                               d d d            n# 1 swxY w Y   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          |          k    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          k    sJ t          d
d          |v sJ |                    d0                              t          d0d          d
          t          d
d
          k    sJ t9          t:          )*fd1           |                    |          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 |j!        d
         t          dd
          k    sJ |j        d
         t          d
d
          k    sJ |"                    t           dz             |j!        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            |
|k    sJ |
j$        t           t?          dd          z  k    sJ |
j%        t           t?          dd          z  k    sJ |j&        dtO          t           dz            z  k    sJ |j(        |
j(        cxk    rt          d
d
          k    sn J |
j)        |
j*        cxk    rdk    sn J |j+        t'          t          d
d
          d          k    sJ |j,        t'          t          d
d
          |j&                  k    sJ |j-        |j&        cxk    rddt          d          z   z  dz  k    sn J |"                    t           dz             |j        }|t          d
d                   dt           z  dz  k    sJ |
                                sJ |
j.        d
k    sJ |
                    t          d
d
                    sJ |
                    t          d8d
                    d*u sJ |                    t          d
d9                    sJ |
"                    t           dz             |
j.        t           dz  k    sJ |
j!        d
         t          ddt          d          z            k    sJ |
j        D ]?}t_          |t                    r|t          d
d
          k    sJ .|ddt           dz  fv sJ @|
t          d
d
          k    sJ |
|k    sJ |
}|
0                    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 |
j2        d!t          t          d           dz  t?          dd          z             z  k    sJ |
3                    dd          tA          |
j4        |
j*        dz  |
j5        |
j.                  k    sJ tA          d<dd          3                    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
                   9                                tu          d=                    sJ tq          |t          dd                   9                                tu          d>                    sJ tq          |t          dd                   9                                tu          d?                    sJ tq          |t          dd
                   9                                tu          d@                    sJ |j        }tq          |t          d
d
                   9                                tu          d=                    sJ tq          |t          dd                   9                                tu          d>                    sJ tq          |t          dd                   9                                tu          d?                    sJ tq          |t          dd
                   9                                tu          d@                    sJ tw          |j        <                                          }tq          |t          |j                  dz
  t           z            sJ tw          |j        <                                          }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n 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 |>                                sJ | >                                d*u sJ |!>                                sJ |
|v sJ |j
        d
         |v sJ t{          d<dD          |v sJ t          dd          | vsJ |                                sJ tq          |j        |
         9                                t!          j9                    dz            sJ |?                                d*u sJ | ?                                sJ |!?                                d*u sJ t          ||           d*u sJ t          ||!          sJ t          | |!          d*u sJ |A                    t          d
d
                    d*u sJ |A                    |           d*u sJ |B                                }#|#|
         t{          |
t          t?          dd          t?          dd                              k    sJ | B                                |         t{          t          dd
          t          t?          dd          dt          d          z  dz                      k    sJ t          d
|          }|!B                                |         t{          |t          |t          d          dz
  z  d
                    k    sJ dEdFt          d          z  z
  dGz  }$|jC        t          |$|$          k    sJ |j-        |j,        j*        cxk    rddt          d          z  dz  z
  k    sn J | j-        | j,        j*        cxk    rdt          d          z  dz  k    sn J |!j-        |!j,        j*        cxk    r,|dz  dt          d          z   t          |          z  z  k    sn J |jE        |j
        d                  dt          d          z  dz  k    sJ |jF        |j
        d                  t          dCt          d          z  dHt          d          z  dz            k    sJ |j+        j4        t          d+d+          k    sJ |jH        }%|jI        t          t?          dd          t?          dd                    k    sJ |%|
         t{          |
t          t?          dd          t?          dd                              k    sJ |!jH        |
         t{          |
t          |dz  |dz                      k    sJ t=          |%|
         |%|         |%|                   |jI        gk    sJ |jJ        t	          t          d+d
          t          d
d+          t          d+d+                    k    sJ |jK        t'          t          d+d
          t          d
d+          t          d+d+                    k    sJ |jK        t'          t          d
d
          t          d
d+          t          d+d+                    k    sJ |jL        }&|&|
         t{          |
t          t?          dd          t?          dd                              k    sJ |&|         M                    |"d
                   sJ |&|         |"d         k    sJ |jN        |
k    sJ t          dI          }	|	jN        t          dJ          k    sJ t          t=          |#<                                           dk    sJ t          t=          |&<                                           dk    sJ t          t=          |%<                                           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          }(	 |
                    |'          |k    sJ |
                    |(          d
k    sJ |                    |'          t?          d          dz  k    sJ |                    |(          t          d          dz  k    sJ 	 t/          t0          d./          5  |
                    |          |dz  k    sJ 	 d d d            n# 1 swxY w Y   |
                    |          t          d          dz  k    sJ t/          t0          d./          5  |                    |          t          d          dz  t          t?          d          dCz            dz  z
  k    sJ 	 d d d            d S # 1 swxY w Y   d S )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                      t          t           d          t          d          t                                                   d          S )Nr   r/   )r   r   arbitrary_point)r/   r2   s   r+   <lambda>ztest_polygon.<locals>.<lambda>   s@    waU1a[[%1++ /  //>s/C/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>   s6    .q!eA? ?Q{{# # r-   c                  @    t          t          dd          dd          S Nr   r:   r8   r]   r^   r-   r+   rX   ztest_polygon.<locals>.<lambda>   s    .q!a"C"C r-   c                  @    t          t          dd          dd          S )Nr   r:   rP   r]   r^   r-   r+   rX   ztest_polygon.<locals>.<lambda>   s    ~eAqkk1cB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"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6DAqkk5A;;a!qAAqA5A;;5A;;....1eAqkk1a((A----5A;;1a((A----1aE!QKK((A----1eAqkk1a((A----1aq"q!,,11115R==%R..%R..c4%V,,eCooeS5S>>5C==%C..b"uR}}eBmm5 5 	c3r3r2c2OO	P 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!QKKb"eArll$ $C ;sx++
,C 	E"cNNE"cNN++A 8888rw<<1rx==A<1qbz>DHH4tAww>>>>>7b====||~~7GVXv 
 

)++    <<>><<>>IEq!a''''q!a''''U1a[[))111U1a[[)))))U1a[[))U2222U1a[[))U2222;;veCooq1122e;;;;;;wuS!}}a3344====C  Q1I----;;b"uR}}eBmm<<> >ABT!WWM M M M;;aU1a[[%2,,aEEG GJKL L L L	{H
J 
J 
J @ @aU1a[[%1++66??aU1a[[%1++>>	@ 	@ 	@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 88tGE!QKKq!eAqkkJJKKKKKK88tBxx88tBxx88tBxxq!eAqkk5A;;??????5A;;aU1a[[99R????q!A;;"c""''s(>(>(>BBa   
: D D D D D E E E??1%HS",=,=">">b(SUWX//@Z@Z![[[[[8q====.q!aA666666#::::<?eAqkk))))8A;%1++%%%%HHRTNNN<?eAqkk)))) 
aR	+	+B	aQ	*	*B
=     
=CCDDD
:BBCCC88888Aq>> 111118Aq>> 11111:3r!t99$$$$?bo<<<<q!<<<<<<?bi----2------?fU1a[[!444444;&q!bj999999;"*????a$q''k):Q)>??????GGBGIEq!R!++++<<>>;!U1a[[)))))U2q\\**e3333U1c]]+++++GGBqDMMM;"Q$;q>U1aQi000000w * *c5!! 	*%1++%%%%%1b"q&/)))))q!8888 F99RT??nU1a[["aHQPQNNARSSSSSS<<<<7tDGG|d*Qs2a4yy[9999994a
Xa^^ ;<<<<<<<88Aq>>ry")A+rubkBBC C C C&!Q''--a33aU1a[[%A,,aEEF F F F 88s2ww
 YFveAqkk"((**E2F,G,GHHHHHveAqkk"((**E2F,G,GHHHHHveAqkk"((**E2F,G,GHHHHHveAqkk"((**E2F,G,GHHHHHYFveAqkk"((**E2F,G,GHHHHHveAqkk"((**E2F,G,GHHHHHveAqkk"((**E2F,G,GHHHHHveAqkk"((**E2F,G,GHHHHH cj//1122"S__q%8"$<>>>>>cj//1122"S__q%8"$<>>>>>
 
q!B	q!B	q!B	"b"		B	"b%AXb!__0E0EFF	G	GB	"eBllE!RLL	1	1B	BBB72r2#6#6IIII'"b//IIIIII
=77888 BB2%%%%B1bd##wr2a4'8'888887hr1oo%%%%;;==;;==E!!!!;;==88888A;"66""b((((A;;b    <<>>ry}""$$bhjjl33333%''''%''''r2%''''r2r2%''''==q!%%....==%%%% IR=G
E(1a..(1a..113 3 3 3 3 3<<>>"aU8Aq>>1T!WW9Q;77"9 "9 9 9 9 9	q"B<<>>"U2tAww{3CQ-G-G!H!HHHHH
DGG
R	B;%B--'''' ;"+,????Ad1ggIaK??????;"+,;;;;$q''	!;;;;;;;"+,MMMMADGGSWW7L0MMMMMMM :bhqk"aQik1111 <$477
BtAwwJqL(I(IIIII ?!U3__4444 	
A;%AA??????R5GBhq!nnhq!nn E EFFFFFF:b>WRr!tRT):):;;;;;;"quae,,====9sAauS#OOOOOO 6%Q--*/3--sC$J $J J J J J6%1++*/3--sC$J $J J J J J IR=GBhq!nnhq!nn(M(MNNNNNNR=1&&&&&R=BqE!!!!>R	 N 	O 	OA =A              |Y--//011Q6666|Y--//011Q6666|QXXZZ())Q.... 
aU1a[[aU1a[[
" 
"B 
a!Qq(1++a-!8!8a!Qq(1++a-!8!8
: 
:B 
aU1a[[a
 
B 
aU8A;;q=!,,a!Q
! 
!B d

C
1++C;;st####;;sq    ;;sx{{1},,,,;;stAwwqy((((	{H
J 
J 
J ) ){{2$q&((((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ;;r??d1ggai'''' 
{H
J 
J 
J G G{{247719tHQKKN/C/CA/E#EFFFFFG G G G G G G G G G G G G G G G G GsD   Bi11i58i5@3BAABA#A&BA#B+ABDDBDDBD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                   }|                     | 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 d S )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   [  sS   	r2b!eBmmU2r]]	q!eAqkk5A;;aeAqkk	q"uQ{{	$A 
1qtQqT1R5!A$!	5	5BHHQqTNNN sC%R..%R..sC"I
)A,	!
-
-C	"c))))?b    qt!$$$$qtQqT""gadAaD&9&99999 2	"ae++++ q!aU1a[[99&uQ{{Aq99; < 	aU1b\\5A;;aDDE E E E E Er-   c            
      6   t          t          dd          t          dd          t          dd          t          dd          t          t          j        t          j                            } |                     t          dt          j                            du sJ |                     t          t          j        t          j                            du sJ |                     t          t          dd          t          j                            du sJ d S )Nr   r:   Fr9   rD   T)r   r   r   rm   rv   r   )ss    r+   test_enclosesr   w  s    aU1a[[%1++uQ{{afaf	 	A ::eAqv&&''50000::eAFAF++,,5555::eHQNNAF334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 d S )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     sA   	"""q!eAqkk5A;;778 8 8 8$$$q!eAqkk5DGGAI+>+>??@ @ @ @
###q!eAqkk5aDGGAI+F+FGGH H H H	"""***s3xx==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	          |                      d
dd          t	          | k    sJ t          ddd                              d
dd          t          t          dd          t          dd	          t          dd          t          dd                    k    sJ t          ddd                              d
d
          t          t          dd          d
dd          k    sJ d S )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     sP   A;;afhq!nn55uQ{{
CCR~~uR#q)9)9::E"bMMJGS>1f--71CCCCC&!Q''--aF;;b#b"uR~~uR~~NNO O O O &!Q''--a33wq!}}aA../ / / / / /r-   c            	      &   t          dd          } t          dd          }t          d          }t          d          }t          d|f|          }t          | |          }|                    |          }|                    |          j        }|                    |          j        }t          ||          sJ t          d	d
d                              t          dt                              t          t          dd          t          dd          t          dd                    k    sJ t          d	d
d                              t          dt                              t          t          dd          t          dd          t          dd                    k    sJ t          d	d
d                              t          dd                    t          t          dd          t          dd          t          dd                    k    sJ t          d	d
d                              t          dd                    t          t          dd          t          dd          t          dd                    k    sJ d S )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     sN   sAsAsAsAaV1AaA			!A	
	 	 	#	#	*B	
	 	 	#	#	*Bb"%%%%%666**224b3I3I3IJJE!QKKq!eAqkk::; ; ; ;666**224b3I3I3IJJE"aLL%A,,b!==> > > >666**224a3H3H3HIIE!QKKq!eAqkk::; ; ; ;666**224a3H3H3HIIE!QKKq!eArll;;< < < < < <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          | ||          }|                                |         t	          t          dd          t          dt          d          dz
                      k    s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 |                                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 |                                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 d S )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!eAqkk5A;;BBaU1a[[%1++uQ{{CCAaU1a[[%1++uR||DDA5A;;aU1a[[%A,,bRUWWDRA;;==aU1d1ggk5J5J K KKKKK;;==A'5AD4771%%a'((!c$qay{2C2CA2E.F.F*FGG,I ,I I I I I;;==Q(gb!nngb488Qs4$s))C;P;PQR;R7S7S5S	#d1T#YY;s?##A%
&
&&6' ,((*,+ '+,0HHbT!DII+c/=R=RST=T9U9U6U	#d1T#YY;s?##A%
&
&&7' -((*-+-.-/0 0 	1 	11 1 1 1 >>GBNN+uWR^^Sd2hhrk**1,r!t3444a#tDHHRK?P?P>PQR>RUWXYUY>Y:Z:Z6Z[[0] 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 d S r`   )r   r   r   r   r^   r-   r+   test_incenterr     ss    E!QKKq!eAqkk::CT!WWQYDGGAI../ / / / / /r-   c                      t          t          dd          t          dd          t          dd                    j        dk    sJ d S )Nr   rD   r9   r:   )r   r   r   r^   r-   r+   test_inradiusr     s@    E!QKKq!eAqkk::CqHHH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 d S )Nr   r8   )r   r   r   r   r   r^   r-   r+   test_incircler     s    E!QKKq!eAqkk::C%DGGQa[111tAww;??@ @ @ @ @ @r-   c                      t          t          dd          t          dd          t          dd                    } | j        | j        d                  dt	          d          z   k    sJ d S )Nr   rC   r8   r?   rB   )r   r   r   rp   r   rU   s    r+   test_exradiir     sY    q!eAqkk5A;;77A9QWQZ R$r((]333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 d S r\   )r   r   r   r   r   rm   r   s    r+   test_mediansr     sq    q!eAqkk5A;;77A9U1a[[!WU1a[[%:O:O%P%PPPPPPPr-   c            	      T   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 d S r\   )r   r   r   r   rm   r^   r-   r+   test_medialr     s    E!QKKq!eAqkk::AE!&!$$eAFAF&;&;U1af=M=MNNO O O 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 d S )Nr   r:   rD   r8   )r   r   r   r   r   r   r   r^   r-   r+   test_nine_point_circler     s    E!QKKq!eAqkk::L'(1a..(1a..9947719EEF F F F F Fr-   c                  0   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 d S )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     sS   E!QKKq!eAqkk::D1wqvqv66778 8 8 8E!QKKr1uQ$q''	/B/BCCM1aQik""# # # #E!RLL%2,,b!==GQ++WXc25F5FQSUV-X-XYYZ Z Z 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                    }|                     |          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 |                    |           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 |                     t          dd                    t          dd          gk    sJ |                     t          dd	                    g k    sJ |                    t          d
d                    t          dd          t          dd          t          t          dd          d          t          dd          gk    sJ |                    t          dd                    g k    sJ |                    t          dd                    t          t          dd          t          dd                    gk    sJ |                    t          dd                    t          dd          t          dd          gk    s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 |                    |          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 |                    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 |                     t          ddd                    g k    sJ d S )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    sm   U1a[[%1++uQ{{;;EE!QKKr1!RLL%8Aq>>":":!&$''q!eAqkkC CE e$$!Q)C)Ca!Q((%1++66aU1a[[)))+ + + + + e$$x1~~q)A)AaU1hq!nn5566aU1a[[)))+ + + + + eAqkk**uQ{{m;;;;eC#..//25555d8W55665Q<<aU8Aq>>1--uQ{{;< < < < <d9h7788B>>>>c'62233aa9 9 8    fWa0011eArlla6    e$$q!eAqkk)J)JaU1a[[))75A;;a+L+L)N N N N Ne$$r1uQ||)L)LaeAx1~~6677a!Q((%R8H8H*I*IJJaU2q\\**afhr2..//q!==aU1a[[)))+ + + + + huQ{{E!QKKr1NNOO(2q//8Aq>>22GGAqMM5QRTU;;4W4WXY Y Y YnZA>>??2EEEEEEr-   c                     t          d          t          dddd                              d          t          dd          ik    sJ t          dd	d
d          } |                     d          ddt	          d          z  z   ik    sJ t          t          fd           t          t          fd           d S )NrU   rc   )r   r:   )r:   r:   rg   )g      ?r:   r9   rH   rM   )r8   rD   rD   r   r   rE   c                  0                          d          S )N)rE   rC   )parameter_valuesqrU   s   r+   rX   z&test_parameter_value.<locals>.<lambda>  s    r11&!<< r-   c                  h                          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!a2H2H!LL r-   )r   r   r  r   r   r   r|   )r3   r  rU   s    @@r+   test_parameter_valuer	    s    sA		0	0Bh**q(1a...AAAAA//AVQ''ArAd1ggI~+>>>>>
:<<<<<===
:LLLLLMMMMMr-   c                     t          t          dd          t          dd          t          dd          t          dd          t          dd          t          dd                    } t          d          |                               d| j        z  fdt          t          dz                      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J d S )Nr   rB   rE   rU   c                 B    g | ]}                     |z            S r^   )r{   ).0iDELTAptrU   s     r+   
<listcomp>z$test_issue_12966.<locals>.<listcomp>  s+    ===ABGGAuQw===r-   r:   )r   r   r   rW   rq   rangeint)r   r  r  rU   s    @@@r+   test_issue_12966r    s    5A;;aeArllE!QKKb!eBll$ $DsA			a	 	 BdnE======s1U7||)<)<===aU1a[[%2,,aaU2q\\5Q<<q!B> > > > > > >r-   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          |||          }
||
                    |          d         z
  dk    sJ ||
                    |          d         z
  dk    s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          ||||          }||                    |          d         z
  dk    sJ ||                    |          d         z
  dk    sJ |	|                    |          d         z
  dk    sJ t	          t          dd          d	d
          }|                                dt          d
          z  t          d          z  dt          d
          z  t          d          z  dfk    sJ d S )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     s   6??DAq)))JBBAacE19DadyQ4L99:Q1IFFDQ)AqD1a,7781a)DDDQ)A1d|4451ayAADr2r""H811!44Q77A====811!44Q77A====811!44Q77A==== 433NBBadiAq!95551ayAADQ1a4!Q333aAY??DQ1q!Qi0001a)<<DBB''I922155a88Q>>>>922155a88Q>>>>922155a88Q>>>> 	uQ{{Aq))A""$$d1ggaee);T$q''\!B%%=OQR(SSSSSSSr-   c                  0   t          dd          \  } }t          d| df| |fd|f          }|                                | |dz  z  dz  | dz  |z  dz  fk    s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          }|                                dk    sJ t          d| df| dz  |f          }|                                d	| z  |dz  z  dz  | dz  |z  dz  fk    s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          }|                                t          d          dz  t          d           dz  fk    sJ d S )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	0	0B""$$1a41a46!8(<<<<<""AaC1:..2a419R<!Q$q2KKKKK	(G	4	4B""$$4444 
!Q!A#q	*	*B""$$1QT"ad1fRi(@@@@@""AaC1:..3q5A:c>2ad719S=2QQQQQ	(	+	+B""$$4QsVVGAI(>>>>>>>r-   c                     t          dd          \  } }t          d          \  }}t          d|fd| df| |f          }|                    t          ||                    | |dz  z  dz  | d	z  |z   z  | dz  |z  dz  |  d	z  |z   z  fk    sJ |                                | dz  |z  dz  | |dz  z  dz  z   k    sJ t          dd
d          }|                                t          dd          t          d          t          dd          z  fk    sJ |                                dt          d          z  t          d          z  k    sJ t          ddddd          }|                                t          dd          t          dd          fk    sJ |                                t          dd          k    sJ d S )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_arear1  L  s   6D)))DAq6??DAqAAA77I$$U1a[[11a1fRi!A6JAqDQRFSUIXYWYZ[W[^_W_L`5aaaaa0022ad1fRi!AqD&)6KKKKKFAq))F!!##AQB8O'PPPPP--//1T!WW9QqTT>AAAAfffff==G""$$%)=)=xs?S?S(TTTTT..00HVS4I4IIIIIIIr-   c                  ^   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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                              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          ||||                              t          d|fd                    \  }}|d k    sJ |t          t	          dd          t	          dd          t	          dd          t	          dd                    k    s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           d S )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                  P                         t          d fd                    S )Nr   r   )cut_sectionr   )r(   r   s   r+   rX   z"test_cut_section.<locals>.<lambda>  s$    q}}T1a&-B-B-BCC r-   )	r   r   r   r4  r   r   r   r   r|   )r   r   r   r   r)   r   r   r   t4r   r   r(   r   s              @@r+   test_cut_sectionr6  \  s   1hq!nn-v8Aq>>7JFTZ\cddAVhq!nna())A	
q		!	B	
q		!	BR  (2r"2"233WQA5O5OQXYabdfhYiYikstvxzk{k{Q|Q|Q!Q00'!Xa^^2L2LgV^_acdVeVegoprtugvgvNwNwA""GBNNGBQ4P4PR R R R R R R'(2r2B2BHRQSDTDT*U*UW^_ghjln_o_oqyz|  A  rB  rB  XC  XC1wxAA??RTVWZbceghZiZiAjAjlstuwxlyly  |C  DE  GH  |I  |IA""GBQ$@$@B B B B B B
 	wq!}}a++A	d6+++,,AQ4772d1gg:>2d1gg:>BBGAqQUVWQXQXyDYDYAd1ggIAQtAwwYQtTUwwY0W0WY Y Y Y Y YQ4771a=='"T!WW*q."T!WW*q.*Q*QQtAwwYQtAwwY//RQZ1H1H'RSUWX\]^X_X_U_J`J`b b b b b b DAq!ffq!fq!f5NBBBBA]]4Aa00011FB::::BAAPRTVXXXXXX]]4a00011FBBAAPRTVXXXXXX:::: :CCCCCDDDDDr-   c            
      V   t          t          dd          t          dd          t          dd                    } |                                 dk    sJ |                                 dk    sJ |                                 dk    sJ t          t          dd          t          dd          t          dd                    }|                                dk    sJ |                                dk    sJ |                                dk    sJ t          t          dd          t          dd          t          dt          d	                              }|                                dk    sJ |                                dk    sJ |                                dk    sJ d S )
Nr   rE   r8   rD   TFrC   r9      )r   r   is_isosceles
is_scalener   r   )r   r   r   s      r+   test_type_of_triangler;    s   	q!eAqkk5A;;	7	7B??$$$$==??e####%'''' 
%1++uQ{{E!QKK	8	8B??%%%%==??d""""%'''' 
q!eAqkk5DHH+=+=	>	>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                    }|                     |          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  |                     |          dk    sJ 	 d d d            n# 1 swxY w Y   t          t          dd          t          dd          t          t          j        t          j                            }t	          t
          dd          5  |                    |           dk    sJ 	 d d d            d S # 1 swxY w Y   d S )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_distancerC    s*   uQ{{E!QKKq!eAqkkJJGaU1a[[%1++>>I$$Y//47719<<<< eAqkk5A;;aU1a[[IIG	{HZ_
a 
a 
a 7 7((11Q666667 7 7 7 7 7 7 7 7 7 7 7 7 7 7
 aeArllE!&!&4I4IJJI	{HZ_
a 
a 
a 9 9**733q888889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s$   D;;D?D?,GGG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)  r1  r6  r;  rC  r^   r-   r+   <module>rP     s   8 8 8 8 8 8 8 8 8 8 8 8 " " " " " " / / / / / / / / 4 4 4 4 4 4 9 9 9 9 9 9 E E E E E E E E E E 8 8 8 8 8 8Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q 5 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 + + + + + + + + / / / / / / 1 1 1 1 1 1& & &
 @G @G @GF
E E E8= = =     / / /< < <,] ] ] / / /I I I@ @ @4 4 4Q Q QO O OF F FZ Z ZF F FDN N N> > >T T TD? ? ?&J J J #E #E #EJ' ' '&9 9 9 9 9r-   