K iA7JddlmZmZmZddlmZmZmZmZm Z m Z m Z ddl m Z mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddl m!Z!m"Z"ddl#m$Z$m%Z%m&Z&ddl'm(Z(ddl)m*Z*m+Z+ddl)m,Z,eZ-d Z.d Z/d Z0d Z1d Z2dZ3dZ4dZ5dZ6e+dZ7dZ8dZ9dZ:dZ;dZDAq !1w 0C w A3 4D xQC 5D   t12Aq!Q1a&1Q3!*-1v!QqSz* ,C T9q!fc 2B T9q!fc 2B T9q!fc 2B ::DAq ::DAq ::DAq << vqsAaCj1 11 1 << vqsAaCj1 11 1 << vqsAaCj1 11 1 << vqsAaCj1 11 112Aq!Q1a&1Q3!a.11vQ!}- /C T9q!fc 2B T9q!fc 2B T9q!fc 2B ::DAq ::DAq ::DAq << vqsQUAI&67 77 7 << vr!tax!A#'1&=> >> > << vr!tax!A#'1&=> >> > << vrAvqsm4 44 412Aq!Q1A1acAg7aVqb1fac]3 5C T9q!fc 2B T9q!fc 2B T9q!fc 2B ::DAq ::DAq ::DAq << vqsQUAI&67 77 7 << vr!tax!A#'1&=> >> > << vr!tax!A#'1&=> >> > << vrAvqsm4 44 4msT*-T7*T47Uc Htdd\}}}}tj||g}tj||g}tj dztj dzz tjdzz j|dk(sJttj dztj dzz tjdzz j|dk(sJtt jtj dztjdzzj|jd|zk(sJtdd\}}t|g|gg}|tjttjt|jtk(sJt!5|tj"ttj"t|jtk(sJ dddy#1swYyxYw)Nzx0, y0, r0, theta0T)realr/rr,r-)rrpointrrr=xyrcallr e_rdoitr%r8 applyfuncr!r(coord_tuple_transform_to) x0y0r0theta0point_rpoint_prBrCms rLtest_R2r_Ys !5DABBjj"b"Gjj"f&G DD!GbddAg a ' . .w 71 << < bddAga'"$$'188A Cq HH H BFF2447RTT1W,-33G<AAC D" LL L 54 (DAqaSzA tT^^D!%<=GGQ QQ Q !ND11 $//a8::C)H:MN NNNNNs A HH!c tdd\}}}t|g|g|gg}|tjtt jt|j t k(sJ|tjtt jt|j t k(sJ|tjttjt|j t k(sJt5|tjtt jt|j t k(sJ|tjtt jt|j t k(sJ|tjttjt|j t k(sJ dddy#1swYyxYw)Nza b cTr-) rr%r r8r rVr!r r(rW)rBrCrFr^s rLtest_R3rapsg-GAq!aS1#A tT^^D!%<=GGQ QQ Q  dnnT1%''0y': ;; ;  dnnT1%''0y': ;; ; !ND11 $//a8::C)H:MN NND11 $//a8::C)H:MN NND11 $//a8::C)H:MN NNNNNs CG44G=ctj\}}tj\}}|jt|t |zk(sJyN)rrrrewriter$)rQrRr=thetas rLtest_CoordinateSymbolrfs: <>aV ## # 88D>QXXZ 961a&> 99 99 9 88D>VT!Q$A+%6a $DE EE Ergcttjtjdk(sJttjtjztjtjzdk(sJttjtjztjtjztjtjzk(sJttjtj }|tjtj tjdztj dzzdzzttjzk(sJy)Nrr/) rre_xe_yrQrTrRr$re)rFs rLtest_commutatorrps bffbff % ** * bdd266k244; /1 44 4 bdd266k244; /244; >> >266266"A RTT7bddBDD!GbddAg-44S]B BB Brgctjtjz}t|}|j d|k(sJ|tj tj dk(sJ|tj tjtj ztjk(sJt|dk(sJy)Nr6r)rrQdyrrSrnro)xdydxdys rLtest_differentialrus $$ruu*C  D 99T?c !! !  1 $$ $ RVV $ ,, ,   "" "rgcttjtjtjtj tjtjtjtj zcxk(rdk(sJJttjtjdtj tjk(sJttjtjtjdtjk(sJttjtjtjtjk(sJttj tjtj tjzk(sJttjtj tj tjtjtj tj tjzcxk(rdk(sJJttjtj dtjtjk(sJttjtj tj dtj k(sJttjtj tj tj k(sJttj tjtj tjzk(sJttjtj tjtjtjtjtj tjzcxk(rdk(sJJttjtj dtjtjk(sJttjtj tjdtj k(sJttjtj tjtj k(sJttj tjtj tjzk(sJttjtjtj tj tjtj tjtj zcxk(rdk(sJJttjtjdtj tjk(sJttjtjtj dtjk(sJttjtjtj tjk(sJttj tjtj dztjdzztj dztjdzzdtj ztjzk(sJttjtjtjtj dk(sJttjtj tj tjdk(sJy)Nr6r/) rrdxrrrnrorQrRrrgrL test_productsrzs* = ruu ffbff &)+rvvruuRVV})D JHI JJ JJ J &= &tRVV 4 == = &= &rvvt 4 == = &= &rvv ."%% 77 7 ruu %bee 33 3 =  bdd $')vvbdd|bffRTTl'B HFG HH HH H (= (rtt 4 >> > (= (t 4 >> > (= ( ."&& 88 8 rvv &"$$- 77 7 = rvv vvrtt %(*bff rtt (D JHI JJ JJ J '= 'bdd 3ruu << < '= ' 5 ?? ? '= ' /266 99 9 rvv &"$$- 77 7 =  ttRVV %(*rtt ruuRVV}(D JHI JJ JJ J '= 'bff 5 ?? ? '= 'd 3ruu << < '= ' - 66 6 '= 'a"$$'(9"$$'BDD!G:K LPQRTRVRVPVWYW[W[P[ [[ [ %<ruu %bffbff 5 :: : '< 'bdd 3q 88 8rgc ttjtjtjtjcxk(rdk(sJJttjtjtjtjcxk(rdk(sJJttjtjt tjtjcxk(rdk(sJJttjtj t tjtj k(sJttjtjztjdk(sJttjttjtjtjtjdk(sJyNrr6) rrrnrRrQrrTrorrxrrryrgrLtest_lie_derivativer}s=  &"&&, ;! ;; ;; ;  &"&&, ;! ;; ;; ;  (Jrvvrvv,F K! KK KK K  (Jrvvrvv,F FF F "&&"$$ /1 44 4 -=  beeRUU+ --/VVRVV =@A BB Brgctttjtjttjtjz}t t d|}|tjdk(sJ|tjtjztjk(sJttjtjz|}|tjtjk(sJ|tjtjztjtjzk(sJyr|) rTPrrxrrrrrQrnr)chcvds rLtest_covar_derivrs "2beeRUU#3b6F#F GB a ,C rtt9>> rttBFF{ rvv %% % BDDK ,C rtt9   rttBFF{ rttBFF{ ** *rgctd}tjddg}tj tj ztj tjzz}t|||\}}t|dk(sJt|dk(sJt|||t\}}t|dk(sJt|dk(sJy)Ntr6rzA[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]) rrrPrrRrnrQrorstrr)r start_point vector_field equations init_conds rLtest_intcurve_diffequrs A**aV$KDD5<"$$rvv+-L+L![IIy y>` `` ` y>3 33 3+L![$OIy  J KK K y>3 33 3rgc  tjtjz ttjtjztj tjzz}ttj |zttjttj tjzzz ttjtjttjtjz}ttjtjttjtjzttjtjtjztjdz tjtjz ttjtjttjtjz ttjtj}tjtjz}ttjtj}ttjtjtj}ttjtj}t dk(sJt|dk(sJt dk(sJt||zdk(sJt|zdk(sJt| zdk(sJt||zdk(sJt|dk(sJt|dk(sJt|dk(sJt||zdk(sJttfdtt fdtt fdt!|t#ddgddggk(sJt! t#ddgddggk(sJt!|t#dd gddggk(sJtt fd tt fd ttfd tt fd tt fdtt fdtt fdy)Nrwr6r/r0ctSrcr) misform_asrLz7test_helpers_and_coordinate_dependent.. y9rgctSrcr) misform_bsrLrz7test_helpers_and_coordinate_dependent.. rrgctSrcr) misform_csrLrz7test_helpers_and_coordinate_dependent.. rrgrrmctSrcr)one_formsrLrz7test_helpers_and_coordinate_dependent..s 0:rgctSrcr) three_formsrLrz7test_helpers_and_coordinate_dependent..s 0<rgctSrcr) metric_ambigsrLrz7test_helpers_and_coordinate_dependent..s 0>rgctSrc)rtwoform_not_symsrLrz7test_helpers_and_coordinate_dependent.. 8IrgctSrc)rrsrLrz7test_helpers_and_coordinate_dependent..rrgctSrc)rrsrLrz7test_helpers_and_coordinate_dependent..s ;OLrgctSrc)rrsrLrz7test_helpers_and_coordinate_dependent..s 9/Jrg)rdrrxrrQr=rRrrrrrnrorrr&r:rr%)two_formmetrictwoform_not_TP one_vector two_vector three_vectortwo_wprrrrrrrs @@@@@@@rL%test_helpers_and_coordinate_dependentrsYuuruu}HBDDJbee34H X %bdd<RUU +C&CDEJ 255"%% (=+F FF .ruubee1LLLbeeRUU+bee3IqIbee I#BEE2551M"%%4OOO!"%%/N"&&Jrvvrvv.J 8L "&& (F 8 $ )) ) 8 $ )) ) : &! ++ + 8f, - 22 2 8l2 3q 88 8 8o5 6! ;; ; 8n4 5 :: : z *a // / z *a // / | , 11 1 zF2 3q 88 8 :9: :9: :9: V $AA/?(@ @@ @ _ -!Q!Q8H1I II I ^ ,B!Q7H0I II I ::; :<= :>? :IJ :IJ :LM :JKrgcttdttdttdttdttdttdttdttdttd ttd td ttfd ttfd ttfdttfdttdttdttdttdy)NcHtjtjSrc)rrnryrgrLrz(test_correct_arguments..srvvbff~rgcHtjtjSrc)rrnrxryrgrLrz(test_correct_arguments..srvvbee}rgcRttjtjSrc)rrrnrQryrgrLrz(test_correct_arguments..sz"&&"$$7rgcRttjtjSrc)rrrxrnryrgrLrz(test_correct_arguments..sz"%%8rgcFtttjSrc)rrrnryrgrLrz(test_correct_arguments..!s|L,@ArgcHtjtjSrc)rrxrQryrgrLrz(test_correct_arguments..#sruuRTT{rgcRttjtjSrc)rrrxryrgrLrz(test_correct_arguments..%s}RUUBEE:rgcRttjtjSrc)rrrQrxryrgrLrz(test_correct_arguments..&s}RTT2559rgc6ttjgSrc)rrrxryrgrLrz(test_correct_arguments..(s0;rgc6ttjgSrc)rrrQryrgrLrz(test_correct_arguments..)s0r:rgrBcdttjtjddgSNr6r/)rrrxrrPrBsrLrz(test_correct_arguments..,s!ruuaQF9KLrgcdttjtjddgSr)rrrQrrPrsrLrz(test_correct_arguments..-s!rttQ Aq68JKrgcdttjtjddgSr)rrrxrrPrsrLrz(test_correct_arguments../s"/q$**aV:LMrgcdttjtjddgSr)rrrQrrPrsrLrz(test_correct_arguments..0s"/aQF9KLrgcVttjtjzSrc)rrrnrxryrgrLrz(test_correct_arguments..2s2266BEE>BrgcVttjtjzSrc)rrrnrxryrgrLrz(test_correct_arguments..3srvv~>rgcVttjtjzSrc)rrrnroryrgrLrz(test_correct_arguments..5s2266"&&=ArgcVttjtjzSrc)rrrxrrryrgrLrz(test_correct_arguments..6sruuRUU{;rg)r&r:rrs@rLtest_correct_argumentsrs :-. :,- :78 :89 :AB :*+ ::; :9: :;< ::;s A :LM :KL :MN :LM :BC :>? :AB :;> >rgctdd}td|}t5td|ddgdddt5td|ddg}dddt5t |j dddt5t j dddy#1swY|xYw#1swYfxYw#1swYJxYw#1swYyxYw)NMr/PCar2drQrR)names)r rr(rlistpatches transforms)r^r;rFs rLtest_deprecationsrIsaA c1 A  !2GQsCj12 !0 S#J /0 ! QYY ! Q\\2200s/B/B;(CC/B8;CCCN)> sympy.corerrrsympy.diffgeom.rnrrrr r r r sympy.diffgeomr rrrrrrrrrrrrrrrrrrsympy.simplifyr r!sympy.functionsr"r#r$sympy.matricesr%sympy.testing.pytestr&r'r(rrMr_rarfrkrprurzr}rrrrrrrryrgrLrs..IIIGGGGGG .,,!57E5PN.N2+ FC#9<B++ 4.Lb=<+> rg