def test_class_Injector(): """tests to ensure the behaviour class Injector""" test_model = Model('test_model') number = 50. inject = Parameter('inject', number, parameter_min=0., parameter_max=1000.) time = 5 trans_time = Parameter('time', time, parameter_type='int', parameter_min=0, parameter_max=1000) to_pop = Population('to_pop', 0) test_injector = Injector('injector', 'rel_days', trans_time, to_pop, inject, model=test_model) test_model.add_transition(test_injector) for time_step in [1., 1. / 4.]: test_model.set_time_step(time_step) to_pop.reset() test_injector.take_action() assert to_pop.future[0] == number assert np.abs(test_injector.trigger_step - time / time_step) < 0.1
def test_class_Modifier(): """tests to ensure the behaviour class Modifier""" test_model = Model('test_model') mod_time = Parameter('time', 5, parameter_type='int', parameter_min=0, parameter_max=1000) par_val = 0.3 par_0_val = 0.5 par_1_val = 0.7 parameter = Parameter('par', par_val) parameter_0 = Parameter('par_0', par_0_val) parameter_1 = Parameter('par_1', par_1_val) test_modifier = Modifier('test_modifier', 'rel_days', mod_time, parameter, parameter_0, parameter_1, model=test_model) test_model.add_transition(test_modifier) for time_step in [1., 1. / 4.]: test_model.set_time_step(time_step) parameter.reset() assert parameter.get_value() == par_val test_modifier.take_action() assert parameter.get_value() == par_1_val test_modifier.reset() assert parameter.get_value() == par_0_val assert np.abs(test_modifier.trigger_step - 5 / time_step) < 0.1
n_rt_visible = 4 times = [] alphas = [Parameter('alpha_0', 0.4, 0., 2., 'initial transmission rate', hidden=False)] for i in range(n_rate_transitions): j = i+1 hidden = j > n_rt_visible enabled = i==0 times.append(Parameter('trans_rate_'+str(j)+'_time', 20+i, 0, 600, 'day of trans rate change '+'str(j)', parameter_type='int', hidden=hidden)) alphas.append(Parameter('alpha_'+str(j), 0.1, 0., 2., 'alpha after transition '+str(j), hidden=hidden)) bc_model.add_transition( Modifier('trans_rate_'+str(j), 'rel_days', times[i], trans_rate, alphas[i], alphas[j], enabled=enabled, model=bc_model)) n_rate_transitions = 4 n_rt_visible = 0 times_v = [] alphas_v = [Parameter('alpha_0_v', 0.4, 0., 2., 'initial variant transmission rate', hidden=False)] for i in range(n_rate_transitions): j = i+1 hidden = j > n_rt_visible enabled = False times_v.append(Parameter('trans_rate_'+str(j)+'_time_v', 20+i, 0, 600, 'day of variant trans rate change '+'str(j)', parameter_type='int', hidden=hidden))
'transmission rate after 5th transition') trans_rate_6 = Parameter('alpha_6', 0.1, 0., 2., 'transmission rate after 6th transition') trans_rate_7 = Parameter('alpha_7', 0.1, 0., 2., 'transmission rate after 7th transition') trans_rate_8 = Parameter('alpha_8', 0.1, 0., 2., 'transmission rate after 8th transition') bc_model.add_transition( Modifier('trans_rate_1', 'rel_days', trans_rate_1_time, trans_rate, trans_rate_0, trans_rate_1, enabled=True, model=bc_model)) bc_model.add_transition( Modifier('trans_rate_2', 'rel_days', trans_rate_2_time, trans_rate, trans_rate_1, trans_rate_2, enabled=False, model=bc_model))
parameter_type='int', hidden=False) trans_rate_0 = Parameter('alpha_0', 0.385, 0., 2., 'initial transmission rate', hidden=False) trans_rate_1 = Parameter('alpha_1', 0.062, 0., 2., 'transmission rate after 1st transition', hidden=False) trans_rate_2 = Parameter('alpha_2', 0.062, 0., 2., 'transmission rate after 2nd transition', hidden=False) trans_rate_3 = Parameter('alpha_3', 0.062, 0., 2., 'transmission rate after 3nd transition', hidden=False) bc_model.add_transition( Modifier('trans_rate_1', 'rel_days', trans_rate_1_time, trans_rate, trans_rate_0, trans_rate_1, enabled=True, model=bc_model)) bc_model.add_transition( Modifier('trans_rate_2', 'rel_days', trans_rate_2_time, trans_rate, trans_rate_1, trans_rate_2, enabled=False, model=bc_model)) bc_model.add_transition( Modifier('trans_rate_3', 'rel_days', trans_rate_3_time, trans_rate, trans_rate_2, trans_rate_3, enabled=False, model=bc_model)) outbreak_pop = Population('outbreaks', 0, 'Infection outbreaks') outbreak_1_time = Parameter('outbreak_1_time', 14, 0, 100, 'number of days since t0 when outbreak_1 established',
0., 2., 'transmission rate after 4th transition', hidden=False) trans_rate_5 = Parameter('alpha_5', 0.1, 0., 2., 'transmission rate after 5th transition') trans_rate_6 = Parameter('alpha_6', 0.1, 0., 2., 'transmission rate after 6th transition') bc_model.add_transition( Modifier('trans_rate_1', 'rel_days', trans_rate_1_time, trans_rate, trans_rate_0, trans_rate_1, enabled=True, model=bc_model)) bc_model.add_transition( Modifier('trans_rate_2', 'rel_days', trans_rate_2_time, trans_rate, trans_rate_1, trans_rate_2, enabled=False, model=bc_model))
2., 'transmission rate after 2nd transition', hidden=False) trans_rate_3 = Parameter('alpha_3', 0.062, 0., 2., 'transmission rate after 3nd transition', hidden=False) bc_model.add_transition( Modifier('trans_rate_1', 'rel_days', trans_rate_1_time, trans_rate, trans_rate_0, trans_rate_1, enabled=True, model=bc_model)) bc_model.add_transition( Modifier('trans_rate_2', 'rel_days', trans_rate_2_time, trans_rate, trans_rate_1, trans_rate_2, enabled=False, model=bc_model))