33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
"""Tests for Part I: Four-quadrant matrix."""
|
|
|
|
from fqbm.state import FQBMState
|
|
from fqbm.matrix import four_quadrant_matrix, four_quadrant_summary
|
|
|
|
|
|
def test_four_quadrant_matrix():
|
|
state = FQBMState(B=100, R=50, C=30, Loans=200, Deposits=180, E_cb=20, E_b=20)
|
|
df = four_quadrant_matrix(state)
|
|
assert "Assets (Dr)" in df.columns
|
|
assert "Liabilities (Dr)" in df.columns
|
|
assert "Liabilities (Cr)" in df.columns
|
|
last = df.iloc[-1]
|
|
assert float(last["Assets (Dr)"]) == 300
|
|
assert float(last["Liabilities (Cr)"]) == 40
|
|
|
|
|
|
def test_four_quadrant_matrix_with_L_cb():
|
|
state = FQBMState(B=80, R=40, C=20, Loans=100, Deposits=90, E_cb=20, E_b=10)
|
|
df = four_quadrant_matrix(state, L_cb=10)
|
|
last = df.iloc[-1]
|
|
assert float(last["Assets (Dr)"]) == 190
|
|
|
|
|
|
def test_four_quadrant_summary_identity():
|
|
state = FQBMState(B=50, R=30, C=10, Loans=100, Deposits=95, E_cb=10, E_b=5)
|
|
s = four_quadrant_summary(state)
|
|
assert "total_assets_dr" in s
|
|
assert "identity_A_eq_L_plus_E" in s
|
|
assert s["total_assets_dr"] == 150
|
|
assert s["total_liabilities_dr"] + s["total_liabilities_cr"] == 150
|
|
assert s["identity_A_eq_L_plus_E"] is True
|