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.
1.3 KiB
1.3 KiB
| 1 | sma |
|---|---|
| 2 | nan |
| 3 | nan |
| 4 | nan |
| 5 | nan |
| 6 | nan |
| 7 | nan |
| 8 | nan |
| 9 | nan |
| 10 | nan |
| 11 | nan |
| 12 | nan |
| 13 | nan |
| 14 | nan |
| 15 | 107.082865308575 |
| 16 | 106.96031118542241 |
| 17 | 106.55098952518925 |
| 18 | 105.93612732359576 |
| 19 | 105.21531190077062 |
| 20 | 104.49759506253974 |
| 21 | 103.89175182739567 |
| 22 | 103.49656387805487 |
| 23 | 103.39199568793734 |
| 24 | 103.63205153291037 |
| 25 | 104.23995145016349 |
| 26 | 105.20605706144154 |
| 27 | 106.48873254066868 |
| 28 | 108.01806381828972 |
| 29 | 109.7021037968819 |
| 30 | 111.4350857115261 |
| 31 | 113.10687095991703 |
| 32 | 114.61278745568676 |
| 33 | 115.86297967414018 |
| 34 | 116.79043517866376 |
| 35 | 117.35697064210828 |
| 36 | 117.55664264968355 |
| 37 | 117.41627860650068 |
| 38 | 116.99308032537222 |
| 39 | 116.36951435923494 |
| 40 | 115.64594550958222 |
| 41 | 114.93167153765809 |
| 42 | 114.33515992096163 |
| 43 | 113.9543587765253 |
| 44 | 113.86794744733447 |
| 45 | 114.12830831094557 |
| 46 | 114.75684761770661 |
| 47 | 115.742083334167 |
| 48 | 117.04067079892921 |
| 49 | 118.58127457216008 |
| 50 | 120.2709406179764 |
| 51 | 122.00339961162967 |
| 52 | 123.66855966178939 |
| 53 | 125.16234049131411 |
| 54 | 126.39597061843133 |
| 55 | 127.30391704882051 |
| 56 | 127.84973914282192 |
| 57 | 128.0293437492481 |
| 58 | 127.87135083438908 |
| 59 | 127.43453694566097 |
| 60 | 126.80258487767678 |
| 61 | 126.07660853743191 |
| 62 | 125.36612074013492 |
| 63 | 124.7792507555816 |
| 64 | 124.41308544252024 |
| 65 | 124.34499676870873 |
| 66 | 124.62573040346784 |
| 67 | 125.27487275817427 |
| 68 | 126.27910139046546 |
| 69 | 127.59337505833837 |
| 70 | 129.14495712015346 |
| 71 | 130.83991288220435 |
| 72 | 132.57150050514548 |
| 73 | 134.2297059345968 |
| 74 | 135.71107012897224 |
| 75 | 136.92793074753726 |
| 76 | 137.81625276622648 |
| 77 | 138.34134853563094 |
| 78 | 138.50097632541122 |
| 79 | 138.3255405713923 |
| 80 | 137.87537593786334 |
| 81 | 137.23535780170852 |