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