mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
adapt tests for new function signatures
This commit is contained in:
@@ -68,7 +68,7 @@ def mk_query(inp):
|
|||||||
phrase_split = re.split(r"([ ,:'-])", inp)
|
phrase_split = re.split(r"([ ,:'-])", inp)
|
||||||
|
|
||||||
for word, breakchar in zip_longest(*[iter(phrase_split)]*2, fillvalue='>'):
|
for word, breakchar in zip_longest(*[iter(phrase_split)]*2, fillvalue='>'):
|
||||||
query.add_node(breakchar, PHRASE_ANY, 0.1, word, word)
|
query.add_node(breakchar, PHRASE_ANY, word, word)
|
||||||
|
|
||||||
return query
|
return query
|
||||||
|
|
||||||
@@ -153,9 +153,9 @@ def test_postcode_inside_postcode_phrase(pc_config):
|
|||||||
|
|
||||||
query = QueryStruct([])
|
query = QueryStruct([])
|
||||||
query.nodes[-1].ptype = PHRASE_STREET
|
query.nodes[-1].ptype = PHRASE_STREET
|
||||||
query.add_node(',', PHRASE_STREET, 0.1, '12345', '12345')
|
query.add_node(',', PHRASE_STREET, '12345', '12345')
|
||||||
query.add_node(',', PHRASE_POSTCODE, 0.1, 'xz', 'xz')
|
query.add_node(',', PHRASE_POSTCODE, 'xz', 'xz')
|
||||||
query.add_node('>', PHRASE_POSTCODE, 0.1, '4444', '4444')
|
query.add_node('>', PHRASE_POSTCODE, '4444', '4444')
|
||||||
|
|
||||||
assert parser.parse(query) == {(2, 3, '4444')}
|
assert parser.parse(query) == {(2, 3, '4444')}
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ def test_partial_postcode_in_postcode_phrase(pc_config):
|
|||||||
|
|
||||||
query = QueryStruct([])
|
query = QueryStruct([])
|
||||||
query.nodes[-1].ptype = PHRASE_POSTCODE
|
query.nodes[-1].ptype = PHRASE_POSTCODE
|
||||||
query.add_node(' ', PHRASE_POSTCODE, 0.1, '2224', '2224')
|
query.add_node(' ', PHRASE_POSTCODE, '2224', '2224')
|
||||||
query.add_node('>', PHRASE_POSTCODE, 0.1, '12345', '12345')
|
query.add_node('>', PHRASE_POSTCODE, '12345', '12345')
|
||||||
|
|
||||||
assert not parser.parse(query)
|
assert not parser.parse(query)
|
||||||
|
|||||||
@@ -51,15 +51,15 @@ def test_token_range_unimplemented_ops():
|
|||||||
|
|
||||||
def test_query_extract_words():
|
def test_query_extract_words():
|
||||||
q = nq.QueryStruct([])
|
q = nq.QueryStruct([])
|
||||||
q.add_node(nq.BREAK_WORD, nq.PHRASE_ANY, 0.1, '12', '')
|
q.add_node(nq.BREAK_WORD, nq.PHRASE_ANY, '12', '')
|
||||||
q.add_node(nq.BREAK_TOKEN, nq.PHRASE_ANY, 0.0, 'ab', '')
|
q.add_node(nq.BREAK_TOKEN, nq.PHRASE_ANY, 'ab', '')
|
||||||
q.add_node(nq.BREAK_PHRASE, nq.PHRASE_ANY, 0.0, '12', '')
|
q.add_node(nq.BREAK_PHRASE, nq.PHRASE_ANY, '12', '')
|
||||||
q.add_node(nq.BREAK_END, nq.PHRASE_ANY, 0.5, 'hallo', '')
|
q.add_node(nq.BREAK_END, nq.PHRASE_ANY, 'hallo', '')
|
||||||
|
|
||||||
words = q.extract_words(base_penalty=1.0)
|
words = q.extract_words()
|
||||||
|
|
||||||
assert set(words.keys()) \
|
assert set(words.keys()) \
|
||||||
== {'12', 'ab', 'hallo', '12 ab', 'ab 12', '12 ab 12'}
|
== {'12', 'ab', 'hallo', '12 ab', 'ab 12', '12 ab 12'}
|
||||||
assert sorted(words['12']) == [nq.TokenRange(0, 1, 1.0), nq.TokenRange(2, 3, 1.0)]
|
assert sorted(words['12']) == [nq.TokenRange(0, 1), nq.TokenRange(2, 3)]
|
||||||
assert words['12 ab'] == [nq.TokenRange(0, 2, 1.1)]
|
assert words['12 ab'] == [nq.TokenRange(0, 2)]
|
||||||
assert words['hallo'] == [nq.TokenRange(3, 4, 1.0)]
|
assert words['hallo'] == [nq.TokenRange(3, 4)]
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import pytest
|
|||||||
from nominatim_api.search.query import QueryStruct, Phrase, TokenRange, Token
|
from nominatim_api.search.query import QueryStruct, Phrase, TokenRange, Token
|
||||||
import nominatim_api.search.query as qmod
|
import nominatim_api.search.query as qmod
|
||||||
from nominatim_api.search.token_assignment import (yield_token_assignments,
|
from nominatim_api.search.token_assignment import (yield_token_assignments,
|
||||||
TokenAssignment,
|
TokenAssignment)
|
||||||
PENALTY_TOKENCHANGE)
|
from nominatim_api.search.icu_tokenizer import PENALTY_BREAK
|
||||||
|
|
||||||
|
|
||||||
class MyToken(Token):
|
class MyToken(Token):
|
||||||
@@ -28,6 +28,7 @@ def make_query(*args):
|
|||||||
|
|
||||||
for btype, ptype, _ in args[1:]:
|
for btype, ptype, _ in args[1:]:
|
||||||
q.add_node(btype, ptype)
|
q.add_node(btype, ptype)
|
||||||
|
q.nodes[-1].penalty = PENALTY_BREAK[btype]
|
||||||
q.add_node(qmod.BREAK_END, qmod.PHRASE_ANY)
|
q.add_node(qmod.BREAK_END, qmod.PHRASE_ANY)
|
||||||
|
|
||||||
for start, t in enumerate(args):
|
for start, t in enumerate(args):
|
||||||
@@ -94,7 +95,7 @@ def test_multiple_simple_words(btype):
|
|||||||
(btype, qmod.PHRASE_ANY, [(2, qmod.TOKEN_PARTIAL)]),
|
(btype, qmod.PHRASE_ANY, [(2, qmod.TOKEN_PARTIAL)]),
|
||||||
(btype, qmod.PHRASE_ANY, [(3, qmod.TOKEN_PARTIAL)]))
|
(btype, qmod.PHRASE_ANY, [(3, qmod.TOKEN_PARTIAL)]))
|
||||||
|
|
||||||
penalty = PENALTY_TOKENCHANGE[btype]
|
penalty = PENALTY_BREAK[btype]
|
||||||
|
|
||||||
check_assignments(yield_token_assignments(q),
|
check_assignments(yield_token_assignments(q),
|
||||||
TokenAssignment(name=TokenRange(0, 3)),
|
TokenAssignment(name=TokenRange(0, 3)),
|
||||||
|
|||||||
Reference in New Issue
Block a user