K iddlmZmZmZmZddlmZddlmZddl m Z m Z ddl m Z ddlmZmZmZddlmZddlmZdd lmZdd lmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&dd l'm(Z(dd l)m*Z+dd l,m-Z-ddl.m/Z/m0Z0e ddZ1e ddZ2e ddZ3e ddZ4e ddZ5e ddZ6e ddZ7e dd\Z8Z9e ddZ:dZ;dZdZ?dZ@d ZAd!ZBd"ZCd#ZDd$ZEd%ZFd&ZGd'ZHd(ZId)ZJd*ZKd+ZLd,ZMd-ZNd.ZOd/ZPd0ZQd1ZRd2ZSd3ZTd4ZUd5ZVd6ZWd7ZXd8ZYd9ZZd:Z[d;Z\d<Z]d=Z^d>Z_y?)@)FloatRationaloopi)Eq)S)Symbolsymbols)sqrt)acoscossin)EmptySet)simplify)tan)Circle GeometryErrorLinePointRaySegmentTriangle intersectionPoint3DLine3DRay3D Segment3DPoint2DLine2DPlane) Undecidable)_asa)cartes)raiseswarnsxTrealyzkx1y1ta,bmc ddlmmmmt dzzdzt tddtddk(sJt dzdzzdzt tdtd dtdtd dk(sJt dzzdzd d t tddtddk(sJt dzzt tddtddk(sJt zt tddtdd k(sJt tdzzdd  t tddtddk(sJt dz t tddtddk(sJt dzdz t tddtddk(sJt t tddtddk(sJt dzt tddtddk(sJt t tddtddk(sJttfdttfdttfdttfdttfdy)Nr)r&r)abiir2r3r&r))r))r&c tz SNrr:sd/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/geometry/tests/test_line.pyz+test_object_from_equation../tAE{c&tz ddSNr2r3r:r?r2r3sr@rAz+test_object_from_equation..0tAESC8rCc tz Sr>r?r:sr@rAz+test_object_from_equation..1rBrCc&tz ddSrEr?rFsr@rAz+test_object_from_equation..2rGrCc,tdzdzzS)Nr6r<r?r:sr@rAz+test_object_from_equation..3stQUQJN3rC) sympy.abcr&r)r2r3rrrrrr$ ValueError)r2r3r&r)s@@@@r@test_object_from_equationrMsl$$ !a" 3C!I II I !a!e a F8B?#WQQ%@%B BB B !a" s +v3C0* ** * !a=F71a='!R.A AA A A;&A2? ?? ? 1Q37C C1 -3C2* ** * A;&A1 > >> > !a1 1 wq!}!E EE E 7fWQ]GAqM: :: : !q>VGAqM71a=A AA A Q<6'!Q-A? ?? ? :*+ :89 :*+ :89 :34rCc@td}| ||z cxkxr|kScS)z.Test if two floating point values are 'equal'.z1.0E-10)r)r2r3t_floats r@feqrP6s(IG 8a!e %g %% %%rCc 8tdddd}|j}|j}tt j t tddtddt tddtddj tj dz sJt ||j t ||tdz k(sJtddd}tj t|tdddt|tdddttddz k(sJtj t|tdddttddd|ttd dz k(sJy)Nr6r<r4rr7) rorthogonal_directionoriginrPr angle_betweenevalfrrrr r )r2r3or*s r@test_angle_betweenrX<sn aAqA A A t!!$uQ{E!QK"@"&uQ{E!QK"@BBG%'288:XY> [[ [ 1: # #DAJ /26 99 91aA   q'!Q*: ; &q'!Q*: ; =@DT!Wq[@Q RR R   q'!Q*: ; &wq!Q'7 ; =@Dd1gXPQ\@R SS SrCctdd}tdtdz }|j|t dz k(sJ|j|tdz k(sJ|j|dk(sJy)Nrrrangler6r<r<)rr closing_anglerFs r@test_closing_angler_Ksm F!A F"Q$A ??1 "Q && & ??1 A %% % ??1  "" "rCcttddtdd}ttddtdd}|j|tdt dzdz k(sJy)Nr6r<r4r7)rrsmallest_angle_betweenr r rFs r@test_smallest_anglerbSs\ U1a[%1+&A U1a[q!%A # #A &$qay{*; ;; ;rCcBttddtdd}|jdk(sJttddtdd}|jdk(sJt tddtdd}|jdk(sJy) Nr6r<zrzr4r7z)rr_svgrr)r2s r@test_svgreYs U1a[q!%A 668I II Ia E!QK(A 668t tt t E!QKq!%A 668C CC CrCcttdddtddd}tttttt t }|j |vsJtdtdz j ttdztdzk(sJtddj tdtzddtzzk(sJ|j|j |j k(sJtdgd  j ttdzdtzdzd tzdzk(sJttdddtdddjttj tj tj k(sJttttttt t t j"t%d t%tt z dzzk(sJtdd j ttdzdtzdzd tzdzk(sJt't(d y)Nrr6r6r6rRr[r<r4r<r6r6r6r6r<r4direction_ratior4r<r4rRcLttdfdjtS)Nr6rh)rr&arbitrary_pointrCr@rAz&test_arbitrary_point..qsaVV 4 D DQ GrC)rrrrr,r-rorrr.rperpendicular_segmentrrmidpointrHalflengthr r$rLl1l2s r@test_arbitrary_pointrxbs 1a '!Q"2 3B eBmU2r] +B   2 %% % vR!V $ 4 4 6 QA    66 " 2 2 4a!eQQY8O OO O # #B$6$6$8 9R=O=O=Q QQ Q I 6 F F H 1q5!a%!)QUQY / 00 0 WQ1%wq!Q'7 8 A A 166166166 * ++ + WRR('"b"*= > E EaSWY[^`Y`efXfSgIg gg g Y * : : < 1q5!a%!)QUQY / 00 0 :GIrCc Vttddtdd}ttttttdtz}tj|dusJtj||sJtj||||sJtj||ttdttt ddtsJtj|ttddtt t|dusJy)Nrr6Fr7r;)rrr,are_concurrentrrus r@test_are_concurrent_2dr{ts eAqk5A; 'B eBmU2q2v. /B   r "e ++ +   r2 && &   r2r2 .. .   r2tE!RL%QQS:T'U VV V   r4a UB3^#Db IU RR RrCc tddd}t|tddd}ttdddtddd}ttdddtddd}tj|dusJtj|ttttttt t t dusJtj|t|tttttttttttdtzddusJtj||dusJyNrr6FT)rrrrzr,r-)p1rv parallel_1 parallel_2s r@test_are_concurrent_3dr~s" Aq B b'!Q" #B1a('!Q*:;J1a('!Q*:;J   $ -- -  T'"b"*=wr2r?R%S TX] ]] ]  VBB0C%D!%gb"b&972q2vq;Q!R TW[ \\ \  Z 8E AA ArCc ddlm}dddgtddf}||d}tt ddt dd}dgd tddd f}||d}tt dddt ddd}d gd tdddd f}||d}ttddddtdddd} gd} |D] } t |  | D]} |D]} t|| | |D] } t|  | D]} |D]} t|| | |D] } t|  | D]} |D]} t| | | y)zFunctions accepting `Point` objects in `geometry` should also accept tuples, lists, and generators and automatically convert them to points.r)subsetsr]r6r4r7r<rj)r6r<rR)r6r<r4rR)r6r<r4r7rR)containsdistanceequals parallel_lineperpendicular_linerq projectionrN) sympy.utilities.iterablesrrrrrrgetattrr) r singles2d doubles2dl2d singles3d doubles3dl3d singles4d doubles4dl4d test_singlepfuncs r@test_argumentsrs2!Qq!-I 1%I wq!}gam ,CIuQ1~6I 1%I wq!QAq!1 2C|U1aA->?I 1%I uQ1a %1a"3 4C1K  " "A GC q ! "" " "A GC q ! "" a" "A GC q ! ""rCc tdd}tdd}tdd}t||j}t||j}t||}ttttttdtz}t|tdd}t|tdd}ttdd|} t ||} | j} tddtddk(sJtdt tddk(sJtdt jdk(sJtdt tddk(sJt||jd dt|td dk(sJt||t||k(sJt||t||k7sJ|tttttttk7sJ||k7sJt||t||k7sJt|||k7sJ||vsJ||vsJ| t||vsJttddtddttddtdd vsJttddtdd ttddtddvsJttddtdd jtjk(sJttddtdd jtjk(sJttddtd d jtjk(sJttddtd djtjk(sJttddtd d jtjk(sJttddtd d jtjk(sJ|| vd usJt ||| vsJttttttdtzt|td d k7sJt ||j ttj"tj"k(sJt |tt tj$t'd td zzk(sJ|j(dk(sJ|j(t usJ|j(dk(sJt|tddj(t usJt|j*|jj(|j(k(sJt| j*| jj(| j(k(sJt tdd t |tddjj(t |tddj(k(sJ|j,dk(sJtt. t.ft. dzt.dz fj,dk(sJt|tddj,dk(sJtdt.} | j1t.dt2zdz tddk(sJ| j1t.d t2zdz tddk(sJ| j1t.t2 dz tddk(sJ| j1t.t2d z tddk(sJ| j1t.t2 d z tddk(sJt5dd D]} |j|vrJ|j.|j.k\r|j6|j6k\sJ|j.|j.kr|j6|j6ksJ|j.| j.cxkr|j.kr0nJ|j6| j6cxkr|j6ksJJt9| t9t ||k7sJ| j;t<ddgk(sJt||j;t<dd gk(sJtdt2dz j;t<ddgk(sJy)Nrr6rgsloper<r<r])r6r6r6r<r<r8Fr7rr6rr6r6rr6rrrZr[r4rRr8r6)r8r8)r6r8rr6rr8 )rr random_pointrr,rrboundsscaler- xdirectionrZeroInfinityNegativeInfinity ydirectionrrrsrtr rsource coefficientsr&subsrranger)hash plot_intervalr.)r~p2p10p_r3p_r4rvl3l4r1r2s1p_s1rinds r@test_basic_properties_2drs q!B q!B d C r2; # # %D r2; # # %D b"B eBmU2q2v. /B b%1+ B Rq! B U1a[" B S B ?? D a D$8 88 8 b !T&&%9 99 9 b ! ( (L 88 8 rc "d66&: :: : B<  a #tBa '< << < B<4B< '' ' B<4B< '' ' eBmU2r]3 33 3 8O8 C=DbM )) ) C=B   8O8 R<< b#   uQ{E!QK (Ca U1a[,I II I uQ{E!QK (Ca U1a[,I II I uQ{E!QK ( 3 3qvv == = uQ{E!QK ( 3 3qzz AA A uQ{E"aL ) 4 48J8J JJ J uQ{E!QK ( 3 3qvv == = uQ{E!QK ( 3 3qzz AA A uQ{E!RL ) 4 48J8J JJ J "H   2r?b  uR}eBB/ 0CE"aL4I II I 2r? # #uQVVQVV'< << < 2ubS"~ & - -a27m1D DD D 88q== 88r>> 88q== E!QK & &" ,, ,  2??, - 3 3rxx ?? ?  2??, - 3 3rxx ?? ? 5B<U1a[!9!F!F!H I O OSZ[]_defhi_jSkSqSq qq q ??i '' ' !Q1"q&!a% ) 6 6) CC C E!QK - - :: : F!A 66!QVaZ C$8 88 8 66!QVaZ C$9 99 9 66!bS1W VW!5 55 5 66!R!V FF 3 33 3 66!bS1W VW!5 55 5Q{' B&&&' 66RTT>dffn, , 66RTT>dffn, , 44466 "SUU "> >rtttvv'>'>> >'>> > 8tGC,- -- -   !Q ** * C= & & (QAJ 66 6 vR!V $ 2 2 4Ar BB BrCc  tddd}tddd}tttt}ttdtzd}t||}t||}t|tddd}t||}t ||}tdgdttdddtdd dk(sJtdgd ttdddtd d d k(sJtdgdttdddtd dd k(sJttdddtdddj gdk(sJtt|tdddt|tdddk(sJtttdddtdddt|tdddk(sJt||t||k7sJ||k7sJ|t|tt t t k7sJ||k7sJttdddtdddttdddtd d d vsJttdddtd d d ttdddtdddvsJttdddtd d d jtjk(sJttdddtd d d jtjk(sJttdddtd d d jtjk(sJttdddtdd d jtjk(sJttdddtd dd jtjk(sJttdddtd d djtjk(sJttdddtdd d jtjk(sJttdddtd dd jtjk(sJttdddtd d djtjk(sJ||vsJ||vsJ|jgdk(sJ|jttj tj tj k(sJt|tdddjtjusJy)Nrr6r8r7rirmrkr4rR)r6r7rr<rrjrr)rr,rrrdirection_cosiner-rrrr zdirectionrrrlrrrs) r~rp3p5rvrrr3rs r@test_basic_properties_3drs Aq B Aq B R B QVQ B BB BB r72q!$ %B r2B 2r B )Y 76'!QPQBRT[\]_`bcTd;e ee e )Y 76'!QPQBRT[\]_`bcTd;e ee e )Y 76'!QPQBRT[\]_`bcTd;e ee e '!Q"GAq!$4 5 F F) SS S &WQ1-. /6"gaA>N3O OO O 1a('!Q*:; <b'RSUVXYJZ@[ [[ [ "b>VB^ ++ + 8O8 GBB/0 00 0 8O8 Aq!71a#3 4gaA>NPWXY[\^_P`8a aa a Aq!71a#3 4gaA>NPWXY[\^_P`8a aa a Aq!71a#3 4 ? ?1:: MM M Aq!71a#3 4 ? ?1:: MM M Aq!71a#3 4 ? ?1:: MM M Aq!72q!#4 5 @ @ADVDV VV V Aq!71b!#4 5 @ @ADVDV VV V Aq!71a#4 5 @ @ADVDV VV V Aq!71a#3 4 ? ?166 II I Aq!71a#3 4 ? ?166 II I Aq!71a#3 4 ? ?166 II I 8O8 R<<   ** * ;;'!&&!&&!&&9 99 9 WQ2& ' 2 2a6H6H HH HrCc tdd}t|tdd}t|tddd}t|tddd}t|tddd}t tddtdd}tdt t zdz tdt fdt fvsJtt t zdz dtt dft dfvsJtdddtddvsJtdddtddvsJttdddtdddjgd usJttdddtdddjttdddtdddd usJ|jtddd usJ|jd d usJ|jd d usJ|j|d usJ|jd d usJ|jdd usJ|jtd dd usJ|jtddd usJ|jtddd usJ|jtddd usJ|jt|tdddd usJ|jttdddtdddd usJ|jtdddd usJ|jtdddd usJttdddtdddjgd usJtdtttfjdtzdtzdtzfsJttd 5t|tdddjtddd usJ dddttd 5|jtddd usJ dddy#1swYDxYw#1swYyxYw)NrrRr8r6r4r<rrTFrrZrg)r6r4rr])r<r7)r4r4)r4r7rrrtest_stacklevel?)rrrrrr2r3rrrrr&r)r*r% UserWarning)r~rrrrls r@ test_containsr)s/ q!B Ba A r71a$ %B r71a# $B r71a# $B U1a[%1+&A QUaK GQFQF$; ;; ; !a%1a GQFQF$; ;; ; 1a yI> >> > 1a yI> >> > WQ1%wq!Q'7 8 A A" E MM M WQ1%wq!Q'7 8 A A'!Q"GAq!$45 7:? @@ @ ::eAqk "d ** * ::f  %% % ::f  && & ::b>T !! ! ::f  %% % ::f  && & ::gff- .$ 66 6 ::gff- .% 77 7 ::c&&) *d 22 2 ::c&&) *e 33 3 ;;yWQ3%78 9T AA A ;;yAq!171a3CD E NN N ;;wq!Q' (D 00 0 ;;wq!Q' (D 00 0 Aq!71a#3 4 = =b AU JJ J )aAY ' 0 0!a%QA1F GG G {E 2Ob'!Q*+44U3_ENNNO {E 25{{5c?+u44455OO55s5Q, Q"Q"Q+ctd\}}}}tt||t||}t|tddz|dz z|tddz|dz z}|j |sJy)Nz u, v, w, zr<r4)r rrrr)uvwr*rrs r@test_contains_nonreal_symbolsrSsp&JAq!Qa U1a[)A aA1$aA&61&<=A ::a==rCctdd}tdd}tj}ttddtdd}tt||tdd}t ||}|j tdddk(sJ|j ddk(sJ|j tddd|zdz k(sJ|j tt ddz t ddz d|zk(sJt||j tddtdk(sJt||j tddtdk(sJt||j tdddk(sJt||j dtdk(sJtddj |dk(sJtddj |dk(sJtdd j |dk(sJtdd j |dk(sJ|j tddtdk(sJ|j tdddk(sJ|j tddtdk(sJt d d j td ddtdzd z k(sJ|j d dk(sJy)Nrr6rZr<r4r8rrr6rrgr?rR) rrrsrrrrrr )r~rhalfrs2rs r@test_distance_2drZs q!B q!B 66D q!eAqk *B tT"E!QK 0B B A ;;uQ{ #q (( ( ;;v ! ## # ;;uQ{ #qDy1} 44 4 ;;uXa[1_hqkAo> ?19 LL L B< r1 .$q' 99 9 B< q" .$q' 99 9 B< q! - 22 2 B<  )T!W 44 4   ( ( , 11 1   ( ( , 11 1   ( ( , 11 1   ( ( , 11 1 ::eBm $Q // / ::eAqk "a '' ' ::eBl #tAw .. . vv  ' 'c1 6!d1g+/ II I ::f  "" "rCcttd5tddtddk(sJ dddy#1swYyxYw)NFrrg)r<r6r<r)r%rrrprCr@test_dimension_normalizationrwsA {E 2C69%Y )BBBBCCCs 8Ach tdddtddd}}ttddz tddz tddz }ttdddtddd}tttjtjtjtddd}t ||}|j |dk(sJ|j |tddz k(sJ|j |dtdzdz k(sJ|j ddk(sJ|j dtddz k(sJ|j |dk(sJ|j |tddz k(sJ|j |dtdzdz k(sJ|j ddk(sJ|j dtddz k(sJt||j tddddtdzdz k(sJt||j tddddtdzdz k(sJt||j tddddk(sJt||j ddk(sJt||j d dtdzdz k(sJtdd j |dk(sJtdd j |tdk(sJtdd j |dk(sJtdd j |tdk(sJtdd j tdd dk(sJtdd j tdd dk(sJtdd j td ddk(sJtdd j td ddk(sJtdd j tdddk(sJtdd j td d dk(sJtdd j tdd dk(sJ|j tdddtdk(sJ|j tddddk(sJ|j dtdk(sJ|j ddk(sJt ddj ddtdzdz k(sJt ddj tdddtddz k(sJt ddj tdddtddz k(sJy)Nrr6r4r<rrr8)r<r<r<)r6r8r6rrrr6r<)rrr)rr6r<rr6r6)r<rrrrr6)r6r6r4)r8r8r8ri)r6r6r<)r8r8r<rRrr; N) rrrrrsrrr rr )r~rrrrrs r@test_distance_3dr|s/ Q1 wq!Q/B !q(1+/8A;? CB 71a#WQ1%5 6B 71661661662GAq!4D EB b" A ;;r?a   ;;r?d1gk )) ) ;;r?a$q'kAo -- - ;;y !Q && & ;;y !T!Wq[ 00 0 ;;r?a   ;;r?d1gk )) ) ;;r?a$q'kAo -- - ;;y !Q && & ;;y !T!Wq[ 00 0 "b> " "72q!#4 5T!Wq HH H "b> " "71b!#4 5T!Wq HH H "b> " "71a#3 4 99 9 "b> " "9 - 22 2 "b> " ": .!d1g+/ AA A )Y ' 0 0 4 99 9 )Y ' 0 0 4Q ?? ? )Y ' 0 0 4 99 9 )Y ' 0 0 4Q ?? ? )Y ' 0 0 91M NRS SS S )Y ' 0 0 91M NRS SS S )Y ' 0 0 J1O PTU UU U )Y ' 0 0 91M NRS SS S )Y ' 0 0y)1L MQR RR R )Y ' 0 0y)1L MQR RR R )Y ' 0 0y)1L MQR RR R ::gb"b) *d1g 55 5 ::gaA& '1 ,, , ::l #tAw .. . ::i A %% % I & / / <DG a OO O I & / /R0D ERSWX XX X I & / /Q0B CtBxRS| SS SrCc  tdd}tdd}t||}tdt}ttttttdtz}|j |j j ttddtddsJ|j |j ttddtddsJtttttttjtt tj ttt ttt dtztz sJ|j|j j ttddtddsJ|j|j ttddtddsJ|jtdddttdzzttdzdzz z j dsJt|tdddj tddd usJttdddtdddj ttd ddtdddd usJttdddtdddj t|tdddd usJt|tdddj tddd usJt|tdddj t|tdddd usJtd ttfj tdddj ttdddtt j"t j"dsJtd ttfj%tdddj t'd t j"t j"fsJt|tdddj tddd usJy)Nrr6)rr7rr8r<r4rFrTrZr)rrr0r,rargsrr-rrabsr rrrr.rrsrqr)r~rrvrwrs r@ test_equalsrs q!B q!B b"B fA B eBmU2q2v. /B  ) 0 0eAqk5B<1P QQ Q  $ + +Dq!eArl,K LL L b" uR} - ; ;E2#rN KtE2#rNE2#q2v{$;<= >> >  BGG $ + +Dq!eArl,K LL L  B  & &tE!QKq"'F GG G KKa $q3q1u:~Q!VaZ8H'H H P PQR SS S "gaA& ' . .uS# ?5 HH H '!Q"GAq!$4 5 < > > &1a& ! 7 7aA G N NyY_bcbhbhjkjpjpaqOr ss s "gaA& ' . .uS# ?5 HH HrCctdd}tdd}t||}ttttttdtz}t|j t t z t t z fvsJt|j t tz tt z fvsJt|j t t z t t z fvsJt|j t tz tt z fvsJt|tddj t t t k(sJt|tddj t k(sJttddtddj t dz k(sJt|tddj t dz k(sJtttttttttj t t zt tzfk(sJttdddtdddj t t zdz t tzdz fk(sJttdddtdddj t dz t tzdz fk(sJttdddtdddj t dz t tzdz fk(sJttdddtdddj t t zdz tdz fk(sJttdddtdddj t dz t dz fk(sJttdddtdddj t dz tdz fk(sJttdddtdddj t dz tdz fk(sJy)Nrr6r:r<r4rR) rrr,requationr&r)rr-r*)r~rrvrs r@ test_equationrs q!B q!B b"B eBmU2q2v. /B BKKM "q1ua!en 44 4 BKKM "q2vrAv&6 66 6 BKKM "q1ua!en 44 4 BKKM "q2vrAv&6 66 6 E!QK ) )A ) 3q 88 8 E!QK ) ) +q 00 0 a U1a[ ) 2 2 4A == = E!QK ) ) +q1u 44 4 %B#U2r2%6 (*!a!a( )) ) %1a.%1a. (*!a!aR!VaZ0 11 1 %1a.%1a. (*QQ + ,, , %1a.%1a. (*QQ + ,, , %1a.%1a. (*!a!QU+ ,, , %1a.%1a. (*QA '' ' %1a.%1a. (*QA '' ' %1a.%1a. (*QA '' 'rCc tdd}tdd}ttt}ttt}t||}ttddtdd}t tddtdd}t tddtdd}t ||}t tddtdd} t tddtdd} t ||} t tddtdd} t tddtdd} t |||gk(sJt |ttdtzgk(sJt |t|||gt||gfvsJt ||jttdtzgk(sJt |||gk(sJt |||gk(sJt || | gk(sJt | || gk(sJt t tdd td d t td d td d gk(sJt |||gk(sJt |t tddtddt tddtddgk(sJt |t tddtd d tddgk(sJt |t tddtddt tddtddgk(sJ|j | | gk(sJ|j t tddtddgk(sJ|j t td d tddt |tddgk(sJ|j t ||| gk(sJt ||j | gk(sJ|j | | j |cxk(r| gk(sJJtd dj tddtddgk(sJtddj td dtddgk(sJt tddtddj t tddtdd t tddtddgk(sJtd dj tddtddgk(sJtddj td dtddgk(sJtd dj tddtdgk(sJtd dj tddtddgk(sJtd dj tddtd dgk(sJtd dj tdd tddgk(sJ| j t tddtddtddgk(sJ| j t tddtddt tdd|gk(sJ| j t tddtd d gk(sJ| j t td d ||gk(sJ| j t td d tddt |tddgk(sJ| j ttddtddgk(sJ| j | | gk(sJ| j | | gk(sJtdddttddtddtdtdtzdz ztdtzdz z dt!dztdtzdz ztdtzdz z k(sJtd dj t ddtddgk(sJtd dj t ddtddgk(sJt d dj t ddtddgk(sJt d dj t ddtddgk(sJt d dj#t ddd usJt ddtd dvsJ| j t dd!tddgk(sJy)"Nrr6r4rRr<?g?rrrr7r8rZ)r4rr)r<r)rRr)r7rrrrxr4r9Z-rgr])rrrT)rRrR)rr,r-rrrrrrrrasarr rrr r)r~rrp4rvrrrr4r6r7rrs3s r@test_intersection_2drs$ q!B q!B r2B r2B b"B eAqk5A; 'B U1a[%1+ &B U1a[%1+ &B RB U1a[%1+ &B U3_eAqk *B RB tT"E#sO 4B q!eAqk *B B B4 '' ' E"a"f- ." 44 4 DRL )rdT"b\N-C CC C B,,U2q2v->? @B FF F B B4 '' ' B B4 '' ' B B4 '' ' B B4 '' ' c2b" >bRT W\]_abWc@d eik kk k B B4 '' ' Ca U1a[9 :wuQPQ{TYZ[]^T_?`>a aa a Ca U2r]; <q! MM M GE!QKq!= >75QRTU;X]^_abXcCdBe ee e ??2 2$ && & ??75A;a < = CC C ??75R=%S/B CPRTYZ]_bTcHdGe ee e ??3r2; 'B4 // / r2; # #B '2 -- - ??2 "//""5 =" == == =  - -eFF.C DvW]I^H_ __ _  - -eFF.C DvW]I^H_ __ _ uQ{E!QK ( 5 5c%1+uQPR|6T U E!QKq! - . // / VV $ 1 1&&! #'0'@&A BB B VV $ 1 1&&! #'0'@&A BB B VV $ 1 1&&! #'.v&7 88 8 VV $ 1 1&&! #'0'@&A BB B VV $ 1 1'6" $(1&&(A'B CC C VV $ 1 1'6" $(/1  77 7 ??75A;a < =%1+ NN N ??75c?E#sOD E'RWX[]`RaceJfIg gg g ??75A;a < = CC C ??75R="5 62$ >> > ??75R=%S/B CPRTYZ]_bTcHdGe ee e ??4a U1a[9 :b @@ @ ??2 2$ && & ??2 2$ && & sAr? Q{Q{R#b2gl++c!b&2+.>>a[3rBw|#44s1r6B;7GGI J JJ J   , ,S-@ AeAqk] RR R   , ,WVV-D E%PQST+ VV V vv  + +C,? @U1a[M QQ Q vv  + +GFF,C DqRS UU U vx ) )'&&*A Bd JJ J 66 "d68&< << < ??3vv. /E!QK= @@ @rCc .tttddz}td}|dz}d|z||zz d|zd|z|zz |dz z g\}}t t ddt dtd j t ||d usJy) N rr4r<rrr6T)rrrr rrr)x0r,x2r&r)s r@test_line_intersectionrRs RR !B aB QB bD"r'NRUQrT"W_rAv6 7DAq a U1tAwh/ 0 9 9%1+ F$ NN NrCc tddd}tddd}t||}ttdddtddd}ttdddtddd}ttdddtddd}ttdddtddd}t |||gk(sJt |tt dt zdgk(sJt ||j |ttdddtdddgk(sJt |||gk(sJt |||gk(sJt |||gk(sJt |ttdddtdddtdddgk(sJt |ttdddtdddttdddtdddgk(sJt ttdddtdddttdddtdddtdddgk(sJt |ttdddtdddttdddtdddgk(sJt |||gk(sJttdddtdddj ttdddtdddtdddgk(sJtddj tdd tdddgk(sJtd ttfj td ttftttgk(sJttdddtdddj ttdddtdddgk(sJy) Nrr6r4rRr<r8r)rr<r4rrZr)rrrrrr,rr.)r~rrvrwrrrs r@test_intersection_3dr[s Aq B Aq B BB 1a '!Q"2 3B wq!QAq!1 2B wq!QAq!1 2B 71a#WQ1%5 6B B B4 '' ' GBB2 3r 99 9 B,,R0 1fWQ1=MwWXZ[]^O_6`5a aa a B B4 '' ' B B4 '' ' B B4 '' ' E'!Q"2GBB4GH IgVWYZ\]N^M_ __ _ IgaA&61a8HI J'!Q"GAq!$45O7 77 7 gaA.Aq0ABE'RSUVXYJZ\cdegikl\mDn oq!Q  !! ! E'!Q"2GAq!4DE F gaA&1a(8 9 : ;; ; B B4 '' ' '!Q"GAq!$4 5 B B6'RSUVXYJZ\cdeghjk\lCm n Aq!     )Y ' 4 4VIy5Q RW^_`bcefWgVh hh h &1a& ! . .vfq!f/E F AqM?   Aq!71a#3 4 A A%PQSTVWHXZabcegijZkBl mqs ss srCc Btddd}tddd}tttt}ttttttt}ttttttdtz}tj ttddtdd|sJtj |ttttttdtzdusJtj ||j tt tsJtj ||j tddsJt||j t||sJttdddtdddj ttdddtddddusJt||j |tttttttdztdztdzk(sJt||j |jtttttttdztdztdzk(sJttdddtdddj ttdddtddddusJy)Nrr6FrR) rr,rrr- is_parallelrrr)r~rrrwl2_1s r@test_is_parallelr sw Aq B Aq B R B eBmU2r] +B b" uRR0 1D   Dq!eAqk:B ?? ?   BU2r]E"a"f4E F G5 PP P   B 0 0sB @ AA A   D$"4"4U1a["A BB B "b> % %fRn 55 5 '!Q"GAq!$4 5 A A&QRTUWXIY[bcdfgij[kBl mqv vv v "b> ' ' +vgb"b6I6=b1fb1fbSTf6U0W WW W "b> ' ' 0 '"b"%wrAvrAvrAv'F G HH H '!Q"GAq!$4 5 A A&QRTUWXIY[bcdfgij[kBl mqv vv vrCc tdd}tdd}t||}ttttttt}t|tt t}tj||sJtj||dusJ|j }|j ||k(sJtjttdddtdddttdddtddddusJtjttdddtdddttdddtddddusJtjttdddtdddtttttttttdusJyr}) rrr,r-is_perpendicularrrqrr)r~rrvrwl1_1rs r@test_is_perpendicularrs q!B q!B b"B eBmU2r] +B E2#rN #D  T ** *  R (E 11 1 A # #A &! ++ +  " "6'!Q*:GAq! ?75QRTU;X]^_abXcCd dd d ==U1a[%B-8 9U1a[ HH H ==U1a[%B-8 9WU1a[RWXY[\R]=^ ^^ ^ ==r1uR~> ?75QRTU;X]^_abXcCd dd d ==r72q!#45 6%1a@PRYZbcdfgZhjrstvwjx{CDEGH{ISJ;K KK K ==r72q!#45 6%1a@PRYZbcdfgZhjrstvwjx{CDEGH{ISJ;K KK K ==Aq) *gam ;; ; ==1a 0'!Q2BC D K KB OO OrCctdddtdddtddd}}}t||}|j|}|j|k(sJ|j|vsJtddtddtdd}}}t||}|j|}|j|k(sJ|j j ||j|z j k(sJy)Nrr<r4rRr)rrrr~r directionunitr)r~rrrrs r@test_perpendicular_linersq!Qq!Qr1aBB R A R A 442:: 44199q!eAqk5Q8BPQ?-ST]]G $ $ & - -e 44 4 $ $W - 4 4WR[['5R SS S $ $Wv%5 6 = =e DD DrCctdd\}tdf|dfttdttdtt fdttdttd ttd ttd ttd tt d y)Nr/Tr'rctddSNrgr6r?rprCr@rAztest_raises..s d61orCcBttddtddSNr)rrrprCr@rAztest_raises..stE!QKq!=rCc&tdzdvS)Nr<r)r)dssr@rAztest_raises..sa!eQ1 4rCc,ttddS)Nr)rrrprCr@rAztest_raises..suU3_5rCcFttdddtdddSr#rrrprCr@rAztest_raises..svgaA&61a8HIrCctddSr!)rrprCr@rAztest_raises..s fVQ/rCc.ttdddSr#r)rprCr@rAztest_raises..svgaA&67rCctddSr!)rrprCr@rAztest_raises..s c&!nrCcttddtddjttdddS)Nrr6)rrrrrprCr@rAztest_raises..s3$uQ{E!QK"@ JveAqk1- .rC)r rr$ TypeErrorrLr!r)er%r&s @@r@ test_raisesr0s 5t $DAqAAA 9-. :=> ;45 :56 :IJ 9/0 :78 9,- =/0rCctdtdz tddk(sJtdtdz tddk(sJtdt dz tddk(sJtddtzdz tddk(sJtdd tzdz tddk(sJtdd tzdz tddk(sJtdttdd k(sJtdd tztdd k(sJtdd tztddk(sJtddtddk(sJtddtzttddtdtd  tdtd zdzzdz tdtd zdzdz z dztd zk(sJtddtzttddtddt dtzzk(sJtdd tdddt d zfk(sJt dgdt t dddt d d d k(sJt dgdt t dddt dddk(sJt dgdt t dddt dddk(sJy)NrgrRr[rr<r]rr;r7g@rg@g@)r<r6rg333333@r6rgGz@ri)rRrRrRrkrjr4)rrrr rrrrprCr@test_ray_generationr2 s vR!V $FF(; ;; ; vR!V $FF(; ;; ; vbS1W %VV)< << < vR"Wq[ )S-@ @@ @ vQVaZ (C,? ?? ? vS2X\ *c&&.A AA A vR C$7 77 7 vS2X &#ff*= == = vS2X &#ff*= == = vQ 3vv#6 66 6 vTBY '3uQ{/4Qa4DQRG VXHXCY8Y\]8]`d34tAw;3CaEGHaI9IKL9MOSTUw9W0X,Y YY Y vTBY '3uQ{/4QCr N8J/K,M MM M vQ 3v1s1v:#? ?? ? I 6%1a@PRYZ[]^`aRb:c cc c I 6%1a@PRYZ[]^`aRb:c cc c I 6%1a@PRYZ[]^`aRb:c cc crCcJtttdt}t tt t d}ttt z tt zz}|j|tt|zt tt|z t gk(sJy)Nrr) rrr&r)rr+r*r rr)circleline_ss r@test_issue_7814r7#sp E!QK #F a 1 %D q1uq1uo B   V $R);WQVQ=O(P PP PrCcVfd}d\d\|d\|y)NcttttfgdzD]<\}}|}|}|j ||j |k(r._check+s`dC12Q67 >DAq1aB1aB??2&"//"*== == >rC))rrr)rZrg))rr;rrp)r=r2r3r<r%s @@@@r@test_issue_2941r>*s/> DAq DAq H DAq HrCctdtddtdd}}t||jddik(sJt t fdy)Nr.rr6r7r)r7rc(jdS)NrZ)parameter_value)rr.sr@rAz&test_parameter_value..>sq00;rC)r rrrAr$rL)r~rrr.s @@r@test_parameter_valuerB9sVs A 1a[%1+B R A  VQ 'Aq6 11 1 :;>! B!2 3 33 3rCcttddtddjd}ttddtddjd}t|j |ddk(sJt dd }t d d jd}t|j |dd k(sJt d d jd}|j |rJy)Nrr6g\(\?gHzG?r<gQ?zPoint2D(0.82, 0.82)rZrgrrzPoint2D(-0.33, -0.33))gr)rrnstrrrr)rrrvrws r@test_issue_12598rNUs U1a[%d+--a0 1B U1a[%d+--a0 1B rr"1% &*? ?? ? ff B ' " $ $Q 'B rr"1% &*A AA A + & ( ( +Br"" ""rCN)`sympy.core.numbersrrrrsympy.core.relationalrsympy.core.singletonrsympy.core.symbolr r (sympy.functions.elementary.miscellaneousr (sympy.functions.elementary.trigonometricr r r sympy.setsrsympy.simplify.simplifyrrsympy.geometryrrrrrrrrrrrrrrr sympy.geometry.liner!sympy.geometry.polygonr"rrr#sympy.testing.pytestr$r%r&r)r*r+r,r-r.r2r3r0rMrPrXr_rbrerxr{rrrrrrrrrrrrrrr rrrrrrr0r2r7r>rBrHrJrNrprCr@r[s88$"/9EE,8,.,. 3T 3T 3T 3T Dt Dt 3Tu4 1 Cd50& S#< CJ$S B""JJCZ*IZ'5T#:C -T`I4'DMATO!tHw*^* NC PF < E 0 d.Q  = /4 #rC