+
    i                        ^ RI HtHtHtHt ^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t& ^ RI'H(t( ^ RI)H*t+ ^ RI,H-t- ^ RI.H/t/H0t0 ]
! RRR7      t1]
! RRR7      t2]
! RRR7      t3]
! RRR7      t4]
! RRR7      t5]
! RRR7      t6]
! RRR7      t7]! RRR7      w  t8t9]! RRR7      t:R t;R t<R t=R t>R t?R t@R  tAR! tBR" tCR# tDR$ tER% tFR& tGR' tHR( tIR) tJR* tKR+ tLR, tMR- tNR. tOR/ tPR0 tQR1 tRR2 tSR3 tTR4 tUR5 tVR6 tWR7 tXR8 tYR9 tZR: t[R; t\R< t]R= t^R> t_R?# )@    )FloatRationaloopi)Eq)S)Symbolsymbols)sqrt)acoscossin)EmptySet)simplify)tan)CircleGeometryErrorLinePointRaySegmentTriangleintersectionPoint3DLine3DRay3D	Segment3DPoint2DLine2DPlane)Undecidable)_asa)cartes)raiseswarnsxTrealyzkx1y1ta,bmc                  v  a aaa ^ RI HoHoHo Ho \        ^S,          S,           ^,           4      \        \        ^ R4      \        ^R4      4      8X  g   Q h\        ^S,          ^S,          ,           ^,           4      \        \        ^ \        R^4      4      \        ^\        R^4      4      4      8X  g   Q h\        ^S ,          S,           ^,           RRR7      \        \        ^ R4      \        ^R4      4      8X  g   Q h\        ^S,          S,           4      \        \        ^ ^ 4      \        ^R4      4      8X  g   Q h\        SS,           4      \        \        ^ ^ 4      \        ^R4      4      8X  g   Q h\        \        ^S ,          S,           R4      RSR7      \        \        ^ R4      \        ^R4      4      8X  g   Q h\        S^,
          4      \        \        ^^ 4      \        ^^4      4      8X  g   Q h\        ^S,          ^,
          SR7      \        \        ^ ^4      \        ^^4      4      8X  g   Q h\        S4      \        \        ^ ^ 4      \        ^^ 4      4      8X  g   Q h\        ^S,          SR7      \        \        ^ ^ 4      \        ^ ^4      4      8X  g   Q h\        SSR7      \        \        ^ ^ 4      \        ^ ^4      4      8X  g   Q h\        \        VV3R l4       \        \        V V3R l4       \        \        VV3R	 l4       \        \        V V3R
 l4       \        \        VV3R l4       R# )r   )r&   r)   abr2   r3   r&   r)   )r)   )r&   c                  (   < \        S S,          4      # Nr   r4   s   \/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/geometry/tests/test_line.py<lambda>+test_object_from_equation.<locals>.<lambda>/       tAE{    c                  .   < \        S S,          R RR7      # r2   r3   r4   r7   r2   r3   s   r8   r9   r:   0       tAESC8r<   c                  (   < \        SS ,          4      # r6   r7   r4   s   r8   r9   r:   1   r;   r<   c                  .   < \        SS ,          R RR7      # r>   r7   r?   s   r8   r9   r:   2   r@   r<   c                  D   < \        S ^,           ^,          S,           4      # )   r7   r4   s   r8   r9   r:   3   s    tQUQJN3r<   Nii)	sympy.abcr&   r)   r2   r3   r   r   r   r   r   r$   
ValueError)r2   r3   r&   r)   s   @@@@r8   test_object_from_equationrJ      sl   $$!a"3C!IIII!a!ea F8B?#WQQ%@%B B B B!a"s+v3C0* * * *!a=F71a='!R.AAAAA;&A2????1Q37C C1-3C2* * * * A;&A1>>>>!a11wq!}!EEEE7fWQ]GAqM::::!q>VGAqM71a=AAAAQ<6'!Q-A????
:*+
:89
:*+
:89
:34r<   c                R    \        R4      pV) W,
          u;8  ;'       d    V8  # u # )z.Test if two floating point values are 'equal'.z1.0E-10)r   )r2   r3   t_floats   && r8   feqrM   6   s)    IG8ae%%g%%%%r<   c                  v   \        ^^^^4      p V P                  pV P                  p\        \        P
                  ! \	        \        ^ ^ 4      \        ^^4      4      \	        \        ^ ^ 4      \        ^^ 4      4      4      P                  4       \        P                  ! 4       ^,          4      '       g   Q h\	        W4      P                  \	        W4      4      \        ^,          8X  g   Q h\        ^ ^ ^ 4      p\        P
                  ! \        V\        ^^^4      4      \        V\        ^^ ^ 4      4      4      \        \        ^4      ^,          4      8X  g   Q h\        P
                  ! \        V\        ^^^4      4      \        \        ^^ ^ 4      V4      4      \        \        ^4      ) ^,          4      8X  g   Q hR# rD   N)r   orthogonal_directionoriginrM   r   angle_betweenevalfr   r   r   r   r   )r2   r3   or*   s       r8   test_angle_betweenrU   <   sp   aAqA	A	At!!$uQ{E!QK"@"&uQ{E!QK"@BBG%'288:XY>[ [ [ [:##DJ/269991aAq'!Q*: ; &q'!Q*: ;=@DT!Wq[@QR R R q'!Q*: ; &wq!Q'7 ;=@Dd1gXPQ\@RS S Sr<   c                     \        R^ R7      p \        R\        ^,          R7      pV P                  V4      \        ) ^,          8X  g   Q hVP                  V 4      \        ^,          8X  g   Q hV P                  V 4      ^ 8X  g   Q hR# )r   angleNr   r   rD      )r   r   closing_angler?   s     r8   test_closing_angler]   K   sm    F!AF"Q$A??1"Q&&&??1A%%%??1"""r<   c                      \        \        ^^4      \        ^^4      4      p \        \        ^^4      \        ^^4      4      pV P                  V4      \        ^\	        ^4      ,          ^,          4      8X  g   Q hR# rO   )r   r   smallest_angle_betweenr   r   r?   s     r8   test_smallest_angler`   S   s\    U1a[%1+&AU1a[q!%A##A&$qay{*;;;;r<   c                  P   \        \        ^^4      \        ^^4      4      p V P                  4       R8X  g   Q h\        \        ^^ 4      \        ^^4      4      p V P                  4       R8X  g   Q h\	        \        ^^4      \        ^^4      4      p V P                  4       R8X  g   Q hR# )rD   z<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 1.00000000000000,1.00000000000000 L 1.00000000000000,2.00000000000000" marker-start="url(#markerReverseArrow)" marker-end="url(#markerArrow)"/>z<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 1.00000000000000,0 L 1.00000000000000,1.00000000000000" />z<path fill-rule="evenodd" fill="#66cc99" stroke="#555555" stroke-width="2.0" opacity="0.6" d="M 2.00000000000000,3.00000000000000 L 3.00000000000000,5.00000000000000" marker-start="url(#markerCircle)" marker-end="url(#markerArrow)"/>N)r   r   _svgr   r   )r2   s    r8   test_svgrc   Y   s    U1a[q!%A668  I  I  I  IaE!QK(A668  t  t  t  tE!QKq!%A668  C  C  C  Cr<   c                     \        \        ^ ^ ^ 4      \        ^^^4      4      p \        \        \        \        4      \        \
        \
        4      4      pVP                  4       V9   g   Q h\        R\        ^,          R7      P                  4       \        \        ^,           \        ^,           4      8X  g   Q h\        RR4      P                  4       \        ^\        ,           ^^\        ,          ,           4      8X  g   Q hV P                  V P                  4       4      V P                  4       8X  g   Q h\        R. ROR7      P                  4       \        \        ^,           ^\        ,          ^,           ^\        ,          ^,           4      8X  g   Q h\        \        ^ ^ ^ 4      \        ^^^4      4      P                  \        \        P                   \        P                   \        P                   4      8X  g   Q h\        \        \        \        \        4      \        \
        \
        \
        4      4      P"                  \%        ^4      \%        \        \
        ,
          ^,          4      ,          8X  g   Q h\        RR	4      P                  4       \        \        ^,           ^\        ,          ^,           ^\        ,          ^,           4      8X  g   Q h\'        \(        R 4       R# )
