Files
QuanTAlib/python/tests/__pycache__/test_shapes.cpython-313-pytest-9.0.2.pyc
T

100 lines
24 KiB
Plaintext
Raw Normal View History

2026-02-28 14:14:35 -08:00
ó
ÖL£iôã!óÞSrSSKJr SSKrSSKJs Jr SSK r
SSK r /SQr SS/r
SSS S
.4S S S
S.4SSSS.4SSSSSS.4SSSSSSS.4SSSSS.4S S!S"S#.4S$SS%S S&S'.4S(SSS).4S*SS+S,.4S-SS.S/.4S0SS+S1.4S2SS3S4.4S5S!S"S6S7.4S8S!S"S6S7.4S9S!S:S.4S;S!S<S=S>.4S?SSS@.4SAS!S:S6SB.4SCS!SS).4SDSS.S+SE.4SFS S%SGSH.4SIS%SGSJ.4SKSLSSM.4SNSOSPSS:SQ.4SRSSS"S"ST.4SUSSSVSW.4SXSSS!SSY.4SZS[S\S].4S^S_SS`.4/rSar\
R R#Sb5r\R'\5R)5Sc-r\ R,"SdSe9Sf5r\ R0R3Sg\ 5SuShj5r\ R0R3Sg\
5SuSij5r\ R0R3Sj\\Vs/sHoSPM snSk9SvSlj5rSwSmjrSwSnjrSwSojrSwSpjr SwSqjr!SwSrjr"SwSsjr#SwStjr$gs snf)xu¦test_shapes.py — Verify len(output) == len(input) for all single-output indicators.
Requires the native library to be published first:
pwsh python/publish.ps1
é)Ú annotationsN);ÚrsiÚrocÚmomÚcmoÚbiasÚcfoÚfisherÚfisher04ÚdpoÚtrixÚinertiaÚrsxÚerÚctiÚreflexÚ trendflexÚkriÚpslÚsmaÚwmaÚhmaÚtrimaÚswmaÚdwmaÚblmaÚalmaÚlsmaÚsgmaÚsinemaÚhanmaÚparzenÚtsfÚsp15Útukey_wÚrainÚemaÚdemaÚtemaÚlemaÚhemaÚahrensÚdecyclerÚbbwÚstddevÚvarianceÚzscoreÚentropyÚbesselÚbutter2Úbutter3Úcheby1Úcheby2ÚellipticÚedcfÚbpfÚcgÚdspÚccorÚchangeÚcmaÚexptransÚtsiéé
)Ú long_periodÚ short_periodÚapoé é)ÚfastÚslowÚdecoéé<)rErDÚdoscéééé )Ú
rsi_periodÚ ema1_periodÚ ema2_periodÚ
signal_periodÚdymoié
)Ú base_periodrErDÚ
min_periodÚ
max_periodÚcrsiééd)rSÚ
streak_periodÚ rank_periodÚbbbéç@)ÚlengthÚmultÚbbiéé)Úp1Úp2Úp3Úp4Úbwma)rdÚorderÚcrmagð?)rdÚ
volume_factorÚdsmaçà?)rdÚfactorÚgdema)rdÚvfactorÚcoralgš™™™™™Ù?)rdÚfrictionÚbbwnéü)rdreÚlookbackÚbbwpÚccvéÚcvgš™™™™™É?gffffffæ?)rdÚmin_volÚmax_volÚcvi)Ú
ema_periodÚ
roc_periodÚewma)rdÚis_popÚ
ann_factorÚ alaguerreÚ bilateral)rdÚsigma_sÚsigma_rÚ
baxterkingé )rdrZr[Úcfitz)rdÚ bw_periodÚebswé()Ú hp_lengthÚ
ssf_lengthÚeacpéé0)rZr[Ú
avg_lengthÚenhanceÚbetadisté2)rdÚalphaÚbetaÚexpdistg@)rdÚlamÚ binomdist)rdÚtrialsÚ thresholdÚcwtg$@g@)ÚscaleÚomegaÚdwté)rdÚlevelséÈé*gY@Úmodule)Úscopecó|SSKnU$![[4a#n[R"SU35 SnAgSnAff=f)z3Import quantalib; skip if native lib not available.rNz$quantalib native lib not available: )Ú quantalibÚOSErrorÚ ImportErrorÚpytestÚskip)Ú_qtlÚes Ú/c:\github\quantalib\python\tests\test_shapes.pyÚqtlr´Hs>ð@Û Øˆ øÜ ”[Ð @Ü Š Ð:¸1¸?ûð@úsˆ;˜6;Únamec ó°[URUS5nUc[R"US35 U"[SS9n[
R n[X45oU(GdZ[R"US35S-S[R"5;d[R"[5(a[R"[5OSS[R"5;d[R"U5(a[R"U5OSS[R"5;d[R"[
5(a[R"[
5OS[R"U5[R"U5S .-n[[R"U55eS=pE[!U5ow[":Hoˆ(Gd|[R$"S
U4S U["45S [R"5;d[R"[ 5(a[R"[ 5OS S[R"5;d[R"U5(a[R"U5OS[R"U5S
[R"5;d[R"["5(a[R"["5OS
S.-n [R"US["S[!U535S-SU 0-n
[[R"U
55eS=pxg) not availablerO©rdú did not return ndarrayúT
>assert %(py6)s
{%(py6)s = %(py0)s(%(py1)s, %(py4)s
{%(py4)s = %(py2)s.ndarray
})
isinstanceÚresultÚnp©Úpy0Úpy1Úpy2Úpy4Úpy6©ú==©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py5)sÚlenÚr¿Úpy3Úpy5ú : expected ú, got ú
>assert %(py7)sÚpy7©ÚgetattrÚ
indicatorsr¯ÚCLOSEr½Úndarrayr»Ú
@pytest_arÚ_format_assertmsgÚ @py_builtinsÚlocalsÚ_should_repr_global_nameÚ _safereprÚAssertionErrorÚ_format_explanationrÇÚ_call_reprcompare© r´Úfnr¼Ú @py_assert3Ú @py_assert5Ú @py_format7Ú @py_assert2Ú @py_assert4Ú @py_format6Ú @py_format8s Útest_pattern_a_shaperçRä   tÓ ,€BØ  Š tf˜
˜
!€FÜ Ÿj™jÐKŒ:  )×K×K¨d¨VÐ3JÐ+K×K×K×K×K×K×KŒ:×KŒ:×K×K×K×K×Kf×K×K×Kf×K×K×K×K×Kœb×Kœb×K×K˜j×  ˆv‹;ÐGœ!Ñ ×Gˆ;œ!×G×G×G×GŒ3×GŒ3×G×Gˆv×Gˆv×G×Gˆ;×G×G×Gœ!×Gœ!טv [´°°6¼#¸f»+¸Ðcó&[URUS5nUc[R"US35 U"[5n[
R n[X45oU(Gd@SS[R"5;d[R"[5(a[R"[5OSS[R"5;d[R"U5(a[R"U5OSS[R"5;d[R"[
5(a[R"[
5OS[R"U5[R"U5S.-n[[R"U55eS=pE[U5ow[ :Hoˆ(GdP[R""SU4SU[ 45S [R"5;d[R"[5(a[R"[5OS S[R"5;d[R"U5(a[R"U5OS[R"U5S
[R"5;d[R"[ 5(a[R"[ 5OS
S .-n S S
U 0-n
[[R"U
55eS=pxg)Nr·zRassert %(py6)s
{%(py6)s = %(py0)s(%(py1)s, %(py4)s
{%(py4)s = %(py2)s.ndarray
})
}r»úassert %(py7)srÏ)s Útest_no_param_shaperë\s€ä   tÓ ,€BØ  Š tf˜
‹Y€FÜ Ÿj™jÐ)Œ:  )×)×)×)×)×)Œ:×)Œ:×)×)×)×)×)f×)×)×)f×)×)×)×)×)œb×)œb×)×)˜j×  ˆv‹;М!Ñ ×××Óˆ;œ!×××××ÕŒ3×××ÑŒ3×××××Öˆv×××шv××Õˆ;×××××Ôœ!×××Ñœ!××××××Ôz name,kwargs)Úidsc ó´[URUS5nUc[R"US35 U"[40UD6n[
R n[XE5of(GdZ[R"US35S-S[R"5;d[R"[5(a[R"[5OSS[R"5;d[R"U5(a[R"U5OSS[R"5;d[R"[
5(a[R"[
5OS[R"U5[R"U5S.-n[[R"U55eS=pV[!U5oˆ[":Ho™(Gd|[R$"SU 4S U["45S
[R"5;d[R"[ 5(a[R"[ 5OS
S[R"5;d[R"U5(a[R"U5OS[R"U5S [R"5;d[R"["5(a[R"["5OS S .-n
[R"US
["S[!U535S-SU
0-n [[R"U 55eS=p‰g)Nr·) r´Úkwargsrßs Útest_multi_param_shaperïfä   tÓ ,€BØ  Š tf˜
Ñ
˜Ñ
€FÜ Ÿj™jÐKŒ:  )×K×K¨d¨VÐ3JÐ+K×K×K×K×K×K×KŒ:×KŒ:×K×K×K×K×Kf×K×K×Kf×K×K×K×K×Kœb×Kœb×K×K˜j×  ˆv‹;ÐGœ!Ñ ×Gˆ;œ!×G×G×G×GŒ3×GŒ3×G×Gˆv×Gˆv×G×Gˆ;×G×G×Gœ!×Gœ!טv [´°°6¼#¸f»+¸ÐG×Grècóœ[[RSS[5-n[[RSS[5-
nURR X5n[
U5oD[:HoU(GdP[R"SU4SU[45S[R"5;d[R"[ 5(a[R"[ 5OSS[R"5;d[R"U5(a[R"U5OS[R"U5S[R"5;d[R"[5(a[R"[5OSS.-nS S
U0-n[[R"U55eS=pEg© Nrr])ÚRNGÚuniformrÈÚmedpricerÇrשÚlr¼sÚtest_medprice_shaperøpÜ
 ˜A˜q¤!Ó$€AÜ
 ˜A˜q¤!Ó$€AØ
^‰^×
$ 
*€FÜ ˆv‹;М!Ñ ×××Óˆ;œ!×××××ÕŒ3×××ÑŒ3×××××Öˆv×××шv××Õˆ;×××××Ôœ!×××Ñœ!××××××Ôcó¦[[RSS[5-n[[RSS[5-
nURR X[5n[
U5oD[:HoU(GdP[R"SU4SU[45S[R"5;d[R"[ 5(a[R"[ 5OSS[R"5;d[R"U5(a[R"U5OS[R"U5S[R"5;d[R"[5(a[R"[5OSS.-nS S
U0-n[[R"U55eS=pEg)ÚtrrÇr×sÚ
test_tr_shaperûwÜ
 ˜A˜q¤!Ó$€AÜ
 ˜A˜q¤!Ó$€AØ
^‰^×
Ñ
˜q¤UÓ
+€FÜ ˆv‹;М!Ñ ×××Óˆ;œ!×××××ÕŒ3×××ÑŒ3×××××Öˆv×××шv××Õˆ;×××××Ôœ!×××Ñœ!××××××Ôcó†URR[SSS9n[U5nSo2U:HoD(Gd
[R
"SU4SX#45S[ R"5;d[R"[5(a[R"[5OSS[ R"5;d[R"U5(a[R"U5OS[R"U5[R"U5S .-nS
S U0-n[[R"U55eS=n=pCUGHqn[U5o"[:HoD(GdP[R
"SU4S U[45S[ R"5;d[R"[5(a[R"[5OSS
[ R"5;d[R"U5(a[R"U5OS
[R"U5S[ R"5;d[R"[5(a[R"[5OSS.-nSSU0-n [[R"U 55eS=p$GMt g)Nrbrc)rdÚstdrQ©z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)srÇ©r¿úassert %(py8)sÚpy8rÆÚarrrÈ)
ÚbbandsrÓ)
r´Ú @py_format9rs