test_igbmAtmDensity

test_igbmAtmDensity.test_igbmAtmDensity(usePython: bool, showPlots: bool = False)[source]

Unit test for IgbmAtmDensity.

Verifies that the output density follows the stationary statistics of the inhomogeneous geometric Brownian motion (IGBM)

dX = (mu - X)/tau dt + sigma X dW,

configured in stationary form (mean mu, time constant tau, stationary std sigma_st, with sigma derived internally), that it never goes non-positive, and that a Python subclass of the IGBM base also works.

test_igbmAtmDensity.test_igbmAtmDensity_clampsNegativeDensity()[source]

The IGBM process is integrated as written (pure math), so an explicit integrator can drive the factor negative under a large step/increment. IgbmAtmDensity must clamp the corrected density to be non-negative rather than emit an unphysical negative value. Prescribing large negative Wiener increments forces the factor below zero.

test_igbmAtmDensity.test_igbmAtmDensity_passesThroughOtherFields()[source]

Only neutralDensity is corrected; the other AtmoPropsMsgPayload fields (localTemp) pass through unchanged.

test_igbmAtmDensity.test_igbmAtmDensity_rejectsBadParameters()[source]

The inherited parameter setters reject values outside their valid range.