test(golden): language-neutral fixtures + per-binding parity runners (#255)
**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.
This commit is contained in:
Vendored
+81
@@ -0,0 +1,81 @@
|
||||
rsi
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
nan
|
||||
46.84518809898699
|
||||
45.82961265424322
|
||||
46.5293990131247
|
||||
49.23903870201344
|
||||
53.518768674122796
|
||||
58.56047460456064
|
||||
63.58342577996474
|
||||
68.07459111891804
|
||||
71.80327260156207
|
||||
74.72559789038102
|
||||
76.88488357198254
|
||||
78.34471541432595
|
||||
79.15131540353094
|
||||
79.31156608926268
|
||||
77.35312513119456
|
||||
73.13439349750769
|
||||
67.51119167055117
|
||||
61.48673113238304
|
||||
55.86675382432369
|
||||
51.14733221714866
|
||||
47.57753664027756
|
||||
45.28036590056008
|
||||
44.36975889174273
|
||||
45.212282377402985
|
||||
48.12434665867438
|
||||
52.61537254620642
|
||||
57.83678169397702
|
||||
62.992663568874654
|
||||
67.57346293490359
|
||||
71.3583982125327
|
||||
74.31265622918312
|
||||
76.4855340725887
|
||||
77.9435594091973
|
||||
78.73329989554925
|
||||
78.85948376472163
|
||||
76.76197022138767
|
||||
72.44443440532005
|
||||
66.78373698621982
|
||||
60.77877328002407
|
||||
55.21662487911296
|
||||
50.57413251002351
|
||||
47.087563552178636
|
||||
44.87458874458458
|
||||
44.050409895373384
|
||||
45.01878876311954
|
||||
48.0601943425273
|
||||
52.64880490307121
|
||||
57.92140340103244
|
||||
63.088714334306665
|
||||
67.65616719708338
|
||||
71.41589642993111
|
||||
74.34074717674663
|
||||
76.4832369420561
|
||||
77.91026866443379
|
||||
78.66702552588708
|
||||
78.75547116040536
|
||||
76.51507736151031
|
||||
72.09088140590961
|
||||
66.3803507173797
|
||||
60.378854393296976
|
||||
54.856911707280055
|
||||
50.27461841837877
|
||||
46.857548898064
|
||||
44.719625963574536
|
||||
43.978649539628535
|
||||
45.06927522550655
|
||||
|
Reference in New Issue
Block a user