a
    lh                     @   s   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZmZmZmZmZ d dlmZm Z m!Z!m"Z"m#Z#m$Z$ edZ%dd Z&dd Z'dd Z(dd Z)dS )    )pi)S)sqrt)cossin)raises)
CoordSys3D)ParametricIntegralvector_integrate)ParametricRegion)ImplicitRegion)	xyzuvrtthetaphi)PointSegmentCurveCirclePolygonPlaneCc                  C   s  t dtt dtt ftt d td f} ttjtjd  | t	dd ksTJ t t
t
d t
d ft
ddf}dtjd  tj tj tj dtj tj  dtj tj tj  }t||dksJ t dt
 d ddt
  t
ft
ddf}ttjtj tj tjtj tj  |dks$J tdtjd  t dt
ft
ddfdksRJ t tt
tt
dt
 ft
ddt f}ttjtj tj |d	td
 t ksJ tjtj tjtj  tjtj  }t|t tt
tt
t
d ft
dtfdt d td d  ksJ d S )N      i          r         
   )r   r   r   r   r   r	   r   r   r   r   r   r   ijkr   )Z
halfcirclecurveZfield1lineZhelixZfield2 r+   O/var/www/auris/lib/python3.9/site-packages/sympy/vector/tests/test_integrals.pytest_parametric_lineintegrals   s    .&F&4.&.$r-   c                  C   s  t dtt tt dtt tt dtt ftddt ftdtd f} ttj| dt ksfJ t t	dtt t	dtt tftddftddt f}ttj
|dksJ t ttt ttt tftddt ftddf}ttjtj tj
tj  tjd tj  |td ks"J t tt
ftddft
ddd	t  f}t tt
ft
ddd	t  ftddf}td
tj
 tj |td
tj
 tj |ksJ ttj|dtj ksJ d S )Nr   r   r"   r       r!   r   r$   r   g333333/)r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r&   r'   r(   )Z
semisphereZcylinderZconeZ	triangle1Z	triangle2r+   r+   r,    test_parametric_surfaceintegrals!   s    2:2<$$2r/   c               	   C   s   t tttftddftddftddf} td| dks8J t ttt tt	 ttt tt	 ttt ftddft	ddt
 ftdt
f}t ttt tt	 ttt tt	 ttt ftddftdt
ft	ddt
 f}ttjd tjd  |dt
 d ksJ ttjd tjd  |dt
 d ks4J t tttftddftddt d d ftdd	dt  dt  f}t tttftddftdd	dt  dt  ftddt d d f}ttjtj tj d
tj  |ttjtj tj d
tj  |ksJ tdtj |dksJ d S )Nr   r!   r   i       r    r.   d   i)r   r   r   r   r	   r   r   r   r   r   r   r   r&   r'   r(   )ZcubeZsolidsphere1Zsolidsphere2Zregion_under_plane1Zregion_under_plane2r+   r+   r,   test_parametric_volumeintegrals2   s(    &22,,&*  
r4   c                     s@  t ttt ttt ftddftdtf} ttjd | dt ksHJ ttjt t	t	d ft	ddfdt
d d d	t
d	 d  ksJ ttjd tj tjddftjd
dfdtj d ksJ ttddtdd}tdtj |tdd ksJ ttdddtddd}ttjtj |dks2J ttt	tt	ft	ddf}tdtj |dtj ksnJ ttddd}ttjtj |dt ksJ ttddtddtdd}td||jksJ tddd}ttjtj dtj tj  |dks
J g d\}}}	}
t|||	|
}tdtj |dtj dt
d tj  ksZJ tdd}ttjtj |ttjtj t dksJ tttftd td  d }td|dt ksJ tttftd d td d  d }td|dt ksJ ttdddtdddtddd tt fd d! d S )"Nr2   r   r   r   r    i      %   i  r!   i	      ir   r$   r.   H   r   r   r!   r   )r!   r!      )r<   r=   )r   r!   )r   r!   ii_   )r   r    -      c                      s   t tjtj tj tj  S )N)r
   r   r   r   r&   r(   r+   plr+   r,   <lambda>j       z'test_vector_integrate.<locals>.<lambda>)r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r&   r   r   Zcircumferencer   r'   r	   r   r   r   
ValueError)Zhalfdiscs1s2r)   Zc1c2Ztrianglep1p2Zp3Zp4ZpolyZpointc3Zc4r+   rB   r,   test_vector_integrateG   s6    ,D:   ,2
.&$rM   N)*Zsympy.core.numbersr   Zsympy.core.singletonr   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.testing.pytestr   Zsympy.vector.coordsysrectr   Zsympy.vector.integralsr	   r
   Zsympy.vector.parametricregionr   Zsympy.vector.implicitregionr   Z	sympy.abcr   r   r   r   r   r   r   r   r   Zsympy.geometryr   r   r   r   r   r   r   r-   r/   r4   rM   r+   r+   r+   r,   <module>   s   , 