
    sg                         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 Zd	 Zd
 Zd Zy)    )Eq)S)xyzst)	FiniteSetEmptySet)Point)ImplicitRegion)raisesc                  b   t        t        t        ft        dz  dz  t        dz  dz  z   dz
        } | j                  t        dz  dz  t        dz  dz  z   dz
  k(  sJ | j                  t        t        fk(  sJ | j
                  dk(  sJ t        t        t        t        ft        t        dz  t        dz  z   t        t        z  z
  d            }|j                  t        dz  t        dz  z   t        t        z  z
  dz
  k(  sJ |j                  t        t        t        fk(  sJ |j
                  dk(  sJ y )N               )r   r   r   equation	variablesdegreer   r   )ellipsers     Y/var/www/html/venv/lib/python3.12/site-packages/sympy/vector/tests/test_implicitregion.pytest_ImplicitRegionr   
   s   aVad1fq!tBw&6&:<Gq!tAv1R/!3333A&&&>>Q1ay"QTAqD[1Q3%6":;A::A1qs*Q....;;1a)###88q==    c                  $   t        t        ft        dz  dz
        } | j                         dk(  sJ t        t        t        ft        dz  t        dz  z   dz
        }|j                         dk(  sJ t        t        t        ft        t	        d      dz  z
  dz  t        dz  z   t	        d      dz  dz  z
        }|j                         t	        d      dz  t	        d       dz  fk(  sJ t        t        t        ft        dz
  dz  dt        dz
  z  z
        }|j                         dk(  sJ t        t        t        ft        dz  dt        z  t        z  z
  d	t        dz  z  z
  dt        z  z   d
t        z  z   dz
        }|j                         t	        d      dz  t	        d      dz  fk(  sJ t        t        t        ft        dz  dt        z  t        z  z
  d	t        dz  z  z   dt        z  z
  dt        z  z
  dz         t        t        fd       y )Nr   r   )r   )r      r   )r    r             	   g      ?c                  $     j                         S N)regular_point)r3s   r   <lambda>z$test_regular_point.<locals>.<lambda>!   s    r//1 r   )r   r   r'   r   r   r   
