def test_decide_interventions(non_4g_system, basic_system, mixed_system, setup_simulation_parameters): actual_result = decide_interventions('minimal', 250000, 0, mixed_system, 2020, setup_simulation_parameters) assert actual_result == ([], 250000, []) actual_result = decide_interventions('upgrade_to_lte', 142446, 2, non_4g_system, 2020, setup_simulation_parameters) assert len(actual_result[0]) == 2 assert actual_result[1] == 0 actual_result = decide_interventions('upgrade_to_lte', 142446, 2, mixed_system, 2020, setup_simulation_parameters) assert actual_result == ([], 142446, []) # #50917 * 4 = 203668 actual_result = decide_interventions('macrocell', 109000, 1000, mixed_system, 2020, setup_simulation_parameters) assert len(actual_result[0]) == 4 assert actual_result[1] == 0 actual_result = decide_interventions('macrocell', 203668, 0, mixed_system, 2020, setup_simulation_parameters) assert len(actual_result[0]) == 0 assert actual_result[1] == 203668 # actual_result = decide_interventions( # 'macrocell_700', 50917, 10, # mixed_system, 2020, setup_simulation_parameters # ) # assert len(actual_result[0]) == 1 # assert actual_result[1] == 0 # #50917 * 2 = 101,834 # #40220 * 3 = £120,660 actual_result = decide_interventions('small-cell-and-spectrum', 109000, 1000, mixed_system, 2020, setup_simulation_parameters) assert len(actual_result[0]) == 4 assert actual_result[1] == 0
pcd_sector["user_throughput"] = ( user_throughput_by_scenario_year[throughput_scenario][year]) budget = simulation_parameters['annual_budget'] service_obligation_capacity = simulation_parameters[ 'service_obligation_capacity'] if year == BASE_YEAR: # Run initial simulation system = NetworkManager(lads, pcd_sectors, assets, capacity_lookup_table, clutter_lookup, simulation_parameters) # Decide what to build this year interventions_built, budget, spend = decide_interventions( intervention_strategy, budget, service_obligation_capacity, system, year, simulation_parameters) # Add new assets to existing system assets assets += interventions_built # Run simulation with built assets system = NetworkManager(lads, pcd_sectors, assets, capacity_lookup_table, clutter_lookup, simulation_parameters) # Report on assets built print(' ') print('Built {} new assets in {}:'.format(len(interventions_built), year))
def test_decide_interventions(non_4g_system, basic_system, mixed_system, empty_system, high_demand_system, setup_simulation_parameters, setup_simulation_parameters2): actual_result = decide_interventions('minimal', 250000, 0, mixed_system, 2020, setup_simulation_parameters) assert actual_result == ([], 250000, []) actual_result = decide_interventions('upgrade_to_lte', 142446, 2, non_4g_system, 2020, setup_simulation_parameters) assert len(actual_result[0]) == 2 assert actual_result[1] == 0 actual_result = decide_interventions('upgrade_to_lte', 142446, 2, mixed_system, 2020, setup_simulation_parameters) assert actual_result == ([], 142446, []) # #50917 * 4 = 203668 actual_result = decide_interventions('macrocell', 109000, 1000, mixed_system, 2020, setup_simulation_parameters) assert len(actual_result[0]) == 4 assert actual_result[1] == 0 actual_result = decide_interventions('macrocell', 203668, 0, mixed_system, 2020, setup_simulation_parameters) assert len(actual_result[0]) == 0 assert actual_result[1] == 203668 # #50917 * 2 = 101,834 # #40220 * 3 = £120,660 actual_result = decide_interventions('small-cell-and-spectrum', 109000, 1000, mixed_system, 2020, setup_simulation_parameters) assert len(actual_result[0]) == 4 assert actual_result[1] == 0 #test empty_system actual_result = decide_interventions('small-cell-and-spectrum', 1e7, 0, empty_system, 2020, setup_simulation_parameters2) macros_to_lte = len([a for a in actual_result[0] if a['type'] == 'macrocell_site' \ and a['technology'] == 'LTE']) assert macros_to_lte == 4 #test high_demand_system actual_result = decide_interventions('small-cell-and-spectrum', 1e7, 0, high_demand_system, 2020, setup_simulation_parameters2) macros_to_5g = len([a for a in actual_result[0] if a['type'] == 'macrocell_site' \ and a['technology'] == '5G']) assert macros_to_5g == 6 #test small cell build actual_result = decide_interventions('small-cell-and-spectrum', 1e6, 0, high_demand_system, 2020, setup_simulation_parameters2) small_cells = len( [a for a in actual_result[0] if a['type'] == 'small_cell']) assert small_cells == 2