8bfe24ac1d
**Task 5 — golden-fixture parity for the C-ABI bindings.** Lifts the C#/Go/Java/R tests from *one indicator per archetype* toward reference-value parity, catching FFI wiring bugs (swapped params, wrong multi-output field) the math-only core tests cannot see. ## What's here - **`examples/rust/src/bin/gen_golden.rs`** + **`testdata/golden/*.csv`** — a Rust generator computing a deterministic OHLCV series plus the core's reference outputs for a curated archetype-spanning set: scalar (`Sma`/`Ema`/`Rsi`), candle (`Atr`), scalar multi-output (`MACD`), candle multi-output (`ADX`), pairwise (`Beta`). `nan` marks warmup. Regenerate with `cargo run -p wickra-examples --bin gen_golden`. - **Parity runners** replaying the identical fixtures through each FFI (rel-tol 1e-6), each a standard test in the binding's existing suite (no `ci.yml` change — rides `dotnet test` / `go test` / `mvn install` / `R CMD`+testthat). A walk-up search locates `testdata/golden` regardless of run dir. - **C#** (`bindings/csharp/.../GoldenTests.cs`) — ✅ validated locally, 7/7 pass. - **Go** (`bindings/go/golden_test.go`) — ✅ validated locally, pass. - **Java** (`bindings/java/.../GoldenTests.java`) — modeled on the archetype API; validated by CI (no local mvn). - **R** (`bindings/r/tests/testthat/test-golden.R`) — modeled on the archetype API; validated by CI (no local Rscript). ## Notes - The curated set spans every marshalling archetype; extending the indicator list is mechanical (add to the generator + regenerate). Bars/profile archetypes can be added next. - No new CI jobs.
3.0 KiB
3.0 KiB
| 1 | macd | signal | histogram |
|---|---|---|---|
| 2 | nan | nan | nan |
| 3 | nan | nan | nan |
| 4 | nan | nan | nan |
| 5 | nan | nan | nan |
| 6 | nan | nan | nan |
| 7 | nan | nan | nan |
| 8 | nan | nan | nan |
| 9 | nan | nan | nan |
| 10 | nan | nan | nan |
| 11 | nan | nan | nan |
| 12 | nan | nan | nan |
| 13 | nan | nan | nan |
| 14 | nan | nan | nan |
| 15 | nan | nan | nan |
| 16 | nan | nan | nan |
| 17 | nan | nan | nan |
| 18 | nan | nan | nan |
| 19 | nan | nan | nan |
| 20 | nan | nan | nan |
| 21 | nan | nan | nan |
| 22 | nan | nan | nan |
| 23 | nan | nan | nan |
| 24 | nan | nan | nan |
| 25 | nan | nan | nan |
| 26 | nan | nan | nan |
| 27 | nan | nan | nan |
| 28 | nan | nan | nan |
| 29 | nan | nan | nan |
| 30 | nan | nan | nan |
| 31 | nan | nan | nan |
| 32 | nan | nan | nan |
| 33 | nan | nan | nan |
| 34 | nan | nan | nan |
| 35 | 3.553825374871522 | 4.7567646581597245 | -1.2029392832882024 |
| 36 | 2.8208654161048656 | 4.369584809748753 | -1.5487193936438874 |
| 37 | 2.1109014543067843 | 3.9178481386603594 | -1.806946684353575 |
| 38 | 1.4897304373886868 | 3.4322245984060253 | -1.9424941610173385 |
| 39 | 1.0151049910054155 | 2.9488006769259036 | -1.9336956859204881 |
| 40 | 0.7315731385597957 | 2.5053551692526823 | -1.7737820306928866 |
| 41 | 0.6664991548332893 | 2.137583966368804 | -1.4710848115355146 |
| 42 | 0.8276206486027746 | 1.8755913028155982 | -1.0479706542128235 |
| 43 | 1.2023598043004569 | 1.74094500311257 | -0.5385851988121131 |
| 44 | 1.7589500704087442 | 1.744546016571805 | 0.014404053836939212 |
| 45 | 2.449277456832604 | 1.885492304623965 | 0.563785152208639 |
| 46 | 3.2131824784813148 | 2.1510303393954353 | 1.0621521390858795 |
| 47 | 3.9838383370451567 | 2.5175919389253796 | 1.466246398119777 |
| 48 | 4.693724820711168 | 2.9528185152825377 | 1.7409063054286302 |
| 49 | 5.280664208546995 | 3.418387653935429 | 1.8622765546115656 |
| 50 | 5.693379944743711 | 3.8733861120970854 | 1.8199938326466256 |
| 51 | 5.896081491642136 | 4.277925188006096 | 1.6181563036360398 |
| 52 | 5.871665770714699 | 4.596673304547816 | 1.274992466166883 |
| 53 | 5.623249186369037 | 4.801988480912061 | 0.821260705456976 |
| 54 | 5.17389335937969 | 4.876369456605587 | 0.29752390277410345 |
| 55 | 4.564549053715282 | 4.814005376027526 | -0.2494563223122439 |
| 56 | 3.8504019492156516 | 4.621284690665152 | -0.7708827414495003 |
| 57 | 3.0959466751243525 | 4.316217087556993 | -1.2202704124326402 |
| 58 | 2.369229123514458 | 3.926819494748486 | -1.5575903712340278 |
| 59 | 1.735771359392487 | 3.488609867677286 | -1.7528385082847988 |
| 60 | 1.252721799050505 | 3.0414322539519296 | -1.7887104549014246 |
| 61 | 0.9637532073126067 | 2.6258964446240656 | -1.6621432373114589 |
| 62 | 0.8951642651140048 | 2.2797500087220537 | -1.3845857436080489 |
| 63 | 1.0535329484060725 | 2.0345065966588574 | -0.9809736482527849 |
| 64 | 1.4251313413431745 | 1.9126315455957208 | -0.48750020425254625 |
| 65 | 1.9771541634642489 | 1.9255360691694265 | 0.051618094294822336 |
| 66 | 2.6606512771767967 | 2.072559110770901 | 0.5880921664058958 |
| 67 | 3.414902230493496 | 2.34102773471542 | 1.073874495778076 |
| 68 | 4.17284207727586 | 2.707390603227508 | 1.4654514740483515 |
| 69 | 4.867053809684606 | 3.139323244518928 | 1.727730565165678 |
| 70 | 5.4357921236225195 | 3.5986170203396464 | 1.8371751032828731 |
| 71 | 5.828500438890558 | 4.044593704049829 | 1.7839067348407287 |
| 72 | 6.010328361604678 | 4.437740635560799 | 1.5725877260438788 |
| 73 | 5.965246063689932 | 4.743241721186626 | 1.2220043425033058 |
| 74 | 5.697477387222705 | 4.934088854393842 | 0.7633885328288628 |
| 75 | 5.231123664416998 | 4.9934958163984735 | 0.23762784801852455 |
| 76 | 4.608011861752942 | 4.916399025469367 | -0.30838716371642505 |
| 77 | 3.883959272298 | 4.709911074835094 | -0.8259518025370935 |
| 78 | 3.123788425025225 | 4.39268654487312 | -1.2688981198478952 |
| 79 | 2.395537519050208 | 3.993256739708538 | -1.59771922065833 |
| 80 | 1.764383551803462 | 3.547482102127523 | -1.7830985503240608 |
| 81 | 1.286820974089835 | 3.0953498765199856 | -1.8085289024301505 |