a
    khA7                     @   sd  d dl mZmZmZ d dl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mZmZmZmZ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" d dl#m$Z$m%Z%m&Z& d dl'm(Z( d dl)m*Z*m+Z+ d dl)m,Z, eZ-d	d
 Z.dd Z/dd Z0dd Z1dd Z2dd Z3dd Z4dd Z5dd Z6e+dd Z7dd Z8dd  Z9d!d" Z:d#d$ Z;d%d& Z<d'd( Z=d)S )*    )LambdaSymbolsymbols)R2R2_pR2_rR3_rR3_cR3_s	R2_origin)ManifoldPatchCoordSystem
CommutatorDifferentialTensorProductWedgeProductBaseCovarDerivativeOpCovarDerivativeOpLieDerivativecovariant_ordercontravariant_ordertwoform_to_matrixmetric_to_Christoffel_1stmetric_to_Christoffel_2ndmetric_to_Riemann_componentsmetric_to_Ricci_componentsintcurve_diffequintcurve_series)trigsimpsimplify)sqrtatan2sin)Matrix)raisesnocache_fail)warns_deprecated_sympyc                  C   s.  t d\} }}}d| |f||  fgi}tdt| |g|}tdt||g|}|j \}}||t| g|ggkstJ t ddd\}}d|f| fgi}tdt|g|}	tdt|g|}
tt |
|	 W d    n1 s0    Y  t d\}}d|f|d	 fgi}tdt|g|}tdt|g|}tt || W d    n1 sR0    Y  t d
\}}}}}}||fd	| d| fg||fd| d	| fgd}tdt||f|}tdt||f|}tdt||f|}|j \}}|j \}}|j \}}||t|d	 |d gksJ ||td| d| gks>J ||t|d |d gksbJ ||t|d |d	 gksJ t d
\}}}}}}||fd	| d| d fg||f| d	 d	| fgd}tdt||f|}tdt||f|}tdt||f|}|j \}}|j \}}|j \}}||t|d	 |d d gksNJ ||td| d	 d| d d	 gks~J ||t| d	 d d	| d d gksJ ||t| d	 d	| gksJ t d
\}}}}}}t||fd	| d| d ft||f| d	 d	| fd}tdt||f|}tdt||f|}tdt||f|}|j \}}|j \}}|j \}}||t|d	 |d d gksJ ||td| d	 d| d d	 gksJ ||t| d	 d d	| d d gksJ ||t| d	 d	| gks*J d S )Nzp q r s)firstsecondr(   r)   a bTZpositivezc d   za, b, c, d, e, f   )C1C2)r0   C3r/   r0   r1         )r.   )r1   r0   )	r   r   r   	transformr$   r%   NotImplementedError
ValueErrorr   )pqrsrelZR2_pqZR2_rsabZR2_aZR2_bcdZR2_cZR2_defr/   r0   r1    rC   P/var/www/auris/lib/python3.9/site-packages/sympy/diffgeom/tests/test_diffgeom.pytest_coordsys_transform   sx    
 
(
*


$$$$


(02&


(02rE   c            	   	   C   sT  t ddd\} }}}t| |g}t||g}tjd tjd  tjd  |dks\J t	tjd tjd  tjd  |dksJ t	t
tjd tjd  | d| ksJ t ddd\}}t|g|gg}|tttt|tksJ t 4 |tttt|tks0J W d    n1 sF0    Y  d S )Nzx0, y0, r0, theta0T)realr,   r   r*   r+   )r   r   pointr   r   r:   xyrcallr   e_rZdoitr$   r5   	applyfuncr    r'   coord_tuple_transform_to)	Zx0Zy0Zr0Ztheta0Zpoint_rZpoint_pr=   r>   mrC   rC   rD   test_R2Y   s    ,04$rO   c               	   C   s  t ddd\} }}t| g|g|gg}|tttt|tksHJ |tttt|tksjJ |tttt|tksJ t v |t	tt	t|tksJ |t	tt	t|tksJ |t	tt	t|tksJ W d    n1 s0    Y  d S )Nza b cTr+   )
r   r$   r	   r5   r   rL   r    r
   r'   rM   )r=   r>   r?   rN   rC   rC   rD   test_R3p   s:    "



rP   c                  C   s2   t j\} }tj\}}|t|t| ks.J d S N)r   r   r   Zrewriter#   )rH   rI   r:   thetarC   rC   rD   test_CoordinateSymbol   s    

