コード例 #1
0
 def StartEndDatetime(self, current_state):
     lunch_timedelta = datetime.timedelta(
         hours=self.calculator.day_visit_parameters.lunch_hours)
     lunch_start_end_datetime = city_visit.StartEndDatetime(
         current_state.current_datetime,
         current_state.current_datetime + lunch_timedelta)
     return lunch_start_end_datetime
コード例 #2
0
 def StartEndDatetime(self, current_state):
     move_description = (
         self.calculator.move_calculator.CalculateMoveDescription(
             current_state.current_coordinates, self.to_coordinates))
     move_timedelta = datetime.timedelta(hours=move_description.move_hours)
     move_start_end_datetime = city_visit.StartEndDatetime(
         current_state.current_datetime,
         current_state.current_datetime + move_timedelta)
     return move_start_end_datetime
コード例 #3
0
 def testInitValidation(self):
     # move_hours in move_description are not consistent with
     # start_end_datetime.
     self.assertRaises(
         AssertionError, city_visit.MoveBetween,
         city_visit.StartEndDatetime(
             datetime.datetime(2014, 9, 1, 11, 15, 0),
             datetime.datetime(2014, 9, 1, 11, 45, 0)),
         city_visit.MoveDescription(
             self.points['Ferry Building'].coordinates_ends,
             self.points['Pier 39'].coordinates_starts, 1.0,
             city_visit.MoveType.walking))
コード例 #4
0
    def setUp(self):
        # Ferry Building, San Francisco.
        self.ferry_building_operating_hours = point.OperatingHours(
            datetime.time(9, 0, 0), datetime.time(18, 0, 0))
        # Pier 39, San Francisco.
        self.pier_39_operating_hours = point.OperatingHours(
            datetime.time(10, 0, 0), datetime.time(22, 0, 0))
        # Golden Gate Bridge, San Francisco.
        self.golden_gate_bridge_operating_hours = None

        self.early_morning_start_end_datetime = city_visit.StartEndDatetime(
            datetime.datetime(2014, 9, 1, 9, 0, 0),
            datetime.datetime(2014, 9, 1, 12, 0, 0))
        self.late_everning_start_end_datetime = city_visit.StartEndDatetime(
            datetime.datetime(2014, 9, 1, 18, 0, 0),
            datetime.datetime(2014, 9, 1, 21, 0, 0))
        self.after_midnight_start_end_datetime = city_visit.StartEndDatetime(
            datetime.datetime(2014, 9, 1, 0, 0, 0),
            datetime.datetime(2014, 9, 1, 3, 0, 0))

        super(PointFitTest, self).setUp()
コード例 #5
0
 def Add(self, current_state):
     move_description = (
         self.calculator.move_calculator.CalculateMoveDescription(
             current_state.current_coordinates, self.to_coordinates))
     move_timedelta = datetime.timedelta(hours=move_description.move_hours)
     move_start_end_datetime = city_visit.StartEndDatetime(
         current_state.current_datetime,
         current_state.current_datetime + move_timedelta)
     if (move_start_end_datetime.end >
             self.calculator.day_visit_parameters.end_datetime):
         return False
     current_state.current_datetime = move_start_end_datetime.end
     current_state.current_coordinates = move_description.to_coordinates
     current_state.cost_accumulator.AddMoveBetween(move_description)
     current_state.actions.append(
         city_visit.MoveBetween(move_start_end_datetime, move_description))
     return True
コード例 #6
0
 def StartEndDatetime(self, current_state):
     visit_timedelta = datetime.timedelta(hours=self.point.duration)
     visit_start_end_datetime = city_visit.StartEndDatetime(
         current_state.current_datetime,
         current_state.current_datetime + visit_timedelta)
     return visit_start_end_datetime
