K i@"ddlmZddlmZmZmZddlmZddlm Z ddl m Z ddl m Z ddlmZddlmZmZmZmZmZmZdd lmZmZmZmZdd lmZdd lmZm Z m!Z!dd l"m#Z#dd l$m%Z%m&Z&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3y))Basic)IRationalpievaluate)S)Symbol)sympify)sqrt)LinePointPoint2DPoint3DLine3DPlane)rotatescale translateGeometryEntity)Matrix)subsets permutationscartes) Undecidable)raiseswarnsc tdd}tdd}tdd}tdd}tdd}tdd}tj}t||t||}td d td d }td d } t td d d vsJ|vsJ|j |k(sJ|z|k(sJ|z t||z ||z k(sJ| t| | k(sJt td t td t tdt tdt tdtdtdttddtdk(sJtj|t||k(sJtj|t|||zz|||zzk(sJtj|||k(sJ|j||k(sJjtd d k(sJtj|tdk(sJtjd k(sJtj|t|jdz|j dzzk(sJt tfdt tfdjjk(sJ|jj|k(sJtj|dk(sJtj || d k(sJt tfdt||t||} t|d z|} tj"sJt%t&d5tj"tdsJ dddj#sJtj"|sJtj"|| sJtj"|| dusJtj"|| dusJt tfdt tfdj)td d gk(sJj)|gk(sJj)gk(sJt%t&d5tj(td d d td d td d d gk(sJ dddtdd} t| d } td | }t| d }td | }t| d }tj*| sJtj*| |sJtj*| |||sJt-| |||fD]}tj*|durJtj*||dz|dzdusJtd d j+d!d"d#dusJtj*td d d d td d d d td d d d td d d d dusJj/sJj/dzsJj/|rJtj.td d d$sJtj.td d d%sJt t0d&td d j2td d k(sJtd d j2td d k(sJj4Jj4sJ|j4dusJj6Jj6dusJ|j6sJ|j9ddtddk(sJj9ddk(sJ|j;t<td'd'k(sJj?|j|j9ddk(sJ jA|j|j9ddk(sJ|d ztd d k(sJ|d z td(d(k(sJd |ztd d k(sJt td)t||d z z|t|dz|z |d zz td d*k(sJtjtd d}}t||jCdt|jEd|jEdd+k(sJt td,tjFd-d.td d k(sJtjFd!d.td d k(sJt tfd/td d j;t<dz td d k(sJj;t<dz k(sJtd d j9ddtddk(sJjId dtddk(sJjId tdd k(sJjId 0td dk(sJjHjJtddk(sJt tfd1t tfd2d td d d d vsJd td d d d vsJtjLd*k(sJy#1swY\xYw#1swY"xYw)3NxTrealyx1x2y1y2r)slopectdSNr're/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/geometry/tests/test_point.pyztest_point..%s eAhr-ctdgSr*r+r,r-r.r/ztest_point..&s uaSzr-c"tdtSNrrr,r-r.r/ztest_point..'s uQ{r-c0tdtztS)Nr4r,r-r.r/ztest_point..(suQqS!}r-c0tdtztSr2r4r,r-r.r/ztest_point..)suQUAr-fffffA@r3r6c0tjdSNr)rdistancep1sr.r/ztest_point..5sennR3r-c@tjtSN)rr=rr>sr.r/ztest_point..6sennR1ABr-c0tjSrA)rcanberra_distancep3sr.r/ztest_point..?su66r2>r-Ftest_stacklevel)dimc.tjSrA)r is_collinear)linesr.r/ztest_point..Nse006r-c&jSrA)rK)rLp1_1sr.r/ztest_point..Osd//5r-)positiver'r')r6r6)r6r')rR)rrRcztjttdtdtddS)Nzx1%y1zx2%y2rr')ris_scalar_multipler r,r-r.r/ztest_point..ls0 8 8ww?OQXY`Qa9bdijkmndo pr-g?皙?c tdddzSNr r+r,r-r.r/ztest_point..suQ{R/r-rRrc tdddzSNr'r6r+r,r-r.r/ztest_point..suQ{Qr-)rr')r'rcDtjtddSr<)rprojectr>sr.r/ztest_point..su}}Rq!=r-)r"c&jSrA transformrDsr.r/ztest_point..sr||B/r-cDjtddgddggSNr'rr_rpsr.r/ztest_point.."q{{6Aq6Aq62B+CDr-)'r r Halfrr r"r TypeError ValueErrorr rmidpointoriginr=rtaxicab_distancerCrKr UserWarning intersection is_concyclicrrTrorthogonal_directionis_zero is_nonzerorrr__radd____rsub__evalfnr\rargs affine_rank)rr"r#r$r%r&halfp2p4p5p1_2p1_3x_posp2_1p2_2p2_3p2_4p2_5ptsabrLrdr?rNrEs @@@@@r. test_pointrss sAsA 4 B 4 B 4 B 4 B 66D r2B r2B q!B q!B q!B a 1 %D 8O8 R<< 442:: G?? Gb2grBw/ // / 3%bS/ !! ! 9&' :)* :*+ :,- :./ Q E(3*;T!W$E EE E >>"b !U4%6 66 6 >>"b !U4$r'>4$r'>%J JJ J >>"b !R '' ' ;;r?b  99a ## # >>"b !T!W ,, , >>"b !Q && & >>"b !T"$$'BDD!G*;%< << < 934 9BC ;;t  b 1 11 1 ;;t  b 1 11 1  ! !"b )Q .. .  " "2r *a // / :>? R=D R=D a D   b !! ! {E 28!!"eBA&67778 ??     b" %% %   b"dD 11 1   b"dD 1U :: :   b"b" - 66 6 967 956 ??5A; 'B4 // / ??2 " $$ $ ??4 B && & {E 2S!!%1a.%1+>5Aq>BRRRRS 3 &E ?D E?D % D UF D ?D   d ## #   dD )) )   dD$ 55 5T4t451!!3'50001   b"q&"q& 1U :: : A; # #FFF ;u DD D   eAq!Q/q!Q1BE!QPQSTDUW\]^`acdfgWh imr rr r  $$ $ 2 && &$$R(( (  # #E!QK :: :  # #E!QK 99 9 ;pq A; + +uQ{ :: : A; + +uQ{ :: : ::   ::: ::   ==  ==E !! ! === 88Aq>U1a[ (( ( 88Aq>R   99RsC )R // / ;;r?bkk"o33Aq9 99 9 C>>" R!6!6q!!< << < 6U1a[  6U3_ $$ $ r6U1a[   :/0 AEA q!taxQ!7 75B< GG G 668Aq>qA A;  Q  acc!facc!fu- .. . :./ == (E!QK 77 7 == (E!QK 77 7 :=> a A 88BqD>U1a[ (( ( 88BqD!  !! ! a A 771a=E!QK '' ' ;;q! a ++ + ;;q>U1a[ (( ( ;;; uQ{ ** * 1;; 5A; .. . :/0 :DE aAq! !! ! E!Q1% %% %    " $$ $A88SSs$m0=mm mc tddtdd}tdd}tdd}tdd}tdd}td d}td d}tj}t|||}t|||} td d d } td d d } td d d } ||vsJ|| vsJ| j|k(sJ| | z| k(sJ| |z t||z ||z ||z k(sJ| t| | | k(sJt dt dt tddt dk(sJtj| | t|||k(sJtj|| t|||zz|||zz|||zzk(sJtj| | | k(sJ| j| | k(sJtj| | t dk(sJtj||d k(sJtj| | t | jd z| jd zz| jd zzk(sJt|||} t|||}t|d z||}tj| tj| | sJtj| | | |sJtj| | | |dusJtj| | | | dusJ| jtd d d | gk(sJ| j| gk(sJ| dztdddk(sJ| dz tdddk(sJd| ztdddk(sJttd|j |||fk(sJ| j |||fk(sJ| j dk(sJ| j dk(sJ| j dk(sJ| jd k(sJ| jd k(sJ| jd k(sJtd z z|d td zz |d zd z td dd k(sJtjtd dtd d}}}t|||j#d t |j%d |j%d |j%d dk(sJttdtd d d j'd dtd dd k(sJj)d d td dd k(sJj)d td d d k(sJj)d td d d k(sJj(j*td d d k(sJtdddd j*d j,sJj.d k(sJ| j.d k(sJ|j.d k(sJtt0fd!t j2sJt j2d"d"d#sJt j2d"d$sJt5t6d%5ttd&dddtj2d"d$sJt j2dd'dd(dusJtd dd }tdd d }tj2||dk(sJtj2||| dk(sJt j2|sJtd d d }td d d}tj2||sJt9d(d)d*}t j2t;dDcgc]}|j=d|z|fc}sJt j2t |t |zt |d zdusJ|jt?|td d d gk(sJ|j'd d d |k(sJ|j'd d d |td d d k(sJ|j'd d d | |k(sJtAgd+gd,gd-gd.g}jC|k(sJtAgd/gd0gd1gd.g}jC|td d d k(sJttfd2ttfd3jE|dk(sJt d d d d }t5t6d%5|z t d d d dk(sJ dddt d d d d }t5t6d%5|z t d d d d k(sJ dddy#1swYxYwcc}w#1swY[xYw#1swYyxYw)4NrTr r"r#r$x3r%r&y3rr'r6r8r3r9r:FrPrUc"tddddzSrWrr,r-r.r/ztest_point3D..swq!Q/"4r-)rrr)r'r'r')rr'r6rRrHrc"tddddzS)Nr'r6r3rr,r-r.r/ztest_point3D..swq!Q/!3r-)z皙?ignore)ron_morphc0tjSrAr are_collinear)rdrsr.r/ztest_point3D..sg33Aq9r-)r'r6r)r'r3rr'r6r3rFc.tjddS)Nr'r6r)r are_coplanarr,r-r.r/ztest_point3D.. s7#7#7 #Jr-)r'r'r)r'r6r')r6r'r)r3r'r6)r'rrr)rr'rr)rrr'r)rrrr')r'rrr')rr'rr')rrr'r'c&jSrAr^rcsr.r/ztest_point3D..'sq{{1~r-cDjtddgddggSrarbrcsr.r/ztest_point3D..(rer-)#r r rfrr"rr rrir=rrrrmrrh coordinatesrtrurrrvis_Floatlengthrgrrrlrrange projectionrrr_equals)r"r#r$rr%r&rrxr?ryrErzr{rNr|r}rrcplanar2planar3planeiidentitytransp_4dp_4d3drdrs @@r. test_point3Drs sAsA 4 B 4 B 4 B 4 B 4 B 4 B 66D R B R B Aq B Aq B Aq B 8O8 R<< 442:: G?? GRb"r': :: : 3'2#sRC( (( ( Q E(3*;T!W$E EE E   B #wtT4'@ @@ @   B #wtd2g~td2g~)-R(9 99 9   B #r )) ) ;;r?b    B #tAw .. .   B #q (( (   B #tBDD!GbddAg,=a,G'H HH H 2r2 D 2r2 D 262r "D "  R (( (  Rt 44 4  Rt 4 == =  RR 0E 99 9 ??71a+ , 44 4 ??2 " $$ $ 6WQ1% %% % 6WS#s+ ++ + r6WQ1% %% % :45 >>b"b\ )) ) >>b"b\ )) ) >>Y && & >>Y && & >>Y && & 44199 44199 44199 1a!e9a #gadQhAq&A A2q  ffhq!nhq!n!qA 1a  ! !! $ acc!facc!facc!fu5 66 6 :34 1aA 771a=GAq!, ,, , ;;q! 1a 0 00 0 ;;q>WQ1- -- - ;;; wq!Q/ // / 1;; 71a#3 33 3 3eh ? D DQ G P PP P 88q== ;;!   ;;!   99:        iI >> >   i 33 3 {E 2LzJKL    9 55 5   iIy IU RR RaQGb!QG   7G 4 << <   7GR 8E AA A   a )) )aAGaAG   7G 44 4 )Y 2E   aQ1 0 02'1 >Q RR R   eAqk5AE?E!QUO LPT TT T   q' 2 31a8H7I II I ==Aq !W ,, , ==Aq' *gaA.> >> > ==Aq" % 00 0|\<NOH ;;x A %% % L, lK LE ;;u Aq!1 11 1 :-. :DE 88B<5   Aq! D {E 2.4x5Aq"----. 1aA F {E 2/6zU1aA....//ULL R4..//s*>ff#6f(5f4f (f14f=ctdd}tdd}d}|j|tddz k(sJ|j|tddz k(sJ|jdk(sJ|jdk(sJ|jdk(sJ|jt ddz k(sJ|j d k(sJ|j dt ddz fk(sJ|jd k(sJy) Nr'rPrHg@)r3=r6)r'rP)r'rPr'rP)rr=r rr"r rboundsr?ryrEs r. test_Point2Dr6s AB CB B ;;r?d2hqj (( ( ;;r?d2hqj (( ( 44199 44199 44199 441Q46>> >>V ## # >>a1a[ (( ( 99 $$ $r-ctddd}tddd}tddd}tj|||dusJy) NrHrr'r6r3Frrs r.test_issue_9214rJsI B B Aq B Aq B  R , 55 5r-ctddd}tdd}ttd5|j |t dk(sJ dddy#1swYyxYw)Nr'rr6FrFrP)rrrrlr=r r?rys r.test_issue_11617rRsS 1QB 1B {E 2*{{2$q')))***s AActdd}|jttdz tddk(sJ|jt ddtddk(sJ|jt ddtddk(sJtddj dddtddk(sJtddj dd td d k(sJy) Nr'r6rRr3)rHrPrirHrPr)rr_rrrrrcs r.test_transformrZs a A ;;vbd| $b! 44 4 ;;uQ{ #uQ{ 22 2 ;;yA '5A; 66 6 A;  Q6 * b"    A; A & a   r-ctddtdd}}tddtdd}}tj|||sJtj||||rJy)NrRrr'r6)rrn)r?ryrErzs r.test_concyclic_doctest_bugresa 2q\5A;B 1a[%A,B   b"b )) )!!"b"b11 11r-cxdddgtddf}dddgtddf}t||}tdd}dgdtdddf}t|d}t ddd}dgdtddddf}t|d}tdddd} gd } d d g} |D] } t| | D]} |D]} t || | | D]} |D]} t || | d g} |D] } t | | D]} |D]} t || | | D]} |D]} t || | d g} |D] } t| | D]} |D]} t | | | | D]} |D]} t | | | t d }td d}|d|fztdd|zdk(sJtd d}|dz td ddk(sJtd d}|dztd ddk(sJtddd}t|dd}|jdk(sJtd|jddDsJtdt|jDsJtddsJttdttdttdy)zFunctions accepting `Point` objects in `geometry` should also accept tuples and lists and automatically convert them to points.rr'r6)r'r3r3r)r'r6r3rHrH) r=rTrkrirmdotr__add____sub__rnrKrrrFrg$@rUrrIr)rrUrrc34K|]}|jywrAr.0rs r. z!test_arguments..s/aqzz/Nc34K|]}|jywrArrs r.rz!test_arguments..s1aqzz1rerrorc tddddS)Nr'r3rrr+r,r-r.r/z test_arguments..suQq7Cr-c tddddS)Nr'r3unknownrr+r,r-r.r/z test_arguments..suQq9Er-c:tttSrA)rrr,r-r.r/z test_arguments..seEGUW5r-) rrrrrgetattrr rvallrrhrg) singles2d singles2d2 doubles2dp2d singles3d doubles3dp3d singles4d doubles4dp4d test_single test_doublerdfuncrruu4s r.test_argumentsrlsQ 1uQqz*I!Aa +Jy*-I !A,C'51Q<0I 1%I !Aa.CIuQq1~6I 1%I !Aa.CLK!>2K  " "A GC q ! ""# #A GC  " ## ""K  " "A GC q ! ""# #A GC  " ## ""K  a" "A GC q ! ""# #A GC  " ## s A a A Qx<5a!ee< << < a A T6U1cE2 22 2 a A T6U1dU3 33 3 b"u%A qa( +B 77n $$ $ /2772A;/ // / 158==1 11 1 Q )) ) :CD :EF 956r-c~tddjttddz tddz k(sJyrZ)runitr r,r-r. test_unitrs3 A;  uT!WQYQ : :: :r-c&ttdy)NcLtddjtddS)Nr'r6)rrrQ)rrr r,r-r.r/ztest_dot..seAqkood66.BCr-)rrgr,r-r.test_dotrs  9CDr-c"tjtddtddtddtddgk(sJtjtddtddddtdddtdddgk(sJy)Nr'r6r3rHrr)r)r_normalize_dimensionr,r-r.test__normalize_dimensionrs  % %eAqk5A; ? a U1a[D" "" "  % % a U1a^h 8 aAaA<( (( (r-c\td5tdddddy#1swYyxYw)NFr'r6)rrr,r-r.test_issue_22684rs' % a s "+ctddd}tddd}|jtdddgdk(sJ|jtdddgdk(sJ|jtddtgdk(sJ|jtdddgdk(sJ|jtdtddgdk(sJ|jtdddgdk(sJ|jtdddtd d z td d z dgk(sJ|jtdddtddz tddz tddz gk(sJ|jtd d d td zd z dtd zd z dgk(sJ|jtdddtd dz td dz td dz gk(sJ|jtdddgdk(sJ|jtdddtd d z dtd d z gk(sJy)Nrr')r'rr)rr'r)rrr'rPr3g333333@r6ii) )rdirection_cosinerr rs r.test_direction_cosinersU Aq B Aq B  wq!Q/ 0I == =  wq!Q/ 0I == =  wq!R0 1Y >> >  wq!Q/ 0I == =  wq$q'15 6) CC C  wq!Q/ 0I == =  wsC3 4aDGAIq8Q QQ Q  wq!Q/ 0T!Wq[$q'A+tTUwYZ{4[ [[ [  wsE2 348 B4PR8 TVXY7Z ZZ Z  wq!Q/ 0d1gX\DG8a> >  wr1b1 2tAw{AtAwQR{6S SS Sr-N)4sympy.core.basicrsympy.core.numbersrrrsympy.core.parametersrsympy.core.singletonr sympy.core.symbolr sympy.core.sympifyr (sympy.functions.elementary.miscellaneousr sympy.geometryr rrrrrsympy.geometry.entityrrrrsympy.matricesrsympy.utilities.iterablesrrrsympy.utilities.miscrsympy.testing.pytestrrrrrrrrrrrrrrrr,r-r.rs"00*"$&9GGJJ!CC,.V%rJ/Z%(6*2K7Z;E( Tr-