X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/31412e06740727695c5d9512e0cd59c0dd683322..e362a965e167dadd828a4a4b7fc58c6076e6586a:/test/python/api/search/test_api_search_query.py diff --git a/test/python/api/search/test_api_search_query.py b/test/python/api/search/test_api_search_query.py index 50980a45..08a1f7aa 100644 --- a/test/python/api/search/test_api_search_query.py +++ b/test/python/api/search/test_api_search_query.py @@ -21,43 +21,43 @@ def mktoken(tid: int): return MyToken(penalty=3.0, token=tid, count=1, addr_count=1, lookup_word='foo') - -@pytest.mark.parametrize('ptype,ttype', [('NONE', 'W'), - ('AMENITY', 'Q'), - ('STREET', 'w'), - ('CITY', 'W'), - ('COUNTRY', 'C'), - ('POSTCODE', 'P')]) +@pytest.fixture +def qnode(): + return query.QueryNode(query.BREAK_PHRASE, query.PHRASE_ANY, 0.0 ,'', '') + +@pytest.mark.parametrize('ptype,ttype', [(query.PHRASE_ANY, 'W'), + (query.PHRASE_AMENITY, 'Q'), + (query.PHRASE_STREET, 'w'), + (query.PHRASE_CITY, 'W'), + (query.PHRASE_COUNTRY, 'C'), + (query.PHRASE_POSTCODE, 'P')]) def test_phrase_compatible(ptype, ttype): - assert query.PhraseType[ptype].compatible_with(ttype, False) + assert query._phrase_compatible_with(ptype, ttype, False) -@pytest.mark.parametrize('ptype', ['COUNTRY', 'POSTCODE']) +@pytest.mark.parametrize('ptype', [query.PHRASE_COUNTRY, query.PHRASE_POSTCODE]) def test_phrase_incompatible(ptype): - assert not query.PhraseType[ptype].compatible_with(query.TOKEN_PARTIAL, True) - + assert not query._phrase_compatible_with(ptype, query.TOKEN_PARTIAL, True) -def test_query_node_empty(): - qn = query.QueryNode(query.BREAK_PHRASE, query.PhraseType.NONE) - assert not qn.has_tokens(3, query.TOKEN_PARTIAL) - assert qn.get_tokens(3, query.TOKEN_WORD) is None +def test_query_node_empty(qnode): + assert not qnode.has_tokens(3, query.TOKEN_PARTIAL) + assert qnode.get_tokens(3, query.TOKEN_WORD) is None -def test_query_node_with_content(): - qn = query.QueryNode(query.BREAK_PHRASE, query.PhraseType.NONE) - qn.starting.append(query.TokenList(2, query.TOKEN_PARTIAL, [mktoken(100), mktoken(101)])) - qn.starting.append(query.TokenList(2, query.TOKEN_WORD, [mktoken(1000)])) +def test_query_node_with_content(qnode): + qnode.starting.append(query.TokenList(2, query.TOKEN_PARTIAL, [mktoken(100), mktoken(101)])) + qnode.starting.append(query.TokenList(2, query.TOKEN_WORD, [mktoken(1000)])) - assert not qn.has_tokens(3, query.TOKEN_PARTIAL) - assert not qn.has_tokens(2, query.TOKEN_COUNTRY) - assert qn.has_tokens(2, query.TOKEN_PARTIAL) - assert qn.has_tokens(2, query.TOKEN_WORD) + assert not qnode.has_tokens(3, query.TOKEN_PARTIAL) + assert not qnode.has_tokens(2, query.TOKEN_COUNTRY) + assert qnode.has_tokens(2, query.TOKEN_PARTIAL) + assert qnode.has_tokens(2, query.TOKEN_WORD) - assert qn.get_tokens(3, query.TOKEN_PARTIAL) is None - assert qn.get_tokens(2, query.TOKEN_COUNTRY) is None - assert len(qn.get_tokens(2, query.TOKEN_PARTIAL)) == 2 - assert len(qn.get_tokens(2, query.TOKEN_WORD)) == 1 + assert qnode.get_tokens(3, query.TOKEN_PARTIAL) is None + assert qnode.get_tokens(2, query.TOKEN_COUNTRY) is None + assert len(qnode.get_tokens(2, query.TOKEN_PARTIAL)) == 2 + assert len(qnode.get_tokens(2, query.TOKEN_WORD)) == 1 def test_query_struct_empty(): @@ -67,9 +67,9 @@ def test_query_struct_empty(): def test_query_struct_with_tokens(): - q = query.QueryStruct([query.Phrase(query.PhraseType.NONE, 'foo bar')]) - q.add_node(query.BREAK_WORD, query.PhraseType.NONE) - q.add_node(query.BREAK_END, query.PhraseType.NONE) + q = query.QueryStruct([query.Phrase(query.PHRASE_ANY, 'foo bar')]) + q.add_node(query.BREAK_WORD, query.PHRASE_ANY) + q.add_node(query.BREAK_END, query.PHRASE_ANY) assert q.num_token_slots() == 2 @@ -91,9 +91,9 @@ def test_query_struct_with_tokens(): def test_query_struct_incompatible_token(): - q = query.QueryStruct([query.Phrase(query.PhraseType.COUNTRY, 'foo bar')]) - q.add_node(query.BREAK_WORD, query.PhraseType.COUNTRY) - q.add_node(query.BREAK_END, query.PhraseType.NONE) + q = query.QueryStruct([query.Phrase(query.PHRASE_COUNTRY, 'foo bar')]) + q.add_node(query.BREAK_WORD, query.PHRASE_COUNTRY) + q.add_node(query.BREAK_END, query.PHRASE_ANY) q.add_token(query.TokenRange(0, 1), query.TOKEN_PARTIAL, mktoken(1)) q.add_token(query.TokenRange(1, 2), query.TOKEN_COUNTRY, mktoken(100)) @@ -103,8 +103,8 @@ def test_query_struct_incompatible_token(): def test_query_struct_amenity_single_word(): - q = query.QueryStruct([query.Phrase(query.PhraseType.AMENITY, 'bar')]) - q.add_node(query.BREAK_END, query.PhraseType.NONE) + q = query.QueryStruct([query.Phrase(query.PHRASE_AMENITY, 'bar')]) + q.add_node(query.BREAK_END, query.PHRASE_ANY) q.add_token(query.TokenRange(0, 1), query.TOKEN_PARTIAL, mktoken(1)) q.add_token(query.TokenRange(0, 1), query.TOKEN_NEAR_ITEM, mktoken(2)) @@ -116,9 +116,9 @@ def test_query_struct_amenity_single_word(): def test_query_struct_amenity_two_words(): - q = query.QueryStruct([query.Phrase(query.PhraseType.AMENITY, 'foo bar')]) - q.add_node(query.BREAK_WORD, query.PhraseType.AMENITY) - q.add_node(query.BREAK_END, query.PhraseType.NONE) + q = query.QueryStruct([query.Phrase(query.PHRASE_AMENITY, 'foo bar')]) + q.add_node(query.BREAK_WORD, query.PHRASE_AMENITY) + q.add_node(query.BREAK_END, query.PHRASE_ANY) for trange in [(0, 1), (1, 2)]: q.add_token(query.TokenRange(*trange), query.TOKEN_PARTIAL, mktoken(1))