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)
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']), )
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)
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)
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), ))