o
    …º¥g¼  ã                   @   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   ÚequationÚ	variablesÚdegreer   r   )ÚellipseÚr© r   ú]/var/www/visachat/venv/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   Úsingular_pointsr
   r	   Úmultiplicityr   )r*   r.   r&   Úr4r   r   r   Ú$test_singular_points_and_multiplicty$   s   0"$"r3   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#   r9   r   )r.   r   r   r'   Z   r(   )r   r   r:   r   r   r   r   ÚHalfr   r   r   ÚNotImplementedError)ÚpÚlineÚcircle1Úcircle2Úcircle3ÚparabolaÚrect_hyperbolaÚcubic_curveÚcuspidalÚIÚsphereÚconicr   )r*   r.   r   Útest_rational_parametrization3   s<   &D0L$F"*$". ",.d<Pÿ&rI   N)Úsympy.core.relationalr   Úsympy.core.singletonr   Ú	sympy.abcr   r   r   r   r   Ú
sympy.setsr	   r
   Úsympy.geometryr   Úsympy.vectorr   Úsympy.testing.pytestr   r   r/   r3   rI   r   r   r   r   Ú<module>   s    