o
    GZŽh¼  ã                   @   sŒ   d dl mZ d dlmZ d dlmZmZmZmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d dlmZ dd	„ Zd
d„ Zdd„ Zdd„ ZdS )é    )ÚEq)ÚS)ÚxÚyÚzÚsÚt)Ú	FiniteSetÚEmptySet)ÚPoint)ÚImplicitRegion)Úraisesc                  C   sâ   t ttftd d td d  d ƒ} | jtd d td d  d ks&J ‚| jttfks/J ‚| jdks6J ‚t tttfttd td  tt  dƒƒ}|jtd td  tt  d ks^J ‚|jtttfkshJ ‚|jdksoJ ‚d S )Né   é   é   é   é   )r   r   r   ZequationÚ	variablesZdegreer   r   )ZellipseÚr© r   úU/var/www/auris/lib/python3.10/site-packages/sympy/vector/tests/test_implicitregion.pyÚtest_ImplicitRegion
   s   &&*&r   c                     s–  t tftd d ƒ} |  ¡ dksJ ‚t ttftd td  d ƒ}| ¡ dks)J ‚t ttfttdƒd  d td  tdƒd d  ƒ}| ¡ tdƒd tdƒ d fksWJ ‚t ttftd d dtd   ƒ}| ¡ dkspJ ‚t ttftd dt t  d	td   dt  d
t  d ƒ}| ¡ tdƒd tdƒd fks¡J ‚t ttftd dt t  d	td   dt  dt  d ƒ‰ tt‡ fdd„ƒ d S )Nr   r   )éüÿÿÿr   )r   éþÿÿÿé   r   )r   r   é   é   é   é	   g      ø?c                      ó   ˆ   ¡ S ©N)Úregular_pointr   ©Úr3r   r   Ú<lambda>!   ó    z$test_regular_point.<locals>.<lambda>)r   r   r!   r   r   r   Ú
ValueError)Úr1Úc1Úc2Úc3Úr2r   r"   r   Útest_regular_point   s   6&">$>r,   c                  C   s<  t tttfttt t dƒƒ} |  ¡ tksJ ‚t tttftt t td  td td   ƒ}| ¡ tddtftddfƒks@J ‚| d¡dksIJ ‚| d¡dksRJ ‚t tttftd td  td  ƒ}| ¡ tdƒksnJ ‚| d¡dkswJ ‚t ttftd td  dt  ƒ}| ¡ tksJ ‚| t	ddƒ¡dksœJ ‚d S )Nr   r   r   )r   r   r   r   )r   r   r   r   )
r   r   r   r   r   Zsingular_pointsr
   r	   Zmultiplicityr   )r'   r+   r#   Zr4r   r   r   Ú$test_singular_points_and_multiplicty$   s   0"$"r-   c                     sª  t tftd ƒ} |  ¡ td fksJ ‚t ttfttdt d ƒƒ}| ¡ tdt d fks/J ‚t ttftd d td d  d ƒ}|jtddt td d  d dtd  td d  d fksdJ ‚t ttfttj d td  tdƒd d  ƒ}|jtdttd d  tdƒd  td td d  tdƒd  fks¢J ‚t ttfttd td  dt ƒƒ}|jtfddt td d  d dtd  td d  d fks×J ‚t ttftd d dtd   ƒ}| t¡ddtd   ddt  fksýJ ‚t ttftt d ƒ}| t¡d	td t  tfksJ ‚t ttftd td  td  ƒ}|jtdtd d ttd d  fksBJ ‚t ttftd td  ƒ}| t¡td td fks_J ‚t ttftd td  td  ƒ}	|	 t¡td d ttd d  fks†J ‚t tttfttd td  td  dt ƒƒ}
|
jt	tfddt	d td  d  dt t	d td  d  dt	 t	d td  d  fksÏJ ‚t ttfttd dt t  dtd   t t d
 dƒƒ}| t¡tdƒd ddtd  dt  d   dt dtd  dt  d  tdƒd  fksJ ‚t ttftd td  t ƒ‰ t
t‡ fdd„ƒ t ttftd td  td  d ƒ‰t
t‡fdd„ƒ d S )Nr   r   r   )Ú
parametersr   r   r   iúÿÿÿéÿÿÿÿé
   r   é   é   c                      r   r    ©Úrational_parametrizationr   )r'   r   r   r$   X   r%   z/test_rational_parametrization.<locals>.<lambda>c                      r   r    r3   r   )r+   r   r   r$   Z   r%   )r   r   r4   r   r   r   r   ZHalfr   r   r   ÚNotImplementedError)ÚpÚlineZcircle1Zcircle2Zcircle3ZparabolaZrect_hyperbolaZcubic_curveZcuspidalÚIZsphereZconicr   )r'   r+   r   Útest_rational_parametrization3   s<   &D0L$F"*$". ",.d<Pÿ&r9   N)Zsympy.core.relationalr   Zsympy.core.singletonr   Z	sympy.abcr   r   r   r   r   Z
sympy.setsr	   r
   Zsympy.geometryr   Zsympy.vectorr   Zsympy.testing.pytestr   r   r,   r-   r9   r   r   r   r   Ú<module>   s    