4f708d410d
* test: golden-pin the four de-duplicated indicators across all C-ABI bindings Extend gen_golden to emit reference fixtures for AdOscillator (ADOSC), IntradayIntensity, AwesomeOscillatorHistogram and AverageDrawdown, and replay them through the Go / C# / Java / R golden harnesses so their corrected definitions stay bit-identical to the Rust core in every binding. Go suite verified locally (gcc 13 + cgo): all 9 golden tests pass; C#/Java/R use the same fixtures and harness pattern (CI-verified). First step of extending the golden coverage beyond the seven archetype representatives. * test: golden-pin the scalar-output tranche (308 indicators) against Rust Extend gen_golden with a generated emit_scalar that writes reference fixtures for every single-f64-output indicator (scalar / candle / pairwise input) using valid constructor params, and add a manifest-driven generic Python golden replay that reconstructs each by its native name and checks it bit-for-bit against the Rust output. 308 indicators now value-tied to the Rust core in Python (pytest: 308/308). Takes golden coverage from the 7 archetype representatives to 308+ of the catalogue. 22 scalar indicators with non-default constructor constraints are skipped by gen_golden for now (logged), as are non-f64-output ones; multi-output, exotic inputs and the per-indicator arg arities of the C-ABI/Node replays follow. Generated + verified locally with the full toolchain. * test: golden-pin the multi-output tranche (70 indicators) in Python Add a generated emit_multi to gen_golden (per-indicator Output-field access, one CSV column per field) and a manifest-driven generic Python replay that checks every field of each multi-output indicator against the Rust reference. 70 multi-output indicators now value-tied to Rust in Python; combined with the scalar tranche, 378 indicators are golden-pinned. 8 multi with non-default param constraints and 5 with non-f64 Output fields (Option/Vec/i64) are deferred. pytest green. * test(golden): add 30 constraint-tuned indicators to scalar/multi golden suite Emit golden fixtures for 22 scalar-output and 8 multi-output indicators whose constructors need non-default parameters (Alma, Jma, Psar, T3, Mama, DoubleBollinger, ZigZag, ...). All 408 fixtures replay bit-for-bit through the Python binding. * test(golden): cover 36 missed scalar/multi indicators Add 26 single-output (LinearRegression family, HT cycle, Candle volatility estimators, DrawdownDuration) and 10 multi-output (BollingerBands, MACD/MACDEXT/MACDFIX, Camarilla, VWAP bands, ...) indicators to the golden suite. 444 fixtures replay bit-for-bit through the Python binding. * test(golden): cover 50 exotic-input indicators Add deterministic synthetic feeders for the DerivativesTick (17), CrossSection (15), Trade (8), TradeQuote (3) and OrderBook (7) families, derived from the shared OHLCV input series in both gen_golden and a new Python replay harness (test_golden_exotic). All 494 fixtures replay bit-for-bit through the Python binding. * test(golden): complete 514-indicator golden coverage Add the final tranches: 3 mixed multi-output indicators (Ichimoku, WilliamsFractals, LeadLagCrossCorrelation), 6 histogram profiles (time/volume seasonality + TPO/volume price profiles), 10 alt-chart bar builders and the footprint. Every one of the 514 distinct indicators now has a Rust-generated g_<Canonical>.csv fixture and a generic Python replay (scalar/multi/exotic/profile/bars), all passing bit-for-bit. * test(golden): add generic Node replay for all 514 indicators A manifest-driven node:test harness reconstructs every indicator by its native class, feeds the same synthetic stream derived from the shared golden input, and checks output bit-for-bit against the Rust reference fixtures (scalar/multi/exotic/profile/bars). node_manifest.json is generated from index.d.ts plus the Python-side manifests. 514/514 pass. * test(golden): add generated Go replay for all 514 indicators golden_all_test.go (generated by gen_golden_test.py) reconstructs every Go indicator, feeds the shared synthetic stream and checks output bit-for-bit against the Rust reference fixtures. A reflection-based comparator flattens multi-output structs, profiles and bar slices so one path covers all archetypes. This is the first C-ABI binding verified across the full catalogue. 514/514 pass. * test(golden): add generated C# replay for all 514 indicators GoldenAllTests.g.cs (generated by gen_golden_test.py) reconstructs every C# indicator, feeds the shared synthetic stream and checks output bit-for-bit against the Rust reference fixtures via a reflection-based flatten covering scalar/multi/profile/bar archetypes. 514/514 pass. Also add the '#nullable enable' directive the compiler requires to the generated Indicators.g.cs, clearing the four CS8669 warnings on the nullable double[] profile return types. * fix(java): marshal C ABI bool params correctly; add 514 golden replay The Java FFM binding marshalled the cross-section state flags (newHigh, newLow, aboveMa, onBuySignal) as JAVA_DOUBLE arrays, but the C ABI takes them as const bool* (one byte each), so the native side read the low byte of each 8-byte double and saw every flag as false. Add WickraNative. boolSegment and use it across the 15 cross-section indicators. Also pass the MacdExt MaType arguments as byte to match the uint8_t downcall descriptor (was int, throwing WrongMethodTypeException). Add GoldenAllTest.java (generated by gen_golden_test.py): a reflection runner replaying all 514 indicators against the Rust reference fixtures. The bugs above were found by this test; 514/514 now pass. * fix(r): marshal C ABI bool flags correctly; add 514 golden replay The R wrapper passed the cross-section state flags as (bool *)REAL(x), reinterpreting the 8-byte doubles as 1-byte bools so the native side read every flag as false. Add wk_bool_vec to convert each flag vector into a real C bool buffer and use it for all 15 cross-section update wrappers. Add test-golden-all.R + generated golden_specs.R: a reflective runner replaying all 514 indicators against the Rust reference fixtures. The bug above was found by this test; verified 514/514 pass locally. * test(golden): add WASM replay for all 514 indicators A manifest-driven node:test harness loads the nodejs-target wasm-pack build, reconstructs every indicator by its JS class, feeds the shared synthetic stream and checks output bit-for-bit against the Rust reference fixtures. wasm_manifest.json is generated from the wasm .d.ts plus the shared manifests; a recursive flattener covers scalar, multi (Reflect objects), profile and bar shapes. 514/514 pass locally (wasm-pack build --target nodejs, then node --test). * test(golden): add C and C++ replay for all 514 indicators golden_test.c (generated by gen_golden_test.py) drives every indicator through the C ABI (wickra.h) and checks output bit-for-bit against the Rust reference fixtures. golden_test.cpp #includes the same source so the identical runner is compiled and run under both gcc (C) and g++ (C++) via the CMake targets golden_test / golden_test_cpp — proving the extern "C" header is consumable from each language. Both 514/514 (verified via ctest). * test(golden): gofmt the generated Go golden replay * test(golden): make the Node fixture reader CRLF-safe and pin fixtures to LF
82 lines
7.4 KiB
CSV
82 lines
7.4 KiB
CSV
long,short,net,total,imbalance
|
|
1,2,-1,3,-0.3333333333333333
|
|
1.3221088436188495,2.1996914055092276,-0.8775825618903781,3.521800249128077,-0.24918578562417015
|
|
1.49272486499423,2.0330271708623684,-0.5403023058681384,3.5257520358565984,-0.1532445561608729
|
|
1.4316046833244371,1.5023418849921342,-0.07073720166769704,2.9339465683165713,-0.024109914758360565
|
|
1.5836409116250962,1.167494075077954,0.41614683654714213,2.7511349867030503,0.15126369246092533
|
|
1.976535229391743,1.175391613844809,0.801143615546934,3.151926843236552,0.25417582811797773
|
|
2.425780382807247,1.4357878862067963,0.9899924966004505,3.861568269014043,0.2563705799388135
|
|
2.4276829936029714,1.4912263063121713,0.9364566872908,3.9189092999151427,0.238958499833379
|
|
1.9692769397997836,1.3156333189361646,0.6536436208636189,3.284910258735948,0.19898370712725183
|
|
1.2192027496729594,1.0084069502421755,0.21079579943078386,2.227609699915135,0.09462869525070507
|
|
1.328493299359394,1.6121554848226225,-0.2836621854632284,2.9406487841820166,-0.09646244971146158
|
|
1.4940841169384953,2.2027538912297615,-0.7086697742912662,3.696838008168257,-0.191696193537678
|
|
1.427299454044146,2.387469740694513,-0.9601702866503672,3.814769194738659,-0.251698133657637
|
|
1.1595491811746825,2.1361368069027122,-0.9765876257280297,3.2956859880773948,-0.29632302023341184
|
|
1.1832395646259641,1.9371418189692662,-0.753902254343302,3.1203813835952303,-0.24160580444005647
|
|
1.4398478799858339,1.786483197820857,-0.3466353178350232,3.226331077806691,-0.1074394752043461
|
|
1.6350888983842822,1.4895888645756656,0.14550003380861654,3.124677762959948,0.04656481238909804
|
|
1.9110804588033403,1.3090685561185182,0.6020119026848221,3.2201490149218586,0.18695156649433217
|
|
1.9279417854952499,1.0168115236105706,0.9111302618846793,2.9447533091058204,0.30940801019469627
|
|
2.3319570372946856,1.334784881098301,0.9971721561963847,3.6667419183929866,0.2719504613058267
|
|
2.3343752069238803,1.4953036778474313,0.839071529076449,3.8296788847713117,0.21909709777835693
|
|
1.8984103435674626,1.4228734155714733,0.47553692799598934,3.321283759138936,0.14317865093203458
|
|
1.1515591783728496,1.155984876360904,-0.004425697988054367,2.3075440547337536,-0.0019179256746909683
|
|
1.191035708591997,1.6743404673450044,-0.4833047587530075,2.8653761759370013,-0.1686706139360438
|
|
1.4437835167907451,2.2876374755232405,-0.8438539587324954,3.7314209923139856,-0.2261481511924474
|
|
1.4878130027340717,2.485611281912668,-0.9977982791785962,3.9734242846467396,-0.2511179797823444
|
|
1.30241641120314,2.20986319265333,-0.9074467814501901,3.51227960385647,-0.2583640495061432
|
|
1.0252113439034076,1.6201320072133,-0.5949206633098925,2.6453433511167077,-0.22489355230909897
|
|
1.3409818100340658,1.4777190282418928,-0.13673721820782703,2.8187008382759586,-0.04851072393034144
|
|
1.8513074697066543,1.4963832029179542,0.35492426678870004,3.3476906726246085,0.10602062779905451
|
|
2.178015732126852,1.418327819268029,0.7596879128588228,3.596343551394881,0.21123897147261406
|
|
2.1219797884827614,1.1435263256638706,0.9784534628188908,3.265506114146632,0.29963302122758023
|
|
2.1564373218840984,1.1987778415607124,0.957659480323386,3.355215163444811,0.28542416318247493
|
|
2.1499907414125516,1.4475936839098438,0.7023970575027079,3.5975844253223954,0.19524129928924822
|
|
1.7610625609235342,1.4858992228719359,0.2751633380515983,3.24696178379547,0.08474486500729668
|
|
1.2956787649325605,1.5151187281440173,-0.21943996321145676,2.810797493076578,-0.07807035681224662
|
|
1.0336040362627443,1.6939207445068263,-0.660316708244082,2.7275247807695706,-0.242093752144673
|
|
1.3470823341261138,2.28660722787437,-0.9395248937482563,3.633689562000484,-0.2585594827839427
|
|
1.4973223869389187,2.4860270051255924,-0.9887046181866737,3.983349392064511,-0.24820936374708588
|
|
1.413663950297689,2.2094789201116356,-0.7958149698139465,3.6231428704093247,-0.21964769214967206
|
|
1.1354528941539286,1.543534955967317,-0.40808206181338846,2.6789878501212456,-0.15232695504569738
|
|
1.2860273418988157,1.2064637746202749,0.07956356727854086,2.4924911165190906,0.031921304253094404
|
|
1.9990065643293633,1.4512773041050906,0.5477292602242727,3.450283868434454,0.15874904242960208
|
|
2.3656397936082243,1.4838480660668978,0.8817917275413265,3.849487859675122,0.229067283671274
|
|
2.2888183486174967,1.2888575222228695,0.9999608263946271,3.577675870840366,0.2795001175329348
|
|
1.915291867939402,1.0419872278458797,0.8733046400935223,2.9572790957852817,0.2953068046022972
|
|
1.8859177489235606,1.3530847285901757,0.5328330203333849,3.2390024775137363,0.16450528334957878
|
|
1.5600262583718347,1.4981209643774207,0.061905293994414023,3.0581472227492554,0.020242744866534435
|
|
1.4088831272632092,1.8330621346001976,-0.42417900733698843,3.241945261863407,-0.13084089121639847
|
|
1.1273411664220134,1.9337506603342547,-0.8064094939122413,3.061091826756268,-0.2634385178724825
|
|
1.2140913347480762,2.20529414661155,-0.9912028118634737,3.419385481359626,-0.28987746987489366
|
|
1.45483333591676,2.388148447980683,-0.9333151120639229,3.842981783897443,-0.2428622264031086
|
|
1.4816601122368667,2.1285794345655233,-0.6469193223286567,3.61023954680239,-0.17919013792357263
|
|
1.2819546116251388,1.4840897320123219,-0.20213512038718306,2.7660443436374607,-0.07307732461055456
|
|
1.3424973572300871,1.0503585484962485,0.2921388087338386,2.3928559057263357,0.12208792348704414
|
|
2.073874265165486,1.3589872963858198,0.7148869687796662,3.432861561551306,0.20824812068932066
|
|
2.461384575767468,1.4987787094539016,0.9626058663135666,3.9601632852213697,0.24307226671835522
|
|
2.37863197755415,1.4039867018334888,0.9746452757206612,3.782618679387639,0.2576641629334006
|
|
1.867250965563457,1.1191934358744504,0.7480575296890066,2.9864444014379075,0.25048433157799066
|
|
1.5599775763962072,1.2216583654251565,0.33831921097105067,2.7816359418213636,0.1216259848690068
|
|
1.458260773957818,1.6125122238453997,-0.15425144988758177,3.0707729978032177,-0.050232123962901463
|
|
1.4793359799759997,2.0883919560823614,-0.6090559761063616,3.567727936058361,-0.17071256189429312
|
|
1.2749719847801657,2.1897143425847077,-0.9147423578045419,3.4646863273648734,-0.26401880902744373
|
|
1.0587156314135484,2.055183538970681,-0.9964679075571325,3.1138991703842294,-0.32000647838387675
|
|
1.3647883686964235,2.1990117292029367,-0.8342233605065132,3.5638000978993603,-0.2340825348195698
|
|
1.4992954362058981,1.967027276452967,-0.46773184024706893,3.466322712658865,-0.13493603424139705
|
|
1.4122528055843588,1.3989760583613133,0.013276747223045504,2.811228863945672,0.004722755729112378
|
|
1.602046730026757,1.11101200609653,0.49103472393022685,2.713058736123287,0.1809893451226458
|
|
2.0777330020304987,1.2291627272458925,0.8485702747846062,3.306895729276391,0.2566062991560634
|
|
2.4599048766469025,1.4615586491981674,0.9983462274487351,3.92146352584507,0.25458511111195226
|
|
2.380568531471255,1.4768763263797382,0.9036922050915166,3.857444857850993,0.23427222899952724
|
|
1.8556944294271318,1.2679116158667512,0.5877828135603806,3.123606045293883,0.18817443846542414
|
|
1.195019803450208,1.0670561138228152,0.1279636896273928,2.262075917273023,0.05656914016469241
|
|
1.3704863054008456,1.7336717138169035,-0.36318540841605795,3.104158019217749,-0.11699965213355376
|
|
1.4996709985406653,2.2650850504860216,-0.7654140519453563,3.764756049026687,-0.20331039833065437
|
|
1.3938526134920721,2.3740952543021763,-0.9802426408101041,3.7679478677942484,-0.2601529201580851
|
|
1.1027991902012957,2.057872834248599,-0.9550736440473031,3.1606720244498945,-0.3021742327768193
|
|
1.2366022985227687,1.9326716083866842,-0.6960693098639155,3.169273906909453,-0.21963053062292553
|
|
1.4647260292387045,1.7313689615986334,-0.26664293235992886,3.196094990837338,-0.08342772449640856
|
|
1.7023487813422662,1.4742818468591565,0.22806693448310966,3.1766306282014227,0.07179523248890883
|