Task: Move GMM, arithmetic GMM, and OU processes into ores.analytics.quant
Table of Contents
This page documents a task in the Extract stochastic process math from ores.synthetic into ores.analytics.quant story. It captures the goal, current status, acceptance, and any notes or results.
Goal
The three process classes live in ores.analytics.quant with full unit test coverage of construction, degenerate parameters, and statistical behaviour of next()/current().
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Extract stochastic process math from ores.synthetic into ores.analytics.quant |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-07-12 |
Acceptance
- Classes moved and renamespaced; ores.synthetic.service updated to reference the new location; new tests cover each class; full build/test suite passes.
Plan
Moved gmm_process, arithmetic_gmm_process, and ou_process
verbatim into a new service/processes/ subtree under
ores.analytics.quant, renamespacing to
ores::analytics::quant::service and adding
ORES_ANALYTICS_QUANT_EXPORT to each class per the component's
visibility-hidden convention. Updated process_factory.cpp (the sole
consumer) to reference the new namespace. Wrote 34 new Catch2 test
cases across three new test files covering: construction validation
(mismatched vector sizes, empty components, non-positive initial
price), determinism under a fixed seed, divergence across different
seeds, the zero-variance/zero-sigma degenerate branches, geometric
positivity, arithmetic zero-crossing, and OU's kappa<=0 driftless-walk
degeneracy plus a statistical mean-reversion check over a long run.
Notes
Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario, run
through the QA Validation Runner panel) that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
PRs
| PR | Title |
|---|---|
Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|
Result
All three process classes relocated with no behavioural change; zero prior test coverage backfilled with 34 new Catch2 cases. Full build of ores.analytics.quant.lib/.tests and ores.synthetic api/core/service.lib/service.exe succeeds; ores.analytics.quant.tests (42763 assertions, 43 cases including pre-existing) and ores.synthetic.api.tests (71 assertions) pass locally.