
    sgA7                     J   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	 Z.d
 Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6e+d        Z7d Z8d Z9d Z:d Z;d Z<d Z=y)    )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                  
   t        d      \  } }}}d| |f||  fgi}t        dt        | |g|      }t        dt        ||g|      }|j                   \  }}|j                  |      t	        | g|gg      k(  sJ t        dd      \  }}d|f| fgi}t        dt        |g|      }	t        dt        |g|      }
t        t              5  |
j                  |	       d d d        t        d      \  }}d|f|d	z  fgi}t        dt        |g|      }t        dt        |g|      }t        t              5  |j                  |       d d d        t        d
      \  }}}}}}||fd	|z  d|z  fg||fd|z  d	|z  fgd}t        dt        ||f|      }t        dt        ||f|      }t        dt        ||f|      }|j                   \  }}|j                   \  }}|j                   \  }}|j                  |      t	        |d	z  |dz  g      k(  sJ |j                  |      t	        d|z  d|z  g      k(  sJ |j                  |      t	        |dz  |dz  g      k(  sJ |j                  |      t	        |dz  |d	z  g      k(  sJ t        d
      \  }}}}}}||fd	|z  d|z  dz   fg||f| d	z
  d	|z  fgd}t        dt        ||f|      }t        dt        ||f|      }t        dt        ||f|      }|j                   \  }}|j                   \  }}|j                   \  }}|j                  |      t	        |d	z  |dz
  dz  g      k(  sJ |j                  |      t	        d|z  d	z
  d|z  dz   d	z  g      k(  sJ |j                  |      t	        | d	z  dz
  d	|z  dz
  dz  g      k(  sJ |j                  |      t	        | d	z
  d	|z  g      k(  sJ t        d
      \  }}}}}}t        ||fd	|z  d|z  dz   f      t        ||f| d	z
  d	|z  f      d}t        dt        ||f|      }t        dt        ||f|      }t        dt        ||f|      }|j                   \  }}|j                   \  }}|j                   \  }}|j                  |      t	        |d	z  |dz
  dz  g      k(  sJ |j                  |      t	        d|z  d	z
  d|z  dz   d	z  g      k(  sJ |j                  |      t	        | d	z  dz
  d	|z  dz
  dz  g      k(  sJ |j                  |      t	        | d	z
  d	|z  g      k(  sJ y # 1 sw Y   UxY w# 1 sw Y   xY w)Nzp q r s)firstsecondr*   r+   a bTpositivezc d   za, b, c, d, e, f   )C1C2)r3   C3r2   r3   r4         )r1   )r4   r3   )	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fr2   r3   r4   s                       U/var/www/html/venv/lib/python3.12/site-packages/sympy/diffgeom/tests/test_diffgeom.pytest_coordsys_transformrM      s   #JAq!Q!Q!aR 1
2CQFC8E)aVS9E==DAq??5!VqbTA3K%8888 54(DAq!u
.Cw	A34DxQC5D	#	$ t 5>DAq!1w
0Cw	A34DxQC5D	
	 t 12Aq!Q1a&1Q3!*-1v!QqSz*,C	T9q!fc	2B	T9q!fc	2B	T9q!fc	2B::DAq::DAq::DAq<<vqsAaCj1111<<vqsAaCj1111<<vqsAaCj1111<<vqsAaCj111112Aq!Q1a&1Q3!a.11vQ!}-/C	T9q!fc	2B	T9q!fc	2B	T9q!fc	2B::DAq::DAq::DAq<<vqsQUAI&67777<<vr!tax!A#'1&=>>>><<vr!tax!A#'1&=>>>><<vrAvqsm4444 12Aq!Q1A1acAg7aVqb1fac]35C	T9q!fc	2B	T9q!fc	2B	T9q!fc	2B::DAq::DAq::DAq<<vqsQUAI&67777<<vr!tax!A#'1&=>>>><<vr!tax!A#'1&=>>>><<vrAvqsm4444m  s   T*-T7*T47Uc            	      H   t        dd      \  } }}}t        j                  | |g      }t        j                  ||g      }t        j
                  dz  t        j                  dz  z
  t        j                  dz  z
  j                  |      dk(  sJ t        t        j
                  dz  t        j                  dz  z
  t        j                  dz  z
  j                  |            dk(  sJ t        t	        j                  t        j                  dz  t        j                  dz  z         j                  |      j                               d|z  k(  sJ t        dd      \  }}t        |g|gg      }|t        j                  t        t        j                  t        |            j                  t              k(  sJ t!               5  |t        j"                  t        t        j"                  t        |            j                  t              k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nzx0, y0, r0, theta0T)realr/   r   r,   r-   )r   r   pointr   r   r=   xyrcallr    e_rdoitr%   r8   	applyfuncr!   r(   coord_tuple_transform_to)	x0y0r0theta0point_rpoint_prB   rC   ms	            rL   test_R2r_   Y   s    !5DABBjj"b"Gjj"f&G DD!GbddAga'..w71<<<bddAga'"$$'188ACqHHHBFF2447RTT1W,-33G<AACD"LLL 54(DAqaSzA tT^^D!%<=GGQQQQ 
 	! ND11$//a8::C)H:MN 	N NN N Ns   AHH!c            	          t        dd      \  } }}t        | g|g|gg      }|t        j                  t        t	        j                  t        |            j                  t              k(  sJ |t        j                  t        t	        j                  t        |            j                  t              k(  sJ |t        j                  t        t        j                  t        |            j                  t              k(  sJ t               5  |t        j                  t        t	        j                  t        |            j                  t              k(  sJ |t        j                  t        t	        j                  t        |            j                  t              k(  sJ |t        j                  t        t        j                  t        |            j                  t              k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nza b cTr-   )
r   r%   r
   r8   r	   rV   r!   r   r(   rW   )rB   rC   rF   r^   s       rL   test_R3ra   p   s   g-GAq!aS1#AtT^^D!%<=GGQQQQdnnT1%''0y':; ; ; dnnT1%''0y':; ; ; 
 	! ND11$//a8::C)H:MN 	N N D11$//a8::C)H:MN 	N N D11$//a8::C)H:MN 	N NN N Ns   CG44G=c                      t         j                  \  } }t        j                  \  }}|j                  t              |t	        |      z  k(  sJ y N)r   r   r   rewriter$   )rQ   rR   r=   thetas       rL   test_CoordinateSymbolrf      s:    <<DAq||HAu99T?aE
l***    c                  n   t        d      \  } }t        j                  | |g      }|j                  | |hk(  sJ |j	                  t              |j	                         cxk(  rt        | |g      k(  sJ  J |j	                  t              t        t        | dz  |dz  z         t        ||       g      k(  sJ y )Nzx, yr/   )	r   r   rP   free_symbolscoordsr%   r   r"   r#   )rQ   rR   r;   s      rL   
test_pointrk      s    6?DAq

Aq6A>>aV###88D>QXXZ961a&>9999988D>VT!Q$A+%6a$DEEEErg   c                     t        t        j                  t        j                        dk(  sJ t        t        j                  t        j                  z  t        j                  t        j                  z        dk(  sJ t        t        j                  t        j                  z  t        j                  t        j                  z        t        j                  t        j                  z  k(  sJ t        t        j                  t        j
                        }  | t        j                        t        j                  t        j                  dz  t        j                  dz  z   dz  z  t        t        j                        z  k(  sJ y )Nr   r/   )	r   r   e_xe_yrQ   rT   rR   r$   re   )rF   s    rL   test_commutatorrp      s    bffbff%***bdd266k244;/1444bdd266k244;/244;>>>266266"ARTT7bddBDD!GbddAg-44S]BBBBrg   c                     t         j                  t         j                  z  } t        |       }| j	                  d       | k(  sJ  |t         j
                  t         j                        dk(  sJ  |t         j
                  t         j                  t         j                  z        t         j                  k(  sJ t        |      dk(  sJ y )Nr6   r   )r   rQ   dyr   rS   rn   ro   )xdydxdys     rL   test_differentialru      s    
