E AssertionError: DataFrame are different E DataFrame shape mismatch E [left]: (2, 21) E [right]: (2, 12)
def test_reproduction():
g.show_trace = False
g.number_of_runs = 2
g.sim_duration = 24 * 60 * 180
g.sdec_value = 33.3
g.sdec_unav_freq = 1440 * (g.sdec_value / 100)
g.sdec_unav_time = 1440 - g.sdec_unav_freq
g.ctp_value = 33.3
g.ctp_unav_freq = 1440 * (g.ctp_value / 100)
g.ctp_unav_time = 1440 - g.ctp_unav_freq
g.sdec_opening_hour = 7
g.ctp_opening_hour = 7
my_trial = Trial()
# Call the run_trial method of our Trial object
my_trial.run_trial()
df_trial_results = my_trial.df_trial_results
df_patient_log = my_trial.trial_patient_df
df_trial_results.to_parquet(
Path(__file__).parent.joinpath(
"exp_results/df_trial_results_test_comparison.parquet"
)
)
df_patient_log.to_parquet(
Path(__file__).parent.joinpath(
"exp_results/df_patient_log_test_comparison.parquet"
)
)
# Read in previously generated results
df_trial_results_exp = pd.read_parquet(
Path(__file__).parent.joinpath("exp_results/df_trial_results_exp.parquet")
)
df_patient_log_exp = pd.read_parquet(
Path(__file__).parent.joinpath("exp_results/df_patient_log_exp.parquet")
)
# Check trial-level results are identical
> pd.testing.assert_frame_equal(
df_trial_results,
df_trial_results_exp,
)--------------------------------------------------- Trial 1, SDEC Therapy = False, SDEC Open % = 33.3, CTP Open % = 33.3 Trial 1 Results: Trial Mean Q Time Nurse (Mins): 1.5 Trial Max Q Time Nurse (Mins): 141.0 Trial Number of Admissions Avoided: 0.0 Trial Mean Q Time Ward (Hours): 3399.5 Trial Max Q Time Ward (Hours): 5721.0 Trial Mean Ward Occupancy: 1.0 Trial Number of Admission Delays: 37.5 Trial SDEC Total Savings (£): 0.0 Trial SDEC Medical Cost (£): 129600.0 Trial SDEC Savings - Cost (£): -129600.0 Trial Thrombolysis Savings (£): 7037.0 Trial Total Savings (£): -122563.0 Mean MRS Change: 0.35 Mean Assessed Patients: 1896.0 Mean Additional Thrombolysed Patients From CTP Running: 113.0
--------------------------------------------------- Trial 1, SDEC Therapy = False, SDEC Open % = 33.3, CTP Open % = 33.3 Trial 1 Results: Trial Mean Q Time Nurse (Mins): 1.0 Trial Max Q Time Nurse (Mins): 123.0 Trial Number of Admissions Avoided: 0.0 Trial Mean Q Time Ward (Hours): 2445.0 Trial Max Q Time Ward (Hours): 3518.0 Trial Mean Ward Occupancy: 1.0 Trial Number of Admission Delays: 15.0 Trial SDEC Total Savings (£): 0.0 Trial SDEC Medical Cost (£): 64800.0 Trial SDEC Savings - Cost (£): -64800.0 Trial Thrombolysis Savings (£): 570.5 Trial Total Savings (£): -64229.5 Mean MRS Change: 0.24 Mean Assessed Patients: 1196.0 Mean Additional Thrombolysed Patients From CTP Running: 73.0 --------------------------------------------------- Trial 1, SDEC Therapy = False, SDEC Open % = 33.3, CTP Open % = 33.3 Trial 1 Results: Trial Mean Q Time Nurse (Mins): 1.0 Trial Max Q Time Nurse (Mins): 123.0 Trial Number of Admissions Avoided: 0.0 Trial Mean Q Time Ward (Hours): 2445.0 Trial Max Q Time Ward (Hours): 3518.0 Trial Mean Ward Occupancy: 1.0 Trial Number of Admission Delays: 15.0 Trial SDEC Total Savings (£): 0.0 Trial SDEC Medical Cost (£): 64800.0 Trial SDEC Savings - Cost (£): -64800.0 Trial Thrombolysis Savings (£): 570.5 Trial Total Savings (£): -64229.5 Mean MRS Change: 0.24 Mean Assessed Patients: 1196.0 Mean Additional Thrombolysed Patients From CTP Running: 73.0
--------------------------------------------------- Trial 1, SDEC Therapy = False, SDEC Open % = 33.3, CTP Open % = 33.3 Trial 1 Results: Trial Mean Q Time Nurse (Mins): 1.0 Trial Max Q Time Nurse (Mins): 123.0 Trial Number of Admissions Avoided: 0.0 Trial Mean Q Time Ward (Hours): 2445.0 Trial Max Q Time Ward (Hours): 3518.0 Trial Mean Ward Occupancy: 1.0 Trial Number of Admission Delays: 15.0 Trial SDEC Total Savings (£): 0.0 Trial SDEC Medical Cost (£): 64800.0 Trial SDEC Savings - Cost (£): -64800.0 Trial Thrombolysis Savings (£): 570.5 Trial Total Savings (£): -64229.5 Mean MRS Change: 0.24 Mean Assessed Patients: 1196.0 Mean Additional Thrombolysed Patients From CTP Running: 73.0 --------------------------------------------------- Trial 1, SDEC Therapy = False, SDEC Open % = 33.3, CTP Open % = 33.3 Trial 1 Results: Trial Mean Q Time Nurse (Mins): 1.5 Trial Max Q Time Nurse (Mins): 114.0 Trial Number of Admissions Avoided: 0.0 Trial Mean Q Time Ward (Hours): 2125.0 Trial Max Q Time Ward (Hours): 3258.0 Trial Mean Ward Occupancy: 1.0 Trial Number of Admission Delays: 7.5 Trial SDEC Total Savings (£): 0.0 Trial SDEC Medical Cost (£): 64800.0 Trial SDEC Savings - Cost (£): -64800.0 Trial Thrombolysis Savings (£): 2275.0 Trial Total Savings (£): -62525.0 Mean MRS Change: 0.7 Mean Assessed Patients: 1200.5 Mean Additional Thrombolysed Patients From CTP Running: 63.0
E assert 129600 == 525600
attr = 'sim_duration', expected_type = (,), expected_value = 525600, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) assert isinstance(value, expected_type) > assert value == expected_value
E assert 2 == 10
attr = 'number_of_runs', expected_type = (,), expected_value = 10, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) assert isinstance(value, expected_type) > assert value == expected_value
E AssertionError: assert False E + where False = isinstance(960.48, (,))
attr = 'sdec_unav_time', expected_type = (,), expected_value = 0, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) > assert isinstance(value, expected_type)
E AssertionError: assert False E + where False = isinstance(479.5199999999999, (,))
attr = 'sdec_unav_freq', expected_type = (,), expected_value = 0, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) > assert isinstance(value, expected_type)
E AssertionError: assert False E + where False = isinstance(960.48, (,))
attr = 'ctp_unav_time', expected_type = (,), expected_value = 0, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) > assert isinstance(value, expected_type)
E AssertionError: assert False E + where False = isinstance(479.5199999999999, (,))
attr = 'ctp_unav_freq', expected_type = (,), expected_value = 0, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) > assert isinstance(value, expected_type)
E AssertionError: assert False E + where False = isinstance(33.3, (,))
attr = 'sdec_value', expected_type = (,), expected_value = 0, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) > assert isinstance(value, expected_type)
E AssertionError: assert False E + where False = isinstance(33.3, (,))
attr = 'ctp_value', expected_type = (,), expected_value = 0, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) > assert isinstance(value, expected_type)
E assert 7 == 0
attr = 'sdec_opening_hour', expected_type = (,), expected_value = 0, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) assert isinstance(value, expected_type) > assert value == expected_value
E assert 7 == 0
attr = 'ctp_opening_hour', expected_type = (,), expected_value = 0, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) assert isinstance(value, expected_type) > assert value == expected_value
E assert True == False
attr = 'sdec_unav', expected_type = (,), expected_value = False, allowed_values = {False, True} @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) assert isinstance(value, expected_type) > assert value == expected_value
E assert True == False
attr = 'ctp_unav', expected_type = (,), expected_value = False, allowed_values = {False, True} @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) assert isinstance(value, expected_type) > assert value == expected_value
E assert True == False
attr = 'patient_arrival_gen_1', expected_type = (,), expected_value = False, allowed_values = {False, True} @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) assert isinstance(value, expected_type) > assert value == expected_value
E assert 134 == 42
attr = 'master_seed', expected_type = (,), expected_value = 42, allowed_values = None @pytest.mark.parametrize( "attr, expected_type, expected_value, allowed_values", [ # Simulation runtime ("sim_duration", (int,), 525600, None), ("number_of_runs", (int,), 10, None), ("warm_up_period", (float, int, np.floating), g.sim_duration / 5, None), # Patient interarrival times ("patient_inter_day", (float, np.floating), 200.0, None), ("patient_inter_night", (float, np.floating), 666.666666666667, None), # Capacities ("number_of_nurses", (int,), 2, None), ("number_of_ctp", (int,), 1, None), ("sdec_beds", (int,), 5, None), ("number_of_ward_beds", (int,), 1, None), # Process times ("mean_n_consult_time", (int,), 60, None), ("mean_n_ct_time", (int,), 20, None), ("mean_n_sdec_time", (int,), 240, None), # Ischaemic LOS by MRS ("mean_n_i_ward_time_mrs_0", (float, np.floating), 1440 * 2.88, None), ("mean_n_i_ward_time_mrs_1", (float, np.floating), 1440 * 4.54, None), ("mean_n_i_ward_time_mrs_2", (float, np.floating), 1440 * 7.4, None), ("mean_n_i_ward_time_mrs_3", (float, np.floating), 1440 * 14.14, None), ("mean_n_i_ward_time_mrs_4", (float, np.floating), 1440 * 26.06, None), ("mean_n_i_ward_time_mrs_5", (float, np.floating), 1440 * 29.7, None), # ICH LOS by MRS ("mean_n_ich_ward_time_mrs_0", (float, np.floating), 1440 * 2.62, None), ("mean_n_ich_ward_time_mrs_1", (float, np.floating), 1440 * 7.03, None), ("mean_n_ich_ward_time_mrs_2", (float, np.floating), 1440 * 12.15, None), ("mean_n_ich_ward_time_mrs_3", (float, np.floating), 1440 * 18.91, None), ("mean_n_ich_ward_time_mrs_4", (float, np.floating), 1440 * 32.45, None), ("mean_n_ich_ward_time_mrs_5", (float, np.floating), 1440 * 41.83, None), # Other LOS ("mean_n_non_stroke_ward_time", (int,), 1440 * 3, None), ("mean_n_tia_ward_time", (int,), 1440 * 1, None), ("thrombolysis_los_save", (float, np.floating), 0.75, None), # Diagnosis mix and MRS ("mean_mrs", (int,), 2, None), ("ich", (int,), 10, None), ("i", (int,), 60, None), ("tia", (int,), 70, None), ("stroke_mimic", (int,), 80, None), ("tia_admission", (int,), 10, None), ("stroke_mimic_admission", (int,), 30, None), # Operational unavailability parameters ("sdec_unav_time", (int,), 0, None), ("sdec_unav_freq", (int,), 0, None), ("ctp_unav_time", (int,), 0, None), ("ctp_unav_freq", (int,), 0, None), # User-settable value placeholders ("sdec_value", (int,), 0, None), ("ctp_value", (int,), 0, None), ("sdec_opening_hour", (int,), 0, None), ("ctp_opening_hour", (int,), 0, None), ("in_hours_start", (int,), 7, None), ("ooh_start", (int,), 0, None), # Boolean runtime flags ("sdec_unav", (bool,), False, {True, False}), ("ctp_unav", (bool,), False, {True, False}), ("write_to_csv", (bool,), False, {True, False}), ("gen_graph", (bool,), False, {True, False}), ("therapy_sdec", (bool,), False, {True, False}), ("patient_arrival_gen_1", (bool,), False, {True, False}), ("patient_arrival_gen_2", (bool,), False, {True, False}), ("show_trace", (bool,), False, {True, False}), # Trace config ("tracked_cases", (list,), list(range(1, 1500)), None), ("trace_config", (dict,), {"tracked": list(range(1, 1500))}, None), # Seeds and counters ("trials_run_counter", (int,), 1, None), ("master_seed", (int,), 42, None), ], ) def test_g_default_attributes( attr, expected_type, expected_value, allowed_values ): """Check each g attribute exists and has the expected default.""" value = getattr(g, attr) assert isinstance(value, expected_type) > assert value == expected_value