U
    ZÊ¹jA7  ã                   @   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stt‚t ddd�\}}d|f| fgi}tdt|g|ƒ}	tdt|g|ƒ}
ttƒ� |
 |	¡ W 5 Q R X t dƒ\}}d|f|d	 fgi}tdt|g|ƒ}tdt|g|ƒ}ttƒ� | |¡ W 5 Q R X 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ðt‚| |¡td| d| gƒk�st‚| |¡t|d |d gƒk�s8t‚| |¡t|d |d	 gƒk�s\t‚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�s$t‚| |¡td| d	 d| d d	 gƒk�sTt‚| |¡t| d	 d d	| d d gƒk�s†t‚| |¡t| d	 d	| gƒk�s¬t‚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�sxt‚| |¡td| d	 d| d d	 gƒk�s¨t‚| |¡t| d	 d d	| d d gƒk�sÚt‚| |¡t| d	 d	| gƒk�s t‚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$   ÚAssertionErrorr%   Ú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   © rD   úa/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/diffgeom/tests/test_diffgeom.pyÚtest_coordsys_transform   sx    
 

ÿ


$$$$ÿ


(02&ÿ


(02rF   c            	   	   C   s>  t ddd�\} }}}t | |g¡}t ||g¡}tjd tjd  tjd   |¡dks\t	‚t
tjd tjd  tjd   |¡ƒdksŒt	‚t
t tjd tjd  ¡ |¡ ¡ ƒd| ksÀt	‚t ddd�\}}t|g|ggƒ}|t tt t|¡¡ t¡k�st	‚tƒ �* |t tt t|¡¡ t¡k�s0t	‚W 5 Q R X d S )Nzx0, y0, r0, theta0T)Úrealr,   r   r*   r+   )r   r   Úpointr   r   r;   ÚxÚyÚrcallr6   r   Úe_rZdoitr$   r5   Ú	applyfuncr    r'   Úcoord_tuple_transform_to)	Zx0Zy0Zr0Ztheta0Zpoint_rZpoint_pr>   r?   ÚmrD   rD   rE   Útest_R2Y   s     ,04$ 
ÿÿrP   c               	   C   s  t ddd�\} }}t| g|g|ggƒ}|t tt t|¡¡ t¡ksHt‚|t tt t|¡¡ t¡ksjt‚|t tt t|¡¡ t¡ksŒt‚t	ƒ �l |t 
tt 
t|¡¡ t¡ks¶t‚|t 
tt 
t|¡¡ t¡ksØt‚|t 
tt 
t|¡¡ t¡ksút‚W 5 Q R X d S )Nza b cTr+   )r   r$   r	   r5   r   rM   r    r6   r
   r'   rN   )r>   r?   r@   rO   rD   rD   rE   Útest_R3p   sD    " 
ÿÿ
 
ÿÿ
 
ÿÿ
 
ÿÿ
 
ÿÿrQ   c                  C   s2   t j\} }tj\}}| t¡|t|ƒ ks.t‚d S ©N)r   r   r   Zrewriter#   r6   )rI   rJ   r;   ÚthetarD   rD   rE   Útest_CoordinateSymbol‰   s    

rT   c                  C   sŒ   t dƒ\} }t | |g¡}|j| |hks,t‚| t¡| ¡   krRt| |gƒksXn t‚| t¡tt| d |d  ƒt	|| ƒgƒksˆt‚d S )Nzx, yr,   )
r   r   rH   Zfree_symbolsr6   Zcoordsr$   r   r!   r"   )rI   rJ   r9   rD   rD   rE   Ú
test_point�   s
    ,rU   c                  C   sª   t tjtjƒdkst‚t tjtj tjtj ƒdks8t‚t tjtj tjtj ƒtjtj ksbt‚t tjtjƒ} | tjƒtjtjd tjd  d  ttj	ƒ ks¦t‚d S )Nr   r,   éÿÿÿÿ)
