
    \h                         S SK Jr  S SKJrJr  S SKJr  S SKJrJ	r	  S SK
Jr  S SKJr  S SKJrJrJrJrJrJrJrJrJr  S SKJrJr  S	 r\S
 5       rS rS rS rS r g)    )Tuple)Rationalpi)S)Symbolsymbols)asinh)sqrt)	CurveLinePointEllipseRaySegmentCirclePolygonRegularPolygon)raisesslowc                    ^^^ [        SSS9m[        S5      m[        S5      n [        ST-  TS-  /U SS45      nUR                  U :X  d   eUR                  ST-  TS-  4:X  d   eUR	                  5       [        ST-  TS-  5      :X  d   eUR	                  U 5      [        ST-  TS-  5      :X  d   e[        ST-  TS-  /TSS45      nUR                  T:X  d   eUR                  ST-  TS-  4:X  d   e[        S5      mUR	                  5       [        ST-  TS-  5      :w  d   e[        SSS9mUR	                  5       [        ST-  TS-  5      :X  d   eUR	                  U 5      [        SU -  U S-  5      :X  d   eUR	                  UR                  5      [        ST-  TS-  5      :X  d   eUR	                  S 5      [        ST-  TS-  5      :X  d   eUR                  5       TSS/:X  d   eUR                  U 5      U SS/:X  d   e[        TT/TSS	45      R                  [        S-  5      [        T* T/TSS	45      :X  d   e[        TT/TSS	45      R                  [        S-  S
5      R                  SS5      R                  S	S5      R	                  T5      [        SS5      R                  [        S-  S
5      R                  SS5      R                  S	S5      R	                  T5      s=:X  a  [        ST-  S-   ST-  S-   5      :X  d   e   e[        [        U4S j5        [        [        U4S j5        [        [        UU4S j5        [        [        UU4S j5        g )NxTrealsz   r   t   )r   r      )r   r   )r   r         c                  "   > [        T T SS45      $ Nr   r   r   )r   s   W/var/www/auris/envauris/lib/python3.13/site-packages/sympy/geometry/tests/test_curve.py<lambda>test_curve.<locals>.<lambda>0   s    ua1a)4    c                  *   > [        T T S-  4ST 45      $ )Nr   r   r%   )r   s   r&   r'   r(   1   s    uaQZ!Q8r)   c                  H   > [        T T T-   4T SS45      R                  5       $ r$   r   arbitrary_pointr   r   s   r&   r'   r(   3   s#    uaQZ!Q;KKMr)   c                  J   > [        T T T-   4TSS45      R                  T 5      $ r$   r,   r.   s   r&   r'   r(   4   s%    uaQZ!Q;KKANr)   )r   r   	parameter	functionsr-   r   plot_intervalrotater   scale	translater   r   
ValueError)r   cr   r   r   s     @@@r&   
test_curver8      s[   sAsAsA 	qsAqDkAq!9%A;;!;;1Q31+%%%%!QT"2222Q51ad#3333 	qsAqDkAq!9%A;;!;;1Q31+%%%sA%!QT"2222sA%!QT"2222Q51ad#3333Q[[)U1Q31-====T"eAaCA&6666??Aq	)))??1!Q***!Q!Q#**2a40EA2q'Aq!94MMMM!Q!Q#**2a48>>q!DNN	1oa VV##BqD&1771=GGq	!/!$! 	bdQh!a 	! ! ! ! ! :45
:89
:MN
:NOr)   c                     [        S5      u  pp#pEn[        X5      R                  X1:X  d   e[        X4X#45      R                  XX#1:X  d   e[	        X4X#45      R                  XX#1:X  d   e[	        X4US9R                  XU1:X  d   e[        X4X#45      R                  XX#1:X  d   e[        X4US9R                  XU1:X  d   e[        X-  X-  4XbU45      R                  XX#1:X  d   e[        X4X#5      R                  XX#1:X  d   e[        X4X#S9R                  XX#1:X  d   e[        X4X#S9R                  XX#1:X  d   e[        X4U5      R                  XU1:X  d   e[        X4X#4XE45      R                  XCX!XP1:X  d   e[        X4X#4XE45      R                  XAX5X1:X  d   e[        X4X#U5      R                  X@XU1:X  d   eg )Nza:f,s)angle)slope)eccentricity)vradiusr<   )r   r   free_symbolsr   r   r   r   r   r   r   r   )abr7   defr   s          r&   test_free_symbolsrD   7   s   !'*A!a;##v---,,q<<<vv++a|;;;vQ,,q	999A6A6"//A!<???a --!:::!#qsaAY'44qDDDA61 --!===A61-::	
q  A615BB	
q  1&!))aAY6661&1&1&)66	
qQ  A6A6A6*77	
qQ  1&!*77A!?JJJr)   c                     [        SSS9n [        SSS9n[        X S-  4U SS45      n[        SU -  S-
  S	U S-  -  S
-
  4U SS45      n[        SS5      [        [        R                  [        SS5      5      [        SS5      /n[        SS5      [        S[        SS5      5      [        SS5      /nUR                  SS	S5      U:X  d   e[        SSS5       Vs/ s H  obR                  XS-  5      PM     snU:X  d   e[        SSS5       Vs/ s H  ocR                  XS-  5      PM     snU:X  d   e[        X-   S	U -  4U SS45      R                  U[        R                  5      [        U [        R                  -   S	U -  4U SS45      :X  d   e[        U S	U -  4U SS45      R                  SS5      [        U S-   S	U -  S-   4U SS45      :X  d   eg s  snf s  snf )Nr   Tr   yr   r   r      r   
   iir    i)rG      rK   )
r   r   r   r   Halfr   r4   r   subsr5   )r   rF   r7   coutptspts_outxis          r&   test_transformrR   N   s   sAsAqQ$i!Q#A!A#'1QT6B;'!Q3DA;affhq!n5uQ{
CCR~uR#q)9:E"bMJG771a D(((&+Aq!n5nFF1dOn5<<<).q!Q82IIaA8GCCC!%11ay)..q!&&9q166z1Q3!Q+, , ,!QqSAq!9%//15q1uacAgAq	*+ + +	 68s   GGc                  t   [        SSS9n [        U S4U SS45      nUR                  S:X  d   e[        X 4U SS45      nUR                  [        S5      :X  d   e[        U S-  U 4U SS45      nUR                  [        S5      * [	        S	5      S	-  -
  [	        S
5      S	-  -   S[        S5      -  S-  -   :X  d   eg )Nr   Tr   r   r   r   rK      rG   rH   e   )r   r   lengthr
   r	   )r   c1c2c3s       r&   test_lengthrZ   _   s    sA	1v1ay	!B99>>	v1ay	!B99Q	Q{Q1I	&B99b	E!HqL059q=@1tCy=STCTTTTTr)   c                     ^ ^ [        S5      m[        ST-  TS-  /TSS45      m T R                  ST5      TS0:X  d   e[        [        U U4S j5        g )Nr   r   r   )r   r   r   c                  (   > T R                  ST5      $ )N)r   r   )parameter_valueCr   s   r&   r'   &test_parameter_value.<locals>.<lambda>p   s    q00;r)   )r   r   r]   r   r6   r^   s   @@r&   test_parameter_valuera   l   sT    sAqsAqDkAq!9%AVQ'Aq6111
:;<r)   c                      [        S5      u  p[        X S-  4U SS45      n[        SU-  US-  /USS45      nU" S5      [        SS5      :X  d   eU" S5      [        SS5      :X  d   eg )Nzt sr   r   rH   rG   r   )r   r   r   )r   r   r7   ps       r&   test_issue_17997rd   s   ss    5>DAqQ$i!Q$AqsAqDkAq!9%AQ45A;Q45A;r)   N)!sympy.core.containersr   sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   r   %sympy.functions.elementary.hyperbolicr	   (sympy.functions.elementary.miscellaneousr
   sympy.geometryr   r   r   r   r   r   r   r   r   sympy.testing.pytestr   r   r8   rD   rR   rZ   ra   rd    r)   r&   <module>rn      sU    ' - " / 7 9 e e e -)PX K K,+"
U=r)   