o
    GZhA7                     @   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s:J t ddd\}}d|f| fgi}tdt|g|}	tdt|g|}
tt |
|	 W d    n1 sow   Y  t d\}}d|f|d	 fgi}tdt|g|}tdt|g|}tt || W d    n1 sw   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s0J ||t|d |d	 gksBJ 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sJ ||td| d	 d| d d	 gksJ ||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sPJ ||td| d	 d| d d	 gkshJ ||t| d	 d d	| d d gksJ ||t| d	 d	| gksJ 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   Q/var/www/auris/lib/python3.10/site-packages/sympy/diffgeom/tests/test_diffgeom.pytest_coordsys_transform   s|   
 




$$$$


(02&


(02*rE   c            	   	   C   sP  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sFJ t	t
tjd tjd  | d| ks`J t ddd\}}t|g|gg}|tttt|tksJ t  |tttt|tksJ W d    d S 1 sw   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s$J |tttt|tks5J |tttt|tksFJ t < |t	tt	t|tks[J |t	tt	t|tkslJ |t	tt	t|tks}J W d    d S 1 sw   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r*t| |gks-J  J |ttt| d |d  t|| gksEJ d S )Nzx, yr,   )	r   r   rG   Zfree_symbolsZcoordsr$   r   r!   r"   )rH   rI   r8   rC   rC   rD   
test_point   s
   .4rT   c                  C   s   t tjtjdksJ t tjtj tjtj dksJ t tjtj tjtj tjtj ks1J t tjtj} | tjtjtjd tjd  d  ttj ksSJ 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s-J t|dks5J 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s"J  J t tjtjd tjtjks2J t tjtjtjd tjksBJ t tjtjtjtjksQJ t tjtjtjtj ks`J t tjtjtjtjttjttj   krdksJ  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tj ksJ t tjtjtjtjttjttj   krdksJ  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sJ t tjtjtjtj ks#J t tjtjtjtjttjttj   krDdksGJ  J t tjtjd tjtjksXJ t tjtjtjd tjksiJ t tjtjtjtjksyJ t tjtjtjd tjd  tjd tjd  dtj tj ksJ ttjtjtjtjdksJ 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J  J t tjtjttj  kr+dks.J  J t tjtjttjtj  krCdksFJ  J t tjtjttjtjksVJ t tjtj tjdksdJ t tjttj	tj
tjtjdksxJ d S Nr   r3   )r   r   rV   rI   rH   r   rK   rW   r   r\   rY   rC   rC   rC   rD   test_lie_derivative   s   ..0 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s,J t	tjtj | }|tjtjks?J |tjtj tjtj ksOJ 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s(J t	|dks0J t|| |t
\}}t	|dksAJ t	|dksIJ 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sJ 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|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sJ ttdd	gdd	ggks*J t|td	d
gdd	ggks;J 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                         t  S rQ   r   rC   )	misform_arC   rD   <lambda>      z7test_helpers_and_coordinate_dependent.<locals>.<lambda>c                      rf   rQ   rg   rC   )	misform_brC   rD   ri   	  rj   c                      rf   rQ   rg   rC   )	misform_crC   rD   ri   
  rj   r   rU   c                      rf   rQ   r   rC   )one_formrC   rD   ri     rj   c                      rf   rQ   rm   rC   )
three_formrC   rD   ri     rj   c                      rf   rQ   rm   rC   )metric_ambigrC   rD   ri     rj   c                      rf   rQ   )r   rC   twoform_not_symrC   rD   ri     rj   c                      rf   rQ   )r   rC   rq   rC   rD   ri     rj   c                      rf   rQ   )r   rC   rq   rC   rD   ri     rj   c                      rf   rQ   )r   rC   rq   rC   rD   ri     rj   )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   )rp   rh   rk   rl   rn   ro   rr   rD   %test_helpers_and_coordinate_dependent   sT   
"""rs   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   ri         z(test_correct_arguments.<locals>.<lambda>c                   S      t t jS rQ   )r   rV   r\   rC   rC   rC   rD   ri     rt   c                   S      t tjtjS rQ   )r   r   rV   rH   rC   rC   rC   rD   ri         c                   S   rv   rQ   )r   r   r\   rV   rC   rC   rC   rD   ri     rw   c                   S   s   t t tjS rQ   )r   r   rV   rC   rC   rC   rD   ri   !  rw   c                   S   ru   rQ   )r   r\   rH   rC   rC   rC   rD   ri   #  rt   c                   S   s   t tjtjS rQ   )r   r   r\   rC   rC   rC   rD   ri   %  rw   c                   S   rv   rQ   )r   r   rH   r\   rC   rC   rC   rD   ri   &  rw   c                   S      t tjg S rQ   )r   r   r\   rC   rC   rC   rD   ri   (  rt   c                   S   rx   rQ   )r   r   rH   rC   rC   rC   rD   ri   )  rt   r=   c                         t tj tddgS Nr3   r,   )r   r   r\   r   rG   rC   r=   rC   rD   ri   ,      c                      ry   rz   )r   r   rH   r   rG   rC   r{   rC   rD   ri   -  r|   c                      ry   rz   )r   r   r\   r   rG   rC   r{   rC   rD   ri   /  r|   c                      ry   rz   )r   r   rH   r   rG   rC   r{   rC   rD   ri   0  r|   c                   S      t tjtj S rQ   )r   r   rV   r\   rC   rC   rC   rD   ri   2      c                   S   r}   rQ   )r   r   rV   r\   rC   rC   rC   rD   ri   3  r~   c                   S      t tjtj S rQ   )r   r   rV   rW   rC   rC   rC   rD   ri   5  r~   c                   S   r   rQ   )r   r   r\   rY   rC   rC   rC   rD   ri   6  r~   )r%   r7   r   rC   rC   r{   rD   test_correct_arguments  s&   r   c                  C   s   t  \} }t  \}}t  \}}t| | ksJ t| | | | ks&J t|| || ks2J t|| || ks>J d|  | d|  d  |d|   ksRJ d S rz   )r   Zcoord_functionsZbase_oneformsZbase_vectorsr    )rH   rI   r\   rY   exZeyrC   rC   rD   test_simplify8  s   ,r   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sFJ d S )Nr,   r-   )r   rH   rV   rI   rW   r   expand)XYrC   rC   rD   test_issue_17917C  s
   ,4r   c                  C   s   t dd} td| }t  td|ddgd W d    n1 s!w   Y  t  td|ddg}W d    n1 s<w   Y  t  t| j W d    n1 sTw   Y  t  t|j W d    d S 1 smw   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   

"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   rs   r   r   r   r   rC   rC   rC   rD   <module>   s4    $TH	

1