r   rW   direction_ratioc                  L    \        \        ^3R4      P                  \        4      # )rD   r[      )r   r&   arbitrary_point r<   r8   r9   &test_arbitrary_point.<locals>.<lambda>q   s    aVV 4 D DQ Gr<   NrD   rD   rh   rD   rD   rD   rD   r[   ri   r[   ri      )r   r   r   r   r,   r-   rj   r   r   r.   r   perpendicular_segmentr   r   midpointr   Halflengthr   r$   rI   l1l2s     r8   test_arbitrary_pointry   b   s   	1a '!Q"2	3B	eBmU2r]	+B2%%%vR!V$446QA  66"224a!eQQY8OOOO##B$6$6$89R=O=O=QQQQI6FFH1q5!a%!)QUQY/0 0 0WQ1%wq!Q'78AA166166166*+ + +WRR('"b"*=>EEaSWY[^`Y`efXfSgIggggY	*::<1q5!a%!)QUQY/0 0 0
:GIr<   c                     \        \        ^ ^ 4      \        ^^4      4      p \        \        \        \        4      \        \        ^\        ,           4      4      p\         P                  ! V 4      RJ g   Q h\         P                  ! W4      '       g   Q h\         P                  ! W W4      '       g   Q h\         P                  ! W\        \        ^\        4      \        \	        R^4      \        4      4      4      '       g   Q h\         P                  ! V \        \        ^ ^ 4      \        \        ) \        4      4      V4      RJ g   Q hR# )r   FNrG   )r   r   r,   are_concurrentr   rv   s     r8   test_are_concurrent_2dr|   t   s    	eAqk5A;	'B	eBmU2q2v.	/Br"e+++r&&&&rr....rtE!RL%QQS:T'UVVVVr4aUB3^#DbIURRRr<   c                     \        ^ ^ ^ 4      p \        V \        ^^^4      4      p\        \        ^ ^ ^ 4      \        ^^ ^ 4      4      p\        \        ^ ^^ 4      \        ^^^ 4      4      p\        P                  ! V4      RJ g   Q h\        P                  ! V\        \        \        \        \        4      \        \
        \
        \
        4      4      4      RJ g   Q h\        P                  ! V\        V \        \        \        \        4      4      \        \        \        \        \        4      \        \        ^\        ,           ^4      4      4      RJ g   Q h\        P                  ! W#4      RJ g   Q hR# r   FTN)r   r   r   r{   r,   r-   )p1rw   
parallel_1
parallel_2s       r8   test_are_concurrent_3dr   ~   s    	Aq	B	b'!Q"	#B1a('!Q*:;J1a('!Q*:;J  $---  T'"b"*=wr2r?R%STX]]]]  VBB0C%D!%gb"b&972q2vq;Q!RTW[\ \ \  8EAAAr<   c            	        ^ RI Hp  R^^.\        ^^4      3pV ! V^4      p\        \	        ^^4      \	        ^^4      4      pR. RO\        ^^^4      3pV ! V^4      p\        \        ^^^4      \        ^^^4      4      pR. RO\        ^^^^4      3pV ! V^4      p\        \        ^^^^4      \        ^^^^4      4      p	. ROp
V F  p\        V!   K  	  V
 F  pV F  p\        W<4      ! V4       K  	  K  	  V F  p\        V!   K  	  V
 F  pV F  p\        Wl4      ! V4       K  	  K  	  V F  p\        V!   K  	  V
 F  pV F  p\        W4      ! V4       K  	  K  	  R# )	zFunctions accepting `Point` objects in `geometry`
should also accept tuples, lists, and generators and
automatically convert them to points.)subsetsNrZ   ro   )rD   r[   rq   )rD   r[   ri   rq   )rD   r[   ri      )containsdistanceequalsparallel_lineperpendicular_linerr   
projectionr   )	sympy.utilities.iterablesr   r   r   r   r   r   getattrr   )r   	singles2d	doubles2dl2d	singles3d	doubles3dl3d	singles4d	doubles4dl4dtest_singlepfuncs                r8   test_argumentsr      se    2!Qq!-I	1%I
wq!}gam
,CIuQ1~6I	1%I
wq!QAq!1
2C|U1aA->?I	1%I
uQ1a %1a"3
4C1K
 ACq!   
 ACq!   a ACq!  r<   c            
         \        ^ ^ 4      p \        ^^4      p\        RR4      p\        W4      P                  4       p\        W4      P                  4       p\        W4      p\        \        \        \        4      \        \        ^\        ,           4      4      p\        V \        ^^ 4      4      p\        V \        ^ ^4      4      p\        \        ^ ^4      V 4      p	\        W4      p
V
P                  4       p\        R^R7      \        RR4      8X  g   Q h\        R\        R7      \        RR4      8X  g   Q h\        R\        R7      P                  R	8X  g   Q h\        R\        ) R7      \        RR4      8X  g   Q h\        W4      P                  ^^4      \        V \        ^^4      4      8X  g   Q h\        W4      \        W4      8X  g   Q h\        W4      \        W4      8w  g   Q hV\        \        \        \        4      \        \        \        4      4      8w  g   Q hWV8w  g   Q h\        W4      \        W 4      8w  g   Q h\        W4      V 8w  g   Q hW9   g   Q hW9  g   Q hV
\        W4      9   g   Q h\        \        ^ ^ 4      \        ^ ^4      4      \        \        ^ ^ 4      \        ^ ^4      4      9   g   Q h\        \        ^ ^ 4      \        ^ ^4      4      \        \        ^ ^ 4      \        ^ ^4      4      9   g   Q h\        \        ^ ^ 4      \        ^ ^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ 4      \        ^^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ 4      \        R
^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ 4      \        ^^ 4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ 4      \        ^^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ 4      \        ^R4      4      P                  \        P                  8X  g   Q hW9   RJ g   Q h\        W4      V
9   g   Q h\        \        \        \        4      \        \        ^\        ,           4      4      \        V \        R
^4      4      8w  g   Q h\        W4      P                   \        \        P"                  \        P"                  4      8X  g   Q h\        V \        \        ) \        4      4      P$                  \'        ^\        ^,          ,          4      8X  g   Q hVP(                  ^8X  g   Q hVP(                  \        J g   Q hVP(                  ^ 8X  g   Q h\        V \        ^ ^4      4      P(                  \        J g   Q h\        VP*                  VP                  4       4      P(                  VP(                  8X  g   Q h\        V	P*                  V	P                  4       4      P(                  V	P(                  8X  g   Q h\        \        ^ R
4      \        V \        ^ ^4      4      P                  4       4      P(                  \        V \        ^ ^4      4      P(                  8X  g   Q hVP,                  R8X  g   Q h\        \.        ) \.        3\.        ) ^,           \.        ^,
          34      P,                  R8X  g   Q h\        V \        ^ ^4      4      P,                  R8X  g   Q h\        R\.        R7      pVP1                  \.        ^\2        ,          ^,          4      \        RR4      8X  g   Q hVP1                  \.        ^\2        ,          ^,          4      \        RR4      8X  g   Q hVP1                  \.        \2        ) ^,          4      \        RR4      8X  g   Q hVP1                  \.        \2        ^,          4      \        RR4      8X  g   Q hVP1                  \.        \2        ) ^,          4      \        RR4      8X  g   Q h\5        ^ ^4       F  pVP                  4       V9   d   K  Q h	  VP.                  V P.                  8  d   VP6                  V P6                  8  g   Q hVP.                  VP.                  8:  d   VP6                  VP6                  8:  g   Q hV P.                  VP.                  u;8:  d   VP.                  8:  d5   M Q hV P6                  VP6                  u;8:  d   VP6                  8:  g   Q h Q h\9        V
