U
    ZÊ¹j¼  ã                   @   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sLt‚| jttfks^t‚| jdkslt‚t tttfttd td  tt  dƒƒ}|jtd td  tt  d ks¼t‚|jtttfksÐt‚|jdksÞt‚d S )Né   é   é   é   é   )	r   r   r   ZequationÚAssertionErrorÚ	variablesZdegreer   r   )ZellipseÚr© r   úe/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/vector/tests/test_implicitregion.pyÚtest_ImplicitRegion
   s    &&*&r   c                     s˜  t tftd d ƒ} |  ¡ dks$t‚t ttftd td  d ƒ}| ¡ dksRt‚t ttfttdƒd  d td  tdƒd d  ƒ}| ¡ tdƒd tdƒ d fks®t‚t ttftd d dtd   ƒ}| ¡ dksàt‚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�sDt‚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   ˆ   ¡ S ©N)Úregular_pointr   ©Úr3r   r   Ú<lambda>!   ó    z$test_regular_point.<locals>.<lambda>)r   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.t‚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€t‚| 	d¡dks’t‚| 	d¡dks¤t‚t tttftd td  td  ƒ}| ¡ tdƒksÜt‚| 	d¡dksît‚t ttftd td  dt  ƒ}| ¡ tk�s"t‚| 	t
ddƒ¡dk�s<t‚d S )Nr   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   r   Zsingular_pointsr
   r   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&t‚t ttfttdt d ƒƒ}| ¡ tdt d fks^t‚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sÈt‚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�sFt‚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²t‚t ttftd d dtd   ƒ}| t¡ddtd   ddt  fk�s t‚t ttftt d ƒ}| t¡d	td t  tfk�s:t‚t ttftd td  td  ƒ}|jtd�td d ttd d  fk�sŠt‚t ttftd td  ƒ}| t¡td td fk�sÄt‚t ttftd td  td  ƒ}	|	 t¡td d ttd d  fk�st‚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¤t‚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�sDt‚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                      s   ˆ   ¡ S r    ©Úrational_parametrizationr   )r'   r   r   r$   X   r%   z/test_rational_parametrization.<locals>.<lambda>c                      s   ˆ   ¡ S r    r3   r   )r+   r   r   r$   Z   r%   )r   r   r4   r   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N$H",$". ",.d<& *ÿ&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   