Ejemplo n.º 1
0
class Job(object):
    """
    This class represents a simulation job to be run
    """

    def __init__(self, job_name, simulation_parameters, x_variable_field, x_variable_name, x_variable_values, y_variables, debug=False):
        """
        Constructor for the parameters present in a job
        """
        counter = 0
        for x_var in x_variable_values:
            counter += 1
            _set_attribute_recursively(simulation_parameters, x_variable_field, x_var)

            if debug:
                import time

                print "\n\n%s -- Running %d of %d with variable %s with value %s" % (time.strftime("%H:%M:%S"), counter, len(x_variable_values), x_variable_name, str(x_var))

            self.sim = Simulation(simulation_parameters)
            self.sim.run()
            self.sim.end_simulation()

            if DRAW_MAPS:
                import plot_plane
                plot_plane.plot_plane(self.sim.plane, self.sim.all_nodes, str(job_name) + str(counter))

            for y_var_name in y_variables:
                y_value = y_variables[y_var_name](self.sim.protocol_manager)
                _save_to_file_statistics(job_name, x_variable_name, y_var_name, x_var, y_value)
Ejemplo n.º 2
0
    def test_sim_dsr_route_find(self):
        event = Look_For_Destination_DSR("1", "3")
        config_p = ConfigurationParameters(max_cycles=6, events=[event], type_of_nodes=DsrNode, protocol_manager=DsrProtocolManager)
        plane_p = PlaneParameters(scenario_file = MAP_DIR + "map1.txt")

        simulation_parameters = SimulationParameters(config_parameters=config_p, plane_parameters=plane_p)

        sim1 = Simulation(simulation_parameters)

        sim1.run(cycles_to_run=1)

        new_sim_event = sim1.event_broker.get_simulator_event()
        new_message = sim1.message_broker.get_message_to_be_transmitted()
        sim1.message_broker.add_to_be_transmitted(new_message)

        self.assertFalse(new_sim_event)
        self.assertTrue(isinstance(new_message, SearchTargetMessage))
        self.assertFalse(sim1.event_broker.get_asynchronous_event())

        sim1.run()
        new_sim_event = sim1.event_broker.get_simulator_event()
        new_message = sim1.message_broker.get_message_to_be_transmitted()

        self.assertTrue(isinstance(new_sim_event, RouteFoundEvent))
        self.assertFalse(new_message)
        self.assertFalse(sim1.event_broker.get_asynchronous_event())
Ejemplo n.º 3
0
    def test_bfg_with_high_degree_generated_plane(self):
        config_p = ConfigurationParameters(max_cycles=80, events=[], type_of_nodes=BfgNode, protocol_manager=BfgProtocolManager)
        plane_p = PlaneParameters(x_size=20, y_size=20, min_degree=5, max_degree=8, number_of_nodes=300, plane_builder_method=plane_builders.degree_plane_builder)
        simulation_parameters = SimulationParameters(config_parameters=config_p, plane_parameters=plane_p)

        sim1 = Simulation(simulation_parameters)
        print sim1.plane

        sim1.run(cycles_to_run=4)
        event = LookForDestinationBfg("1", "16")
        sim1.event_broker.add_asynchronous_event(event)
        sim1.run()

        new_event = sim1.event_broker.get_simulator_event()
        self.assertTrue(isinstance(new_event, RouteFoundEvent))
Ejemplo n.º 4
0
    def test_sim_bfg_route_find_hard(self):
        config_p = ConfigurationParameters(max_cycles=100, events=[], type_of_nodes=BfgNode, protocol_manager=BfgProtocolManager)
        plane_p = PlaneParameters(scenario_file = MAP_DIR + "map2.txt")
        protocol_p = ProtocolParameters(arguments={'random_walk_max_hop':100, 'random_walk_multiply':1})

        simulation_parameters = SimulationParameters(config_parameters=config_p, plane_parameters=plane_p, protocol_parameters=protocol_p)

        sim1 = Simulation(simulation_parameters)

        sim1.run(cycles_to_run=3)
        event = Look_For_Destination_BFG(origin_id="1", destiny_id="16", random_walk_multiply=1, random_walk_max_hop=100)
        new_event = sim1.event_broker.add_asynchronous_event(event)

        sim1.run()
        new_event = sim1.event_broker.get_simulator_event()
        self.assertTrue(isinstance(new_event, RouteFoundEvent))
Ejemplo n.º 5
0
            config['simulation']['save_data'] = False
        else:
            config['simulation']['save_data'] = True
    if (args.repeat):
        config['simulation']['repeat'] = args.repeat
    if (args.save_figs != None):
        if (args.save_figs == 0):
            config['analysis']['save_to_file'] = False
        else:
            config['analysis']['save_to_file'] = True
    if (args.logging):
        config['logging_level'] = args.logging
    if (args.market_type):
        config['market_type'] = args.market_type

    print "Going to run with the following configuration:"
    pprint.pprint(config)

    if not args.no_confirm:
        answer = raw_input('Do you want to continue? [Y/n]\r\n')

        if (answer == 'n'):
            exit(0)
    else:
        print "No confirm detected, continuing."

    logging.basicConfig(level=config["logging_level"])

    sim = Simulation(config, args.aggregate_id, args.name)
    sim.run()