Ejemplo n.º 1
0
def get_score_from_city_name_metric(metric: city_scorer.SuggestionMetric,
                                    city_name: str, partial_name: str):
    city_infos = provider_interface.CityInfos(city_name, [],
                                              IRRELEVANT_CITY_COORDINATES,
                                              IRRELEVANT_POPULATION)
    query = service.CitySuggestionsQuery(partial_name=partial_name)

    return metric.compute_score(city_infos, query)
Ejemplo n.º 2
0
def _adapt_city_infos_from_geoname_format(geoname_city_info):
    return provider_interface.CityInfos(
        name=geoname_city_info['name'],
        alt_names=geoname_city_info['alt_name'].split(',') if geoname_city_info['alt_name'] else [],
        coordinates=provider_interface.CityCoordinates(
            lat=float(geoname_city_info['lat']),
            long=float(geoname_city_info['long'])
        ),
        population=int(geoname_city_info['population']),
    )
Ejemplo n.º 3
0
def get_score_from_population_metric(metric: city_scorer.SuggestionMetric,
                                     city_population: int):
    city_infos = provider_interface.CityInfos(
        IRRELEVANT_CITY_NAME,
        [],
        IRRELEVANT_CITY_COORDINATES,
        city_population,
    )
    query = service.CitySuggestionsQuery(partial_name=IRRELEVANT_CITY_NAME, )

    return metric.compute_score(city_infos, query)
Ejemplo n.º 4
0
def get_score_from_coordinates_metric(metric: city_scorer.SuggestionMetric,
                                      city_coordinates_tuple: Tuple,
                                      query_coordinate_tuple: Tuple):
    city_coordinates = provider_interface.CityCoordinates(
        *city_coordinates_tuple)
    city_infos = provider_interface.CityInfos(IRRELEVANT_CITY_NAME, [],
                                              city_coordinates,
                                              IRRELEVANT_POPULATION)
    query = service.CitySuggestionsQuery(
        partial_name=IRRELEVANT_CITY_NAME,
        latitude=query_coordinate_tuple[0],
        longitude=query_coordinate_tuple[1],
    )

    return metric.compute_score(city_infos, query)
Ejemplo n.º 5
0
    def add_city_infos(self, city_infos):
        """
        Adds city infos to be used in the test

        :param city_infos: Some city infos, as given by any city info provider.
                           "name" is mendatory, while the rest of the fields are optionnal.
        """
        self.fake_city_infos.append(
            provider_interface.CityInfos(
                name=city_infos['name'],
                alt_names=city_infos.get('alt_names', []),
                coordinates=provider_interface.CityCoordinates(
                    lat=city_infos.get('coordinates',
                                       {}).get('lat', DEFAULT_LATITUDE),
                    long=city_infos.get('coordinates',
                                        {}).get('long', DEFAULT_LONGITUDE),
                ),
                population=city_infos.get('population', DEFAULT_POPULATION),
            ))