def test_match_raises_error_when_doc_not_Doc(searcher: FuzzySearcher,
                                             nlp: Language) -> None:
    """It raises a TypeError if doc is not a Doc object."""
    doc = "G-rant Anderson lives in TN."
    query = nlp("xenomorph")
    with pytest.raises(TypeError):
        searcher.match(doc, query)
def test_match_raises_error_if_query_not_Doc(searcher: FuzzySearcher,
                                             nlp: Language) -> None:
    """It raises a TypeError if query not a doc."""
    doc = nlp("This is a doc")
    query = "Not a doc"
    with pytest.raises(TypeError):
        searcher.match(doc, query)
def test_match_finds_best_matches(searcher: FuzzySearcher,
                                  nlp: Language) -> None:
    """It returns all the fuzzy matches that meet threshold correctly sorted."""
    doc = nlp("chiken from Popeyes is better than chken from Chick-fil-A")
    query = nlp("chicken")
    assert searcher.match(doc, query, ignore_case=False) == [
        (0, 1, 92),
        (6, 7, 83),
    ]
def test_match_with_n_less_than_actual_matches(searcher: FuzzySearcher,
                                               nlp: Language) -> None:
    """It returns the n best fuzzy matches that meet threshold correctly sorted."""
    doc = nlp("cow, cow, cow, cow")
    query = nlp("cow")
    assert searcher.match(doc, query, n=2) == [(0, 1, 100), (2, 3, 100)]
def test_match_return_empty_list_when_no_matches_after_adjust(
        searcher: FuzzySearcher, nlp: Language) -> None:
    """It returns an empty list if no fuzzy matches meet min_r2 threshold."""
    doc = nlp("G-rant Anderson lives in TN.")
    query = nlp("Garth, Anderdella")
    assert searcher.match(doc, query) == []
def test_match_without_ignore_case(searcher: FuzzySearcher) -> None:
    """Checks ignore_case is working."""
    assert searcher.match("SPACZZ", "spaczz", ignore_case=False) == 0
def test_match_works_with_defaults(searcher: FuzzySearcher) -> None:
    """Checks match is working as intended."""
    assert searcher.match("spaczz", "spacy") == 73