コード例 #7
0
  def setUp(self):

    self.day_visit_parameters_1 = CityVisitTestExample.GetDayVisitParameters(
        start_datetime=datetime.datetime(2014, 9, 1, 9, 0, 0),
        end_datetime=datetime.datetime(2014, 9, 1, 21, 0, 0),
        lunch_start_datetime=datetime.datetime(2014, 9, 1, 22, 0, 0))

    self.day_visit_parameters_2 = CityVisitTestExample.GetDayVisitParameters(
        start_datetime=datetime.datetime(2014, 9, 2, 9, 0, 0),
        end_datetime=datetime.datetime(2014, 9, 2, 21, 0, 0),
        lunch_start_datetime=datetime.datetime(2014, 9, 2, 22, 0, 0))

    self.points = read_csv.ReadCSVToDict(os.path.join('data', 'test_sf_1.csv'))
    
    self.hotel_coordinates = (
       CityVisitTestExample.GetHotelCoordinates())
    
    self.from_hotel_to_ferry_building_move = city_visit.MoveBetween(
        city_visit.StartEndDatetime(datetime.datetime(2014, 9, 1, 9, 0, 0),
                                    datetime.datetime(2014, 9, 1, 10, 15, 0)),
        city_visit.MoveDescription(self.hotel_coordinates,
                                   self.points['Ferry Building'].coordinates_starts,
                                   1.25, city_visit.MoveType.walking))
    self.ferry_building_point_visit = city_visit.PointVisit(
        city_visit.StartEndDatetime(datetime.datetime(2014, 9, 1, 10, 15, 0),
                                    datetime.datetime(2014, 9, 1, 11, 15, 0)),
        self.points['Ferry Building'])
    self.from_ferry_building_to_pier_39_move = city_visit.MoveBetween(
        city_visit.StartEndDatetime(datetime.datetime(2014, 9, 1, 11, 15, 0),
                                    datetime.datetime(2014, 9, 1, 11, 45, 0)),
        city_visit.MoveDescription(self.points['Ferry Building'].coordinates_ends,
                                   self.points['Pier 39'].coordinates_starts,
                                   0.5, city_visit.MoveType.walking))
    self.pier_39_point_visit = city_visit.PointVisit(
        city_visit.StartEndDatetime(datetime.datetime(2014, 9, 1, 11, 45, 0),
                                    datetime.datetime(2014, 9, 1, 14, 45, 0)),
        self.points['Pier 39'])
    self.from_pier_39_to_hotel = city_visit.MoveBetween(
        city_visit.StartEndDatetime(datetime.datetime(2014, 9, 1, 14, 45, 0),
                                    datetime.datetime(2014, 9, 1, 16, 15, 0)),
        city_visit.MoveDescription(self.points['Pier 39'].coordinates_ends,
                                   self.hotel_coordinates,
                                   1.5, city_visit.MoveType.walking))
    
    self.day_visit_1 = city_visit.DayVisit(datetime.datetime(2014, 9, 1, 9, 0, 0), [
        self.from_hotel_to_ferry_building_move,
        self.ferry_building_point_visit,
        self.from_ferry_building_to_pier_39_move,
        self.pier_39_point_visit,
        self.from_pier_39_to_hotel], 12.)
    
    self.from_hotel_to_golden_gate_bridge_move = city_visit.MoveBetween(
        city_visit.StartEndDatetime(datetime.datetime(2014, 9, 2, 9, 0, 0),
                                    datetime.datetime(2014, 9, 2, 9, 15, 0)),
        city_visit.MoveDescription(self.hotel_coordinates,
                                   self.points['Golden Gate Bridge'].coordinates_starts,
                                   0.25, city_visit.MoveType.driving))
    self.golden_gate_bridge_point_visit = city_visit.PointVisit(
        city_visit.StartEndDatetime(datetime.datetime(2014, 9, 2, 9, 15, 0),
                                    datetime.datetime(2014, 9, 2, 9, 45, 0)),
        self.points['Golden Gate Bridge'])
    self.from_golden_gate_bridge_to_hotel_move = city_visit.MoveBetween(
        city_visit.StartEndDatetime(datetime.datetime(2014, 9, 2, 9, 45, 0),
                                    datetime.datetime(2014, 9, 2, 10, 0, 0)),
        city_visit.MoveDescription(self.points['Golden Gate Bridge'].coordinates_ends,
                                   self.hotel_coordinates,
                                   0.25, city_visit.MoveType.driving))
    
    self.day_visit_2 = city_visit.DayVisit(datetime.datetime(2014, 9, 2, 9, 0, 0), [
        self.from_hotel_to_golden_gate_bridge_move,
        self.golden_gate_bridge_point_visit,
        self.from_golden_gate_bridge_to_hotel_move], 10.)
    
    self.city_visit_summary = city_visit.CityVisitSummary(20., 0.)
    self.city_visit = city_visit.CityVisit([self.day_visit_1, self.day_visit_2], self.city_visit_summary)
    
    super(CityVisitTestExample, self).setUp()