o
    8Va                     @   s   d dl mZmZmZmZmZmZmZ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d Zedd Zdd	 Zd
d Zdd Zdd ZdS )    )SymbolpisymbolsTupleSsqrtasinhRational)	CurveLinePointEllipseRaySegmentCirclePolygonRegularPolygon)raisesslowc                     s  t dddt d t d} td   d g| ddf}|j| ks#J |jd   d fks0J | td   d ks?J || td   d ksOJ td   d g ddf}|j ksdJ |jd   d fksqJ t d| td d ksJ t ddd| td d ksJ || td|  | d ksJ ||jtd   d ksJ |d td   d ksJ | ddgksJ || | ddgksJ tgdd	ftd t gdd	fksJ tgdd	ftd d
	dd
d	d tddtd d
	dd
d	d   krBtd  d d  d ksEJ  J tt fdd ttfdd tt fdd tt fdd d S )NxTrealsz   r   t   )r   r      )r   r   )r   r         c                      s   t   ddfS Nr   r   r
    )r   r#   A/usr/lib/python3/dist-packages/sympy/geometry/tests/test_curve.py<lambda>+   s    ztest_curve.<locals>.<lambda>c                      s   t   d fd fS )Nr   r   r"   r#   )r   r#   r$   r%   ,   s    c                      s   t    f ddf S r!   r
   arbitrary_pointr#   r   r   r#   r$   r%   .       c                      s   t    fddf S r!   r&   r#   r(   r#   r$   r%   /   s    )r   r
   Z	parameterZ	functionsr'   r   Zplot_intervalrotater   scale	translater   r   
ValueError)r   cr#   )r   r   r   r$   
test_curve   sH     " 8(
r/   c                  C   s  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|dj| ||hksKJ t| |f||fj| |||hks]J t| |f|dj| ||hksmJ t| | || f|||fj| |||hksJ t| |f||j| |||hksJ t| |f||dj| |||hksJ t| |f||dj| |||hksJ t| |f|j| ||hksJ t| |f||f||fj|||||| hksJ t	| |f||f||fj||||| |hksJ t
| |f|||j|| |||hks
J d S )Nza:f,s)Zangle)Zslope)eccentricity)Zvradiusr0   )r   r   Zfree_symbolsr   r   r   r
   r   r   r   r   )abr.   defr   r#   r#   r$   test_free_symbols2   s.   $$ $ ."

,r6   c                     s  t dddt ddd} td fddf td d d	d  d
 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} dd	dksZJ  fddtdddD |kslJ fddtdddD |ks~J t|  d	 fddf| tjttj d	 fddfksJ td	 fddf	ddtd d	 d fddfksJ d S )Nr   Tr   yr   r   r      r   
   iir   i)r8      c                       g | ]
}  |d  qS r   subs.0Zxi)r.   r   r#   r$   
<listcomp>R   r)   z"test_transform.<locals>.<listcomp>c                    r=   r>   r?   rA   )coutr   r#   r$   rC   S   r)   r<   )
r   r
   r   r   ZHalfr	   r+   r   r@   r,   )r7   ZptsZpts_outr#   )r.   rD   r   r$   test_transformI   s   ($"$$$rE   c                  C   s   t d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 | f| ddf}|jtd td	d	  td
d	  dtd d  ksTJ d S )Nr   Tr   r   r   r   r<      r8   r9   e   )r   r
   lengthr   r   )r   Zc1Zc2Zc3r#   r#   r$   test_lengthZ   s   @rI   c                      sT   t dtd d gddf  ddiksJ tt fdd d S )Nr   r   r   )r   r   r   c                      s     dS )N)r   r   )parameter_valuer#   Cr   r#   r$   r%   k   s    z&test_parameter_value.<locals>.<lambda>)r   r
   rJ   r   r-   r#   r#   rK   r$   test_parameter_valueg   s   rM   c                  C   sp   t d\} }t| | d f| ddf}td| |d g|ddf}|dtddks+J |dtddks6J d S )Nzt sr   r   r9   r8   r   )r   r
   r   )r   r   r.   pr#   r#   r$   test_issue_17997n   s
   rO   N)Zsympyr   r   r   r   r   r   r   r	   Zsympy.geometryr
   r   r   r   r   r   r   r   r   Zsympy.testing.pytestr   r   r/   r6   rE   rI   rM   rO   r#   r#   r#   r$   <module>   s   ( ,,
