def testGeneral(self):
    score_points_input = [
        rank_adjuster_interface.ScorePoint(100., self.points['Pier 39']),
        rank_adjuster_interface.ScorePoint(100., self.points['Golden Gate Bridge']),
        rank_adjuster_interface.ScorePoint(100., self.points['Sutro Baths'])]

    parameters_point_types = point.PointType(
        city_tours=90,
        landmarks=90,
        nature=10,
        museums=10,
        shopping=50,
        dining=50)

    city_visit_parameters = city_visit.CityVisitParameters(
        test_util.MockVisitLocation(),
        day_visit_parameterss=[test_util.MockDayVisitParameters()],
        point_type=parameters_point_types,
        age_group=test_util.MockAgeGroup())

    score_points_actual = (
        self.point_type_rank_adjuster.AdjustRank(
            score_points_input, city_visit_parameters))

    score_points_expected = [
        rank_adjuster_interface.ScorePoint(22.683, self.points['Pier 39']),
        rank_adjuster_interface.ScorePoint(22.7, self.points['Golden Gate Bridge']),
        rank_adjuster_interface.ScorePoint(9.15, self.points['Sutro Baths'])]

    self.assertScorePointsEqual(
        score_points_expected, score_points_actual, places=3)
Example #2
0
def ReadCSV(csv_filepath):
    """Read CSV file to list of Points."""
    points_df = pd.read_csv(csv_filepath)
    points = []
    for _, point_series in points_df.iterrows():
        points.append(
            point_.Point(name=ExtractString(point_series['Name']),
                         coordinates_starts=ExtractCoordinates(
                             point_series['CoordinatesStarts']),
                         coordinates_ends=ExtractCoordinates(
                             point_series['CoordinatesEnds']),
                         operating_hours=ExtractOperatingHours(
                             point_series['OperatingHoursOpens'],
                             point_series['OperatingHoursCloses']),
                         duration=ExtractFloat(point_series['Duration']),
                         popularity=ExtractInt(point_series['Popularity']),
                         point_type=point_.PointType(
                             city_tours=ExtractInt(point_series['City Tours']),
                             landmarks=ExtractInt(point_series['Landmarks']),
                             nature=ExtractInt(point_series['Nature']),
                             museums=ExtractInt(point_series['Museums']),
                             shopping=ExtractInt(point_series['Shopping']),
                             dining=ExtractInt(point_series['Dining'])),
                         age_group=point_.AgeGroup(
                             senior=ExtractInt(point_series['Senior']),
                             adult=ExtractInt(point_series['Adult']),
                             junior=ExtractInt(point_series['Junior']),
                             child=ExtractInt(point_series['Child']),
                             toddlers=ExtractInt(point_series['Toddlers'])),
                         price=ExtractFloat(point_series['Price']),
                         parking=ExtractInt(point_series['Parking']),
                         eating=ExtractInt(point_series['Eating'])))

    return points
Example #3
0
    def testStr(self):
        point_type = point.PointType(city_tours=None,
                                     landmarks=None,
                                     nature=None,
                                     museums=None,
                                     shopping=None,
                                     dining=None)
        self.assertEqual('No point type', '%s' % point_type)

        point_type = point.PointType(city_tours=None,
                                     landmarks=30,
                                     nature=None,
                                     museums=None,
                                     shopping=50,
                                     dining=50)
        self.assertEqual('Dining (50), Shopping (50), Landmarks (30)',
                         '%s' % point_type)
Example #4
0
def GetCityVisitParameters(visit_location, day_visit_parameterss):
    parameters_point_types = point.PointType(city_tours=90,
                                             landmarks=90,
                                             nature=10,
                                             museums=10,
                                             shopping=50,
                                             dining=50)

    parameters_age_groups = point.AgeGroup(senior=None,
                                           adult=90,
                                           junior=None,
                                           child=None,
                                           toddlers=10)

    return city_visit.CityVisitParameters(
        visit_location=visit_location,
        day_visit_parameterss=day_visit_parameterss,
        point_type=parameters_point_types,
        age_group=parameters_age_groups)
Example #5
0
  def testReadCSVGeneral(self):
    s = str()
    s += 'ID,Name,CoordinatesStarts,CoordinatesEnds,OperatingHoursOpens,OperatingHoursCloses,Duration,Popularity,City Tours,Landmarks,Nature,Museums,Shopping,Dining,Senior,Adult,Junior,Child,Toddlers,Price,Parking,Eating\n'
    s += '1,Ferry Building,"37.7955N, 122.3937W",,09:00:00,18:00:00,1,80,,100,,,,,90,90,40,70,,,,100\n'
    s += '2,Pier 39,"37.8100N, 122.4104W",,10:00:00,22:00:00,3,80,,100,,,30,60,70,70,70,90,,,,100\n'
    csv_filepath = tempfile.mktemp()
    with open(csv_filepath, 'w') as csv_file:
      csv_file.write(s)

    pier_39 = point.Point(
        name='Pier 39',
        coordinates_starts=point.Coordinates(37.8100, -122.4104),
        coordinates_ends=None,
        operating_hours=point.OperatingHours(datetime.time(10, 0, 0), datetime.time(22, 0, 0)),
        duration=3.,
        popularity=80,
        point_type=point.PointType(
            city_tours=None,
            landmarks=100,
            nature=None,
            museums=None,
            shopping=30,
            dining=60),
        age_group=point.AgeGroup(
            senior=70,
            adult=70,
            junior=70,
            child=90,
            toddlers=None),
        price=None,
        parking=None,
        eating=100)

    points = read_csv.ReadCSV(csv_filepath)
    self.assertEqual(2, len(points))
    self.assertEqual(pier_39, points[1])
    points = read_csv.ReadCSVToDict(csv_filepath)
    self.assertEqual(2, len(points))
    self.assertEqual(set(['Ferry Building', 'Pier 39']), set(points.keys()))
    self.assertEqual(pier_39, points['Pier 39'])
day2 = city_visit.DayVisitParameters(
    start_datetime=datetime.datetime(2019, 7, 2, 10, 0, 0),
    end_datetime=datetime.datetime(2019, 7, 2, 17, 0, 0),
    lunch_start_datetime=datetime.datetime(2019, 7, 1, 14, 0, 0),
    lunch_hours=1.,
    start_coordinates=start_end_coordinates,
    end_coordinates=start_end_coordinates)

from data import city_visit
from data import point

visit_location = city_visit.VisitLocation('New York City')

parameters_point_types = point.PointType(city_tours=90,
                                         landmarks=90,
                                         nature=10,
                                         museums=10,
                                         shopping=50,
                                         dining=50)

parameters_age_groups = point.AgeGroup(senior=None,
                                       adult=90,
                                       junior=None,
                                       child=None,
                                       toddlers=10)

city_visit_parameters = city_visit.CityVisitParameters(
    visit_location=visit_location,
    day_visit_parameterss=[day1, day2],
    point_type=parameters_point_types,
    age_group=parameters_age_groups)