r   r   Úe_xÚe_yr6   rI   rL   rJ   r#   rS   )r@   rD   rD   rE   Útest_commutator—   s
    "*rY   c                  C   sn   t jt j } t| ƒ}|  d ¡| ks&t‚|t jt jƒdks<t‚|t jt jt j ƒt jksZt‚t|ƒdksjt‚d S )Nr3   r   )r   rI   Údyr   rK   r6   rW   rX   )ZxdyZdxdyrD   rD   rE   Útest_differentialŸ   s    r[   c                   C   sŒ  t tjtjƒtjtjƒt tj¡t tj¡   kr<dksBn t‚t tjtjƒd tjƒtjksbt‚t tjtjƒtjd ƒtjks‚t‚t tjtjƒtjƒtjks t‚t tjtjƒtjtj ks¾t‚t tjtjƒtjtjƒt tj¡t tj¡   krüdk�sn t‚t tjtjƒd tjƒtjk�s$t‚t tjtjƒtjd ƒtjk�sFt‚t tjtjƒtjƒtjk�sft‚t tjtjƒtjtj k�s†t‚t tjtjƒtjtjƒt tj¡t tj¡   k�rÆdk�sÌn t‚t tjtjƒd tjƒtjk�sît‚t tjtjƒtjd ƒtjk�st‚t tjtjƒtjƒtjk�s0t‚t tjtjƒtjtj k�sPt‚t tjtjƒtjtjƒt tj¡t tj¡   k�r�dk�s–n t‚t tjtjƒd tjƒtjk�s¸t‚t tjtjƒtjd ƒtjk�sÚt‚t tjtjƒtjƒtjk�sút‚t tjtjƒtjd tjd  tjd tjd  ƒdtj tj k�sDt‚t	tjtjƒtjtjƒdk�sft‚t	tjtjƒtjtjƒdk�sˆt‚d S )Nr3   r,   é   )