rS   c                  C   s   t d\} }t| |g}|j| |hks,J |t|   krRt| |gksXn J |ttt| d |d  t|| gksJ d S )Nzx, yr,   )	r   r   rG   Zfree_symbolsZcoordsr$   r   r!   r"   )rH   rI   r8   rC   rC   rD   
test_point   s
    ,rT   c                  C   s   t tjtjdksJ t tjtj tjtj dks8J t tjtj tjtj tjtj ksbJ t tjtj} | tjtjtjd tjd  d  ttj ksJ d S )Nr   r,   )	r   r   e_xe_yrH   rK   rI   r#   rR   )r?   rC   rC   rD   test_commutator   s
    "*rX   c                  C   sn   t jt j } t| }| d | ks&J |t jt jdks<J |t jt jt j t jksZJ t|dksjJ d S )Nr3   r   )r   rH   dyr   rJ   rV   rW   )ZxdyZdxdyrC   rC   rD   test_differential   s    rZ   c                   C   s  t tjtjtjtjttjttj   kr<dksBn J t tjtjd tjtjksbJ t tjtjtjd tjksJ t tjtjtjtjksJ t tjtjtjtj ksJ t tjtjtjtjttjttj   krdksn J t tjtjd tjtjks$J t tjtjtjd tjksFJ t tjtjtjtjksfJ t tjtjtjtj ksJ t tjtjtjtjttjttj   krdksn J t tjtjd tjtjksJ t tjtjtjd tjksJ t tjtjtjtjks0J t tjtjtjtj ksPJ t tjtjtjtjttjttj   krdksn J t tjtjd tjtjksJ t tjtjtjd tjksJ t tjtjtjtjksJ t tjtjtjd tjd  tjd tjd  dtj tj ksDJ ttjtjtjtjdksfJ ttjtjtjtjdksJ d S )Nr3   r,      )	r   r   dxrY   rV   rW   rH   rI   r   rC   rC   rC   rD   test_products   sl      ""  
