Example #1
0
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
Example #2
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