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
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
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))
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()
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
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
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()