feat(c-abi): expose warmup_period / is_ready across the C ABI bindings (#297)
* feat(c-abi): expose warmup_period / is_ready across the C ABI bindings The C ABI hub exposed new/update/batch/reset/free per indicator but not the Indicator::warmup_period / is_ready queries that the native (Python/Node/WASM) bindings already had, so C/C#/Go/Java/R callers could not ask an indicator whether it was warmed up without feeding it and watching for NaN. Regenerated from the ScriptHelpers capi + language generators: - bindings/c: wickra_<ind>_warmup_period (size_t) and wickra_<ind>_is_ready (bool) for every indicator (504; the 10 alt-chart bar builders are excluded by design). wickra.h regenerated via cbindgen (additive only). - bindings/csharp: int WarmupPeriod() / bool IsReady() on each wrapper. - bindings/go: WarmupPeriod() int / IsReady() bool. - bindings/java: int warmupPeriod() / boolean isReady(). - bindings/r: C glue + registration; hand-written warmup_period() / is_ready() S3 generics in methods.R, plus NAMESPACE exports. Tests: C-ABI Rust unit tests, the C examples/archetypes.c suite, and the C#, Go, Java and R archetype suites all gain a warmup/is_ready transition check. * build(go): sync vendored wickra.h with the C ABI header The Go binding vendors bindings/c/include/wickra.h; refresh it with the new warmup_period / is_ready declarations so the CI sync check passes.
This commit is contained in:
@@ -7,6 +7,19 @@ test_that("scalar update returns the textbook value", {
|
||||
expect_equal(v, 4)
|
||||
})
|
||||
|
||||
test_that("warmup_period and is_ready report the warmup transition", {
|
||||
s <- Sma(3)
|
||||
expect_equal(warmup_period(s), 3L)
|
||||
expect_false(is_ready(s))
|
||||
update(s, 1)
|
||||
update(s, 2)
|
||||
expect_false(is_ready(s))
|
||||
update(s, 3)
|
||||
expect_true(is_ready(s))
|
||||
reset(s)
|
||||
expect_false(is_ready(s))
|
||||
})
|
||||
|
||||
test_that("batch matches streaming", {
|
||||
input <- c(1, 2, 3, 4, 5, 6, 7, 8)
|
||||
stream <- Sma(3)
|
||||
|
||||
Reference in New Issue
Block a user