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.
82 lines
1.3 KiB
CSV
82 lines
1.3 KiB
CSV
ema
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
nan
|
|
107.082865308575
|
|
105.90971557088022
|
|
104.81838000454273
|
|
103.91437652548925
|
|
103.29137341232037
|
|
103.02217097393634
|
|
103.15163412061464
|
|
103.6921955736008
|
|
104.62232136443316
|
|
105.88806700052659
|
|
107.40757775297398
|
|
109.07812453770966
|
|
110.78504123504803
|
|
112.4117601975411
|
|
113.85004525232907
|
|
115.00950442946956
|
|
115.8255294789832
|
|
116.26495019544112
|
|
116.32889606739172
|
|
116.05260755010886
|
|
115.50221201839392
|
|
114.76875083248335
|
|
113.95998970819002
|
|
113.19074277367604
|
|
112.57257361958058
|
|
112.2037924360836
|
|
112.16064199938042
|
|
112.49045917546245
|
|
113.20742223024638
|
|
114.29126332917505
|
|
115.68906080413531
|
|
117.3199507165269
|
|
119.08233652305883
|
|
120.86295254590979
|
|
122.54697139145239
|
|
124.02825224132444
|
|
125.2188143840051
|
|
126.05668958634725
|
|
126.51145173900844
|
|
126.58692971020658
|
|
126.32086097368011
|
|
125.78151686199148
|
|
125.06160082390045
|
|
124.26996466927172
|
|
123.5218827065933
|
|
122.92875250508669
|
|
122.58814223802023
|
|
122.57507361058863
|
|
122.93531900967452
|
|
123.68131159273575
|
|
124.79103363078006
|
|
126.20998238510259
|
|
127.85603789338172
|
|
129.62679782427364
|
|
131.408724185901
|
|
133.0872848279711
|
|
134.5571838169111
|
|
135.7317668260377
|
|
136.550761377433
|
|
136.98566051598186
|
|
137.04226900211742
|
|
136.7601845743594
|
|
136.20926061449748
|
|
135.48336619117217
|
|
134.6920008752563
|
|
133.95051334772793
|
|
133.369797540168
|