tests: add test

This commit is contained in:
George Panchuk
2026-04-13 21:52:00 +07:00
parent a5a1472538
commit fe514aebc0

View File

@@ -4,10 +4,12 @@ import random
from qdrant_client.http.models import models
from tests.congruence_tests.test_common import (
COLLECTION_NAME,
compare_client_results,
generate_fixtures,
init_client,
init_local,
init_remote,
initialize_fixture_collection,
)
@@ -85,3 +87,71 @@ def test_geo_polygon_filter_query():
print(f"Remote:", json.dumps(remote.payload["nested"]["array"], indent=2))
assert False
def test_geo_bounding_box_edge_point():
"""Points on bounding box edges use strict inequalities and should be excluded."""
collection_name = COLLECTION_NAME
local_client = init_local()
remote_client = init_remote()
vectors_config = models.VectorParams(size=2, distance=models.Distance.DOT)
initialize_fixture_collection(local_client, collection_name, vectors_config=vectors_config)
initialize_fixture_collection(remote_client, collection_name, vectors_config=vectors_config)
# bbox: top_left=(lon=158.75, lat=90.0), bottom_right=(lon=180.0, lat=69.4)
points = [
# on top edge (lat == top_left.lat)
models.PointStruct(
id=1, vector=[0.1, 0.1], payload={"location": {"lat": 90.0, "lon": 170.0}}
),
# on bottom edge (lat == bottom_right.lat)
models.PointStruct(
id=2, vector=[0.2, 0.2], payload={"location": {"lat": 69.4, "lon": 170.0}}
),
# on left edge (lon == top_left.lon)
models.PointStruct(
id=3, vector=[0.3, 0.3], payload={"location": {"lat": 80.0, "lon": 158.75}}
),
# on right edge (lon == bottom_right.lon)
models.PointStruct(
id=4, vector=[0.4, 0.4], payload={"location": {"lat": 80.0, "lon": 180.0}}
),
# corner: top-right
models.PointStruct(
id=5, vector=[0.5, 0.5], payload={"location": {"lat": 90.0, "lon": 180.0}}
),
# corner: bottom-left
models.PointStruct(
id=6, vector=[0.6, 0.6], payload={"location": {"lat": 69.4, "lon": 158.75}}
),
# strictly inside
models.PointStruct(
id=7, vector=[0.7, 0.7], payload={"location": {"lat": 80.0, "lon": 170.0}}
),
# strictly outside
models.PointStruct(
id=8, vector=[0.8, 0.8], payload={"location": {"lat": 50.0, "lon": 170.0}}
),
]
local_client.upload_points(collection_name, points, wait=True)
remote_client.upload_points(collection_name, points, wait=True)
bbox = models.GeoBoundingBox(
top_left=models.GeoPoint(lon=158.75, lat=90.0),
bottom_right=models.GeoPoint(lon=180.0, lat=69.4),
)
geo_filter = models.Filter(must=[models.FieldCondition(key="location", geo_bounding_box=bbox)])
compare_client_results(
local_client,
remote_client,
lambda client: client.scroll(
collection_name=collection_name,
scroll_filter=geo_filter,
limit=100,
with_payload=True,
),
)