K ikddlmZmZmZmZddlmZddlmZm Z ddl m Z ddl m Z ddlmZmZmZddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"dd l#m$Z$m%Z%m&Z&dd l'm(Z(dd l)m*Z*m+Z+dd l,m-Z-dd l.m/Z/dZ0e%dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZdZ?dZ@dZAd ZBd!ZCd"ZDd#ZEd$ZFd%ZGd&ZHy')()FloatRationaloopi)S)Symbolsymbols)Abs)sqrt)acoscossin)tan)CircleEllipse GeometryErrorPointPoint2DPolygonRayRegularPolygonSegmentTriangle are_similar convex_hull intersectionLineRay2D)raisesslowwarns)verify_numerically)raddeg) integrate) rotate_leftc@td}| ||z cxkxr|kScS)z.Test if two floating point values are 'equal'.z1.0E-10)r)abt_floats g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/geometry/tests/test_polygon.pyfeqr,s(IG 8a!e %g %% %%c5)*tdd)tdd*tdd}tdd}tdd}tdd}td d}tj}td d td d td d }}}t |||} t td d td d k(sJt |td d ||| k(sJt td d |||| k(sJt |||td d | k(sJt |td d ||| k(sJt ||td d||| k(sJt tddtddtddtddtddtddtddtddtddtddtddtddtdd t tddtddtddtddk(sJt td d td dtdd tddtd d td d } t tdd td dtd d td d td d tdd} t td d td d tdd tdd} t td d tddtdd td d } t td d tddtd d}t tdd tddtddtdd}t t)*t||t||}t t)*t||t||}t td d tddtd d tdd }t td d td d td d td d }t td d d d }t td d d d d }t td d tddtd d!td d!}t t |jd }ttddtdd"}| | k(sJt| jdk(sJt| jdk(sJ| jdd tdzztd#ztdzk(sJ| jd$k(sJ| jrJt d%d&d'd(d)jd*usJ| jsJ| jsJ|j}|td d t dz k(sJ|td dt d z k(sJ|j#t)*J|j#td d sJ|j#td d d*usJ|j#tdd d*usJ| j%t'td+d+dd*usJ| j%t)td+d ddd*usJ|j+d)d d gk(sJ|j-t tddtd,d,tdd,dtd zk(sJ|j-t td dtddtdd-td d-dk(sJt/t0d./5t td d td d td d j-t td d td d td d dddt3|t3t td d tddtd dk(sJt3| t3| k(sJt3|t3|k(sJt3| t3|k7sJ|t tddtd dtd d k(sJt tddtd dtd d |vsJ|td dk7sJtd d |vsJ|j5d0j7td0dd td d k(sJt9t:)*fd1|j=|tdt?d2d3tdt?d4dgk(sJ|jd k(sJ|tAtd d d d d k(sJ||k(sJ|jBd td d k(sJ|jd td d k(sJ|jEt d z |jBd td d k(sJtAtd d dd} tAtd d dd} t9tFd5t9tFd6t9t:d7| | k7sJ| jHt t?d dzk(sJ| jJt t?d dzk(sJ| jLdtOt dz zk(sJ| jP| jPcxk(rtd d k(sJJ| jR| jTcxk(rdk(sJJ| jVt'td d dk(sJ| jXt'td d | jLk(sJ| jZ| jLcxk(rdd tdzzdz k(sJJ| jEt dz | j}|td dd t zdz k(sJ| jsJ| j\d k(sJ| j#td d sJ| j#td8d d*usJ| j#td d9sJ| jEt d z | j\t d z k(sJ| jBd tddtd zk(sJ| jD]4}t_|tr|td d k(r#J|ddt d z fvr4J| td d k7sJ| |k7sJ| }| jat d z tAtd d ddt t?d d zk(sJ| |k(sJ| jd:tdzd;zdtct dz zz k(sJ| jdd!ttd dz t?ddzzk(sJ| jgd d tA| jh| jTd z| jj| j\k(sJtAdsJtq|tdd jstud?sJtq|td d jstud@sJ| j}tq|td d jstud=sJtq|tddjstud>sJtq|tdd jstud?sJtq|td d jstud@sJtw|jjy}tq|t|jd z t zsJtw|jjy}tq|t|jd z t zsJtd d } tdd } td d} t | | | }t | | tt?dd tt?dAd} t | t|d td |}!|j}"t | | | t | | | cxk(rt{| | k(sJJt9tFdBt | | | | k(sJt | | d z| d zt{| | d zk(sJ|jt?dCd k(sJ|j}sJ| j}d*usJ|!j}sJ| |vsJ|jd |vsJt{dztest_polygon..s2w a U1a[%1+ //>s/Cr-i !cXttddtddtddSNrr:rrr-r+rXztest_polygon..s(.q!eA ?Q{#r-c0ttddddSNrr:r8r]r^r-r+rXztest_polygon..s.q!a"Cr-c0ttddddS)Nrr:rPr]r^r-r+rXztest_polygon..s~eAqk1cBr- g@iirrz0.7853981633974483z1.2490457723982544z1.8925468811915388z2.3561944901923449Kc,ttddS)Nr)rrr^r-r+rXztest_polygon..s(5A;"7r-r:r}2zTriangle( Point(100080156402737/5000000000000, 79782624633431/500000000000), Point(39223884078253/2000000000000, 156345163124289/1000000000000), Point(31241359188437/1250000000000, 338338270939941/1000000000000000))zPoint(-78066086905059984021699779471538701955848721853/80368430960602242240789074233100000000000000,20151573611150265741278060334545897615974257/160736861921204484481578148466200000000000) )OrrHalfrrrr&argsrlensides perimeterr area is_convexanglesrencloses_pointenclosesrr plot_intervaldistancer! UserWarninghashrWsubsr ValueErrorrrrverticesspinrinterior_angleexterior_angleapothemr circumcenter circumradiusradius circumcircleincircleinradiusrotation isinstancerotaterlengthscalecenter_nreprstrr,evalfrsumvaluesris_rightis_equilateralr is_similar bisectorsincenterr exradii excentersrmedianscentroidmedialnine_point_circle altitudesequals orthocenter)+r3r4r5r6r7halfr(r)crUp1p2p3p4p5p6p7p8p9p10p11p12p13p14rdict5dict1varp1_oldrtinterior_angles_sumt1t2t3s1ricmrpt1pt2r/r2s+ @@r+ test_polygonrssAsAsAsAsAsA 4 B 66DAqk5A;a !qAAqA 5A; 5A; .. . 1eAqk1a (A -- - 5A;1a (A -- - 1aE!QK (A -- - 1eAqk1a (A -- - 1aq"q! , 11 1 5R=%R.%R. c4%V,eCo eS5S>5C=%C. b" uR}eBm 5 c3r3r2c2O  PP 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   <<1qbz>DH4tAw> >> > 77b==||~  7GVXv )+   <<>> <<>> IIE q! a '' ' q! a '' '  U1a[ ) 11 1  U1a[ )) )  U1a[ )U 22 2  U1a[ )U 22 2 ;;veCoq1 2e ;; ; ;;wuS!}a3 4 == =  C Q1I -- - ;;b" uR}eBm< >ABT!W MM M ;;a U1a[%2,a E GJK LL L {H J@a U1a[%1+6??a U1a[%1+> @@ 8tGE!QKq!eAqkJK KK K 8tBx   8tBx   8tBx   q!eAqk5A;? ?? ? 5A;a U1a[ 9R ?? ? q!   A;"    c " ' 's(> B a    :DE ??1 %HS",=">b(SUWX/@Z![ [[ [ 88q== .q!aA6 66 6 #:: <<?eAqk )) ) 88A;%1+ %% %HHRTN <<?eAqk )) ) a R +B a Q *B = =CD :BC 8O8  8Aq> 1 11 1  8Aq> 1 11 1 ::3r!t9 $$ $ ??boo <q! << << < ??bii -2 -- -- - ??fU1a[!4 44 4 ;;&q!bjj9 99 9 ;;"** ?a$q'k):Q)> ?? ?? ?GGBG IIE q! R! ++ + <<>> ;;!    U1a[ )) )  U2q\ *e 33 3  U1c] ++ +GGBqDM ;;"Q$   ;;q>U1aQi0 00 0ww* c5 !%1+% %%1b"q&/) )) * q!   8O8F 99RT?nU1a["aHQPQNARS SS S << 77tDG|d*Qs2a4y[9 99 9 994a Xa^ ;<< << < 88Aq>ryy"))A+ruubkkB CC C &!Q ' - -a 3a U1a[%A,a E FF F 8s2w   YYF veAqk"((*E2F,G HH H veAqk"((*E2F,G HH H veAqk"((*E2F,G HH H veAqk"((*E2F,G HH H YYF veAqk"((*E2F,G HH H veAqk"((*E2F,G HH H veAqk"((*E2F,G HH H veAqk"((*E2F,G HH Hcjj//12 "S_q%8"$< >> >cjj//12 "S_q%8"$< >> > q!B q!B q!B "b" B "b%AXb!_0EF GB "eBlE!RL 1B B BB 72r2#6 I'"b/ II II I =78 BB 2 %% % B1bd #wr2a4'8 88 8 77hr1o %% % ;;== ;;=E !! ! ;;== 8O8 88A;"   66 "b (( ( A;b  <<>> ryy}""$bhhjl 33 3   % '' '       % '' ' r2 % '' ' r2   r2 % '' ' ==q! % .. . ==  %% % I R=G E(1a.(1a. 13 33 3 <<>"  a U8Aq>1T!W9Q;7"9 99 9 q"B <<>" U2tAw{3CQ-G!H HH H DG R B ;;%B- '' ' ;;"++,, ?Ad1gIaK ?? ?? ? ;;"++,, ;$q' ! ;; ;; ; ;;"++,, MADG SW7L0M MM MM M ::bhhqk "aQik 11 1 << $47 BtAwJqL(I II I ?? ! !U3_ 44 4 A ;;%AA? ?? ? R5GBhq!nhq!n EF FF F ::b>WRr!tRT):; ;; ; "quae , == = 99sAa uS#O OO O   6%Q-*/3-sC$J JJ J  6%1+*/3-sC$J JJ J I R=GBhq!nhq!n(MN NN N R=  1 && & R=BqE !! ! >>R    N OA ==A    |Y--/0 1Q 66 6 |Y--/0 1Q 66 6 |QXXZ( )Q .. .  a U1a[ a U1a[ "B  a!Qq(1+a-!8 a!Qq(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 JG{{24719tHQKN/CA/E#EFFFGGA@@r))GGs0A$Akh(Aki>>AkkAkkAkkAk(ctddtddtddtddtddtddtddtddtddtd dtd dg }t|d|d|d |d |d |d}|j|dtd dtd dtd dtd dg}t|d|d}t ||k(sJt ||k(sJt |d|dk(sJt |d|dt|d|dk(sJt |dgdz|dk(sJt tddttddtddt tdddd gttddtddtd dtddk(sJy)Nrkr;r?r:rArr8r9rDrCrlrBiiUi)rrappendrrr)pch another_pch2s r+test_convex_hullr[s r2b! eBmU2r] q!eAqk5A;a eAqk q"uQ{ $A 1qtQqT1R5!A$! 5BHHQqTNsC%R.%R.sC"I )A, ! -C  "c )) ) ?b  qt ! $$ $ qtQqT "gadAaD&9 99 9 2 "ae ++ + q!a U1a[9&uQ{Aq9; < a U1b\5A;a D EE Er-c ttddtddtddtddttjtj}|j tdtjdusJ|j ttjtjdusJ|j tt ddtjdusJy)Nrr:Fr9rDT)rrrrmrvr)ss r+ test_enclosesrwsa U1a[%1+uQ{ affaff A ::eAqvv& '5 00 0 ::eAFFAFF+ , 55 5 ::eHQNAFF3 4 << ? @@ @  #q!eAqk5aDGAI+FG HH H  " ** * s3x=C  r-c :tddttjtddtddg}tddtdtddtdd g}t |j d d d t |k(sJt d ddj d d d ttddtdd tddtddk(sJt d ddj d d t tddd ddk(sJy)Nrr:rDr<irAir?r8r9)rDrErci) rrrmrrrrrr)ptspts_outs r+test_transformrs A;affhq!n5uQ{ CCR~uR#q)9:E"bMJG S>  1f -71C CC C &!Q ' - -aF ;b#b" uR~uR~N OO O &!Q ' - -a 3wq!}aA. // /r-c tdd}tdd}td}td}td|f|}t||}|j|}|j |j }|j |j }t ||sJtd d d jtd tttd dtddtddk(sJtd d d jtdtttddtddtddk(sJtd d d jtddttddtddtddk(sJtd d d jtd dttddtddtddk(sJy)Nr/Tr0r2r)rrsloperg)r8r)r8r8rOrErDr8)rr9r;r?r:rC) rrrreflectperpendicular_segmentrr"rrr) r/r2r)rlrrdpdrs r+ test_reflectrssAsAs As A aV1A a A ! A  # * *B  # * *B b" %% % 666 * 2 24b3I J E!QKq!eAqk : ;; ; 666 * 2 24b3I J E"aL%A,b! = >> > 666 * 2 24a3H I E!QKq!eAqk : ;; ; 666 * 2 24a3H I E!QKq!eArl ; << > GBN +uWR^Sd2hrk*1,r!t344a#tDHRK?P>PQR>RUWXYUY>Y:Z6Z[0] ]] ]r-cttddtddtddjtdtddz z dtddz z k(sJyr`)rrrr r^r-r+ test_incenterrsW E!QKq!eAqk : C C T!WQYDGAI . // /r-cxttddtddtddjdk(sJy)NrrDr9r:)rrrr^r-r+ test_inradiusrs1 E!QKq!eAqk : C Cq HH Hr-c ttddtddtddjttdt dz dt dz dt dz k(sJy)Nrr8)rrrrr r^r-r+ test_incirclersa E!QKq!eAqk : C C %DG Qa[11tAw; ? @@ @r-cttddtddtdd}|j|jddt dzk(sJy)NrrCr8r?rB)rrrrpr rUs r+ test_exradiirsIq!eAqk5A;7A 99QWWQZ R$r(] 33 3r-c ttddtddtdd}|jtddttddttj tj k(sJyr\)rrrrrrmrs r+ test_mediansrs[q!eAqk5A;7A 99U1a[ !WU1a[%:O%P PP Pr-c :ttddtddtddjtttjdttjtjtdtjk(sJyr\)rrrrrmr^r-r+ test_medialrsi E!QKq!eAqk : A A E!&&!$eAFFAFF&;U1aff=M N OO Or-c ttddtddtddjtt t ddt ddt ddz k(sJy)Nrr:rDr8)rrrrrrr r^r-r+test_nine_point_circlers] E!QKq!eAqk : L L '(1a.(1a.94719 E FF Fr-c ttddtddtddjtt ddt t j t j k(sJttddtddtddtdzjt ddtdzdz k(sJttddtddtd djtt td d dt td d tddk(sJy)Nrr:rBrEr9rDrr;rA@r@irQrr8) rr eulerlinerrrrmr rr^r-r+test_eulerliners  E!QKq!eAqk : D D 1 wqvvqvv6 7 88 8 E!QKr1uQ$q' /B C M M 1aQik " ## # E!RL%2,b! = G G Q+WXc25FQSUV-X Y ZZ Zr-c ttddtddtdd}ttddtddtddtdtddttj dtddtdd}|j |ttdddttdtddtddttddtddgk(sJ|j |ttdddttddtdtddttddtddgk(sJ|j tddtddgk(sJ|j tdd gk(sJ|j td d tddtddttdddtddgk(sJ|j td d gk(sJ|j tddttddtddgk(sJ|j tddtddtddgk(sJ|j |ttddtddttddtddttddtddgk(sJ|j |ttddtddttddtdtddttdtddttj tddttddtddtttj tddtddttddtddgk(sJ|j ttddtddtddttddtddttddtddgk(sJ|j tdddgk(sJy)Nrr:rkr<rEgr9i)rrrRr)rrR)rRrR)rArDrg)rr;r?r;rBr@rC)rr>) rrrrrrmrrrrrrr)poly1poly2s r+test_intersectionrs4 U1a[%1+uQ{ ;E E!QKr1!RL%8Aq>":!&&$'q!eAqk CE   e $!Q)Ca!Q(%1+6a U1a[))+ ++ +   e $x1~q)Aa U1hq!n56a U1a[))+ ++ +   eAqk *uQ{m ;; ;   eC#. /2 55 5   d8W5 65Q< a U8Aq>1-uQ{;< << <   d9h7 8B >> >   c'62 3a  a 98     fWa0 1eArl a 6     e $q!eAqk)Ja U1a[)75A;a +L)N NN N   e $r1uQ|)La eAx1~67a!Q(%R8H*IJa U2q\*affhr2./q!=a U1a[) )+ ++ +   huQ{E!QKr1N O (2q/8Aq> 2GGAqM5QRTU;4W X YY Y   nZA> ?2 EE Er-c<tdtddddjdtddik(sJtdd d d }|jd d dt d zzik(sJt t fdt t fdy)NrUrc)rr:)r:r:rg)g?r:r9rHrM)r8rDrDrrrEc(jdS)N)rErC)parameter_valuesqrUsr+rXz&test_parameter_value..sr11&!<r-cPjttdddSr\)rrrrsr+rXz&test_parameter_value.. s!r11&q!a2H!Lr-)rrrrr rr|)r3rrUs @@r+test_parameter_valuer ss A  0B  h *q(1a..A AA A/A  VQ 'ArAd1gI~+> >> > :<= :LMr-c &ttddtddtddtddtddtdd}td}|j|}d|jz }t t d|z Dcgc]}|j|||zc}tddtddtddtddtddtddtddtddgk(sJycc}w)NrrBrErUr:)rrrrWrqrangeintr{)rrUptDELTAis r+test_issue_12966r s 5A;a eArlE!QK b! eBl $Ds A  a B dnn E).s1U7|)< =ABGGAuQw  = a U1a[%2,a  a U2q\5Q<q!B> >> > =sDc ,td\}}gd\}}}d}d|dz z dz}t|dztd|d|fz|ddf}tdt|dz|d|fz|ddf}t|t||d|fz|ddf} t|||} || j|dz dk(sJ|| j|dz dk(sJ| | j|dz dk(sJgd\}}}} t|dztd|ddfz|ddf}tdt|dz|ddfz|ddf}t|t||ddfz|ddf} t|||| } || j|dz dk(sJ|| j|dz dk(sJ| | j|dz dk(sJt t ddd d } | jd t d ztd z d t d ztd z dfk(sJy) Nx, y)rcrrr8rcr:rDr8r)rcrrDr8rrEr9iS )r r%rsecond_moment_of_arearrr r)r/r2rrrreq_yI_yyI_xxI_xytriangler rectanglers r+test_second_moment_of_arearsn 6?DAq)JBBA acE19D adyQ4L9:Q1I FD Q)AqD1a,781a) DD Q)A1d|451ay ADr2r"H 811!4Q7 7A == = 811!4Q7 7A == = 811!4Q7 7A == =4NBB adiAq!9551ay AD Q1a4!Q33aAY ?D Q1q!Qi001a) > > 92215a8 8Q >> > 92215a8 8Q >> > uQ{Aq)A " " $d1gae);T$q'\!B%=OQR(S SS Sr-ctdd\}}td|df||fd|f}|j||dzzdz |dz|zdz fk(sJ|j|dz |d z fd |z|dzzd z |dz |zd z fk(sJtdd dd}|jdk(sJtd|df|dz |f}|jd |z|dzzdz |dz|zdz fk(sJ|j|dz |dz fd|z|dzzdz d|dzz|zdz fk(sJtddd}|jtddz td dz fk(sJy)Na, bTpositivercrr8rHr9rDrArrl)(r)r"r)rr)iipQrCiirkir)rRri@i)r rfirst_moment_of_arear)r(r)rrs r+test_first_momentr&9s FT *DAq !Q!Q!Q 0B " " $1a41a46!8(< << < " "AaC1: .2a419R2ad719S=2Q QQ Q ( +B " " $4QsVGAI(> >> >r-ctdd\}}td\}}td|fd|df||f}|jt||||dzzdz | d z |zz |dz|zdz | d z |zz fk(sJ|j |dz|zdz ||dzzdz zk(sJt dd d }|jt d d tdt d dzfk(sJ|j d tdztd z k(sJtddddd}|jt ddt ddfk(sJ|j t ddk(sJy)NrTr rrrcr9rRr8r:rCrErH)r:rH)r9rD)rDrC)r@r:iiiiih) r rsection_modulusrpolar_second_moment_of_arearrr r)r(r)r/r2rconvexconcaves r+4test_section_modulus_and_polar_second_moment_of_arear.Ls 6D )DAq 6?DAqAAA7I  $ $U1a[ 1a1fRi!A6JAqDQRFSUIXYWYZ[W[^_W_L`5a aa a  0 0 2ad1fRi!AqD&)6K KK K FAq )F  ! ! #AQB8O'P PP P  - - /1T!W9QqT> AA Afffff=G  " " $%)=xs?S(T TT T  . . 0HVS4I II Ir-cB tddtddfddtddfddd  td td ddf} j|d } j|d}|tt td dtddt dtddt tddtddt tddtddt dtddt tddtddt td ddt ddt dtdd k(sJ|tt ddt td dtddt tddtddt ddt tddtddt tddtddt ddt ddt td ddt dtdd k(sJt t d d dd jtd d}|d tt dt dzd zdt dzd zt ddt dzt ddt dzt dd t d dt dzzd dt dzzk(sJ|dtt dd t dt dzd zdt dzd zt d dt dzzd dt dzzt ddt dzt ddt dzk(sJd\ }d |fd d f |fg\}}}}t|||| jtd |fd \}}|dk(sJ|tt d dt d d t dd t ddk(sJ jtd d \} } | tt d dt d d t dd t ddk(sJ| dk(sJtt fdy)NrNr:rEr8rMr9r)rEr9)r;r9rcrlrrFrYrr$r(rRrHr@r;r?rDrCrrA)rJrBrBrJc@jtdfdS)Nrr) cut_sectionr)r(rsr+rXz"test_cut_section..sq}}T1a&-BCr-) rrrr1rrr rr|) rrrrr)rrrt4rrr(rs @@r+test_cut_sectionr3\sq1hq!n-v8Aq>7JFTZ\cdA Vhq!na()A q ! B q ! B R (2r"23WQA5OQXYabdfhYikstvxzk{Q|Q!Q0'!Xa^2LgV^_acdVegoprtugvNwA"GBNGBQ4PR RR R R'(2r2BHRQSDT*UW^_ghjln_oqyz|ArBXC1 wxAA?RTVWZbceghZiAjlstuwxly|CDEGH|IA"GBQ$@B BB B wq!}a+A d6+,A Q4772d1g:>2d1g:>BGAqQUVWQXyDYAd1gIAQtAwYQtTUwY0WY YY Y Q4771a='"T!W*q."T!W*q.*QQtAwYQtAwY/RQZ1H'RSUWX\]^X_U_J`b bb b DAq!ffq!fq!f5NBBBBA ]]4Aa0 1FB :: BAAPRTVX XX X ]]4a0 1FB BAAPRTVX XX X :: :CDr-c ttddtddtdd}|jdk(sJ|jdk(sJ|j dk(sJttddtddtdd}|jdk(sJ|jdk(sJ|j dk(sJttddtddtdt d }|jdk(sJ|jdk(sJ|j dk(sJy) NrrEr8rDTFrCr9)rr is_isosceles is_scalenerr )rrrs r+test_type_of_triangler8s+ q!eAqk5A; 7B ??  $$ $ ==?e ## #   % '' ' %1+uQ{E!QK 8B ??  %% % ==?d "" "   % '' ' q!eAqk5DH+= >B ??  $$ $ ==?e ## #   $ && &r-c ttddtddtddtdd}ttddtddtdd}|j|tddz k(sJttddtddtddtdd}t t dd5|j|dk(sJ dddttddtddtt jt j}t t dd5|j|dk(sJ dddy#1swYxYw#1swYyxYw)Nrr:r8rSF)rTtest_stacklevelr;)rr_do_poly_distancer r!ryrrm)square1 triangle1square2 triangle2s r+test_do_poly_distancer@sCuQ{E!QKq!eAqkJGa U1a[%1+>I  $ $Y /4719 << <eAqk5A;a U1a[IG {HZ_ a7((1Q6667 a eArlE!&&!&&4IJI {HZ_ a9**73q88899 77 99s E&E2&E/2E;N)Isympy.core.numbersrrrrsympy.core.singletonrsympy.core.symbolrr $sympy.functions.elementary.complexesr (sympy.functions.elementary.miscellaneousr (sympy.functions.elementary.trigonometricr r rrsympy.geometryrrrrrrrrrrrrrrrsympy.testing.pytestrr r!sympy.core.randomr"sympy.geometry.polygonr#r$sympy.integrals.integralsr%sympy.utilities.iterablesr&r,rrrrrrrrrrrrrrrrr rrr&r.r3r8r@r^r-r+rMs88"/49EE8QQQQQ540+/1& @G@GF E8= /<,] /I@4QOFZFDN>TD?& J #EJ'&9r-