o
    GZh  ć                   @   sÄ   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	d
 Zedd Zdd Zdd Zdd Zdd Z dS )é    )ŚTuple)ŚRationalŚpi)ŚS)ŚSymbolŚsymbols)Śasinh)Śsqrt)	Ś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sJ t ddd| ” td d ksJ | | ”td|  | d ks©J | |j”td   d ksŗJ | d ”td   d ksŹJ | ” ddgksÕJ | | ”| ddgksįJ tgdd	f td ”t gdd	fksżJ 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#   śN/var/www/auris/lib/python3.10/site-packages/sympy/geometry/tests/test_curve.pyŚ<lambda>0   s    ztest_curve.<locals>.<lambda>c                      s   t   d fd fS )Nr   r   r"   r#   )r   r#   r$   r%   1   s    c                      s   t    f ddf ” S r!   ©r
   Śarbitrary_pointr#   ©r   r   r#   r$   r%   3   ó    c                      s   t    fddf  ”S r!   r&   r#   r(   r#   r$   r%   4   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sJ t| |f||j| |||hksJ t| |f||dj| |||hks§J t| |f||d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 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_symbols7   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s¢J td	 fddf 	dd”td d	 d fddfksÄJ d S )Nr   Tr   Śyr   r   r   é   r   é
   éü’’’iö’’’éż’’’iŪ’’’r   ił’’’)r8   é   c                    ó   g | ]
}   |d  ”qS ©r   ©Śsubs©Ś.0Śxi)r.   r   r#   r$   Ś
<listcomp>W   r)   z"test_transform.<locals>.<listcomp>c                    r=   r>   r?   rA   )Ścoutr   r#   r$   rD   X   r)   r<   )
r   r
   r   r   ZHalfr   r+   r   r@   r,   )r7   ZptsZpts_outr#   )r.   rE   r   r$   Śtest_transformN   s   ($"$$$’’rF   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   Śc1Śc2Śc3r#   r#   r$   Śtest_length_   s   @rM   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%   p   s    z&test_parameter_value.<locals>.<lambda>)r   r
   rN   r   r-   r#   r#   rO   r$   Śtest_parameter_valuel   s   rQ   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_17997s   s
   rS   N)!Zsympy.core.containersr   Zsympy.core.numbersr   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z%sympy.functions.elementary.hyperbolicr   Z(sympy.functions.elementary.miscellaneousr	   Zsympy.geometryr
   r   r   r   r   r   r   r   r   Zsympy.testing.pytestr   r   r/   r6   rF   rM   rQ   rS   r#   r#   r#   r$   Ś<module>   s    ,,