4      \9        \        W 4      4      8w  g   Q hV
P;                  4       \<        ^ ^.8X  g   Q h\        W4      P;                  4       \<        R^.8X  g   Q h\        R\2        ^,          R7      P;                  4       \<        ^ ^
.8X  g   Q hR# )r     slopeFrW   Nrm   r[   r[   rZ   )rD   rD   rD   r[   rE   r   rD   r   rD   rD   r   rD   r   r   rY   rE   rD   )rE   rE   )rD   rE   r   rD   r   rE   )r   r   random_pointr   r,   r   r   boundsscaler-   
xdirectionr   ZeroInfinityNegativeInfinity
ydirectionrs   rt   ru   r   r   sourcecoefficientsr&   subsr   ranger)   hashplot_intervalr.   )r   p2p10p_r3p_r4rw   l3l4r1r2s1p_s1rinds                 r8   test_basic_properties_2dr      sl   	q!B	q!B
d
Cr;##%Dr;##%D	bB	eBmU2q2v.	/B	b%1+	B	Rq!	B	U1a["	B		B??Da D$8888b!T&&%9999b!((L888rc"d66&::::<a#tBa'<<<<<4<'''<4<'''eBmU2r]33338O8=DM)))=B8O8<<buQ{E!QK(CaU1a[,IIIIuQ{E!QK(CaU1a[,IIIIuQ{E!QK(33qvv===uQ{E!QK(33qzzAAAuQ{E"aL)448J8JJJJuQ{E!QK(33qvv===uQ{E!QK(33qzzAAAuQ{E!RL)448J8JJJJH2?b   uR}eBB/0CE"aL4IIII2?##uQVVQVV'<<<<2ubS"~&--a27m1DDDD88q==88r>>88q==E!QK &&",,,		2??,-33rxx???		2??,-33rxx???5B<U1a[!9!F!F!HIOOSZ[]_defhi_jSkSqSqqqq??i'''!Q1"q&!a%)66)CCCE!QK --:::F!A66!QVaZ C$888866!QVaZ C$999966!bS1WVW!555566!R!VFF 333366!bS1WVW!5555Q{ B&&&  66RTT>dffn,,66RTT>dffn,,44466"SUU">>rtttvv'>'>>>'>>>8tGC,----!Q***=&&(QAJ666vR!V$224Ar
BBBr<   c            
         \        ^ ^ ^ 4      p \        ^^^4      p\        \        \        \        4      p\        \        ^\        ,           ^4      p\        W4      p\        W#4      p\        V \        R^^ 4      4      p\        W4      p\	        W4      p\        R. ROR7      \        \        ^^^4      \        ^^^4      4      8X  g   Q h\        R. ROR7      \        \        ^^^4      \        ^^^4      4      8X  g   Q h\        R. ROR7      \        \        ^^^4      \        ^^^4      4      8X  g   Q h\        \        ^ ^ ^ 4      \        ^^ ^ 4      4      P
                  . RO8X  g   Q h\        \        V \        ^ ^^ 4      4      4      \        V \        ^ ^^ 4      4      8X  g   Q h\        \        \        ^ ^ ^ 4      \        ^^ ^ 4      4      4      \        V \        ^^ ^ 4      4      8X  g   Q h\        W4      \        W4      8w  g   Q hWE8w  g   Q hV\        V\        \        \        \        4      4      8w  g   Q hWv8w  g   Q h\        \        ^ ^ ^ 4      \        ^^^4      4      \        \        ^ ^ ^ 4      \        ^^^4      4      9   g   Q h\        \        ^ ^ ^ 4      \        ^^^4      4      \        \        ^ ^ ^ 4      \        ^^^4      4      9   g   Q h\        \        ^ ^ ^ 4      \        ^^^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ ^ 4      \        ^^^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ ^ 4      \        ^^^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ ^ 4      \        R	^^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ ^ 4      \        ^R	^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ ^ 4      \        ^^R	4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ ^ 4      \        ^ ^^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ ^ 4      \        ^^ ^4      4      P                  \        P                  8X  g   Q h\        \        ^ ^ ^ 4      \        ^^^ 4      4      P                  \        P                  8X  g   Q hW9   g   Q hW9  g   Q hVP                  . RO8X  g   Q hVP                  \        \        P                   \        P                   \        P                   4      8X  g   Q h\        V \        ^ ^ R4      4      P                  \        P                  J g   Q hR# )
r   re   NrE   rn   rp   )rD   r      ro   r   r   )r   r,   r   r   r   direction_cosiner-   r   r   r   r   
zdirectionr   r   rf   rs   rt   )	r   r   p3p5rw   r   r   r3r   s	            r8   test_basic_properties_3dr      s   	Aq	B	Aq	B	R	B	QVQ	B	B	B	r72q!$	%B	rB	2	B)Y76'!QPQBRT[\]_`bcTd;eeee)Y76'!QPQBRT[\]_`bcTd;eeee)Y76'!QPQBRT[\]_`bcTd;eeee'!Q"GAq!$45FF)SSS&WQ1-./6"gaA>N3OOOO1a('!Q*:;<b'RSUVXYJZ@[[[[">VB^+++8O8GBB/00008O8Aq!71a#34gaA>NPWXY[\^_P`8aaaaAq!71a#34gaA>NPWXY[\^_P`8aaaaAq!71a#34??1::MMMAq!71a#34??1::MMMAq!71a#34??1::MMMAq!72q!#45@@ADVDVVVVAq!71b!#45@@ADVDVVVVAq!71a#45@@ADVDVVVVAq!71a#34??166IIIAq!71a#34??166IIIAq!71a#34??166III8O8<<***;;'!&&!&&!&&9999WQ2&'22a6H6HHHHr<   c            
      	   \        ^ ^ 4      p \        V \        ^^4      4      p\        V \        ^ ^ R4      4      p\        V \        ^ ^^ 4      4      p\        V \        ^ ^ ^4      4      p\	        \        ^ ^4      \        ^^4      4      p\        ^ \
        \        ,           ^,          4      \        ^ \
        3^ \        34      9   g   Q h\        \
        \        ,           ^,          ^ 4      \        \
        ^ 3\        ^ 34      9   g   Q h\        ^ ^^ 4      \        RR4      9   g   Q h\        ^^ ^ 4      \        RR4      9   g   Q h\        \        ^ ^ ^ 4      \        ^^ ^ 4      4      P                  . 4      RJ g   Q h\        \        ^ ^ ^ 4      \        ^^ ^ 4      4      P                  \        \        ^^^4      \        ^^^4      4      4      RJ g   Q hVP                  \        ^ ^4      4      RJ g   Q hVP                  R	4      RJ g   Q hVP                  R
