U
    ZÊ¹jå  ã                   @   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sTt
‚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sÊt
‚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$t
‚tdtjd  t dtftddfƒƒdk�sRt
‚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�s¦t
‚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t
‚d S )Né   é   i    é   é   r   é   é   éýÿÿÿé
   éûÿÿÿ)r   r   r   r   r   r	   r   r   r   r   ÚAssertionErrorr   r   ÚiÚjÚkr   )Z
halfcircleÚcurveZfield1ÚlineZhelixZfield2© r,   ú`/var/www/html/bwave/python/venv/lib/python3.8/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sft	‚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s´t	‚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"t	‚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�sœt	‚ttj|ƒdtj k�s¸t	‚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(   r)   )Z
semisphereZcylinderZconeZ	triangle1Z	triangle2r,   r,   r-   Ú test_parametric_surfaceintegrals!   s    2 ÿ:2<$$2r0   c               	   C   s   t tttftddftddftddfƒ} td| ƒdks8t‚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t‚ttjd tjd  |ƒdt d k�s4t‚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t‚tdtj |ƒdk�st‚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(   r)   )ZcubeZsolidsphere1Zsolidsphere2Zregion_under_plane1Zregion_under_plane2r,   r,   r-   Útest_parametric_volumeintegrals2   s0    &2  ÿ2  ÿ,,&ÿ*ÿ  ÿ
r5   c                     sJ  t tttƒ tttƒ ftddftdtfƒ} ttjd | ƒdt ksHt	‚ttjt t
t
d ft
ddfƒƒdtdƒ d d	td	ƒ d  ksŒt	‚ttjd tj tjddftjd
dfƒdtj d ksÆt	‚ttddƒtddƒƒ}tdtj |ƒtdƒd ksüt	‚ttdddƒtdddƒƒ}ttjtj |ƒdk�s2t	‚ttt
ƒtt
ƒft
ddfƒ}tdtj |ƒdtj k�snt	‚ttddƒdƒ}ttjtj |ƒdt k�sžt	‚ttddƒtddƒtddƒƒ}td|ƒ|jk�sÒt	‚tdddƒ}ttjtj dtj tj  |ƒdk�s
t	‚ddddg\}}}	}
t|||	|
ƒ}tdtj |ƒdtj dtdƒ tj  k�s^t	‚tddƒ}ttjtj tj |ƒttjtj t dƒƒk�sœt	‚tttftd td  d ƒ}td|ƒd t k�sÒt	‚tttftd d td d  d ƒ}td|ƒdt k�st	‚ttdddƒtdddƒtdddƒƒ‰ tt‡ fd!d"„ƒ d S )#Nr3   r   r   r   r    iïÿÿÿé   é   é%   éÿÿÿÿiý  r!   iñÿÿÿé	   é   iúÿÿÿr   r$   r/   éH   )r   r   )r!   r   )r!   r!   é   )r   r!   )r   r!   iéÿÿÿi_ÿÿÿé   )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   r   Zcircumferencer   r(   r	   r   r   r   Ú
ValueError)ZhalfdiscÚs1Ús2r*   Úc1Úc2ÚtriangleÚp1Zp2Zp3Zp4ZpolyÚpointÚc3Zc4r,   rA   r-   Útest_vector_integrateG   s6    ,D:   ,2
4&$rN   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.   r0   r5   rN   r,   r,   r,   r-   Ú<module>   s   , 