def test_AddCashFlow(self): mod = Model() us = Country(mod, 'US', 'USA') s = Sector(us, 'HH', 'Household') s.AddCashFlow('A', 'H_A', 'Desc A') s.AddCashFlow('- B', 'H_B', 'Desc B') s.AddCashFlow(' - C', 'H_C', 'Desc C') self.assertEqual('LAG_F+A-B-C', s.EquationBlock['F'].RHS())
def test_GenerateIncomeEquations_3(self): mod = Model() us = Country(mod, 'US', 'USA') s = Sector(us, 'HH', 'Household') s.AddCashFlow('X', 'eq') s.AddCashFlow('Y', 'eq2') self.assertEqual('LAG_F+X+Y', s.EquationBlock['F'].RHS()) self.assertEqual('F(k-1)', s.EquationBlock['LAG_F'].RHS())
def test_AddCashFlow_2(self): mod = Model() us = Country(mod, 'US', 'USA') s = Sector(us, 'HH', 'Household') s.AddCashFlow('A', 'equation', 'Desc A') s.AddCashFlow('', 'equation', 'desc') with self.assertRaises(ValueError): s.AddCashFlow('-', 'B', 'Desc B') with self.assertRaises(ValueError): s.AddCashFlow('+', 'X', 'Desc C') self.assertEqual('LAG_F+A', s.EquationBlock['F'].RHS()) self.assertEqual('equation', s.EquationBlock['A'].RHS())
def test_IncomeEquation_2(self): mod = Model() us = Country(mod, 'US', 'US') hh = Sector(us, 'HH', 'HH', has_F=True) hh.AddCashFlow('x', eqn='2.0', is_income=False) mod._GenerateFullSectorCodes() self.assertEqual('0.0', hh.EquationBlock['INC'].RHS())
def test_AddCashFlow_3(self): mod = Model() us = Country(mod, 'US', 'USA') s = Sector(us, 'HH', 'Household') s.AddVariable('X', 'desc', '') s.AddCashFlow('X', 'equation', 'Desc A') self.assertEqual('equation', s.EquationBlock['X'].RHS())
def test_AddCashFlow_bad(self): mod = Model() us = Country(mod, 'US', 'USA') s = Sector(us, 'HH', 'Household') s.AddVariable('X', 'desc', '') with self.assertRaises(NotImplementedError): # Must be a simple variable as the cash flow s.AddCashFlow('f(X)', 'equation', 'Desc A')