
    wg                         d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZmZ d	 Zed
        Zd Zd Zd Zd Z y)    )Tuple)Rationalpi)S)Symbolsymbols)asinh)sqrt)	CurveLinePointEllipseRaySegmentCirclePolygonRegularPolygon)raisesslowc                     t        dd      t        d      t        d      } t        dz  dz  g| ddf      }|j                  | k(  sJ |j                  dz  dz  fk(  sJ |j	                         t        dz  dz        k(  sJ |j	                  |       t        dz  dz        k(  sJ t        dz  dz  gddf      }|j                  k(  sJ |j                  dz  dz  fk(  sJ t        d      |j	                         t        dz  dz        k7  sJ t        dd      |j	                         t        dz  dz        k(  sJ |j	                  |       t        d| z  | dz        k(  sJ |j	                  |j                        t        dz  dz        k(  sJ |j	                  d       t        dz  dz        k(  sJ |j                         ddgk(  sJ |j                  |       | ddgk(  sJ t        gdd	f      j                  t        dz        t         gdd	f      k(  sJ t        gdd	f      j                  t        dz  d
      j                  dd      j                  d	d      j	                        t        dd      j                  t        dz  d
      j                  dd      j                  d	d      j	                        cxk(  rt        dz  dz   dz  dz         k(  sJ  J t        t        fd       t        t        fd       t        t        fd       t        t        fd       y )NxTrealsz   r   t   )r   r      )r   r   )r   r         c                  "    t          ddf      S Nr   r   r   )r   s   d/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/geometry/tests/test_curve.py<lambda>ztest_curve.<locals>.<lambda>0   s    ua1a)4     c                  *    t          dz  fd f      S )Nr   r   r%   )r   s   r&   r'   ztest_curve.<locals>.<lambda>1   s    uaQZ!Q8 r(   c                  H    t          z   f ddf      j                         S r$   r   arbitrary_pointr   r   s   r&   r'   ztest_curve.<locals>.<lambda>3   s%    uaQZ!Q;KKM r(   c                  J    t          z   fddf      j                         S r$   r+   r-   s   r&   r'   ztest_curve.<locals>.<lambda>4   s'    uaQZ!Q;KKAN r(   )r   r   	parameter	functionsr,   r   plot_intervalrotater   scale	translater   r   
ValueError)r   cr   r   r   s     @@@r&   
test_curver7      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                     t        d      \  } }}}}}}t        | |      j                  | |hk(  sJ t        | |f||f      j                  | |||hk(  sJ t	        | |f||f      j                  | |||hk(  sJ t	        | |f|      j                  | ||hk(  sJ t        | |f||f      j                  | |||hk(  sJ t        | |f|      j                  | ||hk(  sJ t        | |z  ||z  f|||f      j                  | |||hk(  sJ t        | |f||      j                  | |||hk(  sJ t        | |f||      j                  | |||hk(  sJ t        | |f||      j                  | |||hk(  sJ t        | |f|      j                  | ||hk(  sJ t        | |f||f||f      j                  |||||| hk(  sJ t        | |f||f||f      j                  ||||| |hk(  sJ t        | |f|||      j                  || |||hk(  sJ y )Nza:f,s)angle)slope)eccentricity)vradiusr;   )r   r   free_symbolsr   r   r   r   r   r   r   r   )abr6   defr   s          r&   test_free_symbolsrC   7   s   !'*Aq!Q1aA;##1v---AA,,Aq!<<<1v1v++1a|;;;1vQ,,Aq	999Aq6Aq6"//Aq!Q<???Aa --!Q:::!A#qsaAY'44Aq!DDDAq61a --!Q1===Aq611-::	
Aq!  Aq6115BB	
Aq!  1a&!))aAY6661a&1a&1a&)66	
Aq!Q  Aq6Aq6Aq6*77	
Aq!Q  1a&!Q*77Aq!Q?JJJr(   c                     t        dd      } t        dd      }t        | | dz  f| ddf      }t        d| z  dz
  d	| dz  z  d
z
  f| ddf      }t        dd      t        t        j                  t        dd            t        dd      g}t        dd      t        dt        dd            t        dd      g}|j                  dd	d      |k(  sJ t        ddd      D cg c]  }|j                  | |dz         c}|k(  sJ t        ddd      D cg c]  }|j                  | |dz         c}|k(  sJ t        | |z   d	| z  f| ddf      j                  |t        j                        t        | t        j                  z   d	| z  f| ddf      k(  sJ t        | d	| z  f| ddf      j                  dd      t        | dz   d	| z  dz   f| ddf      k(  sJ y c c}w c c}w )Nr   Tr   yr   r   r      r   
   iir    i)rF      rJ   )
r   r   r   r   Halfr   r3   r   subsr4   )r   rE   r6   coutptspts_outxis          r&   test_transformrQ   N   s   sAsAq!Q$i!Q#A!A#'1QT6B;'!Q3DA;affhq!n5uQ{
CCR~uR#q)9:E"bMJG771a D(((&+Aq!n5AFF1bdO5<<<).q!Q82DIIaA8GCCC!a%11ay)..q!&&9q166z1Q3!Q+, , ,!QqSAq!9%//15q1uacAgAq	*+ + +	 68s   GGc                  v   t        dd      } t        | df| ddf      }|j                  dk(  sJ t        | | f| ddf      }|j                  t        d      k(  sJ t        | dz  | f| ddf      }|j                  t        d       t	        d	      d	z  z
  t	        d
      d	z  z   dt        d      z  dz  z   k(  sJ y )Nr   Tr   r   r   r   rJ      rF   rG   e   )r   r   lengthr
   r	   )r   c1c2c3s       r&   test_lengthrY   _   s    sA	1v1ay	!B99>>	1v1ay	!B99Q	Q{Q1I	&B99b	E!HqL059q=@1tCy=STCTTTTTr(   c                       t        d      t        dz  dz  gddf        j                  d      dik(  sJ t        t         fd       y )Nr   r   r   )r   r   r   c                  (     j                  d      S )N)r   r   )parameter_valueCr   s   r&   r'   z&test_parameter_value.<locals>.<lambda>p   s    q00; r(   )r   r   r\   r   r5   r]   s   @@r&   test_parameter_valuer_   l   sT    sAqsAqDkAq!9%AVQ'Aq6111
:;<r(   c                      t        d      \  } }t        | | dz  f| ddf      }t        d|z  |dz  g|ddf      } |d      t        dd      k(  sJ  |d      t        dd      k(  sJ y )Nzt sr   r   rG   rF   r   )r   r   r   )r   r   r6   ps       r&   test_issue_17997rb   s   sw    5>DAqq!Q$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   r7   rC   rQ   rY   r_   rb    r(   r&   <module>rl      sU    ' - " / 7 9 e e e -)PX K K,+"
U=r(   