Exemple #1
0
def test_num_floors_traveled_up_down():
    """should keep track of the number of floors traveled going up then down"""
    elevator = Elevator(num_floors=5, starting_floor=3)
    elevator.request_floor(5)
    elevator.request_floor(1)
    elevator.travel()
    nose.assert_equal(elevator.num_floors_traveled, 6)
Exemple #2
0
def test_current_floor_after_travel():
    """should set current floor to last visited floor"""
    elevator = Elevator(num_floors=6, starting_floor=4)
    elevator.request_floor(5)
    elevator.request_floor(2)
    elevator.travel()
    nose.assert_equal(elevator.current_floor, 2)
Exemple #3
0
def test_visited_floors():
    """should register visited floors in order"""
    elevator = Elevator(num_floors=5, starting_floor=5)
    elevator.request_floor(4)
    elevator.request_floor(2)
    elevator.travel()
    nose.assert_list_equal(elevator.visited_floors, [4, 2])
Exemple #4
0
def test_duplicate_floor_requests():
    """should gracefully ignore duplicate floor requests"""
    elevator = Elevator(num_floors=5, starting_floor=1)
    elevator.request_floor(3)
    elevator.request_floor(3)
    nose.assert_set_equal(elevator.requested_floors, {3})
    elevator.travel()
    nose.assert_list_equal(elevator.visited_floors, [3])
Exemple #5
0
def test_init_params():
    """should store correct initial parameters when elevator is initalized"""
    elevator = Elevator(num_floors=5, starting_floor=2)
    nose.assert_equal(elevator.num_floors, 5)
    nose.assert_equal(elevator.current_floor, 2)
    nose.assert_set_equal(elevator.requested_floors, set())
    nose.assert_list_equal(elevator.visited_floors, [])
    nose.assert_equal(elevator.num_floors_traveled, 0)
Exemple #6
0
def test_minimize_retrace():
    """should minimize the retracing of the elevator's path"""
    elevator = Elevator(num_floors=5, starting_floor=1)
    elevator.request_floor(4)
    elevator.request_floor(5)
    elevator.request_floor(3)
    elevator.request_floor(2)
    elevator.travel()
    nose.assert_list_equal(elevator.visited_floors, [2, 3, 4, 5])
Exemple #7
0
    def __init__(self, simulation_filename, algo_class,
                 elevator_config_filename):
        with open(elevator_config_filename, 'rb') as f:
            self.conf = yaml.load(f, Loader=yaml.FullLoader)

        elevator_conf = self.conf["ELEVATOR"]
        self.elevator = Elevator(elevator_conf)
        self.simulation_events = load_simulation_events(simulation_filename)
        self.max_floor = max(
            set([a["source_floor"] for a in self.simulation_events] +
                [a["destination_floor"] for a in self.simulation_events]))
        self.algo_class = algo_class
        self.algo = BaseAlgoInterface.get_algo(self.algo_class, elevator_conf,
                                               self.max_floor)
        self.performance_monitor = PerformanceMonitor(self.max_floor)

        self.current_ts = 0
        self.current_location = None

        self.rider_id_to_dropoff_location_map = {}
        self.active_riders_pickup_map = {}
        self.active_riders_dropoff_map = {}
        self.next_event_index = 0
Exemple #8
0
def main():

    elevator = Elevator(num_floors=5, starting_floor=1)
    elevator.request_floor(5)
    test(elevator)

    elevator = Elevator(num_floors=5, starting_floor=1)
    elevator.request_floor(5)
    elevator.request_floor(3)
    elevator.request_floor(4)
    test(elevator)

    elevator = Elevator(num_floors=5, starting_floor=2)
    elevator.request_floor(5)
    elevator.request_floor(4)
    elevator.request_floor(1)
    test(elevator)

    elevator = Elevator(num_floors=6, starting_floor=1)
    elevator.request_floor(6)
    elevator.request_floor(5)
    elevator.request_floor(1)
    test(elevator)

    elevator = Elevator(num_floors=5, starting_floor=3)
    elevator.request_floor(1)
    elevator.request_floor(2)
    elevator.request_floor(4)
    elevator.request_floor(5)
    test(elevator)

    elevator = Elevator(num_floors=5, starting_floor=1)
    elevator.request_floor(2)
    elevator.request_floor(3)
    elevator.request_floor(4)
    elevator.request_floor(5)
    test(elevator)
Exemple #9
0
def test_request_floor():
    """should register requested floors"""
    elevator = Elevator(num_floors=5, starting_floor=1)
    elevator.request_floor(3)
    elevator.request_floor(5)
    nose.assert_set_equal(elevator.requested_floors, {3, 5})