o
    ohA7                     @   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positivezc d   za, b, c, d, e, f   )C1C2)r1   C3r0   r1   r2         )r/   )r2   r1   )	r   r   r   	transformr$   r%   NotImplementedError
ValueErrorr   )pqrsrelR2_pqR2_rsabR2_aR2_bcdR2_cR2_defr0   r1   r2    rJ   v/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/diffgeom/tests/test_diffgeom.pytest_coordsys_transform   s|   
 




$$$$


(02&


(02*rL   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_rdoitr$   r6   	applyfuncr    r'   coord_tuple_transform_to)	x0y0r0theta0point_rpoint_pr@   rA   mrJ   rJ   rK   test_R2Y   s    ,04"
"r]   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	   r6   r   rT   r    r
   r'   rU   )r@   rA   rD   r\   rJ   rJ   rK   test_R3p   s<   "
"r^   c                  C   s2   t j\} }tj\}}|t|t| ksJ d S N)r   r   r   rewriter#   )rO   rP   r;   thetarJ   rJ   rK   test_CoordinateSymbol   s   

rb   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   rN   free_symbolscoordsr$   r   r!   r"   )rO   rP   r9   rJ   rJ   rK   
test_point   s
   .4re   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_yrO   rR   rP   r#   ra   )rD   rJ   rJ   rK   test_commutator   s
   "*:ri   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 )Nr4   r   )r   rO   dyr   rQ   rg   rh   )xdydxdyrJ   rJ   rK   test_differential   s   rm   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 )Nr4   r-      )	r   r   dxrj   rg   rh   rO   rP   r   rJ   rJ   rJ   rK   test_products   sl        "  
"" J"&rp   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   r4   )r   r   rg   rP   rO   r   rR   rh   r   ro   rj   rJ   rJ   rJ   rK   test_lie_derivative   s   ..0 rr   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 rq   )
r   TPr   ro   rj   r   r   rO   rg   r   )chcvdrJ   rJ   rK   test_covar_deriv   s    $rv   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tr4   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   rN   r   rP   rg   rO   rh   r   strr   )rw   start_pointvector_field	equations	init_condrJ   rJ   rK   test_intcurve_diffequ   s   r}   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 )Nrn   r4   r-   r.   c                         t  S r_   r   rJ   )	misform_arJ   rK   <lambda>      z7test_helpers_and_coordinate_dependent.<locals>.<lambda>c                      r~   r_   r   rJ   )	misform_brJ   rK   r   	  r   c                      r~   r_   r   rJ   )	misform_crJ   rK   r   
  r   r   rf   c                      r~   r_   r   rJ   )one_formrJ   rK   r     r   c                      r~   r_   r   rJ   )
three_formrJ   rK   r     r   c                      r~   r_   r   rJ   )metric_ambigrJ   rK   r     r   c                      r~   r_   )r   rJ   twoform_not_symrJ   rK   r     r   c                      r~   r_   )r   rJ   r   rJ   rK   r     r   c                      r~   r_   )r   rJ   r   rJ   rK   r     r   c                      r~   r_   )r   rJ   r   rJ   rK   r     r   )r   drro   r   rO   r;   rP   r   rj   r   rg   rh   r   r   r%   r8   r   r$   )two_formmetrictwoform_not_TP
one_vector
two_vectorthree_vectortwo_wprJ   )r   r   r   r   r   r   r   rK   %test_helpers_and_coordinate_dependent   sT   
"""r   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 r_   )r   rg   rJ   rJ   rJ   rK   r         z(test_correct_arguments.<locals>.<lambda>c                   S      t t jS r_   )r   rg   ro   rJ   rJ   rJ   rK   r     r   c                   S      t tjtjS r_   )r   r   rg   rO   rJ   rJ   rJ   rK   r         c                   S   r   r_   )r   r   ro   rg   rJ   rJ   rJ   rK   r     r   c                   S   s   t t tjS r_   )r   r   rg   rJ   rJ   rJ   rK   r   !  r   c                   S   r   r_   )r   ro   rO   rJ   rJ   rJ   rK   r   #  r   c                   S   s   t tjtjS r_   )r   r   ro   rJ   rJ   rJ   rK   r   %  r   c                   S   r   r_   )r   r   rO   ro   rJ   rJ   rJ   rK   r   &  r   c                   S      t tjg S r_   )r   r   ro   rJ   rJ   rJ   rK   r   (  r   c                   S   r   r_   )r   r   rO   rJ   rJ   rJ   rK   r   )  r   r@   c                         t tj tddgS Nr4   r-   )r   r   ro   r   rN   rJ   r@   rJ   rK   r   ,      c                      r   r   )r   r   rO   r   rN   rJ   r   rJ   rK   r   -  r   c                      r   r   )r   r   ro   r   rN   rJ   r   rJ   rK   r   /  r   c                      r   r   )r   r   rO   r   rN   rJ   r   rJ   rK   r   0  r   c                   S      t tjtj S r_   )r   r   rg   ro   rJ   rJ   rJ   rK   r   2      c                   S   r   r_   )r   r   rg   ro   rJ   rJ   rJ   rK   r   3  r   c                   S      t tjtj S r_   )r   r   rg   rh   rJ   rJ   rJ   rK   r   5  r   c                   S   r   r_   )r   r   ro   rj   rJ   rJ   rJ   rK   r   6  r   )r%   r8   r   rJ   rJ   r   rK   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 r   )r   coord_functionsbase_oneformsbase_vectorsr    )rO   rP   ro   rj   exeyrJ   rJ   rK   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   rO   rg   rP   rh   r   expand)XYrJ   rJ   rK   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-   PCar2drO   rP   )names)r   r   r'   r   listpatches
transforms)r\   r9   rD   rJ   rJ   rK   test_deprecationsI  s   

"r   N)>
sympy.corer   r   r   sympy.diffgeom.rnr   r   r   r   r	   r
   r   sympy.diffgeomr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sympy.simplifyr   r    sympy.functionsr!   r"   r#   sympy.matricesr$   sympy.testing.pytestr%   r&   r'   rs   rL   r]   r^   rb   re   ri   rm   rp   rr   rv   r}   r   r   r   r   r   rJ   rJ   rJ   rK   <module>   s4    $TH	

1