
    g                         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dS )    )Eq)S)xyzst)	FiniteSetEmptySet)Point)ImplicitRegion)raisesc                  x   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 d S )N               )r   r   r   equation	variablesdegreer   r   )ellipsers     b/var/www/html/ai-engine/env/lib/python3.11/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3A&&&&>Q1ay"QTAqD[1Q3%6":":;;A:A1qs*Q.....;1a)####8q======    c                     t          t          ft          dz  dz
            } |                                 dk    sJ t          t          t          ft          dz  t          dz  z   dz
            }|                                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
            }|                                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
            }|                                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
            }|                                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           d S )Nr   r   )r   )r      r   )r    r             	   g      ?c                  ,                                      S N)regular_point)r3s   r   <lambda>z$test_regular_point.<locals>.<lambda>!   s    r//1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	0	0B((((	AQqTT!Va!Q$ 6!A$$q&1 D	E	EB!A$$q&1Q44%'!22222	AQ
b!a%j 8	9	9B''''	A1qs1uqAv 5! ;ac AA E	F	FB!A$$q&!A$$q&!11111	A1qs1uqAv 5! ;ac AC G	H	HB
:111122222r   c                  b   t          t          t          t          ft	          t          t          z   t          z   d                    } |                                 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
            }|                                t          ddt          ft          ddf          k    sJ |                    d          dk    sJ |                    d          dk    sJ t          t          t          t          ft          dz  t          dz  z
  t          dz  z
            }|                                t          d          k    sJ |                    d          dk    sJ t          t          t          ft          dz  t          dz  z   dt          z  z
            }|                                t          k    sJ |                    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(   r4s       r   $test_singular_points_and_multiplictyr5   $   s   	Aq	2a!eai#3#3	4	4B8++++	Aq	1Q3q51a4<Aad#:	;	;B9aAYAq	#B#BBBBB??9%%****??9%%****	Aq	1a4!Q$;A#5	6	6B9Y#7#77777??9%%****	A1q!tac 1	2	2B8++++??5A;;''1,,,,,,r   c            	      p   t          t          ft          dz
            } |                                 t          dz
  fk    sJ t          t          t          ft	          t          dt          z  dz                       }|                                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
            }|                    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
            }|                    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                      }|                    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
            }|                    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
            }|                    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
            }|                    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
            }|                    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
            }	|	                    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                      }
|
                    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                    }|                    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           d S )Nr   r!   r   )
parametersr   r    r   i
   r         c                  ,                                      S r&   rational_parametrization)r+   s   r   r)   z/test_rational_parametrization.<locals>.<lambda>X       (C(C(E(E r   c                  ,                                      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   sP   tQU##A%%''AE833331a&"Q!a..11D((**q!A#'l::::aVacAX1q%81%<==G++q+99ac1a4!8nq>PRSTUWXTXRXZ[]^Z^abZbRcfgRg=hhhhhaVa!&j1_q!t%;qttAvk%IJJG++q+99aAlQqTTRSV>SUVXYUY[\^_[_bc[cUdghijgkgklmgmUm=nnnnnaVR1q!tQqS%9%9::G++t+<<1adQhRSASUVWXZ[W[U[]^`a]ade]eUfijUj@kkkkkq!fq1uqj1a!e9&<==H,,Q//B1a4KQqS3IIIII#QFAaC!G44N22155"Aqy.!9LLLLL !QA1q!t);<<K//A/??AqD1HaQRTUQUXYQYlC[[[[[q!fq!tad{44H,,Q//AqD!Q$<????1vq!tad{QT122A%%a((QTAXq!Q$(|,DDDDDQ1Ir!Q$A+1*<ac'B'BCCF**q!f*==!QTAqD[ST_BUWXYZWZ\]_`\`cdfgcg\gjk\kWlnopqnqstvwswz{}~z~s~  BC  tC  oD  BE  E  E  E  EAq62adQqSUlQq!tV&;a&?!&Cb&H!#L#LMME))!,,	"a!Qq!tVac\A%&&!Qq!tVac\A-=(>2q(H1J J J J J 
A1q!ta	0	0B
 E E E EFFF	A1q!tad 2Q 6	7	7B
 E E E EFFFF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      s    $ $ $ $ $ $ " " " " " " # # # # # # # # # # # # # # * * * * * * * *             ' ' ' ' ' ' ' ' ' ' ' '  3 3 3- - -'G 'G 'G 'G 'Gr   