fastquadtree 2.0.2__tar.gz → 2.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/.github/workflows/release.yml +4 -6
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/.github/workflows/test.yml +1 -1
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/Cargo.lock +1 -1
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/Cargo.toml +1 -1
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/PKG-INFO +4 -5
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/README.md +1 -2
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/benchmark.md +1 -1
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pyproject.toml +1 -1
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/_base_quadtree.py +3 -3
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/_base_quadtree_objects.py +3 -3
- fastquadtree-2.0.3/tests/test_python/points/test_point_quadtree_precision.py +47 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/.github/workflows/docs.yml +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/.gitignore +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/.pre-commit-config.yaml +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/LICENSE +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/assets/ballpit.png +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/assets/interactive_v2_rect_screenshot.png +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/assets/interactive_v2_screenshot.png +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/assets/quadtree_bench_throughput.png +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/assets/quadtree_bench_time.png +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/benchmark_native_vs_shim.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/benchmark_np_vs_list.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/benchmark_serialization_vs_rebuild.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/cross_library_bench.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/quadtree_bench/__init__.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/quadtree_bench/engines.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/quadtree_bench/main.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/quadtree_bench/optimizer.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/quadtree_bench/plotting.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/quadtree_bench/runner.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/requirements.txt +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/runner.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/benchmarks/system_info_collector.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/2.0_migration_guide.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/2.0_proposal.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/api/insert_result.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/api/item.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/api/point_item.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/api/pyqtree.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/api/quadtree.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/api/quadtree_objects.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/api/rect_item.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/api/rect_quadtree.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/api/rect_quadtree_objects.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/future_features.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/index.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/quickstart.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/runnables.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/rust_usage.md +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/docs/styles/overrides.css +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/examples/custom_id_example.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/examples/object_tracking_example.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/interactive/ballpit.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/interactive/interactive.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/interactive/interactive_v2.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/interactive/interactive_v2_rect.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/interactive/requirements.txt +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/mkdocs.yml +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pyrightconfig.json +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/__init__.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/_common.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/_insert_result.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/_item.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/_obj_store.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/point_quadtree.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/point_quadtree_objects.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/py.typed +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/pyqtree.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/rect_quadtree.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/pysrc/fastquadtree/rect_quadtree_objects.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/src/geom.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/src/lib.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/src/quadtree.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/src/rect_quadtree.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/__init__.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/insertions.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/nearest_neighbor.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/query.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/rect_quadtree.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/rectangle_traversal.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/serialization.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_delete.rs +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/__init__.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/common/test_common_validation.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/common/test_insert_result_and_items.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/common/test_internal_edges.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/common/test_obj_store.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/common/test_serialization_container.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/conftest.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/integration/test_migration_breaks_and_safety.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/integration/test_public_api_contracts.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points/test_point_quadtree_core.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points/test_point_quadtree_mutation.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points/test_point_quadtree_numpy.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points/test_point_quadtree_serialization.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points_objects/test_point_quadtree_objects_core.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points_objects/test_point_quadtree_objects_deletion_update.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points_objects/test_point_quadtree_objects_numpy.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points_objects/test_point_quadtree_objects_serialization.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects/test_rect_quadtree_core.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects/test_rect_quadtree_mutation.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects/test_rect_quadtree_numpy.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects/test_rect_quadtree_serialization.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects_objects/test_rect_quadtree_objects_core.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects_objects/test_rect_quadtree_objects_deletion_update.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects_objects/test_rect_quadtree_objects_numpy.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects_objects/test_rect_quadtree_objects_serialization.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/test_pyqtree_shim_compat.py +0 -0
- {fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/unconventional_bounds.rs +0 -0
|
@@ -26,7 +26,7 @@ jobs:
|
|
|
26
26
|
with:
|
|
27
27
|
command: develop
|
|
28
28
|
args: --release
|
|
29
|
-
manylinux:
|
|
29
|
+
manylinux: 2_28
|
|
30
30
|
|
|
31
31
|
- name: Install Python test deps into .venv
|
|
32
32
|
run: |
|
|
@@ -64,12 +64,10 @@ jobs:
|
|
|
64
64
|
args: "--skip-existing"
|
|
65
65
|
# Linux aarch64 abi3
|
|
66
66
|
- os: ubuntu-latest
|
|
67
|
-
|
|
68
|
-
args: "--skip-existing --target aarch64-unknown-linux-gnu --zig"
|
|
67
|
+
args: "--skip-existing --target aarch64-unknown-linux-gnu"
|
|
69
68
|
# Linux armv7 abi3
|
|
70
69
|
- os: ubuntu-latest
|
|
71
|
-
|
|
72
|
-
args: "--skip-existing --target armv7-unknown-linux-gnueabihf --zig"
|
|
70
|
+
args: "--skip-existing --target armv7-unknown-linux-gnueabihf"
|
|
73
71
|
steps:
|
|
74
72
|
- uses: actions/checkout@v4
|
|
75
73
|
- uses: actions/setup-python@v5
|
|
@@ -82,4 +80,4 @@ jobs:
|
|
|
82
80
|
with:
|
|
83
81
|
command: publish
|
|
84
82
|
args: ${{ matrix.args }}
|
|
85
|
-
manylinux:
|
|
83
|
+
manylinux: 2_28
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastquadtree
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.3
|
|
4
4
|
Classifier: Programming Language :: Python :: 3
|
|
5
5
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
6
6
|
Classifier: Programming Language :: Rust
|
|
@@ -34,10 +34,10 @@ Keywords: quadtree,spatial-index,geometry,rust,pyo3,nearest-neighbor,k-nn
|
|
|
34
34
|
Author: Ethan Anderson
|
|
35
35
|
Requires-Python: >=3.9
|
|
36
36
|
Description-Content-Type: text/markdown
|
|
37
|
-
Project-URL: Homepage, https://github.com/Elan456/fastquadtree
|
|
38
|
-
Project-URL: Repository, https://github.com/Elan456/fastquadtree
|
|
39
37
|
Project-URL: Documentation, https://elan456.github.io/fastquadtree/
|
|
38
|
+
Project-URL: Homepage, https://github.com/Elan456/fastquadtree
|
|
40
39
|
Project-URL: Issues, https://github.com/Elan456/fastquadtree/issues
|
|
40
|
+
Project-URL: Repository, https://github.com/Elan456/fastquadtree
|
|
41
41
|
|
|
42
42
|
# fastquadtree
|
|
43
43
|
|
|
@@ -113,9 +113,8 @@ fastquadtree **outperforms** all other quadtree Python packages, including the R
|
|
|
113
113
|

|
|
114
114
|

|
|
115
115
|
|
|
116
|
-
### Summary (
|
|
116
|
+
### Summary (PyQtree baseline, sorted by total time)
|
|
117
117
|
- Points: **500,000**, Queries: **500**
|
|
118
|
-
- Fastest total: **fastquadtree** at **0.067 s**
|
|
119
118
|
|
|
120
119
|
| Library | Build (s) | Query (s) | Total (s) | Speed vs PyQtree |
|
|
121
120
|
|---|---:|---:|---:|---:|
|
|
@@ -72,9 +72,8 @@ fastquadtree **outperforms** all other quadtree Python packages, including the R
|
|
|
72
72
|

|
|
73
73
|

|
|
74
74
|
|
|
75
|
-
### Summary (
|
|
75
|
+
### Summary (PyQtree baseline, sorted by total time)
|
|
76
76
|
- Points: **500,000**, Queries: **500**
|
|
77
|
-
- Fastest total: **fastquadtree** at **0.067 s**
|
|
78
77
|
|
|
79
78
|
| Library | Build (s) | Query (s) | Total (s) | Speed vs PyQtree |
|
|
80
79
|
|---|---:|---:|---:|---:|
|
|
@@ -12,7 +12,7 @@ Quadtrees are the focus of the benchmark, but Rtrees are included for reference.
|
|
|
12
12
|
|
|
13
13
|
### Summary (largest dataset, PyQtree baseline)
|
|
14
14
|
- Points: **500,000**, Queries: **500**
|
|
15
|
-
- Fastest total: **fastquadtree** at **0.
|
|
15
|
+
- Fastest total: **fastquadtree** at **0.078 s**
|
|
16
16
|
|
|
17
17
|
| Library | Build (s) | Query (s) | Total (s) | Speed vs PyQtree |
|
|
18
18
|
|---|---:|---:|---:|---:|
|
|
@@ -40,7 +40,7 @@ python-source = "pysrc"
|
|
|
40
40
|
module-name = "fastquadtree._native"
|
|
41
41
|
# Choose a wide wheel tag for Linux. Adjust if your build images are newer.
|
|
42
42
|
# Options include: manylinux2014, manylinux_2_28, musllinux_1_2, or "off".
|
|
43
|
-
compatibility = "
|
|
43
|
+
compatibility = "manylinux_2_28"
|
|
44
44
|
|
|
45
45
|
[tool.pytest.ini_options]
|
|
46
46
|
addopts = [
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
6
6
|
from abc import ABC, abstractmethod
|
|
7
|
-
from typing import Any, Generic, TypeVar
|
|
7
|
+
from typing import Any, Generic, Sequence, TypeVar
|
|
8
8
|
|
|
9
9
|
from ._common import (
|
|
10
10
|
SERIALIZATION_FORMAT_VERSION,
|
|
@@ -114,7 +114,7 @@ class _BaseQuadTree(Generic[G], ABC):
|
|
|
114
114
|
self._count += 1
|
|
115
115
|
return id_
|
|
116
116
|
|
|
117
|
-
def insert_many(self, geoms:
|
|
117
|
+
def insert_many(self, geoms: Sequence[G]) -> InsertResult:
|
|
118
118
|
"""
|
|
119
119
|
Bulk insert geometries with auto-assigned contiguous IDs. <br>
|
|
120
120
|
IDs start at 0 and increment by 1, so they will be aligned with the indexes of the input list if the tree started empty. <br>
|
|
@@ -123,7 +123,7 @@ class _BaseQuadTree(Generic[G], ABC):
|
|
|
123
123
|
calls if you need custom IDs.
|
|
124
124
|
|
|
125
125
|
Args:
|
|
126
|
-
geoms:
|
|
126
|
+
geoms: Sequence of geometries.
|
|
127
127
|
|
|
128
128
|
Returns:
|
|
129
129
|
InsertResult with count, start_id, and end_id.
|
|
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
|
|
6
6
|
import pickle
|
|
7
7
|
from abc import ABC, abstractmethod
|
|
8
|
-
from typing import Any, Generic, TypeVar
|
|
8
|
+
from typing import Any, Generic, Sequence, TypeVar
|
|
9
9
|
|
|
10
10
|
from ._common import (
|
|
11
11
|
SECTION_ITEMS,
|
|
@@ -275,7 +275,7 @@ class _BaseQuadTreeObjects(Generic[G, ItemType], ABC):
|
|
|
275
275
|
return rid
|
|
276
276
|
|
|
277
277
|
def insert_many(
|
|
278
|
-
self, geoms:
|
|
278
|
+
self, geoms: Sequence[G], objs: list[Any] | None = None
|
|
279
279
|
) -> InsertResult:
|
|
280
280
|
"""
|
|
281
281
|
Bulk insert geometries with auto-assigned contiguous IDs.
|
|
@@ -285,7 +285,7 @@ class _BaseQuadTreeObjects(Generic[G, ItemType], ABC):
|
|
|
285
285
|
IDs from the free-list created by deletions. Use insert() to fill holes.
|
|
286
286
|
|
|
287
287
|
Args:
|
|
288
|
-
geoms:
|
|
288
|
+
geoms: Sequence of geometries.
|
|
289
289
|
objs: Optional list of Python objects aligned with geoms.
|
|
290
290
|
|
|
291
291
|
Returns:
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import pytest
|
|
3
|
+
|
|
4
|
+
from fastquadtree.point_quadtree import QuadTree
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def test_f32_containment():
|
|
8
|
+
bounds = (0.0, 0.0, 1000.0, 1000.0)
|
|
9
|
+
qt = QuadTree(bounds, capacity=4, dtype="f32")
|
|
10
|
+
pts = [
|
|
11
|
+
(50, 50),
|
|
12
|
+
(100, 100),
|
|
13
|
+
(150, 150),
|
|
14
|
+
(200, 200),
|
|
15
|
+
(350.0, 260.0),
|
|
16
|
+
]
|
|
17
|
+
qt.insert_many(pts)
|
|
18
|
+
|
|
19
|
+
got = qt.query((50.0, 50.0, 51.0, 51.0))
|
|
20
|
+
assert len(got) == 1
|
|
21
|
+
|
|
22
|
+
got = qt.query((350.0, 260.0, 351.0, 261.0))
|
|
23
|
+
assert len(got) == 1
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def test_f32_can_round_bbox_min_up_and_exclude_integer_point():
|
|
27
|
+
offset = 1e8
|
|
28
|
+
x = 261.0 # integer point, exactly representable in f32 and f64
|
|
29
|
+
|
|
30
|
+
# Simulate "world -> local" by subtracting a large origin.
|
|
31
|
+
# In float32, this suffers catastrophic cancellation and rounds to a multiple of 8 here.
|
|
32
|
+
min_x32 = np.float32(offset + x) - np.float32(offset) # typically becomes 264.0
|
|
33
|
+
min_x64 = np.float64(offset + x) - np.float64(offset) # stays 261.0
|
|
34
|
+
|
|
35
|
+
assert float(min_x64) == x
|
|
36
|
+
assert float(min_x32) != x # demonstrates the f32 rounding drift
|
|
37
|
+
|
|
38
|
+
# BBox that "should" start at x, but in f32 it starts at 264 and excludes x=261
|
|
39
|
+
bbox64 = (float(min_x64), 0.0, float(min_x64) + 10.0, 10.0)
|
|
40
|
+
bbox32 = (float(min_x32), 0.0, float(min_x32) + 10.0, 10.0)
|
|
41
|
+
|
|
42
|
+
qt64 = QuadTree(bbox64, 1, max_depth=8, dtype="f64")
|
|
43
|
+
qt64.insert((x, 5.0)) # should succeed
|
|
44
|
+
|
|
45
|
+
qt32 = QuadTree(bbox32, 1, max_depth=8, dtype="f32")
|
|
46
|
+
with pytest.raises(ValueError):
|
|
47
|
+
qt32.insert((np.float32(x), np.float32(5.0))) # should fail (x < min_x32)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/common/test_common_validation.py
RENAMED
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/common/test_insert_result_and_items.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/common/test_serialization_container.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/integration/test_public_api_contracts.py
RENAMED
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points/test_point_quadtree_core.py
RENAMED
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points/test_point_quadtree_mutation.py
RENAMED
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/points/test_point_quadtree_numpy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects/test_rect_quadtree_core.py
RENAMED
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects/test_rect_quadtree_mutation.py
RENAMED
|
File without changes
|
{fastquadtree-2.0.2 → fastquadtree-2.0.3}/tests/test_python/rects/test_rect_quadtree_numpy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|