4      RJ g   Q hVP                  V 4      RJ g   Q hVP                  R4      RJ g   Q hVP                  R4      RJ g   Q hVP                  \        RR4      4      RJ g   Q hVP                  \        RR4      4      RJ g   Q hVP                  \        RR4      4      RJ g   Q hVP                  \        RR4      4      RJ g   Q hVP                  \        V \        ^ ^ R4      4      4      RJ g   Q hVP                  \        \        ^^^4      \        ^^^4      4      4      RJ g   Q hVP                  \        ^ ^ ^ 4      4      RJ g   Q hVP                  \        ^ ^ ^ 4      4      RJ g   Q h\        \        ^^^4      \        ^^ ^ 4      4      P                  . 4      RJ g   Q h\        R\        \        \        34      P                  ^\        ,          ^\        ,          ^\        ,          34      '       g   Q h\        \        RR7      ;_uu_ 4        \        V \        ^ ^^ 4      4      P                  \        RR4      4      RJ g   Q h RRR4       \        \        RR7      ;_uu_ 4        VP                  \        RR4      4      RJ g   Q h RRR4       R#   + '       g   i     LV; i  + '       g   i     R# ; i)r   TFtest_stacklevel      ?NrE   r   r   r   rY   rm   )rD   ri   r   rZ   )r[   r   )ri   ri   )ri   r   r   r   r   )r   r   r   r   r   r2   r3   r   r   r   r   r&   r)   r*   r%   UserWarning)r   r   r   r   r   ls         r8   test_containsr   )  s'   	q!BBaA	r71a$	%B	r71a#	$B	r71a#	$BU1a[%1+&AQUaK GQFQF$;;;;!a%1a GQFQF$;;;;1ayI>>>>1ayI>>>>WQ1%wq!Q'78AA"EMMMWQ1%wq!Q'78AA'!Q"GAq!$457:?@ @ @ ::eAqk"d***::f%%%::f&&&::b>T!!!::f%%%::f&&&::gff-.$666::gff-.%777::c&&)*d222::c&&)*e333;;yWQ3%789TAAA;;yAq!171a3CDENNN;;wq!Q'(D000;;wq!Q'(D000Aq!71a#34==bAUJJJ)aAY'00!a%QA1FGGGG	{E	2	2b'!Q*+44U3_ENNN 
3 
{E	2	2{{5c?+u444 
3	2 
3	2 
3	2	2s   57R;"S;S	S	c                  $   \        R 4      w  rr#\        \        W4      \        W4      4      p\        V \        ^^4      ,          V^,          ,           V\        ^^4      ,          V^,          ,           4      pVP	                  V4      '       g   Q hR# )z
u, v, w, zN)r
   r   r   r   r   )uvwr*   r   r   s         r8   test_contains_nonreal_symbolsr   S  sj    &JA!aU1[)AaA1$aA&61&<=A::a===r<   c                     \        ^ ^ 4      p \        ^^4      p\        P                  p\        \        ^ ^ 4      \        ^^4      4      p\        \        W"4      \        ^^ 4      4      p\	        W4      pVP                  \        ^ ^ 4      4      ^ 8X  g   Q hVP                  R4      ^ 8X  g   Q hVP                  \        ^ ^ 4      4      ^V,          ^,          8X  g   Q hVP                  \        \        ^4      ^,          \        ^4      ^,          4      4      ^V,          8X  g   Q h\        W4      P                  \        R^4      4      \        ^4      8X  g   Q h\        W4      P                  \        ^R4      4      \        ^4      8X  g   Q h\        W4      P                  \        ^^4      4      ^ 8X  g   Q h\        W4      P                  R4      \        ^4      8X  g   Q h\        RR4      P                  V 4      ^ 8X  g   Q h\        RR4      P                  V4      ^8X  g   Q h\        RR4      P                  V 4      ^ 8X  g   Q h\        RR4      P                  V4      ^8X  g   Q hVP                  \        RR4      4      \        ^4      8X  g   Q hVP                  \        ^^4      4      ^ 8X  g   Q hVP                  \        R^4      4      \        ^4      8X  g   Q h\	        RR	4      P                  \        R^4      4      ^\        ^4      ,          ^,          8X  g   Q hVP                  R4      ^ 8X  g   Q hR# )
r         ?NrY   rE   r   r   rD   r   rm   r   )	r   r   rt   r   r   r   r   r   r   )r   r   halfr   s2r   s         r8   test_distance_2dr   Z  s   	q!B	q!B66D	q!eAqk	*B	t"E!QK	0BBA;;uQ{#q(((;;v!###;;uQ{#qDy1}444;;uXa[1_hqkAo>?19LLL<  r1.$q'999<  q".$q'999<  q!-222<  )T!W444((,111((,111((,111((,111::eBm$Q///::eAqk"a'''::eBl#tAw...vv''c16!d1g+/III::f"""r<   c                      \        \        R R7      ;_uu_ 4        \        RR4      \        RR4      8X  g   Q h RRR4       R#   + '       g   i     R# ; i)Fr   Nrm   )r[   rD   r[   r   )r%   r   r   rk   r<   r8   test_dimension_normalizationr   w  s:    	{E	2	269%Y	)BBBB 
3	2	2	2s   AA	c                     \        ^ ^ ^ 4      \        ^^^4      r\        \        ^4      ^,          \        ^4      ^,          \        ^4      ^,          4      p\        \        ^ ^ ^ 4      \        ^^^4      4      p\        \        \        P                  \        P                  \        P                  4      \        ^^ ^4      4      p\        W4      pVP                  V 4      ^ 8X  g   Q hVP                  V 4      \        ^4      ^,          8X  g   Q hVP                  V4      ^\        ^4      ,          ^,          8X  g   Q hVP                  R4      ^ 8X  g   Q hVP                  R4      \        ^4      ^,          8X  g   Q hVP                  V 4      ^ 8X  g   Q hVP                  V 4      \        ^4      ^,          8X  g   Q hVP                  V4      ^\        ^4      ,          ^,          8X  g   Q hVP                  R4      ^ 8X  g   Q hVP                  R4      \        ^4      ^,          8X  g   Q h\        W4      P                  \        R^^4      4      ^\        ^4      ,          ^,          8X  g   Q h\        W4      P                  \        ^R^4      4      ^\        ^4      ,          ^,          8X  g   Q h\        W4      P                  \        ^^^4      4      ^ 8X  g   Q h\        W4      P                  R4      ^ 8X  g   Q h\        W4      P                  R4      ^\        ^4      ,          ^,          8X  g   Q h\        RR4      P                  V 4      ^ 8X  g   Q h\        RR4      P                  V4      \        ^4      8X  g   Q h\        RR4      P                  V 4      ^ 8X  g   Q h\        RR4      P                  V4      \        ^4      8X  g   Q h\        RR4      P                  \        RR	4      4      ^ 8X  g   Q h\        RR4      P                  \        RR4      4      ^ 8X  g   Q h\        RR4      P                  \        R
R4      4      ^ 8X  g   Q h\        RR4      P                  \        RR4      4      ^8X  g   Q h\        RR4      P                  \        RR4      4      ^ 8X  g   Q h\        RR4      P                  \        RR4      4      ^8X  g   Q h\        RR4      P                  \        RR4      4      ^ 8X  g   Q hVP                  \        RRR4      4      \        ^4      8X  g   Q hVP                  \        ^^^4      4      ^ 8X  g   Q hVP                  R4      \        ^4      8X  g   Q hVP                  R4      ^ 8X  g   Q h\        RR4      P                  R4      ^\        ^4      ,          ^,          8X  g   Q h\        RR4      P                  \        RRR4      4      \        ^	4      ^,          8X  g   Q h\        RR4      P                  \        R^^4      4      \        ^N4      ^,          8X  g   Q hR# )r   r   Nr   rE   )r[   r[   r[   )rD   rE   rD   r   r   r   rD   r[   )
   r   r   )r   rD   r[   r   rD   rD   )r[   r   r   r   r   rD   )rD   rD   ri   )rE   rE   rE   rn   )rD   rD   r[   )rE   rE   r[   rG   )
r   r   r   r   rt   r   r   r   r   r    )r   r   r   r   r   r   s         r8   test_distance_3dr   |  s!   Q1wq!Q/	!q(1+/8A;?	CB	71a#WQ1%5	6B	71661661662GAq!4D	EBbA;;r?a;;r?d1gk)));;r?a$q'kAo---;;y!Q&&&;;y!T!Wq[000;;r?a;;r?d1gk)));;r?a$q'kAo---;;y!Q&&&;;y!T!Wq[000">""72q!#45T!WqHHH">""71b!#45T!WqHHH">""71a#34999">""9-222">"":.!d1g+/AAA)Y'004999)Y'004Q???)Y'004999)Y'004Q???)Y'00	91MNRSSSS)Y'00	91MNRSSSS)Y'00
J1OPTUUUU)Y'00	91MNRSSSS)Y'00y)1LMQRRRR)Y'00y)1LMQRRRR)Y'00y)1LMQRRRR::gb"b)*d1g555::gaA&'1,,,::l#tAw...::i A%%%I&//<DGaOOOI&//R0DERSWXXXXI&//Q0BCtBxRS|SSSr<   c            
      f
   \        ^ ^ 4      p \        ^^4      p\        W4      p\        R\        R7      p\        \        \        \        4      \        \        ^\        ,           4      4      pVP	                  V P
                  4      P                  \        \        ^ ^ 4      \        ^R4      4      4      '       g   Q hVP	                  V 4      P                  \        \        ^ ^ 4      \        ^R4      4      4      '       g   Q h\        \        \        \        4      \        \        \        4      4      P                  \        \        ) \        4      4      P                  \        \        \        ) \        4      \        \        ) ^\        ,          \        ,
          4      4      4      '       g   Q hVP                  V P
                  4      P                  \        \        ^ ^ 4      \        ^ R4      4      4      '       g   Q hVP                  V 4      P                  \        \        ^ ^ 4      \        ^ R4      4      4      '       g   Q hVP                  \        ^^4      4      ^\        \        ^,           4      ,          \        \        ^,          ^,           4      ,          ,
          P                  ^ 4      '       g   Q h\        V \        ^ ^^ 4      4      P                  \        RR4      4      RJ g   Q h\        \        ^ ^ ^ 4      \        ^^ ^ 4      4      P                  \        \        R^ ^ 4      \        R^ ^ 4      4      4      RJ g   Q h\        \        ^ ^ ^ 4      \        ^^ ^ 4      4      P                  \        V \        ^ ^^ 4      4      4      RJ g   Q h\        V \        ^ ^ R4      4      P                  \        RR4      4      RJ g   Q h\        V \        ^ ^ R4      4      P                  \        V \        ^ ^ R4      4      4      RJ g   Q h\        R	\        \        34      P	                  \        ^ ^^ 4      4      P                  \        \        ^ ^^ 4      \        \         P"                  \         P"                  ^ 4      4      4      '       g   Q h\        R	\        \        34      P%                  \        ^ ^^ 4      4      P                  \'        R
