K i+ddlmZddlmZddlmZmZddlmZddl m Z m Z ddl m Z mZddlmZddlmZdd lmZmZdd lmZdd lmZmZmZmZmZdd lmZdd l m!Z!m"Z"ddlm#Z#m$Z$m%Z%ddl&m'Z'm(Z(e d\Z)Z*Z+e d\Z,Z-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;e(d Z> ;;1$   5Aq>5Ar? 3 : :b @@ @r&ctdtdftddf}t|tsJ|jt dtdk(sJ|j dk(sJ|jddk(sJ|jthk(sJt|dtddtdgk(sJ|dddtddtdgk(sJtdtdftt dfdddtddtdgk(sJttdttdttdtttd ztdzftdtfddttd ztdzttd ztdzgk(sJtttd ztdzftdtfddgd k(sJtttftdtfdddtd td tgk(sJy) Nr*r.rctddS)Nr*r-r.rr*r-)rr%r&r'ztest_SeqPer..=s vi;r&c:tdtt tfS)Nr>)rr1rr%r&r'r@ztest_SeqPer..>svi!bS">r&c4ttdzdtfSNr-r)rr/rr%r&r'r@ztest_SeqPer..?svadQG4r&r-)rr*r.})rr/r1r2 periodicalrperiodcoeff free_symbolsr$rr ValueErrormr7s r' test_SeqPerrN0s1ay1a)$A a  <<5Aq> )) ) 88q== 771:?? >>aS  7q!Q1a( (( ( Q4Aq!Q1% %% % 1a)a"a[ )!A .1aAq!2D DD D :;< :>? :45 1adAqD/Aq": .r 2 AqD!Q$1a4A& '' ' 1adAqD/Aq": .r 26K KK K 1a&1a* %bq )aAq!Q-? ?? ?r&c  ttdztddf}t|tsJ|jtdzk(sJ|j ddk(sJt |t dDcgc]}|dz c}k(sJ|ddt dDcgc]}|dz c}k(sJttdztt dfddt dDcgc]}|dz c}k(sJttdzdtfttdztdtfk(sJttdzdtfjttttdzdtfk(sJtttdzztdtfjtttttdzztdtfk(sJttdttdttd tttdztzztd d f}|jtttdzzttzztd d fk(sJtt!ttdztzztd d f}|jd tt!ttdzzt#ttzzt!ttzt#ttdzzzztd d fk(sJ|jtt!ttdzzttzztd d fk(sJ|jd tt!ttdzzttzztd d fk(sJtt%ttdztzztd d f}|jtt%ttdzzt%ttzztd d fk(sJ|jdtt%ttdzzttzztd d fk(sJ|jddtt%ttdztzztd d fk(sJycc}wcc}wcc}w)Nr-rr;r. r<c(ttdzdS)Nr-r?)rr/r%r&r'r@z!test_SeqFormula..Xsz!Q$ :r&cHttdztt tfSNr-)rr/rr%r&r'r@z!test_SeqFormula..Ysz!Q$RC =r&cBtttdzzdtfSrC)rrMr/rr%r&r'r@z!test_SeqFormula..Zsz!AqD&1b':r&r*dT)trigF) power_exp)mulrW)rr/r2formularJr$rangerrMsubsr1rrLr0zexpandrrr )r8iseqs r'test_SeqFormular`Gs1a4!Q#A a $$ $ 991   771:?? 7U1X.q!t. .. . Q4%(+QAqD+ ++ + adQQK (1 -a1I1!Q$1I II I adQG $ 1a4!Q(D DD D adQF # ( (A .*QTAq62J JJ J a1fq!Rj ) . .q! 41QT6Aq":& '' ' ::; :=> ::; Q1q\Aq#; /C ::<:a1fqslQ3K@ @@ @ SAqD1H&1c{ 3C ::4: Js1QT6{3qs8/Cc!A#hsSTUVXYUYSY{FZ/Z]^`acf\g$h hh h ::<:c!AqD&1Q3,&7!QE EE E ::5: !ZAadFQqSL0AAq#;%O OO O SAqD1H&As 4C ::<:c!AqD&k#ac(&:Q3KH HH H ::: &*S1a4!A#5FAs *T TT T ::%5: 1ZAq!taxL@QTUWXZ]S^5_ __ _//+1Is2 S S" S'cttdztddf}tdtddf}ttdz}ttdztddf|k(sJtdtddf|k(sJttdz|k(sJy)Nr-rr;r>)rr/rr)formperinters r' test_sequenceregs adQ1I &D Q1I &C q!t E AqD1a) $ ,, , I1ay )S 00 0 AqD>U "" "r&c|ttdztddf}tdtddf}t ||}|j tdzdfk(sJ|j tddk(sJ|jdk(sJ|jdk(sJ|jdk(sJ|jttfk(sJy)Nr-rr+r>r;r<) rr/rrMrr3r rr4r5r"r6)rbrcr8s r'test_SeqExprOprgqs adQ2J 'D Q2J 'C$A 55QT9% %% % ::!R (( ( 77a<< 66R<< 88q== ;;1a&  r&c vtdtdtf}ttdz}tdtddf}ttdzd}ttdzd}t t j k(sJt t j t j k(sJt ||k(sJt |t j |k(sJt ||t j k(sJt ||d }|j||fk(sJ|ddgd k(sJt|gd k(sJtt ||d tsJt ||}t|tsJ|td tddfk(sJt ||}t|tsJ|tdtdzzdk(sJt |||t |tdtdzzdk(sJt |t ||t |tdtdzzdk(sJt |t ||d t |tdtdzzdk(sJt tdtdtftdtdtftd tdtfk(sJy)Nr>rr-r*r-r*r;r<r+r*r;Fevaluate)r-r<r+)r-rGrGr.r.r;r-rG) rr/rrrrrargsr$r2rMrcrbper_bouform_bou form_bou2r8s1s2s r' test_SeqAddrx~s Q2J 'C ad DVaAY'G!Q$(H1a4(I 8q && & !// "aoo 55 5 #;#   #q '3 .. . '8 $ 77 7w E2A 66i) )) ) Q4% %% % 7( (( ( fS'E:F CC C W B b& !! ! *Q1I6 66 6 h B b* %% % AadFG, ,, , $# &sJqAvw/0 11 1 $x- .sJqAvw/0 11 1 #vdH- >sJqAvw/0 11 1 &!Q,fVaBZ.H Iv1bz" ## #r&c ptdtdtf}ttdz}tdtddf}ttdztddf}ttdzd }t t j k(sJt t j t j k(sJt ||k(sJt |t j t j k(sJt ||t j k(sJt ||d }|j||fk(sJ|ddgd k(sJt|gd k(sJtt ||d tsJt ||}t|tsJ|td tddfk(sJt ||}t|tsJ|ttdzdk(sJt |||t |ttdzdk(sJt |t ||t |ttdzdk(sJt |t ||d d t |||d k(sJt tdtdtftdtdtftdtdtfk(sJy)Nr>rr-rir*r;r<r+rkFrl)r*rDrP )r*rGr.r-r-r<rGrj)r*rG) rr/rrrrrrqr$r2rrs r' test_SeqMulr|s Q2J 'C ad DVaAY'G!Q$Ar +H1a4(I 8q && & !// "aoo 55 5 #;#   #q '1?? :: : '8 $ 77 7w E2A 66i) )) ) Q4$ $$ $ 7' '' ' fS'E:F CC C W B b& !! ! *Q1I6 66 6 h B b* %% % AqD'* ** * $# &sJq!tW-. // / $x- .sJq!tW-. // / #vdI',.8= ?tS)e4 55 5 &!Q,fVaBZ.H Iv1bz" ## #r&ctdtdtfttdz}tdztdtdtfk(sJ|ttdzzttdztdzzk(sJ|zt |k(sJt t fdt t fdy) Nrirr-r-r.)r.r;r.ctzSrr/rcsr'r@ztest_add.. cAgr&ctzSrrrsr'r@ztest_add.. a#gr&rr/rrrr TypeErrorrbrcs @r'test_addrs !Q $C ad D &. !VFQ2J%? ?? ? *QT" "jA1&= == = :T* ** * 9o& 9o&r&ctdtdtfttdz}tdz tdtdtfk(sJ|ttdzz ttdztdzz k(sJ|z t | k(sJt t fdt t fdy) Nrirr-r~)rr.ctz Srrrsr'r@ztest_sub..rr&ctz Srrrsr'r@ztest_sub..rr&rrs @r'test_subrs !Q $C ad D &. !VHq!Rj%A AA A :ad# $ 1a4!Q$;(? ?? ? :dU+ ++ + 9o& 9o&r&cdtdtdtfjdtdtdtfk(sJt tdzjdt dtdzzk(sJt j jdt j k(sJtdtdtftdztdtdtfk(sJt tdzt tdzzt td zk(sJt j t tdzzt j k(sJt tdzt j zt j k(sJttd ttd y) Nrirr-rprUr~)r-r<r.r;c4ttdztzSrS)rr/r%r&r'r@z%test_mul__coeff_mul..shq!tnq0r&c4tttdzzSrS)r/rr%r&r'r@z%test_mul__coeff_mul..sa(1a4.0r&) rr/r coeff_mulrrrrrr%r&r'test_mul__coeff_mulrsI &1a* % / / 2fVaBZ6P PP P ad  % %a (JqAv,> >> > ?? $ $S )Q__ << < &1a* % 8v1bz" ## # ad jA. .*QT2B BB B ??Z1- - @@ @ ad aoo - @@ @ 901 901r&ctdtdtf tdtdtfk(sJttdz ttdz k(sJy)N)r*r)rr-r-)rr/rrr%r&r'test_negrsR 7Q2J ' '6'Aq":+F FF F q!t   AqD5 1 11 1r&c tdtdtf}tdtdtf}ttdz}ttdz}||z|zt |||k(sJ||z|z t ||| k(sJ||zt j z t ||k(sJ||z|zt tdtdtf|k(sJt j |z | k(sJ||ztdtdzzk(sJ||z|zt|||k(sJ||zttdzk(sJ|| zttdz k(sJ|||zzt|t ||k(sJ|||zzt||k(sJ|jttttdzztdtfk(sJ|jtttdtzftdtfk(sJy)Nrirrpr-r.)r.r<rG) rr/rrrrrrrrM)rcper2rbform2s r'test_operationsrs !Q $C &1a* %D ad D q!t E : T5!9 99 9 : TE6!: :: : : '6#t+< << < : vfq!Rj'A4 H HH H ??S SD (( ( $;*Qq!tV, ,, , : T5!9 99 9 $;*QT* ** * 4%<:q!te, ,, , 3; 6$sE0B#C CC C 39 d!3 33 3 >>!  1QT6Aq": > >> > == vq!A#hAr ; ;; ;r&ctdt}td|}t||ddfddt dDcgc]}|j ||c}k(sJt d|ddfddgdk(sJycc}w) Nr^)clsrrr;r<ri)r*r-r*r-r*r-)rrrrrZr[r)r^rjs r'test_Idx_limitsrsyAQA a!Q #A &q*JA166!Q<*J JJ J &1a) $Q '+= == =+KsA6cltdtddfjdddgk(sJtdtddfjdgdk(sJtttd zzttzztdt fjdgd k(sJtttztdd fjd tgk(sJtd jddgdk(sJtdt dzdz tzdt dz dz t zzjdddgk(sJttdt dzdz tzztdt dz dz t zzztdt fjdddgk(sJtdtddfjdgk(sJtdtddfjdtgdfk(sJtdtddfjdttdddtddgdtdzzdtzzdz dtd zzdtdzzz dtzzdz z fk(sJtttjdtddgt tdztzdz z fk(sJtttjdtgdt td ztdzztzdz z fk(sJy)N) rr*r*r-r.r;rD "7rr+r,r*) r*r-rGiFi i2iivi* )r;rr<ir.)rGirGrrr>r;)rrr*r-)r*r-r.rGr<rG)r-r.rGr;r<Or<)gfvar)r-r.rGr;rDiirz(r)r*r*r*) rr/find_linear_recurrencer1r0rr rr r r%r&r'test_find_linear_recurrencersA 92J &&r*q!f 55 5  !Rj 004 HH H AadF1Q3JAr + B B2 F   AqD1Qr( # : :2 >1# EE E G  3 3B :i GG G a$q'k1_q(47{^A! 44R8QF CC C ADG Q**Q!d1g+q0@QB/G-GGqH $$R(QF 33 3 KAq * A A! D JJ J NAq!9 - D DQQ D O Dz   NAq!9 - D DQQ D O "a#xA/#ad(RT/A2E1a4RTUVXYUYRYHY\^_`\`H`bcHc1de ff f IaL ! 8 8! 8 D AAqD1HqL!" ## # JqM " 9 9"1 9 E QB1q!t a!+,- .. .r&ctd}td}t||dz ||dz z|||ddg}|jddk(sJy)Nr0r/r*r-rr.)rr rrJ)r0r/fibs r'test_RecursiveSeqr4sW As A qQx!AE(*AaD!aV sympy.core.containersrsympy.core.functionrsympy.core.numbersrrsympy.core.singletonrsympy.core.symbolrr %sympy.functions.combinatorial.numbersr r &sympy.functions.elementary.exponentialr (sympy.functions.elementary.miscellaneousr (sympy.functions.elementary.trigonometricrr sympy.seriesrsympy.series.sequencesrrrrrsympy.sets.setsrsympy.tensor.indexedrrrrrsympy.testing.pytestrrr1r0r\r/rMr(r9rNr`rergrxr|rrrrrrrrr%r&r'rs'(+"-G69=&$-CC- ' 1au~1'A"@.`@# !$#N%#P ' ' 2 2 <0>...r&