Beispiel #1
0
def test_compute_score(levenshtein_metric, data):
    city_name, partial_name, levenshtein_distance = data
    expected_score = compute_expected_score_from_levenshtein_distance(
        word1=city_name, word2=partial_name, distance=levenshtein_distance)

    actual_score = get_score_from_city_name_metric(levenshtein_metric,
                                                   city_name, partial_name)
    assert actual_score == pytest.approx(expected_score, rel=0.01)
Beispiel #2
0
def test_when_query_different_from_city_name_score_none(exact_match_metric):
    assert get_score_from_city_name_metric(exact_match_metric, A_CITY_NAME,
                                           A_DIFFERENT_CITY_NAME) is None
Beispiel #3
0
def test_match_is_case_insensitive(exact_match_metric):
    assert 1.0 == get_score_from_city_name_metric(exact_match_metric,
                                                  A_CITY_NAME.upper(),
                                                  A_CITY_NAME.lower())
Beispiel #4
0
def test_when_query_is_exactly_the_city_name_score_one(exact_match_metric):
    assert 1.0 == get_score_from_city_name_metric(exact_match_metric,
                                                  A_CITY_NAME, A_CITY_NAME)
Beispiel #5
0
def test_when_query_is_the_first_letter_of_the_city_name_score_one(
        starts_with_metric):
    assert 1.0 == get_score_from_city_name_metric(starts_with_metric,
                                                  A_CITY_NAME,
                                                  FIRST_LETTER_OF_A_CITY_NAME)
Beispiel #6
0
def test_when_query_is_the_city_without_last_letter_score_one(
        starts_with_metric):
    assert 1.0 == get_score_from_city_name_metric(
        starts_with_metric, A_CITY_NAME, A_CITY_NAME_MISSING_LAST_LETTER)