"""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