""  
"" J"r]   c                   C   s   t tjtjttj  kr&dks,n J t tjtjttj  krRdksXn J t tjtjttjtj  krdksn J t tjtjttjtjksJ t tjtj tjdksJ t tjttj	tj
tjtjdksJ d S Nr   r3   )r   r   rV   rI   rH   r   rK   rW   r   r\   rY   rC   rC   rC   rD   test_lie_derivative   s    ,,. r_   c                  C   s   t ttjtjttjtj } ttd| }|tjdks>J |tjtj tjksXJ t	tjtj | }|tjtjks~J |tjtj tjtj ksJ d S r^   )
r   TPr   r\   rY   r   r   rH   rV   r   )chZcvdrC   rC   rD   test_covar_deriv   s     rb   c                  C   s   t d} tddg}tj tj tjtj  }t|| |\}}t	|dksPJ t	|dks`J t|| |t
\}}t	|dksJ t	|dksJ d S )Ntr3   r   zA[f_1(t) + Derivative(f_0(t), t), -f_0(t) + Derivative(f_1(t), t)]z[f_0(0) - 1, f_1(0)]z2[Derivative(f_0(t), t), Derivative(f_1(t), t) - 1])r   r   rG   r   rI   rV   rH   rW   r   strr   )rc   Zstart_pointZvector_fieldZ	equationsZ	init_condrC   rC   rD   test_intcurve_diffequ   s    re   c                     s  t jt j tt jt j t jt j  } tt j|  tt jtt jt j   tt jt jtt jt j }tt jt jtt jt j  tt jt jt j t jd t jt j tt jt jtt jt j t	t jt j}t j
t j }tt j
t j}tt j
t jt j
}t	t j
t j}tdks(J t| dks:J tdksLJ t| | dksbJ t|   dksxJ t|  dksJ t| | dksJ t|dksJ t|dksJ t|dksJ t|| dksJ ttfdd ttfdd ttfdd t|tdd	gd	dggksHJ ttdd	gdd	ggksjJ t|td	d
gdd	ggksJ ttfdd ttfdd tt fdd ttfdd ttfdd ttfdd ttfdd d S )Nr[   r3   r,   r-   c                      s   t  S rQ   r   rC   )	misform_arC   rD   <lambda>      z7test_helpers_and_coordinate_dependent.<locals>.<lambda>c                      s   t  S rQ   rf   rC   )	misform_brC   rD   rh   	  ri   c                      s   t  S rQ   rf   rC   )	misform_crC   rD   rh   
  ri   r   rU   c                      s   t  S rQ   r   rC   )one_formrC   rD   rh     ri   c                      s   t  S rQ   rl   rC   )
three_formrC   rD   rh     ri   c                      s   t  S rQ   rl   rC   )metric_ambigrC   rD   rh     ri   c                      s   t  S rQ   )r   rC   twoform_not_symrC   rD   rh     ri   c                      s   t  S rQ   )r   rC   rp   rC   rD   rh     ri   c                      s   t  S rQ   )r   rC   rp   rC   rD   rh     ri   c                      s   t  S rQ   )r   rC   rp   rC   rD   rh     ri   )r   Zdrr\   r   rH   r:   rI   r   rY   r   rV   rW   r   r   r%   r7   r   r$   )Ztwo_formZmetricZtwoform_not_TPZ
one_vectorZ
two_vectorZthree_vectorZtwo_wprC   )ro   rg   rj   rk   rm   rn   rq   rD   %test_helpers_and_coordinate_dependent   sT    
"""rr   c                      s  t tdd  t tdd  t tdd  t tdd  t tdd  t tdd  t tdd  t td	d  t td
d  t tdd  td t t fdd t t fdd t t fdd t t fdd t tdd  t tdd  t tdd  t tdd  d S )Nc                   S   s   t t jS rQ   )r   rV   rC   rC   rC   rD   rh     ri   z(test_correct_arguments.<locals>.<lambda>c                   S   s   t t jS rQ   )r   rV   r\   rC   rC   rC   rD   rh     ri   c                   S   s   t tjtjS rQ   )r   r   rV   rH   rC   rC   rC   rD   rh     ri   c                   S   s   t tjtjS rQ   )r   r   r\   rV   rC   rC   rC   rD   rh     ri   c                   S   s   t t tjS rQ   )r   r   rV   rC   rC   rC   rD   rh   !  ri   c                   S   s   t t jS rQ   )r   r\   rH   rC   rC   rC   rD   rh   #  ri   c                   S   s   t tjtjS rQ   )r   r   r\   rC   rC   rC   rD   rh   %  ri   c                   S   s   t tjtjS rQ   )r   r   rH   r\   rC   rC   rC   rD   rh   &  ri   c                   S   s   t tjg S rQ   )r   r   r\   rC   rC   rC   rD   rh   (  ri   c                   S   s   t tjg S rQ   )r   r   rH   rC   rC   rC   rD   rh   )  ri   r=   c                      s   t tj tddgS Nr3   r,   )r   r   r\   r   rG   rC   r=   rC   rD   rh   ,  ri   c                      s   t tj tddgS rs   )r   r   rH   r   rG   rC   rt   rC   rD   rh   -  ri   c                      s   t tj tddgS rs   )r   r   r\   r   rG   rC   rt   rC   rD   rh   /  ri   c                      s   t tj tddgS rs   )r   r   rH   r   rG   rC   rt   rC   rD   rh   0  ri   c                   S   s   t tjtj S rQ   )r   r   rV   r\   rC   rC   rC   rD   rh   2  ri   c                   S   s   t tjtj S rQ   )r   r   rV   r\   rC   rC   rC   rD   rh   3  ri   c                   S   s   t tjtj S rQ   )r   r   rV   rW   rC   rC   rC   rD   rh   5  ri   c                   S   s   t tjtj S rQ   )r   r   r\   rY   rC   rC   rC   rD   rh   6  ri   )r%   r7   r   rC   rC   rt   rD   test_correct_arguments  s&    ru   c                  C   s   t  \} }t  \}}t  \}}t| | ks4J t| | | | ksLJ t|| || ksdJ t|| || ks|J d|  | d|  d  |d|   ksJ d S rs   )r   Zcoord_functionsZbase_oneformsZbase_vectorsr    )rH   rI   r\   rY   exZeyrC   rC   rD   test_simplify8  s    rw   c                  C   s   t jt j t jt j  } t jd t jd  t j t jt j t j  }t| | t jd t j dt jd  t j  t jt j t j  ksJ d S )Nr,   r-   )r   rH   rV   rI   rW   r   expand)XYrC   rC   rD   test_issue_17917C  s
    ,4r{   c                  C   s   t dd} td| }t " td|ddgd W d    n1 sB0    Y  t   td|ddg}W d    n1 sx0    Y  t  t| j W d    n1 s0    Y  t  t|j W d    n1 s0    Y  d S )NMr,   PZCar2drH   rI   )names)r   r   r'   r   listZpatchesZ
transforms)rN   r8   r?   rC   rC   rD   test_deprecationsI  s    

0.(r   N)>Z
sympy.corer   r   r   Zsympy.diffgeom.rnr   r   r   r   r	   r
   r   Zsympy.diffgeomr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.simplifyr   r    Zsympy.functionsr!   r"   r#   Zsympy.matricesr$   Zsympy.testing.pytestr%   r&   r'   r`   rE   rO   rP   rS   rT   rX   rZ   r]   r_   rb   re   rr   ru   rw   r{   r   rC   rC   rC   rD   <module>   s2   $TH	

1