r   r   ÚdxrZ   rW   rX   r6   rI   rJ   r   rD   rD   rD   rE   Útest_products¨   s|     ÿ ÿÿÿ   ÿ ÿÿÿ""   ÿ ÿÿ
ÿ""   ÿ ÿÿ
ÿ"" J"r^   c                   C   sî   t tjtjƒt tj¡  kr&dks,n t‚t tjtjƒt tj¡  krRdksXn t‚t tjtjƒttjtjƒ  kr€dks†n t‚t tjtjƒttjtjƒks¦t‚t tjtj tjƒdksÂt‚t tjt	tj
tjƒƒtjtjƒdksêt‚d S ©Nr   r3   )r   r   rW   rJ   r6   rI   r   rL   rX   r   r]   rZ   rD   rD   rD   rE   Ú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>t‚|tjtj	 ƒtj	ksXt‚t
tjtj	 | ƒ}|tjƒtjks~t‚|tjtj	 ƒtjtj	 ksžt‚d S r_   )r   ÚTPr   r]   rZ   r   r   rI   r6   rW   r   )ÚchZcvdrD   rD   rE   Útest_covar_derivÐ   s     rc   c                  C   s–   t dƒ} t ddg¡}tj tj tjtj  }t|| |ƒ\}}t	|ƒdksPt
‚t	|ƒdks`t
‚t|| |tƒ\}}t	|ƒdks‚t
‚t	|ƒdks’t
‚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   rH   r   rJ   rW   rI   rX   r   Ústrr6   r   )rd   Zstart_pointZvector_fieldZ	equationsZ	init_condrD   rD   rE   Útest_intcurve_diffequÜ   s    ÿÿrf   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(t‚t| ƒdk�s:t‚tˆƒdk�sLt‚t| | ƒdk�sbt‚t| ˆ  ƒdk�sxt‚t| ˆ ƒdk�sŽt‚t| | ƒdk�s¤t‚t|ƒdk�s¶t‚t|ƒdk�sÈt‚t|ƒdk�sÚt‚t|| ƒdk�sðt‚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�sHt‚tˆƒtdd	gdd	ggƒk�sjt‚t|ƒtd	d
gdd	ggƒk�sŒt‚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 rR   ©r   rD   )Ú	misform_arD   rE   Ú<lambda>  ó    z7test_helpers_and_coordinate_dependent.<locals>.<lambda>c                      s   t ˆ ƒS rR   rg   rD   )Ú	misform_brD   rE   ri   	  rj   c                      s   t ˆ ƒS rR   rg   rD   )Ú	misform_crD   rE   ri   
  rj   r   rV   c                      s   t ˆ ƒS rR   ©r   rD   )Úone_formrD   rE   ri     rj   c                      s   t ˆ ƒS rR   rm   rD   )Ú
three_formrD   rE   ri     rj   c                      s   t ˆ ƒS rR   rm   rD   )Úmetric_ambigrD   rE   ri     rj   c                      s   t ˆ ƒS rR   )r   rD   ©Útwoform_not_symrD   rE   ri     rj   c                      s   t ˆ ƒS rR   )r   rD   rq   rD   rE   ri     rj   c                      s   t ˆ ƒS rR   )r   rD   rq   rD   rE   ri     rj   c                      s   t ˆ ƒS rR   )r   rD   rq   rD   rE   ri     rj   )r   Zdrr]   r   rI   r;   rJ   r   rZ   r   rW   rX   r   r6   r   r%   r8   r   r$   )Ztwo_formZmetricZtwoform_not_TPZ
one_vectorZ
two_vectorZthree_vectorZtwo_wprD   )rp   rh   rk   rl   rn   ro   rr   rE   Ú%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 rR   )r   rW   rD   rD   rD   rE   ri     rj   z(test_correct_arguments.<locals>.<lambda>c                   S   s   t  t j¡S rR   )r   rW   r]   rD   rD   rD   rE   ri     rj   c                   S   s   t tjtjƒS rR   )r   r   rW   rI   rD   rD   rD   rE   ri     rj   c                   S   s   t tjtjƒS rR   )r   r   r]   rW   rD   rD   rD   rE   ri     rj   c                   S   s   t t tjƒƒS rR   )r   r   rW   rD   rD   rD   rE   ri   !  rj   c                   S   s   t  t j¡S rR   )r   r]   rI   rD   rD   rD   rE   ri   #  rj   c                   S   s   t tjtjƒS rR   )r   r   r]   rD   rD   rD   rE   ri   %  rj   c                   S   s   t tjtjƒS rR   )r   r   rI   r]   rD   rD   rD   rE   ri   &  rj   c                   S   s   t tjg ƒS rR   )r   r   r]   rD   rD   rD   rE   ri   (  rj   c                   S   s   t tjg ƒS rR   )r   r   rI   rD   rD   rD   rE   ri   )  rj   r>   c                      s   t tjˆ t ddg¡ƒS ©Nr3   r,   )r   r   r]   r   rH   rD   ©r>   rD   rE   ri   ,  rj   c                      s   t tjˆ t ddg¡ƒS rt   )r   r   rI   r   rH   rD   ru   rD   rE   ri   -  rj   c                      s   t tjˆ t ddg¡ƒS rt   )r   r   r]   r   rH   rD   ru   rD   rE   ri   /  rj   c                      s   t tjˆ t ddg¡ƒS rt   )r   r   rI   r   rH   rD   ru   rD   rE   ri   0  rj   c                   S   s   t tjtj ƒS rR   )r   r   rW   r]   rD   rD   rD   rE   ri   2  rj   c                   S   s   t tjtj ƒS rR   )r   r   rW   r]   rD   rD   rD   rE   ri   3  rj   c                   S   s   t tjtj ƒS rR   )r   r   rW   rX   rD   rD   rD   rE   ri   5  rj   c                   S   s   t tjtj ƒS rR   )r   r   r]   rZ   rD   rD   rD   rE   ri   6  rj   )r%   r8   r   rD   rD   ru   rE   Útest_correct_arguments  s&    rv   c                  C   s¨   t  ¡ \} }t  ¡ \}}t  ¡ \}}t| ƒ| ks4t‚t| | ƒ| | ksLt‚t|| ƒ|| ksdt‚t|| ƒ|| ks|t‚d|  | d|  d  |d|   ks¤t‚d S rt   )r   Zcoord_functionsZbase_oneformsZbase_vectorsr    r6   )rI   rJ   r]   rZ   ÚexZeyrD   rD   rE   Útest_simplify8  s    rx   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sŒt‚d S )Nr,   r-   )r   rI   rW   rJ   rX   r   Úexpandr6   )ÚXÚYrD   rD   rE   Útest_issue_17917C  s
    ,4ÿr|   c               	   C   s–   t ddƒ} td| ƒ}tƒ � td|ddgd� W 5 Q R X tƒ � td|ddgƒ}W 5 Q R X tƒ � t| jƒ W 5 Q R X tƒ � t|jƒ W 5 Q R X d S )NÚMr,   ÚPZCar2drI   rJ   )Únames)r   r   r'   r   ÚlistZpatchesZ
transforms)rO   r9   r@   rD   rD   rE   Ú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'   ra   rF   rP   rQ   rT   rU   rY   r[   r^   r`   rc   rf   rs   rv   rx   r|   r�   rD   rD   rD   rE   Ú<module>   s2   $TH	

1