diff --git a/salamanca/models/project.py b/salamanca/models/project.py index ef8c11c..45b290d 100644 --- a/salamanca/models/project.py +++ b/salamanca/models/project.py @@ -285,11 +285,24 @@ def construct(self, diffusion={}, direction={}): if b: b = 0.2 if b is True else b m.i_hi = mo.Constraint( + m.idxs, + rule=lambda m, idx: income_diff_hi_rule(m, idx, b), + doc='income within 20% from past', + ) + m.i_lo = mo.Constraint( + m.idxs, + rule=lambda m, idx: income_diff_lo_rule(m, idx, b), + doc='income within 20% from past', + ) + b = diffusion.pop('share', False) + if b: + b = 0.2 if b is True else b + m.s_hi = mo.Constraint( m.idxs, rule=lambda m, idx: share_diff_hi_rule(m, idx, b), doc='income share within 20% from past', ) - m.i_lo = mo.Constraint( + m.s_lo = mo.Constraint( m.idxs, rule=lambda m, idx: share_diff_lo_rule(m, idx, b), doc='income share within 20% from past', diff --git a/tests/test_project.py b/tests/test_project.py index ae35735..4bf8272 100644 --- a/tests/test_project.py +++ b/tests/test_project.py @@ -116,7 +116,7 @@ def test_Model1_result(): def test_Model1_diffusion_result(): natdata, subdata = data() model = Model1(natdata, subdata) - diffusion = {'income': True, 'theil': True} + diffusion = {'share': True, 'theil': True} model.construct(diffusion=diffusion) model.solve() df = model.result()