\         P"                  \         P"                  34      4      '       g   Q h\        V \        ^ ^^ 4      4      P                  \        RR4      4      RJ g   Q hR# )r   r   r   FTN)r   r   rE   r   rY   r   )r   r   r0   r,   r   argsr   r-   r   r   absr   r   r   r   r.   r   rt   rr   r   )r   r   rw   rx   r   s        r8   test_equalsr     s   	q!B	q!B	bB	fA	B	eBmU2q2v.	/B  )00eAqk5B<1PQQQQ  $++Dq!eArl,KLLLLb"uR}-;;E2#rNKtE2#rNE2#q2v{$;<=> > >BGG$++Dq!eArl,KLLLLB&&tE!QKq"'FGGGGKKa$q3q1u:~Q!VaZ8H'HHPPQRSSSS"gaA&'..uS#?5HHH'!Q"GAq!$45<<VGBPQSTDUW^_acdfgWh=ijnrrrr'!Q"GAq!$45<<VBPQSTVWHX=YZ^ccccWQ2&'..uS#?5HHHWQ2&'..uRAr9J/KLPTTTT&1a&!44U1a^DKKwq!Q!;<> > > >&1a&!77aAGNNyY_bcbhbhjkjpjpaqOrssss"gaA&'..uS#?5HHHr<   c                  $
   \        ^ ^ 4      p \        ^^4      p\        W4      p\        \        \        \        4      \        \        ^\        ,           4      4      p\        VP	                  4       4      \
        \        ,
          \        \
        ,
          39   g   Q h\        VP	                  4       4      \
        \        ,
          \        \
        ,
          39   g   Q h\        VP	                  4       4      \
        \        ,
          \        \
        ,
          39   g   Q h\        VP	                  4       4      \
        \        ,
          \        \
        ,
          39   g   Q h\        V \        ^^ 4      4      P	                  \
        \        R7      \        8X  g   Q h\        V \        ^ ^4      4      P	                  4       \
        8X  g   Q h\        \        ^^ 4      \        ^^4      4      P	                  4       \
        ^,
          8X  g   Q h\        V\        ^^4      4      P	                  4       \        ^,
          8X  g   Q h\        \        \        \        \        4      \        \        \        \        4      4      P	                  4       \
        ) \        ,           \
        ) \        ,           38X  g   Q h\        \        ^^^4      \        ^^^4      4      P	                  4       \
        ) \        ,           ^,
          \
        ) \        ,           ^,
          38X  g   Q h\        \        ^^^4      \        ^^^4      4      P	                  4       \
        ^,
          \        ) \        ,           ^,
          38X  g   Q h\        \        ^^^4      \        ^^^4      4      P	                  4       \        ^,
          \
        ) \        ,           ^,
          38X  g   Q h\        \        ^^^4      \        ^^^4      4      P	                  4       \
        ) \        ,           ^,
          \        ^,
          38X  g   Q h\        \        ^^^4      \        ^^^4      4      P	                  4       \
        ^,
          \        ^,
          38X  g   Q h\        \        ^^^4      \        ^^^4      4      P	                  4       \
        ^,
          \        ^,
          38X  g   Q h\        \        ^^^4      \        ^^^4      4      P	                  4       \        ^,
          \        ^,
          38X  g   Q hR# )r   r4   N)
r   r   r,   r   equationr&   r)   r   r-   r*   )r   r   rw   r   s       r8   test_equationr     s   	q!B	q!B	bB	eBmU2q2v.	/BBKKM"q1ua!en444BKKM"q2vrAv&6666BKKM"q1ua!en444BKKM"q2vrAv&6666E!QK ))A)3q888E!QK ))+q000aU1a[)224A===E!QK ))+q1u444%B#U2r2%6 

(*!a!a() ) )%1a.%1a. 

