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.

Emacs 29.3 (Org mode 9.6.15)