25 lines
970 B
Python
25 lines
970 B
Python
"""Tests for Sheet 3: Capital and liquidity stress (Part XII)."""
|
|
|
|
from fqbm.state import FQBMState
|
|
from fqbm.sheets.capital_stress import stress_tables, StressParams
|
|
|
|
|
|
def test_stress_tables_structure():
|
|
state = FQBMState(R=200, Deposits=1000, Loans=900, E_b=100)
|
|
out = stress_tables(state)
|
|
assert "liquidity_stress" in out
|
|
assert "capital_stress" in out
|
|
assert len(out["liquidity_stress"]) == 3
|
|
assert len(out["capital_stress"]) == 2
|
|
assert "RCR" in out["liquidity_stress"].columns
|
|
assert "Status" in out["liquidity_stress"].columns
|
|
assert "CR" in out["capital_stress"].columns
|
|
|
|
|
|
def test_stress_tables_with_params():
|
|
state = FQBMState(R=50, Deposits=500, Loans=400, E_b=50)
|
|
params = StressParams(capital_ratio_min=0.10)
|
|
out = stress_tables(state, params)
|
|
assert out["capital_stress"] is not None
|
|
assert "Breach" in out["capital_stress"]["Status"].values or "Compliant" in out["capital_stress"]["Status"].values
|