(*!a!aR!VaZ01 1 1%1a.%1a. 

(*QQ
+, , ,%1a.%1a. 

(*QQ
+, , ,%1a.%1a. 

(*!a!QU+, , ,%1a.%1a. 

(*QA' ' '%1a.%1a. 

(*QA' ' '%1a.%1a. 

(*QA' ' 'r<   c                     \        ^ ^ 4      p \        ^^4      p\        \        \        4      p\        \        \        4      p\        W4      p\        \        ^ ^ 4      \        ^^4      4      p\	        \        ^^4      \        ^^4      4      p\	        \        ^ ^ 4      \        ^^4      4      p\	        W4      p\	        \        ^ ^4      \        ^^4      4      p	\	        \        RR4      \        ^^4      4      p
\        W4      p\        \        RR4      \        RR4      4      p\        \        ^ ^ 4      \        ^^4      4      p\        W@4      V .8X  g   Q h\        V\        \        ^\        ,           4      4      . 8X  g   Q h\        V\        W#4      4      V.\        W#4      .39   g   Q h\        WDP                  \        \        ^\        ,           4      4      4      . 8X  g   Q h\        WU4      V.8X  g   Q h\        WW4      V.8X  g   Q h\        W]4      V.8X  g   Q h\        W4      V.8X  g   Q h\        \        \        R^
4      \        ^
^
4      4      \        \        RR4      \        R^4      4      4      . 8X  g   Q h\        Wu4      V.8X  g   Q h\        V\	        \        ^^4      \        ^ ^ 4      4      4      \        \        ^^4      \        ^^4      4      .8X  g   Q h\        V\	        \        ^^4      \        RR4      4      4      \        ^^4      .8X  g   Q h\        V\        \        ^ ^ 4      \        ^^4      4      4      \        \        ^^4      \        ^^4      4      .8X  g   Q hVP                  V4      V.8X  g   Q hVP                  \        \        ^^4      \        ^^4      4      4      . 8X  g   Q hVP                  \        \        RR4      \        RR4      4      4      \        V \        RR4      4      .8X  g   Q hVP                  \	        W4      4      V.8X  g   Q h\	        W4      P                  V	4      . 8X  g   Q hVP                  V
4      V
P                  V4      u;8X  d
   V
.8X  g   Q h Q h\        R	R
4      P                  \        RR
4      4      \        RR
4      .8X  g   Q h\        RR
4      P                  \        R	R
4      4      \        RR
4      .8X  g   Q h\	        \        ^ ^ 4      \        ^ ^4      4      P                  \	        \        ^ ^4      \        ^ R4      4      4      \        \        ^ ^ 4      \        ^ ^4      4      .8X  g   Q h\        R	R
4      P                  \        RR4      4      \        RR4      .8X  g   Q h\        RR4      P                  \        R	R
4      4      \        RR4      .8X  g   Q h\        R	R
4      P                  \        R
R4      4      \        R
4      .8X  g   Q h\        R	R
4      P                  \        RR4      4      \        RR
4      .8X  g   Q h\        R	R
4      P                  \        RR4      4      \        R	R4      .8X  g   Q h\        R	R
4      P                  \        RR	4      4      \        ^ ^ 4      .8X  g   Q hVP                  \        \        ^^4      \        ^^4      4      4      \        ^^4      .8X  g   Q hVP                  \        \        RR4      \        RR4      4      4      \        \        RR4      V4      .8X  g   Q hVP                  \        \        ^^4      \        ^^4      4      4      . 8X  g   Q hVP                  \        \        RR4      V 4      4      V .8X  g   Q hVP                  \        \        RR4      \        RR4      4      4      \        V \        RR4      4      .8X  g   Q hVP                  \        \        ^^ 4      \        ^^4      4      4      . 8X  g   Q hVP                  V4      V.8X  g   Q hVP                  V4      V.8X  g   Q h\        ^x^^44      \        \        ^ ^ 4      \        ^^ 4      \        R\        ^\        ,          ^Z,          4      ,          \        ^\        ,          ^-,          4      ,          ^\!        ^4      ,          \        ^\        ,          ^Z,          4      ,          \        ^\        ,          ^-,          4      ,          4      4      8X  g   Q h\        R	R4      P                  \	        RR4      4      \        ^^4      .8X  g   Q h\        R	R4      P                  \        RR4      4      \        ^^4      .8X  g   Q h\	        R	R4      P                  \	        RR4      4      \        ^^4      .8X  g   Q h\	        R	R4      P                  \        RR4      4      \        ^^4      .8X  g   Q h\	        R	R4      P#                  \        RR4      4      RJ g   Q h\        RR4      \        R	R4      9   g   Q hVP                  \	        RR4      4      \        ^^4      .8X  g   Q hR# )r         ?g      ?r   TNr   r   rE   rY   )ri   r   r   )r[   r   )rq   r   )r   r   r   r   rF   rm   rZ   )r   r   r   )rq   rq   )r   r,   r-   r   r   r   r   r   r   r   r   asar   r   r   r   r   r   )r   r   r   p4rw   r   r   r   r4r6r7r   r   s3s                 r8   test_intersection_2dr     s	   	q!B	q!B	r2B	r2B	bB	eAqk5A;	'B	U1a[%1+	&B	U1a[%1+	&B	RB	U1a[%1+	&B	U3_eAqk	*B	B	tT"E#sO	4B	q!eAqk	*BB4'''E"a"f-."444DL)rdT"\N-CCCC,,U2q2v->?@BFFFB4'''B4'''B4'''B4'''c2b">bRTW\]_abWc@deikkkkB4'''CaU1a[9:wuQPQ{TYZ[]^T_?`>aaaaCaU2r];<q!MMMGE!QKq!=>75QRTU;X]^_abXcCdBeeee??22$&&&??75A;a<=CCC??75R=%S/BCPRTYZ]_bTcHdGeeee??3r;'B4///r;##B'2---??2"//""5="===== --eFF.CDvW]I^H____ --eFF.CDvW]I^H____uQ{E!QK(55c%1+uQPR|6TUE!QKq!-./ / / VV$11&&!#'0'@&AB B BVV$11&&!#'0'@&AB B BVV$11&&!#'.v&78 8 8VV$11&&!#'0'@&AB B BVV$11'6"$(1&&(A'BC C CVV$11'6"$(/17 7 7??75A;a<=%1+NNN??75c?E#sODE'RWX[]`RaceJfIgggg??75A;a<=CCC??75R="562$>>>??75R=%S/BCPRTYZ]_bTcHdGeeee??4aU1a[9:b@@@??22$&&&??22$&&&sAr?Q{Q{R#b2gl++c!b&2+.>>a[3rBw|#44s1r6B;7GGIJJ J J ,,S-@AeAqk]RRR,,WVV-DE%PQST+VVVvv++C,?@U1a[MQQQvv++GFF,CDqRSUUUvx ))'&&*ABdJJJ66"d68&<<<<??3vv./E!QK=@@@r<   c            	         \        \        \        ^^-4      ,          4      p \        ^4      pV ^,          p^V ,          W,           ,          ^V ,          ^V,          V,          ,
          V^,
          ,          .w  r4\	        \        ^ ^ 4      \        ^\        ^4      ) 4      4      P                  \        W44      4      RJ g   Q hR# )   TN)r   r   r   r   r   r   r   )x0r,   x2r&   r)   s        r8   test_line_intersectionr   R  s    	RR  	!B	aB	QBbD"'NRUQrT"W_rAv67DAaU1tAwh/099%+F$NNNr<   c                     \        ^ ^ ^ 4      p \        ^^^4      p\        W4      p\        \        ^ ^ ^ 4      \        ^^^ 4      4      p\        \        ^^^4      \        ^^^4      4      p\        \        ^ ^ ^ 4      \        ^^^ 4      4      p\        \        ^ ^ ^ 4      \        ^^^ 4      4      p\	        W 4      V .8X  g   Q h\	        V\        \
        ^\
        ,           ^4      4      . 8X  g   Q h\	        W"P                  V 4      4      \        \        ^ ^ ^ 4      \        ^^^4      4      .8X  g   Q h\	        W54      V.8X  g   Q h\	        W64      V.8X  g   Q h\	        WS4      V.8X  g   Q h\	        V\        \        ^^^4      \        RRR4      4      4      \        ^^^4      .8X  g   Q h\	        V\        \        ^ ^ ^ 4      \        ^^^4      4      4      \        \        ^^^4      \        ^^^4      4      .8X  g   Q h\	        \        \        ^^ ^ 4      \        R^ ^ 4      4      \        \        ^ ^^ 4      \        ^ R^ 4      4      4      \        ^ ^ ^ 4      .8X  g   Q h\	        V\        \        ^^^4      \        ^ ^ ^ 4      4      4      \        \        ^^^4      \        ^^^4      4      .8X  g   Q h\	        We4      V.8X  g   Q h\        \        ^^ ^4      \        ^ ^^4      4      P	                  \        \        ^ ^ ^4      \        ^^^4      4      4      \        ^^^4      .8X  g   Q h\        RR4      P	                  \        RR4      4      \        ^ ^^4      .8X  g   Q h\        R\        \        34      P	                  \        R\        \        34      4      \        \        \        4      .8X  g   Q h\        \        ^ ^ ^ 4      \        ^ ^^ 4      4      P	                  \        \        ^ ^^4      \        ^ R^4      4      4      . 8X  g   Q hR# )r   NrE   r   )r   r[   ri   r   rY   r   )r   r   r   r   r   r,   r   r.   )r   r   rw   rx   r   r   r   s          r8   test_intersection_3dr   [  s   	Aq	B	Aq	B	B	1a '!Q"2	3B	wq!QAq!1	2B	wq!QAq!1	2B	71a#WQ1%5	6BB4'''GBB23r999,,R01fWQ1=MwWXZ[]^O_6`5aaaaB4'''B4'''B4'''E'!Q"2GBB4GHIgVWYZ\]N^M____IgaA&61a8HIJ'!Q"GAq!$45O7 7 7 7gaA.Aq0ABE'RSUVXYJZ\cdegikl\mDnoq!Q ! ! !E'!Q"2GAq!4DEFgaA&1a(89:; ; ;B4''''!Q"GAq!$45BB6'RSUVXYJZ\cdeghjk\lCmnAq!  )Y'44VIy5QRW^_`bcefWgVhhhh&1a&!..vfq!f/EFAqM?   Aq!71a#34AA%PQSTVWHXZabcegijZkBlmqssssr<   c                     \        ^ ^ ^ 4      p \        ^^^4      p\        \        \        \        4      p\        \        \        \        4      \        \        \        4      4      p\        \        \        \        4      \        \        ^\        ,           4      4      p\        P
                  ! \        \        ^ ^ 4      \        ^^4      4      V4      '       g   Q h\        P
                  ! V\        \        \        \        4      \        \        ^\        ,           4      4      4      RJ g   Q h\        P
                  ! W3P                  \        \        ) \        4      4      4      '       g   Q h\        P
                  ! WDP                  \        ^ ^ 4      4      4      '       g   Q h\        W4      P                  \        W4      4      '       g   Q h\        \        ^^ ^4      \        ^ ^^4      4      P                  \        \        ^ ^ ^4      \        ^^^4      4      4      RJ g   Q h\        W4      P                  V4      \        \        \        \        \        4      \        \        ^,           \        ^,           \        ^,           4      4      8X  g   Q h\        W4      P                  VP                  4      \        \        \        \        \        4      \        \        ^,           \        ^,           \        ^,           4      4      8X  g   Q h\        \        ^^ ^4      \        ^ ^^4      4      P                  \        \        ^ ^ ^4      \        ^^^4      4      4      RJ g   Q hR# )r   FN)	r   r,   r   r   r-   is_parallelr   r   r   )r   r   r   rx   l2_1s        r8   test_is_parallelr    sw   	Aq	B	Aq	B	R	B	eBmU2r]	+Bb"uRR01DDq!eAqk:B????BU2r]E"a"f4E FG5PPPB 0 0sB @AAAAD"4"4U1a["ABBBB">%%fRn5555'!Q"GAq!$45AA&QRTUWXIY[bcdfgij[kBlmqvvvv">''+vgb"b6I6=b1fb1fbSTf6U0W W W W">''0'"b"%wrAvrAvrAv'FGH H H'!Q"GAq!$45AA&QRTUWXIY[bcdfgij[kBlmqvvvvr<   c                     \        ^ ^ 4      p \        ^^4      p\        W4      p\        \        \        \        4      \        \        \        4      4      p\        V \        \        ) \        4      4      p\        P                  ! W$4      '       g   Q h\        P                  ! W#4      RJ g   Q hVP                  4       pVP                  V4      V8X  g   Q h\        P                  ! \        \        ^ ^ ^ 4      \        ^^ ^ 4      4      \        \        ^ ^ ^ 4      \        ^ ^^ 4      4      4      RJ g   Q h\        P                  ! \        \        ^ ^ ^ 4      \        ^^ ^ 4      4      \        \        ^ ^^ 4      \        ^^^ 4      4      4      RJ g   Q h\        P                  ! \        \        ^ ^ ^ 4      \        ^^^4      4      \        \        \        \        \        4      \        \        \        \        4      4      4      RJ g   Q hR# r~   )	r   r   r,   r-   is_perpendicularr   rr   r   r   )r   r   rw   rx   l1_1r   s         r8   test_is_perpendicularr    s   	q!B	q!B	bB	eBmU2r]	+BE2#rN#D  ****  (E111
A##A&!+++""6'!Q*:GAq!<L#M#)'!Q*:GAq!<L#MORVW W W""6'!Q*:GAq!<L#M#)'!Q*:GAq!<L#MORWX X X""6'!Q*:GAq!<L#M#)'"b"*=wr2r?R#SUX]^ ^ ^r<   c            
      @   \        R R 4      p V P                  ^^4      p\        \        ^^^4      \        ^^ ^ 4      4      p\	        \        ^ ^ 4      \        ^ ^4      4      p\        \        ^ ^ 4      V 4      pVP                  \        W4      4      '       g   Q hVP                  V4      RJ g   Q hVP                  \        \        ^^^4      \        ^^ ^ 4      4      4      RJ g   Q hVP                  \        \        ^ ^ ^ 4      \        ^ ^^ 4      4      4      RJ g   Q hR# )r   FTN)r   r   r   r   r   r   
is_similarr   )r   r   r   r   r   s        r8   test_is_similarr	    s    	tT	B	!QB	wq!QAq!1	2B	U1a[%1+	&B	q!b	!B==))))==%%%==1a 0'!Q2BCDLLL==1a 0'!Q2BCDMMMr<   c                     \        \        \        \        \        4      \        \        \        \        4      4      p \	        \        ^ ^ 4      \        ^^4      4      P                  \        J g   Q hV P                  \        ^4      \        \        \        ,
          ^,          4      ,          8X  g   Q h\        \        ^ ^ ^ 4      \        ^^^4      4      P                  \        J g   Q hR# )r   N)
r   r   r,   r-   r   r   ru   r   r   r   )r   s    r8   test_lengthr    s    	72r2&B(;	<BaU1a[)00B66699Q$RA~"66666'!Q"GAq!$45<<BBBr<   c                  8   \        ^ ^ 4      p \        ^ ^ ^ 4      p\        \        ) \        4      p\        V \        ^^4      4      p\	        \        ^ ^ ^ 4      \        ^^ ^ 4      4      p\	        V\        ^^^4      4      p\        \        ^^4      \        ^^4      4      p\        \        ^ ^ 4      \        ^ ^4      4      p\        \        ^^ 4      \        ^R4      4      p\        \        \        \        4      \        \        \        4      4      P                  \        \        \        4      4      \        \        \        4      8X  g   Q h\        \        \        \        4      \        \        ^\        ,           4      4      P                  \        ^^4      4      \        \        ^4      8X  g   Q h\        \        R^4      \        ^ ^4      4      P                  V4      \        \        R^4      \        ^ ^4      4      8X  g   Q h\        \        ^ ^4      \        R^4      4      P                  V4      \        \        ^ ^4      \        R^4      4      8X  g   Q hVP                  V4      \        8X  g   Q hVP                  V4      V 8X  g   Q hVP                  \        V \        R^4      4      4      \        \        ^ ^ 4      \        ^^4      4      8X  g   Q hVP                  \        V \        R^4      4      4      V 8X  g   Q hVP                  \        \        ^^4      \        RR4      4      4      \        ^^4      8X  g   Q hVP                  \        \        ^ ^4      \        RR4      4      4      \        \        ^^4      \        ^^4      4      8X  g   Q hVP                  \        \        R^4      \        RR4      4      4      \        \        ^^4      \        ^^4      4      8X  g   Q hVP                  \        \        ^^4      \        RR4      4      4      \        ^^4      8X  g   Q hVP                  \        \        ^ ^4      \        RR4      4      4      \        \        ^^4      \        ^^4      4      8X  g   Q hVP                  \        \        R^4      \        RR4      4      4      \        \        ^^4      \        ^^4      4      8X  g   Q hVP                  \        V\        R^^ 4      4      4      \        \        ^ ^ ^ 4      \        \        ^^4      \        ^^4      \        ^^4      4      4      8X  g   Q hVP                  \        V\        R^^4      4      4      \        \        ^ ^ ^ 4      \        \        ^^4      \        ^^4      \        ^^4      4      4      8X  g   Q hVP                  \        ^^^ 4      4      \        ^^ 4      8X  g   Q hVP                  \	        \        ^ ^^ 4      \        ^^^ 4      4      4      P                  V4      '       g   Q hR# )r   Nr   r   rE   r   r   )r   r   r,   r   r   r   r   r   r-   r   r   r   r   r   )	r   r   r   rw   rx   r   r   r   r   s	            r8   test_projectionr    s   	q!B	Aq	B	sBB	b%1+	B	1a '!Q"2	3B	GAq!$	%B	U1a[%1+	&B	A1	.B	A3	0Bb"uR}-88r2G5QSUW=XXXb"uRR01<<U1a[IUSUWX\YYY5Q<q!-88<bRSV[\]_`Va@bbbb5A;b!-88<aQRUZ[]_`Ua@bbbb==(((=="""==Rr1./3uQ{E!QK3PPPP==Rr1./2555==U1a[%B-89U1a[HHH==U1a[%B-89WU1a[RWXY[\R]=^^^^==r1uR~>?75QRTU;X]^_abXcCdddd==U1a[%B-89U1a[HHH==U1a[%B-89WU1a[RWXY[\R]=^^^^==r1uR~>?75QRTU;X]^_abXcCdddd==r72q!#456%1a@PRYZbcdfgZhjrstvwjx  {C  DE  GH  {I  SJ  ;K  K  K  K==r72q!#456%1a@PRYZbcdfgZhjrstvwjx  {C  DE  GH  {I  SJ  ;K  K  K  K==Aq)*gam;;;==1a 0'!Q2BCDKKBOOOOr<   c                     \        ^ ^ ^ 4      \        ^^^4      \        R^^ 4      r!p \        W4      pVP                  V4      pVP                  V8X  g   Q hVP                  V9   g   Q h\        ^ ^ 4      \        ^^4      \        R^4      r!p \        W4      pVP                  V4      pVP                  V8X  g   Q hVP
                  P                  W#P                  V4      ,
          P                  8X  g   Q hR# )r   Nr   )r   r   r   r   r   	directionunitr   )r   r   r   r   r   s        r8   test_perpendicular_liner    s    q!Qq!Qr1aBBRA	R A442::44199q!eAqk5Q<BBRA	R A442::;;\\"%5 5;;;;;r<   c            
         \        \        ^ ^ 4      \        ^^4      4      p \        \        \        P                  \        P                  4      \        \        ^^4      \        R^4      4      4      p\        \        \        P                  \        P                  4      \        \        ^^4      \        R^4      4      4      P                  pV P                  4       P                  V4      '       g   Q hV P                  V4      P                  \        V P                  V4      4      '       g   Q hV P                  VR,           4      P                  V4      '       g   Q hR# )r   NrE   r   )	r   r   r   r   rt   r   rs   perpendicular_bisectorr   )r   alineon_lines      r8   test_perpendicular_bisectorr    s    	q!eAqk	*Bqvvqvv&hq!nhr1o(NOEeAFFAFF+U8Aq>8BPQ?-ST]]G$$&--e4444$$W-44WR[['5RSSSS$$Wv%56==eDDDDr<   c                    aa \        R RR7      w  op \        S^ 3V ^ 34      o\        \        R 4       \        \        R 4       \        \
        VV3R l4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R	 4       \        \        R
 4       \        \        R 4       R# )r/   Tr'   c                      \        R^4      # rD   rm   r7   rk   r<   r8   r9   test_raises.<locals>.<lambda>   s
    d61or<   c                  B    \        \        ^ ^ 4      \        ^ ^ 4      4      # r   )r   r   rk   r<   r8   r9   r    s    tE!QKq!=r<   c                  0   < \        ^S ,          ^ 4      S9   # )r[   )r   )dss   r8   r9   r    s    a!eQ1 4r<   c                  ,    \        \        R R 4      4      # )r   )r   r   rk   r<   r8   r9   r    s    uU3_5r<   c                  F    \        \        ^ ^ ^ 4      \        ^ ^ ^ 4      4      # r  r   r   rk   r<   r8   r9   r    s    vgaA&61a8HIr<   c                      \        R^4      # r  )r   rk   r<   r8   r9   r    s    fVQ/r<   c                  .    \        \        ^ ^ ^ 4      4      # r  r"  rk   r<   r8   r9   r    s    vgaA&67r<   c                      \        R^4      # r  )r   rk   r<   r8   r9   r    s
    c&!nr<   c                      \        \        ^ ^ 4      \        ^^ 4      4      P                  \        \        ^ ^ 4      ^4      4      # r  )r   r   r   r   rk   r<   r8   r9   r    s3    $uQ{E!QK"@JveAqk1-.#/r<   N)r
   r   r$   	TypeErrorrI   r!   r   )er  r  s    @@r8   test_raisesr)    s    5t$DAqAAA
9-.
:=>
;45
:56
:IJ
9/0
:78
9,-
= / 0r<   c                  
   \        R	\        ^,          R7      \        R	R
4      8X  g   Q h\        R	\        ^,          R7      \        R	R4      8X  g   Q h\        R	\        ) ^,          R7      \        R	R4      8X  g   Q h\        R	R\        ,          ^,          R7      \        R	R4      8X  g   Q h\        R	^\        ,          ^,          R7      \        R	R4      8X  g   Q h\        R	R\        ,          ^,          R7      \        R	R4      8X  g   Q h\        R	\        R7      \        R	R4      8X  g   Q h\        R	R\        ,          R7      \        R	R4      8X  g   Q h\        R	R\        ,          R7      \        R	R4      8X  g   Q h\        R	^ R7      \        R	R4      8X  g   Q h\        R	R\        ,          R7      \        \        ^^4      \        ^\        ^4      ) \        ^\        ^4      ,          ^
,           4      ,          ^,          \        ^\        ^4      ,          ^
,           4      ^,          ,
          ^,           \        ^4      ,           4      4      8X  g   Q h\        R	R\        ,          R7      \        \        ^^4      \        ^^\	        R\        ,          4      ,           4      4      8X  g   Q h\        R	^R7      \        R	^^\	        ^4      ,           34      8X  g   Q h\        R. ROR7      \        \        ^^^4      \        ^^^4      4      8X  g   Q h\        R. ROR7      \        \        ^^^4      \        ^^^4      4      8X  g   Q h\        R. ROR7      \        \        ^^^4      \        ^^^4      4      8X  g   Q hR# )rD   rW   g      @g      @g      @g333333@gGz@re   Nrm   r   rZ   r   rG   r   )r[   rD   rn   )rq   rq   rq   ro   )r   r   r   r   r   r   r   rk   r<   r8   test_ray_generationr+    s   vR!V$FF(;;;;vR!V$FF(;;;;vbS1W%VV)<<<<vR"Wq[)S-@@@@vQVaZ(C,????vS2X\*c&&.AAAAvR C$7777vS2X&#ff*====vS2X&#ff*====vQ3vv#6666vTBY'3uQ{/4Qa4DQRGVXHXCY8Y\]8]`d34tAw;3CaEGHaI 9IKL9MOSTUw9W 0X,Y Y Y Y vTBY'3uQ{/4QCr	N8J/K,M M M MvQ3v1s1v:#????I6%1a@PRYZ[]^`aRb:ccccI6%1a@PRYZ[]^`aRb:ccccI6%1a@PRYZ[]^`aRb:ccccr<   c                  x   \        \        \        ^ 4      \        4      p \	        \        \
        \        4      ^ R7      p\        \        \        ,
          \        \        ,           ,          4      pVP                  V 4      \        \        V,           \        4      \        \        V,
          \        4      .8X  g   Q hR# )r   r   N)
r   r   r&   r)   r   r+   r*   r   r   r   )circleline_ss      r8   test_issue_7814r0  #  sp    E!QK#Fa1%D	q1uq1uo	BV$R);WQVQ=O(PPPPr<   c                  Z   aaaa VVVV3R  lp RRuooRRuooV ! 4        RRuooV ! 4        R# )c                     < \        \        \        \        3.^,          !   F>  w  rV ! SS4      pV! SS4      pVP	                  V4      VP	                  V4      8X  d   K>  Q h	  R# )r[   N)r#   r   r   r   r   )fgrw   rx   r2   r3   cr  s       r8   _checktest_issue_2941.<locals>._check+  sY    dC12Q67DA1aB1aB??2&"//"*==== 8r<   N)r   r   r   rY   rm   )r   rG   rk   )r6  r2   r3   r5  r  s    @@@@r8   test_issue_2941r8  *  s:    > > WDAq6DAq
HWDAq
Hr<   c                     aa \        R 4      o\        ^ ^4      \        ^^4      r\        W4      oSP                  RS4      S^/8X  g   Q h\	        \
        VV3R l4       R# )r.   c                  (   < S P                  RS4      # )r   rY   )parameter_value)r   r.   s   r8   r9   &test_parameter_value.<locals>.<lambda>>  s    q00;r<   N)r      )r	   r   r   r;  r$   rI   )r   r   r   r.   s     @@r8   test_parameter_valuer>  9  sR    sA1a[%1+RAVQ'Aq6111
:;<r<   c            
      `   \        \        ^ ^ ^ 4      \        ^^ ^ 4      4      p \        \        ^ ^ ^ 4      \        ^ ^^ 4      4      pV P                  V4      pV\        \        ^ ^ ^ 4      \        ^^^ 4      4      \        \        ^ ^ ^ 4      \        ^R^ 4      4      .8X  g   Q h\        \        ^ ^ ^ 4      \        ^^ ^4      4      \        \        ^ ^ ^ 4      \        R^ ^4      4      .pRpRp\        \        \
        \        3^R7       F%  w  rgV! V!  P                  V! V!  4      V8X  d   K%  Q h	  R# )r   )repeatNrE   )r   r   )rY   r   )r   r   	bisectorsr#   r   r   r   )r   r   
bisectionsansrw   rx   r2   r3   s           r8   test_bisectorsrD  A  s   	1a '!Q"2	3B	1a '!Q"2	3Bb!J&Aq!171a3CDwq!QB!235 5 5 5'!Q"GAq!$45wq!QQ!235C	B	Bgs+A6"v2'3... 7r<   c                      \        \        ^^^ 4      \        ^R^ 4      4      p \        \        ^RR4      \        ^R^ 4      4      pV P                  V4      \        ^R^ 4      .8X  g   Q hR# )r=  NirE   gffffff?)r   r   r   r?   s     r8   test_issue_8615rF  O  sa    wq!QB!23Awq"e$gaQ&78A>>!B!2 3333r<   c                     \        \        ^ ^4      \        RR4      P                  ^4      4      p \        \        ^ ^ 4      \        RR4      P                  ^4      4      p\        V P	                  V4      ^ ,          4      R8X  g   Q h\        RR4      p\        R	R
4      P                  ^4      p\        VP	                  V4      ^ ,          4      R8X  g   Q h\        R	R4      P                  ^4      pVP	                  V4      '       d   Q hR# )r   g\(\?gHzG?gQ?zPoint2D(0.82, 0.82)zPoint2D(-0.33, -0.33)NrY   rm   r   r   )g      r   )r   r   nstrr   r   r   )r   r   rw   rx   s       r8   test_issue_12598rJ  U  s    	U1a[%d+--a0	1B	U1a[%d+--a0	1Brr"1%&*????	ff	B	'	"	$	$Q	'Brr"1%&*AAAA	+	&	(	(	+Br"""""r<   N)`sympy.core.numbersr   r   r   r   sympy.core.relationalr   sympy.core.singletonr   sympy.core.symbolr	   r
   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   r   
sympy.setsr   sympy.simplify.simplifyr   r   sympy.geometryr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    sympy.geometry.liner!   sympy.geometry.polygonr"   r   r   r#   sympy.testing.pytestr$   r%   r&   r)   r*   r+   r,   r-   r.   r2   r3   r0   rJ   rM   rU   r]   r`   rc   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r)  r+  r0  r8  r>  rD  rF  rJ  rk   r<   r8   <module>rW     s   8 8 $ " / 9 E E  , 8     , . , . 3T
3T
3T
3TDtDt
3Tu4 1Cd50&S#<CJ$S	B""JJCZ*IZ'5T#:C
-T`I4'DMATO!tHw*^*NC PF< E0 d.Q=/4#r<   