Files
FOUR-QUADRANT_BALANCE_SHEET…/tests/test_sovereign_debt.py
2026-02-22 23:39:47 -08:00

32 lines
1.1 KiB
Python

"""Tests for Sheet 5: Sovereign debt and spread (Part V)."""
from fqbm.state import FQBMState
from fqbm.sheets.sovereign_debt import (
spread_model,
debt_sustainable,
sovereign_debt_step,
SovereignParams,
)
def test_spread_model():
s = spread_model(0.8, 0.1, 0.2, -0.01)
assert s > 0
# higher debt_gdp -> higher spread; higher reserves_gdp -> lower spread
assert spread_model(0.9, 0.1, 0.1, 0) > spread_model(0.5, 0.1, 0.1, 0)
assert spread_model(0.5, 0.3, 0.1, 0) < spread_model(0.5, 0.1, 0.1, 0)
def test_debt_sustainable():
assert debt_sustainable(0.03, 0.05, 0.02, 0.6) is True # 0.03 >= 0.018
assert debt_sustainable(0.01, 0.05, 0.02, 0.6) is False
assert debt_sustainable(0.0, 0.05, 0.02, 0.5) is False
def test_sovereign_debt_step():
state = FQBMState(Spread=0.0)
params = SovereignParams(debt_gdp=0.7, reserves_gdp=0.2, fx_vol=0.1)
out = sovereign_debt_step(state, params)
assert out.Spread >= 0
assert out.Spread != state.Spread or (params.debt_gdp == 0.6 and params.reserves_gdp == 0.2 and params.fx_vol == 0.1)