ValueError)r1c1c2c3r2r(   s        @r   test_regular_pointr0      s   	adRi	(B&&&	A1q!ta	0B(((	AQqT!Va!Q$ 6!A$q&1 D	EB!A$q&1Q4%'!2222	AQ
b!a%j 8	9B'''	A1qs1uqAv 5! ;ac AA E	FB!A$q&!A$q&!1111	A1qs1uqAv 5! ;ac AC G	HB
:12r   c                     t        t        t        t        ft	        t        t        z   t        z   d            } | j                         t        k(  sJ t        t        t        t        ft        t        z  t        z  t        dz  z   t        dz  t        dz  z  z
        }|j                         t        ddt        ft        ddf      k(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ t        t        t        t        ft        dz  t        dz  z
  t        dz  z
        }|j                         t        d      k(  sJ |j                  d      dk(  sJ t        t        t        ft        dz  t        dz  z   dt        z  z
        }|j                         t        k(  sJ |j                  t        dd            dk(  sJ y )Nr   r   r   )r   r   r   r!   )r   r   r   r   )
r   r   r   r   r   singular_pointsr   r
   multiplicityr   )r+   r/   r(   r4s       r   $test_singular_points_and_multiplictyr5   $   sx   	Aq	2a!eai#3	4B8+++	Aq	1Q3q51a4<Aad#:	;B9aAYAq	#BBBB??9%***??9%***	Aq	1a4!Q$;A#5	6B9Y#7777??9%***	A1q!tac 1	2B8+++??5A;'1,,,r   c            	      F   t        t        ft        dz
        } | j                         t        dz
  fk(  sJ t        t        t        ft	        t        dt        z  dz               }|j                         t        dt        z  dz   fk(  sJ t        t        t        ft        dz
  dz  t        dz   dz  z   dz
        }|j                  t
              dt
        z  t
        dz  dz   z  dz   dt
        dz  z  t
        dz  dz   z  dz
  fk(  sJ t        t        t        ft        t        j                  z
  dz  t        dz  z   t        d      dz  dz  z
        }|j                  t
              t
        t
        dz  dz   z  t        d      dz  z   t
        dz  t
        dz  dz   z  t        d      dz  z
  fk(  sJ t        t        t        ft	        t        dz  t        dz  z   dt        z              }|j                  t
        f      dt
        z  t
        dz  dz   z  dz   dt
        dz  z  t
        dz  dz   z  dz
  fk(  sJ t        t        t        ft        dz
  dz  dt        dz   z  z
        }|j                  t
              ddt
        dz  z  z   ddt
        z  z   fk(  sJ t        t        t        ft        t        z  dz
        }|j                  t
              d	t
        dz   t
        z  z   t
        fk(  sJ t        t        t        ft        dz  t        dz  z   t        dz  z
        }|j                  t
              t
        dz  dz
  t
        t
        dz  dz
  z  fk(  sJ t        t        t        ft        dz  t        dz  z
        }|j                  t
              t
        dz  t
        dz  fk(  sJ t        t        t        ft        dz  t        dz  z   t        dz  z
        }	|	j                  t
              t
        dz  dz
  t
        t
        dz  dz
  z  fk(  sJ t        t        t        t        ft	        t        dz  t        dz  z   t        dz  z   dt        z              }
|
j                  t        t
        f      dt        dz  t
        dz  z   dz   z  dt
        z  t        dz  t
        dz  z   dz   z  dt        z  t        dz  t
        dz  z   dz   z  fk(  sJ t        t        t        ft	        t        dz  dt        z  t        z  z   dt        dz  z  z   t        z   t        z
  d
z   d            }|j                  t
              t        d      dz  ddt
        dz  z  dt
        z  z   dz   z  z   dt
        z  dt
        dz  z  dt
        z  z   dz   z  t        d      dz  z
  fk(  sJ t        t        t        ft        dz  t        dz  z
  t        z         t        t        fd       t        t        t        ft        dz  t        dz  z
  t        dz  z
  dz         t        t        fd       y )Nr   r!   r   )
parametersr   r    r   i
   r         c                  $     j                         S r&   rational_parametrization)r+   s   r   r)   z/test_rational_parametrization.<locals>.<lambda>X       (C(C(E r   c                  $     j                         S r&   r=   )r/   s   r   r)   z/test_rational_parametrization.<locals>.<lambda>Z   r?   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/   s               @@r   test_rational_parametrizationrO   3   s   tQU#A%%'AE83331a&"Q!a.1D((*q!A#'l:::aVacAX1q%81%<=G++q+9ac1a4!8nq>PRSTUWXTXRXZ[]^Z^abZbRcfgRg=hhhhaVa!&&j1_q!t%;qtAvk%IJG++q+9aAlQqTRSV>SUVXYUY[\^_[_bc[cUdghijgklmgmUm=nnnnaVR1q!tQqS%9:G++t+<1adQhRSASUVWXZ[W[U[]^`a]ade]eUfijUj@kkkkq!fq1uqj1a!e9&<=H,,Q/B1a4KQqS3IIII#QFAaC!G4N2215"Aqy.!9LLLL !QA1q!t);<K//A/?AqD1HaQRTUQUXYQYlC[[[[q!fq!tad{4H,,Q/AqD!Q$<???1vq!tad{QT12A%%a(QTAXq!Q$(|,DDDDQ1Ir!Q$A+1*<ac'BCF**q!f*=!QTAqD[ST_BUWXYZWZ\]_`\`cdfgcg\gjk\kWlnopqnqstvwswz{}~z~s~  BC  tC  oD  BE  E  E  EAq62adQqSUlQq!tV&;a&?!&Cb&H!#LME))!,	"a!Qq!tVac\A%&&!Qq!tVac\A-=(>2q(H1J J J J 
A1q!ta	0B
 EF	A1q!tad 2Q 6	7B
 EFr   N)sympy.core.relationalr   sympy.core.singletonr   	sympy.abcr   r   r   r   r	   
sympy.setsr
   r   sympy.geometryr   sympy.vectorr   sympy.testing.pytestr   r   r0   r5   rO    r   r   <module>rX      s2    $ " # # *   ' '3-'Gr   