$$ruu*CD99T?c!!!1$$$RVV$,,,"""rg   c                      t        t        j                  t        j                        t        j                  t        j
                        t        j                  t        j                        t        j                  t        j
                        z  cxk(  rdk(  sJ  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(  sJ  t        t        j                  t        j                        t        j                        t        j                  k(  sJ t        t        j                  t        j                        t        j                  t        j                  z  k(  sJ  t        t        j                  t        j
                        t        j                  t        j                        t        j                  t        j                        t        j
                  t        j                        z  cxk(  rdk(  sJ  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(  sJ  t        t        j                  t        j
                        t        j                        t        j
                  k(  sJ t        t        j                  t        j                        t        j                  t        j                  z  k(  sJ  t        t        j                  t        j
                        t        j                  t        j                        t        j                  t        j                        t        j
                  t        j                        z  cxk(  rdk(  sJ  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(  sJ  t        t        j                  t        j
                        t        j                        t        j
                  k(  sJ t        t        j                  t        j                        t        j                  t        j                  z  k(  sJ  t        t        j                  t        j                        t        j                  t        j
                        t        j                  t        j                        t        j                  t        j
                        z  cxk(  rdk(  sJ  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(  sJ  t        t        j                  t        j                        t        j                        t        j                  k(  sJ  t        t        j
                  t        j                        t        j                  dz  t        j                  dz  z   t        j                  dz  t        j                  dz  z         dt        j                  z  t        j                  z  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                        dk(  sJ y )Nr6   r/      )	r   r   dxrr   rn   ro   rQ   rR   r    rg   rL   test_productsrz      s*   =
ruuffbff&)+rvvruuRVV})DJHIJ J J J J&=&tRVV4===&=&rvvt4===&=&rvv."%%777ruu%bee333=
bdd$')vvbdd|bffRTTl'BHFGH H H H H(=(rtt4>>>(=(t4>>>(=(."&&888rvv&"$$-777=
rvvvvrtt%(*bffrtt(DJHIJ J J J J'='bdd3ruu<<<'='5???'='/266999rvv&"$$-777=
ttRVV%(*rttruuRVV}(DJHIJ J J J J'='bff5???'='d3ruu<<<'='-666'='a"$$'(9"$$'BDD!G:KLPQRTRVRVPVWYW[W[P[[[[%<ruu%bffbff5:::'<'bdd3q888rg   c                  
   t        t        j                  t        j                        t        j                  t        j                        cxk(  rdk(  sJ  J t        t        j                  t        j                        t        j                  t        j                        cxk(  rdk(  sJ  J t        t        j                  t        j                        t        t        j                  t        j                        cxk(  rdk(  sJ  J t        t        j                  t        j                        t        t        j                  t        j                        k(  sJ t        t        j                  t        j                  z   t        j                        dk(  sJ  t        t        j                  t        t        j                  t        j                              t        j                  t        j                        dk(  sJ y Nr   r6   )r   r   rn   rR   rQ   r   rT   ro   r   rx   rr   ry   rg   rL   test_lie_derivativer}      s=   &"&&,;!;;;;;&"&&,;!;;;;;(Jrvvrvv,FK!KKKKK(Jrvvrvv,FFFF"&&"$$/1444-=
beeRUU+--/VVRVV=@AB B Brg   c                     t        t        t        j                  t        j                        t        t        j                  t        j                        z         } t        t        d|       } |t        j                        dk(  sJ  |t        j                  t        j                  z        t        j                  k(  sJ t        t        j                  t        j                  z  |       } |t        j                        t        j                  k(  sJ  |t        j                  t        j                  z        t        j                  t        j                  z  k(  sJ y r|   )
r   TPr   rx   rr   r   r   rQ   rn   r   )chcvds     rL   test_covar_derivr      s    	"2beeRUU#3b6F#F	GB
a
,Crtt9>>rttBFF{rvv%%%
BDDK
,Crtt9rttBFF{rttBFF{***rg   c                     t        d      } t        j                  ddg      }t        j                   t        j
                  z  t        j                  t        j                  z  z   }t        || |      \  }}t        |      dk(  sJ t        |      dk(  sJ t        || |t              \  }}t        |      dk(  sJ t        |      dk(  sJ y )Ntr6   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   rP   r   rR   rn   rQ   ro   r   strr   )r   start_pointvector_field	equations	init_conds        rL   test_intcurve_diffequr      s    A**aV$KDD5<"$$rvv+-L+L![IIyy>````y>3333+L![$OIyJK K Ky>3333rg   c                  	  	
 t         j                  t         j                  z   t        t         j                  t         j                  z  t         j
                  t         j                  z  z         } t        t         j                  | z        t        t         j                  t        t         j
                  t         j                  z        z        z   t        t         j                  t         j                        t        t         j                  t         j                        z   }t        t         j                  t         j                        t        t         j                  t         j                        z   t        t         j                  t         j                        t         j                  z   t         j                  dz  	t         j                  t         j                  z  
t        t         j                  t         j                        t        t         j                  t         j                        z   t        t         j                  t         j                        }t         j                  t         j                  z   }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(  sJ t        | |z         dk(  sJ t        | z         dk(  sJ t        | z         dk(  sJ t        | |z         dk(  sJ t        |      dk(  sJ t        |      dk(  sJ t        |      dk(  sJ t        ||z         dk(  sJ t        t        fd       t        t        	fd       t        t        
f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
       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       y )Nrw   r6   r/   r0   c                      t               S rc   r   )	misform_as   rL   <lambda>z7test_helpers_and_coordinate_dependent.<locals>.<lambda>      y9 rg   c                      t               S rc   r   )	misform_bs   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>	  r   rg   c                      t               S rc   r   )	misform_cs   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>
  r   rg   r   rm   c                      t               S rc   r   )one_forms   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    0: rg   c                      t               S rc   r   )
three_forms   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    0< rg   c                      t               S rc   r   )metric_ambigs   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    0> rg   c                      t               S rc   )r   twoform_not_syms   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>      8I rg   c                      t               S rc   )r   r   s   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  r   rg   c                      t               S rc   )r   r   s   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    ;OL rg   c                      t               S rc   )r   r   s   rL   r   z7test_helpers_and_coordinate_dependent.<locals>.<lambda>  s    9/J rg   )r   drrx   r   rQ   r=   rR   r   rr   r   rn   ro   r   r   r&   r:   r   r%   )two_formmetrictwoform_not_TP
one_vector
two_vectorthree_vectortwo_wpr   r   r   r   r   r   r   s          @@@@@@@rL   %test_helpers_and_coordinate_dependentr      sY   uuruu}HBDDJbee34H
X%bdd<RUU
+C&CDEJ255"%%(=+FFF .ruubee1LLLbeeRUU+bee3IqIbeeI#BEE2551M"%%4OOO!"%%/N"&&Jrvvrvv.J 8L"&&(F8$)))8$))):&!+++8f,-2228l23q8888o56!;;;8n45:::z*a///z*a///|,111zF23q888
:9:
:9:
:9:V$AA/?(@@@@_-!Q!Q8H1IIII^,B!Q7H0IIII
::;
:<=
:>?
:IJ
:IJ
:LM
:JKrg   c                      t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d	        t        t        d
        t        d       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                  H    t        j                  t         j                        S rc   )r   rn   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>  s    rvvbff~ rg   c                  H    t        j                  t         j                        S rc   )r   rn   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>  s    rvvbee} rg   c                  R    t        t        j                  t        j                        S rc   )r   r   rn   rQ   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>  s    z"&&"$$7 rg   c                  R    t        t        j                  t        j                        S rc   )r   r   rx   rn   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>  s    z"%%8 rg   c                  F    t        t        t        j                              S rc   )r   r   rn   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>!  s    |L,@A rg   c                  H    t        j                  t         j                        S rc   )r   rx   rQ   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>#  s    ruuRTT{ rg   c                  R    t        t        j                  t        j                        S rc   )r   r   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>%  s    }RUUBEE: rg   c                  R    t        t        j                  t        j                        S rc   )r   r   rQ   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>&  s    }RTT2559 rg   c                  6    t        t        j                  g       S rc   )r   r   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>(  s    0; rg   c                  6    t        t        j                  g       S rc   )r   r   rQ   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>)  s    0r: rg   rB   c                  d    t        t        j                   t        j                  ddg            S Nr6   r/   )r   r   rx   r   rP   rB   s   rL   r   z(test_correct_arguments.<locals>.<lambda>,  s!    ruuaQF9KL rg   c                  d    t        t        j                   t        j                  ddg            S r   )r   r   rQ   r   rP   r   s   rL   r   z(test_correct_arguments.<locals>.<lambda>-  s!    rttQ

Aq68JK rg   c                  d    t        t        j                   t        j                  ddg            S r   )r   r   rx   r   rP   r   s   rL   r   z(test_correct_arguments.<locals>.<lambda>/  s"    /q$**aV:LM rg   c                  d    t        t        j                   t        j                  ddg            S r   )r   r   rQ   r   rP   r   s   rL   r   z(test_correct_arguments.<locals>.<lambda>0  s"    /aQF9KL rg   c                  V    t        t        j                  t        j                  z         S rc   )r   r   rn   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>2  s    2266BEE>B rg   c                  V    t        t        j                  t        j                  z         S rc   )r   r   rn   rx   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>3  s    rvv~> rg   c                  V    t        t        j                  t        j                  z        S rc   )r   r   rn   ro   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>5  s    2266"&&=A rg   c                  V    t        t        j                  t        j                  z        S rc   )r   r   rx   rr   ry   rg   rL   r   z(test_correct_arguments.<locals>.<lambda>6  s    ruuRUU{; rg   )r&   r:   r   r   s   @rL   test_correct_argumentsr     s    
:-.
:,-
:78
:89
:AB
:*+
::;
:9:
:;<
::;sA
:LM
:KL
:MN
:LM
:BC
:>?
:AB
:;<rg   c                  j   t        j                         \  } }t        j                         \  }}t        j                         \  }}t	        |       | k(  sJ t	        | |z        | |z  k(  sJ t	        ||z        ||z  k(  sJ t	        ||z        ||z  k(  sJ d| z
  |z  d| z
  dz  z  |d| z
  z  k(  sJ y r   )r   coord_functionsbase_oneformsbase_vectorsr!   )rQ   rR   rx   rr   exeys         rL   test_simplifyr   8  s    !DAq!FB FBA;!AaC=AaCBrE?be###BrE?be###qS"HqsQh"ac(***rg   c                     t         j                  t         j                  z  t         j                  t         j                  z  z
  } t         j                  dz  t         j                  dz  z   t         j                  z  t         j                  t         j                  z  t         j                  z  z
  }t        | |      j                         t         j                  dz  t         j                  z  dt         j                  dz  z  t         j                  z  z
  t         j                  t         j                  z  t         j                  z  z
  k(  sJ y )Nr/   r0   )r   rQ   rn   rR   ro   r   expand)XYs     rL   test_issue_17917r   C  s    
RVVbdd266k!A	q2447	BFF"RTT"$$Yrvv%55AA%%'
a2447266))BDDIbff,<<> > >rg   c                     t        dd      } t        d|       }t               5  t        d|ddg       d d d        t               5  t        d|ddg      }d d d        t               5  t	        | j
                         d d d        t               5  t	        j                         d d d        y # 1 sw Y   |xY w# 1 sw Y   fxY w# 1 sw Y   JxY w# 1 sw Y   y xY w)NMr/   PCar2drQ   rR   )names)r   r   r(   r   listpatches
transforms)r^   r;   rF   s      rL   test_deprecationsr   I  s    aAc1A		! 2GQsCj12 
 	! 0S#J/0 
 	! QYY 
 	! Q\\ 2 20 0  s/   B/B;(CC/B8;CCC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(   r   rM   r_   ra   rf   rk   rp   ru   rz   r}   r   r   r   r   r   r   r   ry   rg   rL   <module>r      s    . . I I IG G G G G G
 . , , ! 5 7E5PN.N2+FC#9<B + +
4.Lb=<+>rg   