Initial commit: Four-Quadrant Balance Sheet Matrix (FQBM) framework
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
32
tests/test_commodity.py
Normal file
32
tests/test_commodity.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""Tests for Sheet 6: Commodity shock channel (Part VI)."""
|
||||
|
||||
import pytest
|
||||
from fqbm.state import FQBMState
|
||||
from fqbm.sheets.commodity import (
|
||||
inflation_composite,
|
||||
commodity_step,
|
||||
CommodityParams,
|
||||
)
|
||||
|
||||
|
||||
def test_inflation_composite():
|
||||
pi = inflation_composite(0.02, 0.1, 0.05, 0.1, 0.2)
|
||||
assert pi == pytest.approx(0.02 + 0.1 * 0.1 + 0.2 * 0.05)
|
||||
assert pi > 0.02
|
||||
|
||||
|
||||
def test_commodity_step():
|
||||
state = FQBMState(O=1.0)
|
||||
params = CommodityParams(d_O=0.1)
|
||||
out = commodity_step(state, params)
|
||||
assert out.O == pytest.approx(1.1)
|
||||
params2 = CommodityParams(d_O=-0.05)
|
||||
out2 = commodity_step(out, params2)
|
||||
assert out2.O == pytest.approx(1.1 * 0.95)
|
||||
|
||||
|
||||
def test_commodity_step_zero_o():
|
||||
state = FQBMState(O=0.0)
|
||||
params = CommodityParams(d_O=0.1)
|
||||
out = commodity_step(state, params)
|
||||
assert out.O == pytest.approx(1.1)
|
||||
Reference in New Issue
Block a user