Files
kingchenc 8bfe24ac1d 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.
2026-06-11 15:22:29 +02:00

1.3 KiB

1sma
2nan
3nan
4nan
5nan
6nan
7nan
8nan
9nan
10nan
11nan
12nan
13nan
14nan
15107.082865308575
16106.96031118542241
17106.55098952518925
18105.93612732359576
19105.21531190077062
20104.49759506253974
21103.89175182739567
22103.49656387805487
23103.39199568793734
24103.63205153291037
25104.23995145016349
26105.20605706144154
27106.48873254066868
28108.01806381828972
29109.7021037968819
30111.4350857115261
31113.10687095991703
32114.61278745568676
33115.86297967414018
34116.79043517866376
35117.35697064210828
36117.55664264968355
37117.41627860650068
38116.99308032537222
39116.36951435923494
40115.64594550958222
41114.93167153765809
42114.33515992096163
43113.9543587765253
44113.86794744733447
45114.12830831094557
46114.75684761770661
47115.742083334167
48117.04067079892921
49118.58127457216008
50120.2709406179764
51122.00339961162967
52123.66855966178939
53125.16234049131411
54126.39597061843133
55127.30391704882051
56127.84973914282192
57128.0293437492481
58127.87135083438908
59127.43453694566097
60126.80258487767678
61126.07660853743191
62125.36612074013492
63124.7792507555816
64124.41308544252024
65124.34499676870873
66124.62573040346784
67125.27487275817427
68126.27910139046546
69127.59337505833837
70129.14495712015346
71130.83991288220435
72132.57150050514548
73134.2297059345968
74135.71107012897224
75136.92793074753726
76137.81625276622648
77138.34134853563094
78138.50097632541122
79138.3255405713923
80137.87537593786334
81137.23535780170852