K i0ddlmZmZddlmZddlmZmZddlm Z ddl m Z m Z m Z ddlmZmZmZmZmZmZmZmZmZmZddlmZddlmZd Zd Zd Zy ) )Rationalpi)S)Dummysymbols)sqrt)asincossin) LinePointRaySegmentPoint3DLine3DRay3D Segment3DPlaneCircle) are_coplanar)raisesc /tdd\}}}}}tdddtddd}tddd}t||}td }t|} t|d } ttddd d } ttdd dd } td } td }td }t|d }ttdddtddd}ttdddtddd}ttdddtddd}t t fdt||t||k7sJt||j t||sJt||j sJt||j tddusJtd j tdsJ|ttdddd k(sJ||k7sJ|| k(sJ| ttdddd k(sJ| j||||d|zzd|zzdz k(sJ|j||||d|zz |zk(sJ|jk(sJ|jk(sJ| j|k(sJ|jdk(sJ| jd k(sJ|vsJ|vsJ|| vsJ|jtddk(sJ|jtdddttd dtddtddk(sJ|vsJ|jttddtdd}|ttdddttd dtddtddk(sJ||vsJt!}|j#}|j%|j'|}t)|j+|d|j+|d}|j|vr|j,|vsJ|j|j/|sJ|jt1tddtddt)ttddtddtddttd dtddtddk(sJ| jt3tddtddt5ttddtddtddttddtddtddk(sJ|j%|j6|j%|k(sJ|j9| dusJ|j9| sJ|j9t|sJ| j9|dusJ|j;| sJ|j;| sJ| j;| sJ| j;|dusJ| j;|dusJ| j;tddsJ| j;ddusJ| j=| j'||dk(sJ| j=| j'||dk(sJ| j=| j'|dk(sJ| j=| j'|dk(sJ| jj=| j'|j?dk(sJ| jj=| j'|j?dk(sJ|j'|ttAd  tC|zd z dtAdztE|zdz ztAd tC|zd!z tAdtE|zdz ztAd tC|zdz k(sJ|j'||td|z|z |d|zzd|zk(sJ| j=tddddtAdzdz k(sJ| j=tdddd"tAdzk(sJ| j=| jdk(sJ| j=| dk(sJ| j=|dk(sJ| j=t)tdddtddd"| j=tddd"cxk(rd"tAdzdz k(sJJ| j=t)tddd"tddd | j=tddd cxk(rdtAdzdz k(sJJ| j=t)tddd tddddk(sJ| j=t)tdddtddddk(sJ| j=t)tdddtd#dd$| j=tdddcxk(rdtAdzdz k(sJJ| j=ttdddd% tAdk(sJ| j=t5tddd"gd&'d"tAdzdz k(sJ| j=t5tdddgd('dk(sJ| jG|tHdz k(sJ| jG| dk(sJ| jG|dk(sJ| jGttdddtdd"dtKtAddz  k(sJ| jGt5tdd"dtdddtKtAd dz k(sJ| jGt)tdddtddd"tKd tAd)zd)z k(sJtM|||dusJtM|dusJtMtdd dtdddtdddtdddsJtMt||t||sJtjN||| dusJtjN| dusJt t d*t t d+|jQtdddttdddd k(sJtdd,jSttdddd-k(sJjStdddttdddd-k(sJjSd.dttdddd/k(sJt t fd0tdddtddd}}d}t|| jS||t|d,k(sJt|}jS||t|d1k(sJt||j6 jS|||zttdddd,k(sJt|| jS|||zttdddd1k(sJt||j6 jS|||zttdddd,k(sJt|d jSt|d, k(sJ| jU| | gk(sJ|jU|j|jgk(sJ|jU| ttd2d"dtdd"dgk(sJ|jUttddd"td"d"dtdtd2dtddgk(sJ|jUttdddd3 ttd4d5dtd6d7dgk(sJ| jUt5tdddtddd"tdddgk(sJ| jUt)tdddtddd"gk(sJ| jUttddtd"dttddtdd"dgk(sJt3tddtd"d}td8d jU|t5tddtd"dgk(sJ|jU| ttdddtd9ddgk(sJ|jU|ttdddtdddgk(sJ|jU| ttdddtdddgk(sJ|jU| gk(sJ|jU|ttdddtd9ddgk(sJ|jU|ttdddtd9dd5gk(sJ|j#|vsJ|j#d:|vsJ|jU|jdj/|jsJ|jU| dj/ttd2d"dtdd"dsJtd8d } | jUtd;dj/tdd<sJ| jUt5d;dj/t3dd;sJ| jUt)d=dj/t)d=sJ| jUtd> dj/| sJ| jUtd dj/td?tHzddf'sJ| jUtd@ dj/tdA'sJ| jUtdB dj/tdC'sJ| jUtdD dj/tdE'sJ|j#|vsJtW| jUt5tdddtddddk(sJ| jU| dj/| sJ| j/td dusJ| j/| sJ| j/tdF sJ| j/tddd5tAdzf sJ| j/dusJtttdGdHtdIdJtdKdLttdGdMtdNdOtdKdL}tttdPdLtdQdLtdRdLtYdS tYdT tYdUf}t[|jU|Dcgc]}|j]dc}dVk(sJycc}w)WNz x y z u vT)realrrrr normal_vectorrrr)rrri)rrrrr)r r)r#rrr# ctS)Nr)p1se/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/geometry/tests/test_plane.pyztest_plane..suRR0F rrr)rr)r:r:)rrr8)direction_ratio)r'rrcBtjtdddS)Nr)rare_concurrentrr.r,r-ztest_plane..su33GAq!4DEr.ctddS)Nr r4rr*r?r.r,r-ztest_plane..s uYiHr.rrr)rrrrrr)rrr'c*jdddS)NrBr)rrr)perpendicular_plane)psr,r-ztest_plane..sq44Y 9Ur.)r'rrr:)rr"riii)rrrr%)seed)rr%r)g?g333333?r)rr)rrprI)r1rr)rr)rrr1)rr1r)r'r'rJ)rr'r)rrrFlq,5lPrN0l6/,lI5lAPparallel_planerD intersectionlenrstrn)xyzuvrTp3pl3pl4pl4bpl5pl6pl7pl8pl9pl10pl11l1l2l3ltrasbZr`irEr+s @@r, test_planer| s*Kd3MAq!Q Aq B Aq B Aq B B C ) ,C R=D ) ,C 1a :C 2r"* =C ) ,C * -C : .D 9 -D 1a '!R"3 4B 2q!71a#3 4B 2q!71b!#4 5B :01 R b"b 1 11 1 R  ( (r2r): ;; ; R  ( ( ,, , R  ( (A 75 @@ @ 9 - 9 9&Q- HH H %1a( C CC C #:: $;; %1a( B BB B <<1a A!GacMB$6 66 6 <<1a A!GaK // / 66R<< 66R<< 66R<<    )) )    )) ) 99 99 99 >>%1+ &" ,, , wq!Q'(A AAAG GG G 8O8 Dq!eAqk:;A wq!Q'!Q!QQYZ[]^Q_)`a aa a 8O8 A A q!11!4A!&&A,q! -A 44s?qtt3. .   q ! ( ( ++ +   wuQ{E!QK@ A!Q!Q"aQSZ[cdegh[ikstuwxky|DEFHI|JTKL LL L   s5A;a < =WXb!_hr1oxAOQXYabdfgYhjrsuwxjy|DEGIJ|KRLM MM M  ! !!&& )S-C-CA-F FF F ??3 5 (( ( ??3   ??4B< (( ( ??2 % '' '    $$ $    $$ $    $$ $    $ -- -    #u ,, ,   Y : ;; ;    '5 00 0 <<++Aq1 2a 77 7 <<++Aq1 2a 77 7 <<++A. /1 44 4 <<++A. /1 44 4 66??3..q1 2 ; ; = BB B 66??3..q1 2 ; ; = BB B   q !Wd2hYs1v-=b-@ $q' #a&. HSVOB.aQ1AA48CPQF?STCT&V VV V   q! $!aQqS!A#(F FF F <<1a( )QtAwYq[ 88 8 <<1a( )QtAwY 66 6 << 1 $$ $ <<  !! ! << q  << '!Q"2GAq!4DE F WQ1%& 6*+DG)A+ 66 66 6 << '!Q"2GAq!4DE F WQ1%& 6*+DG)A+ 66 66 6 << '!Q"2GB24FG HA MM M << '"a"4gb!R6HI Ja OO O << '"a"4gb!R6HI J WRB'( 8,-d1gIaK 88 88 8 <<gaA.iH ITRSW TT T <<gaA. K LPQRVWXRYPYZ[P[ [[ [ <<gaA. K LPQ QQ Q   S !RT )) )   S !Q && &   S !Q && &   VGAq!$4gaA6FG H d1gai     U71a#3WQ15EF G T!WQY     Ywq!Q'7Aq9IJ K QtCy[_   B #u ,, ,  u $$ $ 1a('!Q*:1a'!Q* ,, , b"b)5R+< == =   S# .% 77 7    $ -- - :EF :HI   gaA. /5Aq9IDN4P PP P i#A "eGAq!, >> > !&& ) = =aQ G gaA * ++ + ! $ 8 8AE B gaA + ,, , !&& ) = =aQ G gaA * ++ + ay)A "eAY&G GG G   C SE )) )   CFF #x // /   C wq!QAq!12%4 44 4   F71Qq>71Qq>B C8Aq>8B?3H5 55 5   E'!Q"2*M WS#q)73R+@A B CC C   E'!Q"2GAq!4DE FArK     IgaA&61a8HI Jb PP P   Dq!eAqk: ;Q!Q3@5 55 5 E!QKq!%A  0 = =a @ eAqk5A;'E) )) )   C VGAq!,O%P$Q QQ Q   T "vgaA.>1a@P'Q&R RR R   C VGAq!,O%P$Q QQ Q   S !R '' '   D !fWQ1-=wr1a?P&Q%R RR R   C VGAq!,Q%R$S SS S     $$ $     #s ** *   CFF #A & - -cff 55 5   C  # * *6'!Q2BGAqRSDT+U VV V   3C   F2z2 3A 6 = =d9m>\ ]] ]   E"j1 21 5 < U "" " ? !13CD /BD@ !1?C /BD EB wxAAAC%&&+A)B(B% B  341A4 5 ' (( (4s^0A_c ttdddd}tdd}|j|tt ddt ddt ddk(sJtddtdd}}d}t||}|j ||ttdddd k(sJtd d d j d tdddgk(sJy)Nrrrrr&rrr$rA)rrr)rrr)rrr)rr)rrr rNrrDr])AryrwrzrEs r,test_dimension_normalizationrs gaAi8A a A <<?eHQNHQNHQPQNS SS S A;1 qAA aq!A A &%1a0@)*L LL L Iy ,v 5Aq>"2 33 3r.ctd\}}tdddtdddtddd}}}t|||jdt dt dzdz ik(sJjd|||d|dik(sJj||k(sJt tfdt tfd t tfd y) Nzt, u vrrrr8rrr2rc(jdS)NrAparameter_valuerErusr,r-z&test_parameter_value.. sq00A>r.c djttddtddS)Nrr)rr r rsr,r-z&test_parameter_value.. s(q00eAqk5A;1OQRSr.c*jddS)Nrrrrsr,r-z&test_parameter_value.. sq00QBr.)rr rrr rrrK)rdrer+rTrfrErus @@r,test_parameter_valuershGAq!q!Qq!Qq!QBB b"bA  Z +4$r( 2 3F/G GG G  ZA .1aA, >> >  R #r )) ) :>? :ST :BCr.N) sympy.core.numbersrrsympy.core.singletonrsympy.core.symbolrr(sympy.functions.elementary.miscellaneousr(sympy.functions.elementary.trigonometricr r r sympy.geometryr r rrrrrrrrsympy.geometry.utilrsympy.testing.pytestrr|rrr?r.r,rs8-".9EEfff,'h(V 3 Dr.