Build:
- 0
2025-03-27 11:06.33: New job: docker build {
"compose-or-build": true,
"commit": "f5290c443abb1c6126d5edd7426f25c3a7a7d8af",
"dockerfile": {
"file": "Dockerfile"
},
"docker_context": null,
"squash": false,
"build_args": [],
"path": null
}
2025-03-27 11:06.33: Checking out commit f5290c44. To reproduce:
git clone --recursive "https://github.com/quantifyearth/yirgacheffe.git" -b "main" && cd "yirgacheffe" && git reset --hard f5290c44
2025-03-27 11:06.33: Exec: "cp" "-a" "--" "/var/lib/ocurrent/var/git/yirgacheffe.git-1b1f760b12502161d1ac4703144473aebfb7743225131709358f4b6e819ae9da/.git"
"/tmp/git-checkout24874325"
2025-03-27 11:06.33: Exec: "git" "-C" "/tmp/git-checkout24874325" "submodule"
"deinit" "--force" "--all"
2025-03-27 11:06.33: Exec: "git" "-C" "/tmp/git-checkout24874325" "reset"
"--hard" "-q" "f5290c443abb1c6126d5edd7426f25c3a7a7d8af"
2025-03-27 11:06.33: Exec: "git" "-C" "/tmp/git-checkout24874325" "submodule"
"update" "--recursive" "--init" "--no-fetch"
2025-03-27 11:06.33: Exec: "docker" "build" "--pull" "-f" "/tmp/git-checkout24874325/Dockerfile"
"--iidfile" "/tmp/git-checkout24874325/docker-iid"
"--" "/tmp/git-checkout24874325"
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Sending build context to Docker daemon 1.239MB
Step 1/10 : from ghcr.io/osgeo/gdal:ubuntu-small-3.9.2
ubuntu-small-3.9.2: Pulling from osgeo/gdal
Digest: sha256:6af57cbe64534fd8c3803ac4158e9bf812dfb1968cf13e8922b80f665d76d063
Status: Image is up to date for ghcr.io/osgeo/gdal:ubuntu-small-3.9.2
---> 782f90affb9c
Step 2/10 : RUN apt-get update -qqy && apt-get install -qy git python3-pip && rm -rf /var/lib/apt/lists/* && rm -rf /var/cache/apt/*
---> Using cache
---> 5f6bceffed75
Step 3/10 : COPY ./ /root/
---> dd7640999b72
Step 4/10 : WORKDIR /root/
---> Running in be1b9ea3c17c
---> Removed intermediate container be1b9ea3c17c
---> 147388b4ca53
Step 5/10 : RUN pip config set global.break-system-packages true
---> Running in 921d1a91d4c0
Writing to /root/.config/pip/pip.conf
---> Removed intermediate container 921d1a91d4c0
---> 5e4815403f47
Step 6/10 : RUN pip install "numpy<2" gdal[numpy] scikit-image
---> Running in f95a664d3ec2
Requirement already satisfied: numpy<2 in /usr/lib/python3/dist-packages (1.26.4)
Collecting scikit-image
Downloading scikit_image-0.25.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (14 kB)
Requirement already satisfied: gdal[numpy] in /usr/lib/python3/dist-packages (3.9.2)
Collecting scipy>=1.11.4 (from scikit-image)
Downloading scipy-1.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.0/62.0 kB 3.1 MB/s eta 0:00:00
Collecting networkx>=3.0 (from scikit-image)
Downloading networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)
Requirement already satisfied: pillow>=10.1 in /usr/lib/python3/dist-packages (from scikit-image) (10.2.0)
Collecting imageio!=2.35.0,>=2.33 (from scikit-image)
Downloading imageio-2.37.0-py3-none-any.whl.metadata (5.2 kB)
Collecting tifffile>=2022.8.12 (from scikit-image)
Downloading tifffile-2025.3.13-py3-none-any.whl.metadata (32 kB)
Collecting packaging>=21 (from scikit-image)
Downloading packaging-24.2-py3-none-any.whl.metadata (3.2 kB)
Collecting lazy-loader>=0.4 (from scikit-image)
Downloading lazy_loader-0.4-py3-none-any.whl.metadata (7.6 kB)
Downloading scikit_image-0.25.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.0/15.0 MB 40.0 MB/s eta 0:00:00
Downloading imageio-2.37.0-py3-none-any.whl (315 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 315.8/315.8 kB 26.9 MB/s eta 0:00:00
Downloading lazy_loader-0.4-py3-none-any.whl (12 kB)
Downloading networkx-3.4.2-py3-none-any.whl (1.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 46.1 MB/s eta 0:00:00
Downloading packaging-24.2-py3-none-any.whl (65 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.5/65.5 kB 8.6 MB/s eta 0:00:00
Downloading scipy-1.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 37.3/37.3 MB 23.9 MB/s eta 0:00:00
Downloading tifffile-2025.3.13-py3-none-any.whl (226 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 226.8/226.8 kB 14.5 MB/s eta 0:00:00
Installing collected packages: tifffile, scipy, packaging, networkx, imageio, lazy-loader, scikit-image
Successfully installed imageio-2.37.0 lazy-loader-0.4 networkx-3.4.2 packaging-24.2 scikit-image-0.25.2 scipy-1.15.2 tifffile-2025.3.13
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
---> Removed intermediate container f95a664d3ec2
---> 7be85c90e72c
Step 7/10 : RUN pip install pylint mypy pytest types-setuptools
---> Running in f24ef7152b88
Collecting pylint
Downloading pylint-3.3.6-py3-none-any.whl.metadata (12 kB)
Collecting mypy
Downloading mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.metadata (2.1 kB)
Collecting pytest
Downloading pytest-8.3.5-py3-none-any.whl.metadata (7.6 kB)
Collecting types-setuptools
Downloading types_setuptools-76.0.0.20250313-py3-none-any.whl.metadata (2.2 kB)
Collecting astroid<=3.4.0.dev0,>=3.3.8 (from pylint)
Downloading astroid-3.3.9-py3-none-any.whl.metadata (4.5 kB)
Collecting dill>=0.3.6 (from pylint)
Downloading dill-0.3.9-py3-none-any.whl.metadata (10 kB)
Collecting isort!=5.13,<7,>=4.2.5 (from pylint)
Downloading isort-6.0.1-py3-none-any.whl.metadata (11 kB)
Collecting mccabe<0.8,>=0.6 (from pylint)
Downloading mccabe-0.7.0-py2.py3-none-any.whl.metadata (5.0 kB)
Collecting platformdirs>=2.2 (from pylint)
Downloading platformdirs-4.3.7-py3-none-any.whl.metadata (11 kB)
Collecting tomlkit>=0.10.1 (from pylint)
Downloading tomlkit-0.13.2-py3-none-any.whl.metadata (2.7 kB)
Collecting typing_extensions>=4.6.0 (from mypy)
Downloading typing_extensions-4.13.0-py3-none-any.whl.metadata (3.0 kB)
Collecting mypy_extensions>=1.0.0 (from mypy)
Downloading mypy_extensions-1.0.0-py3-none-any.whl.metadata (1.1 kB)
Collecting iniconfig (from pytest)
Downloading iniconfig-2.1.0-py3-none-any.whl.metadata (2.7 kB)
Requirement already satisfied: packaging in /usr/local/lib/python3.12/dist-packages (from pytest) (24.2)
Collecting pluggy<2,>=1.5 (from pytest)
Downloading pluggy-1.5.0-py3-none-any.whl.metadata (4.8 kB)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from types-setuptools) (68.1.2)
Downloading pylint-3.3.6-py3-none-any.whl (522 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 522.5/522.5 kB 16.5 MB/s eta 0:00:00
Downloading mypy-1.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (12.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.4/12.4 MB 49.1 MB/s eta 0:00:00
Downloading pytest-8.3.5-py3-none-any.whl (343 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 343.6/343.6 kB 23.0 MB/s eta 0:00:00
Downloading types_setuptools-76.0.0.20250313-py3-none-any.whl (65 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.8/65.8 kB 6.4 MB/s eta 0:00:00
Downloading astroid-3.3.9-py3-none-any.whl (275 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 275.3/275.3 kB 24.7 MB/s eta 0:00:00
Downloading dill-0.3.9-py3-none-any.whl (119 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 119.4/119.4 kB 11.5 MB/s eta 0:00:00
Downloading isort-6.0.1-py3-none-any.whl (94 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 94.2/94.2 kB 10.8 MB/s eta 0:00:00
Downloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB)
Downloading mypy_extensions-1.0.0-py3-none-any.whl (4.7 kB)
Downloading platformdirs-4.3.7-py3-none-any.whl (18 kB)
Downloading pluggy-1.5.0-py3-none-any.whl (20 kB)
Downloading tomlkit-0.13.2-py3-none-any.whl (37 kB)
Downloading typing_extensions-4.13.0-py3-none-any.whl (45 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.7/45.7 kB 4.6 MB/s eta 0:00:00
Downloading iniconfig-2.1.0-py3-none-any.whl (6.0 kB)
Installing collected packages: typing_extensions, types-setuptools, tomlkit, pluggy, platformdirs, mypy_extensions, mccabe, isort, iniconfig, dill, astroid, pytest, pylint, mypy
Successfully installed astroid-3.3.9 dill-0.3.9 iniconfig-2.1.0 isort-6.0.1 mccabe-0.7.0 mypy-1.15.0 mypy_extensions-1.0.0 platformdirs-4.3.7 pluggy-1.5.0 pylint-3.3.6 pytest-8.3.5 tomlkit-0.13.2 types-setuptools-76.0.0.20250313 typing_extensions-4.13.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
---> Removed intermediate container f24ef7152b88
---> 1252ee7702a8
Step 8/10 : RUN pip install h3==4.0.0b5
---> Running in a0f427cade69
Collecting h3==4.0.0b5
Downloading h3-4.0.0b5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.1 kB)
Downloading h3-4.0.0b5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 9.3 MB/s eta 0:00:00
Installing collected packages: h3
Successfully installed h3-4.0.0b5
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
---> Removed intermediate container a0f427cade69
---> 34a813a2fc31
Step 9/10 : RUN python3 -m pytest -vv
---> Running in ca75222edfd0
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.5.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /root
configfile: pyproject.toml
collecting ... collected 580 items
tests/test_area.py::test_area_operators[lhs0-rhs0-True-True] PASSED [ 0%]
tests/test_area.py::test_area_operators[lhs1-rhs1-False-True] PASSED [ 0%]
tests/test_area.py::test_area_operators[lhs2-rhs2-False-False] PASSED [ 0%]
tests/test_area.py::test_area_operators[lhs3-rhs3-False-True] PASSED [ 0%]
tests/test_auto_windowing.py::test_add_windows PASSED [ 0%]
tests/test_auto_windowing.py::test_multiply_windows PASSED [ 1%]
tests/test_auto_windowing.py::test_add_windows_offset PASSED [ 1%]
tests/test_auto_windowing.py::test_multiply_windows_offset PASSED [ 1%]
tests/test_auto_windowing.py::test_add_windows_sum PASSED [ 1%]
tests/test_auto_windowing.py::test_multiply_windows_sum PASSED [ 1%]
tests/test_auto_windowing.py::test_constant_layer_result_rhs_add PASSED [ 1%]
tests/test_auto_windowing.py::test_constant_layer_result_lhs_add PASSED [ 2%]
tests/test_auto_windowing.py::test_constant_layer_result_rhs_multiply PASSED [ 2%]
tests/test_auto_windowing.py::test_constant_layer_result_lhs_multiply PASSED [ 2%]
tests/test_auto_windowing.py::test_vector_layers_add PASSED [ 2%]
tests/test_auto_windowing.py::test_vector_layers_multiply PASSED [ 2%]
tests/test_base.py::test_pixel_to_latlng_unsupported_projection PASSED [ 2%]
tests/test_base.py::test_pixel_from_latlng_unsupported_projection PASSED [ 3%]
tests/test_base.py::test_latlng_for_pixel[area0-pixel0-expected0] PASSED [ 3%]
tests/test_base.py::test_latlng_for_pixel[area1-pixel1-expected1] PASSED [ 3%]
tests/test_base.py::test_latlng_for_pixel[area2-pixel2-expected2] PASSED [ 3%]
tests/test_base.py::test_latlng_for_pixel[area3-pixel3-expected3] PASSED [ 3%]
tests/test_base.py::test_latlng_for_pixel[area4-pixel4-expected4] PASSED [ 3%]
tests/test_base.py::test_latlng_for_pixel[area5-pixel5-expected5] PASSED [ 4%]
tests/test_base.py::test_pixel_for_latlng[area0-coord0-expected0] PASSED [ 4%]
tests/test_base.py::test_pixel_for_latlng[area1-coord1-expected1] PASSED [ 4%]
tests/test_base.py::test_pixel_for_latlng[area2-coord2-expected2] PASSED [ 4%]
tests/test_base.py::test_latlng_for_pixel_with_intersection[area0-window0-pixel0-expected0] PASSED [ 4%]
tests/test_base.py::test_latlng_for_pixel_with_intersection[area1-window1-pixel1-expected1] PASSED [ 5%]
tests/test_base.py::test_latlng_for_pixel_with_intersection[area2-window2-pixel2-expected2] PASSED [ 5%]
tests/test_base.py::test_latlng_for_pixel_with_intersection[area3-window3-pixel3-expected3] PASSED [ 5%]
tests/test_base.py::test_latlng_for_pixel_with_intersection[area4-window4-pixel4-expected4] PASSED [ 5%]
tests/test_base.py::test_latlng_for_pixel_with_intersection[area5-window5-pixel5-expected5] PASSED [ 5%]
tests/test_base.py::test_pixel_for_latlng_with_intersection[area0-window0-coord0-expected0] PASSED [ 5%]
tests/test_base.py::test_pixel_for_latlng_with_intersection[area1-window1-coord1-expected1] PASSED [ 6%]
tests/test_base.py::test_pixel_for_latlng_with_intersection[area2-window2-coord2-expected2] PASSED [ 6%]
tests/test_group.py::test_empty_group PASSED [ 6%]
tests/test_group.py::test_invalid_file_list PASSED [ 6%]
tests/test_group.py::test_empty_file_list PASSED [ 6%]
tests/test_group.py::test_valid_file_list PASSED [ 6%]
tests/test_group.py::test_single_raster_layer_in_group PASSED [ 7%]
tests/test_group.py::test_mismatched_layers PASSED [ 7%]
tests/test_group.py::test_two_raster_areas_side_by_side[GroupLayer] PASSED [ 7%]
tests/test_group.py::test_two_raster_areas_side_by_side[TiledGroupLayer] PASSED [ 7%]
tests/test_group.py::test_two_raster_areas_top_to_bottom[GroupLayer] PASSED [ 7%]
tests/test_group.py::test_two_raster_areas_top_to_bottom[TiledGroupLayer] PASSED [ 7%]
tests/test_group.py::test_grid_tiles[GroupLayer-2] PASSED [ 8%]
tests/test_group.py::test_grid_tiles[TiledGroupLayer-2] PASSED [ 8%]
tests/test_group.py::test_grid_tiles[GroupLayer-3] PASSED [ 8%]
tests/test_group.py::test_grid_tiles[TiledGroupLayer-3] PASSED [ 8%]
tests/test_group.py::test_overlapping_tiles[GroupLayer-2] PASSED [ 8%]
tests/test_group.py::test_overlapping_tiles[TiledGroupLayer-2] PASSED [ 8%]
tests/test_group.py::test_overlapping_tiles[GroupLayer-3] PASSED [ 9%]
tests/test_group.py::test_overlapping_tiles[TiledGroupLayer-3] PASSED [ 9%]
tests/test_group.py::test_two_raster_read_only_from_one PASSED [ 9%]
tests/test_group.py::test_two_raster_read_only_from_other PASSED [ 9%]
tests/test_group.py::test_single_vector_layer_in_group PASSED [ 9%]
tests/test_group.py::test_overlapping_vector_layers PASSED [ 10%]
tests/test_group.py::test_with_window_adjust[GroupLayer] PASSED [ 10%]
tests/test_group.py::test_with_window_adjust[TiledGroupLayer] PASSED [ 10%]
tests/test_group.py::test_multipe_tiles_with_window[GroupLayer-2] PASSED [ 10%]
tests/test_group.py::test_multipe_tiles_with_window[TiledGroupLayer-2] PASSED [ 10%]
tests/test_group.py::test_multipe_tiles_with_window[GroupLayer-3] PASSED [ 10%]
tests/test_group.py::test_multipe_tiles_with_window[TiledGroupLayer-3] PASSED [ 11%]
tests/test_group.py::test_overlapping_tiles_with_window[GroupLayer-2] PASSED [ 11%]
tests/test_group.py::test_overlapping_tiles_with_window[TiledGroupLayer-2] PASSED [ 11%]
tests/test_group.py::test_overlapping_tiles_with_window[GroupLayer-3] PASSED [ 11%]
tests/test_group.py::test_overlapping_tiles_with_window[TiledGroupLayer-3] PASSED [ 11%]
tests/test_group.py::test_overlapping_tiles_with_read_aligned_to_tiles[GroupLayer] PASSED [ 11%]
tests/test_group.py::test_overlapping_tiles_with_read_aligned_to_tiles[TiledGroupLayer] PASSED [ 12%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-3-0] PASSED [ 12%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-0] PASSED [ 12%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-3-1] PASSED [ 12%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-1] PASSED [ 12%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-3-2] PASSED [ 12%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-2_0] PASSED [ 13%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-3-3] PASSED [ 13%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-3] PASSED [ 13%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-3-4] PASSED [ 13%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-4] PASSED [ 13%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-3-5] PASSED [ 13%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-5] PASSED [ 14%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-3-6] PASSED [ 14%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-6] PASSED [ 14%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-3-7] PASSED [ 14%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-7] PASSED [ 14%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-3-8] PASSED [ 15%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-8] PASSED [ 15%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-0] PASSED [ 15%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-0] PASSED [ 15%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-1] PASSED [ 15%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-1] PASSED [ 15%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-2] PASSED [ 16%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-3-2_1] PASSED [ 16%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-3] PASSED [ 16%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-3] PASSED [ 16%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-4] PASSED [ 16%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-4] PASSED [ 16%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-5] PASSED [ 17%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-5] PASSED [ 17%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-6] PASSED [ 17%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-6] PASSED [ 17%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-7] PASSED [ 17%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-7] PASSED [ 17%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-12] PASSED [ 18%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-12] PASSED [ 18%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-13] PASSED [ 18%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-13] PASSED [ 18%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-14] PASSED [ 18%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-14] PASSED [ 18%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[GroupLayer-4-15] PASSED [ 19%]
tests/test_group.py::test_multipe_tiles_with_missing_tile[TiledGroupLayer-4-15] PASSED [ 19%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-3-0] PASSED [ 19%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-0] PASSED [ 19%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-3-1] PASSED [ 19%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-1] PASSED [ 20%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-3-2] PASSED [ 20%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-2_0] PASSED [ 20%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-3-3] PASSED [ 20%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-3] PASSED [ 20%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-3-4] PASSED [ 20%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-4] PASSED [ 21%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-3-5] PASSED [ 21%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-5] PASSED [ 21%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-3-6] PASSED [ 21%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-6] PASSED [ 21%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-3-7] PASSED [ 21%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-7] PASSED [ 22%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-3-8] PASSED [ 22%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-8] PASSED [ 22%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-0] PASSED [ 22%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-0] PASSED [ 22%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-1] PASSED [ 22%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-1] PASSED [ 23%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-2] PASSED [ 23%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-3-2_1] PASSED [ 23%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-3] PASSED [ 23%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-3] PASSED [ 23%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-4] PASSED [ 23%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-4] PASSED [ 24%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-5] PASSED [ 24%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-5] PASSED [ 24%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-6] PASSED [ 24%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-6] PASSED [ 24%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-7] PASSED [ 25%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-7] PASSED [ 25%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-12] PASSED [ 25%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-12] PASSED [ 25%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-13] PASSED [ 25%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-13] PASSED [ 25%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-14] PASSED [ 26%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-14] PASSED [ 26%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[GroupLayer-4-15] PASSED [ 26%]
tests/test_group.py::test_oversized_tiles_with_missing_tile[TiledGroupLayer-4-15] PASSED [ 26%]
tests/test_group.py::test_read_zero_pixels[GroupLayer-size0] PASSED [ 26%]
tests/test_group.py::test_read_zero_pixels[GroupLayer-size1] PASSED [ 26%]
tests/test_group.py::test_read_zero_pixels[TiledGroupLayer-size2] PASSED [ 27%]
tests/test_group.py::test_read_zero_pixels[TiledGroupLayer-size3] PASSED [ 27%]
tests/test_group.py::test_read_tiles_superset[read_area0] PASSED [ 27%]
tests/test_group.py::test_read_tiles_superset[read_area1] PASSED [ 27%]
tests/test_group.py::test_read_tiles_superset[read_area2] PASSED [ 27%]
tests/test_group.py::test_read_tiles_superset[read_area3] PASSED [ 27%]
tests/test_group.py::test_read_tiles_superset[read_area4] PASSED [ 28%]
tests/test_group.py::test_read_tiles_superset[read_area5] PASSED [ 28%]
tests/test_group.py::test_read_tiles_superset[read_area6] PASSED [ 28%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[GroupLayer-3-0] PASSED [ 28%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-0] PASSED [ 28%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[GroupLayer-3-1] PASSED [ 28%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-1] PASSED [ 29%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[GroupLayer-3-2] PASSED [ 29%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-2] PASSED [ 29%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[GroupLayer-3-3] PASSED [ 29%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-3] PASSED [ 29%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[GroupLayer-3-4] PASSED [ 30%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-4] PASSED [ 30%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[GroupLayer-3-5] PASSED [ 30%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-5] PASSED [ 30%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[GroupLayer-3-6] PASSED [ 30%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-6] PASSED [ 30%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[GroupLayer-3-7] PASSED [ 31%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-7] PASSED [ 31%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[GroupLayer-3-8] PASSED [ 31%]
tests/test_group.py::test_oversized_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-8] PASSED [ 31%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[GroupLayer-3-0] PASSED [ 31%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-0] PASSED [ 31%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[GroupLayer-3-1] PASSED [ 32%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-1] PASSED [ 32%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[GroupLayer-3-2] PASSED [ 32%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-2] PASSED [ 32%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[GroupLayer-3-3] PASSED [ 32%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-3] PASSED [ 32%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[GroupLayer-3-4] PASSED [ 33%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-4] PASSED [ 33%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[GroupLayer-3-5] PASSED [ 33%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-5] PASSED [ 33%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[GroupLayer-3-6] PASSED [ 33%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-6] PASSED [ 33%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[GroupLayer-3-7] PASSED [ 34%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-7] PASSED [ 34%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[GroupLayer-3-8] PASSED [ 34%]
tests/test_group.py::test_multipe_tiles_with_missing_tile_row_slices[TiledGroupLayer-3-8] PASSED [ 34%]
tests/test_h3layer.py::test_h3_layer[hello-False-0] PASSED [ 34%]
tests/test_h3layer.py::test_h3_layer[88972eac11fffff-True-8] PASSED [ 35%]
tests/test_h3layer.py::test_h3_layer_magnifications[0.0-0.0] PASSED [ 35%]
tests/test_h3layer.py::test_h3_layer_magnifications[0.0-45.0] PASSED [ 35%]
tests/test_h3layer.py::test_h3_layer_magnifications[45.0-0.0] PASSED [ 35%]
tests/test_h3layer.py::test_h3_layer_magnifications[45.0-45.0] PASSED [ 35%]
tests/test_h3layer.py::test_h3_layer_magnifications[85.0-0.0] PASSED [ 35%]
tests/test_h3layer.py::test_h3_layer_magnifications[85.0-45.0] PASSED [ 36%]
tests/test_h3layer.py::test_h3_layer_magnifications[1.0-95.0] PASSED [ 36%]
tests/test_h3layer.py::test_h3_layer_not_clipped[0.0-0.0] PASSED [ 36%]
tests/test_h3layer.py::test_h3_layer_not_clipped[0.0-45.0] PASSED [ 36%]
tests/test_h3layer.py::test_h3_layer_not_clipped[45.0-0.0] PASSED [ 36%]
tests/test_h3layer.py::test_h3_layer_not_clipped[45.0-45.0] PASSED [ 36%]
tests/test_h3layer.py::test_h3_layer_not_clipped[85.0-0.0] PASSED [ 37%]
tests/test_h3layer.py::test_h3_layer_not_clipped[85.0-45.0] PASSED [ 37%]
tests/test_h3layer.py::test_h3_layer_not_clipped[1.0-95.0] PASSED [ 37%]
tests/test_h3layer.py::test_h3_layer_clipped[0.0-0.0] PASSED [ 37%]
tests/test_h3layer.py::test_h3_layer_clipped[0.0-45.0] PASSED [ 37%]
tests/test_h3layer.py::test_h3_layer_clipped[45.0-0.0] PASSED [ 37%]
tests/test_h3layer.py::test_h3_layer_clipped[45.0-45.0] PASSED [ 38%]
tests/test_h3layer.py::test_h3_layer_clipped[85.0-0.0] PASSED [ 38%]
tests/test_h3layer.py::test_h3_layer_clipped[85.0-45.0] PASSED [ 38%]
tests/test_h3layer.py::test_h3_layer_clipped[1.0-95.0] PASSED [ 38%]
tests/test_h3layer.py::test_h3_layer_wrapped_on_projection[50.0-179.9] PASSED [ 38%]
tests/test_h3layer.py::test_h3_layer_wrapped_on_projection[50.0--179.9] PASSED [ 38%]
tests/test_h3layer.py::test_h3_layer_overlapped PASSED [ 39%]
tests/test_intersection.py::test_find_intersection_empty_list PASSED [ 39%]
tests/test_intersection.py::test_find_intersection_single_item PASSED [ 39%]
tests/test_intersection.py::test_find_intersection_same PASSED [ 39%]
tests/test_intersection.py::test_find_intersection_subset PASSED [ 39%]
tests/test_intersection.py::test_find_intersection_overlap PASSED [ 40%]
tests/test_intersection.py::test_find_intersection_distinct PASSED [ 40%]
tests/test_intersection.py::test_find_intersection_with_constant PASSED [ 40%]
tests/test_intersection.py::test_find_intersection_different_pixel_pitch PASSED [ 40%]
tests/test_intersection.py::test_set_intersection_self[0.01] PASSED [ 40%]
tests/test_intersection.py::test_set_intersection_self[0.02] PASSED [ 40%]
tests/test_intersection.py::test_set_intersection_self[0.03] PASSED [ 41%]
tests/test_intersection.py::test_set_intersection_self[0.04] PASSED [ 41%]
tests/test_intersection.py::test_set_intersection_self[0.05] PASSED [ 41%]
tests/test_intersection.py::test_set_intersection_self[0.06] PASSED [ 41%]
tests/test_intersection.py::test_set_intersection_self[0.07] PASSED [ 41%]
tests/test_intersection.py::test_set_intersection_self[0.08] PASSED [ 41%]
tests/test_intersection.py::test_set_intersection_self[0.09] PASSED [ 42%]
tests/test_intersection.py::test_set_intersection_subset PASSED [ 42%]
tests/test_intersection.py::test_set_intersection_distinct PASSED [ 42%]
tests/test_intersection.py::test_find_intersection_nearly_same PASSED [ 42%]
tests/test_intersection.py::test_intersection_stability PASSED [ 42%]
tests/test_multiband.py::test_simple_two_band_image PASSED [ 42%]
tests/test_multiband.py::test_stack_tifs_with_area_match PASSED [ 43%]
tests/test_operators.py::test_add_byte_layers PASSED [ 43%]
tests/test_operators.py::test_error_of_pixel_scale_wrong PASSED [ 43%]
tests/test_operators.py::test_error_of_pixel_scale_wrong_three_param PASSED [ 43%]
tests/test_operators.py::test_add_byte_layers_with_callback[1-expected_steps0] PASSED [ 43%]
tests/test_operators.py::test_add_byte_layers_with_callback[2-expected_steps1] PASSED [ 43%]
tests/test_operators.py::test_sub_byte_layers PASSED [ 44%]
tests/test_operators.py::test_add_float_layers PASSED [ 44%]
tests/test_operators.py::test_sub_float_layers PASSED [ 44%]
tests/test_operators.py::test_mult_float_layers PASSED [ 44%]
tests/test_operators.py::test_add_to_float_layer_by_const[2.5] PASSED [ 44%]
tests/test_operators.py::test_add_to_float_layer_by_const[2] PASSED [ 45%]
tests/test_operators.py::test_add_to_float_layer_by_const[c2] PASSED [ 45%]
tests/test_operators.py::test_add_to_float_layer_by_const[c3] PASSED [ 45%]
tests/test_operators.py::test_sub_from_float_layer_by_const PASSED [ 45%]
tests/test_operators.py::test_mult_float_layer_by_const PASSED [ 45%]
tests/test_operators.py::test_div_float_layer_by_const PASSED [ 45%]
tests/test_operators.py::test_power_float_layer_by_const PASSED [ 46%]
tests/test_operators.py::test_simple_unary_numpy_apply PASSED [ 46%]
tests/test_operators.py::test_isin_unary_numpy_apply PASSED [ 46%]
tests/test_operators.py::test_simple_binary_numpy_apply PASSED [ 46%]
tests/test_operators.py::test_simple_unary_shader_apply PASSED [ 46%]
tests/test_operators.py::test_simple_binary_shader_apply PASSED [ 46%]
tests/test_operators.py::test_comparison_float_layer_by_const[<lambda>0] PASSED [ 47%]
tests/test_operators.py::test_comparison_float_layer_by_const[<lambda>1] PASSED [ 47%]
tests/test_operators.py::test_comparison_float_layer_by_const[<lambda>2] PASSED [ 47%]
tests/test_operators.py::test_comparison_float_layer_by_const[<lambda>3] PASSED [ 47%]
tests/test_operators.py::test_comparison_float_layer_by_const[<lambda>4] PASSED [ 47%]
tests/test_operators.py::test_comparison_float_layer_by_const[<lambda>5] PASSED [ 47%]
tests/test_operators.py::test_sum_layer PASSED [ 48%]
tests/test_operators.py::test_constant_layer_result_rhs PASSED [ 48%]
tests/test_operators.py::test_constant_layer_result_lhs PASSED [ 48%]
tests/test_operators.py::test_shader_apply_constant_lhs PASSED [ 48%]
tests/test_operators.py::test_shader_apply_constant_rhs PASSED [ 48%]
tests/test_operators.py::test_direct_layer_save PASSED [ 48%]
tests/test_operators.py::test_direct_layer_sum PASSED [ 49%]
tests/test_operators.py::test_direct_layer_sum_chunked PASSED [ 49%]
tests/test_operators.py::test_direct_layer_min PASSED [ 49%]
tests/test_operators.py::test_direct_layer_min_chunked PASSED [ 49%]
tests/test_operators.py::test_direct_layer_max PASSED [ 49%]
tests/test_operators.py::test_direct_layer_max_chunked PASSED [ 50%]
tests/test_operators.py::test_direct_layer_save_and_sum PASSED [ 50%]
tests/test_operators.py::test_add_to_float_layer_by_np_array PASSED [ 50%]
tests/test_operators.py::test_write_mulitband_raster PASSED [ 50%]
tests/test_operators.py::test_save_and_sum_float32 PASSED [ 50%]
tests/test_operators.py::test_parallel_save_and_sum_float32 PASSED [ 50%]
tests/test_operators.py::test_sum_float32 PASSED [ 51%]
tests/test_operators.py::test_and_byte_layers PASSED [ 51%]
tests/test_operators.py::test_or_byte_layers PASSED [ 51%]
tests/test_operators.py::test_and_int_layers PASSED [ 51%]
tests/test_operators.py::test_or_int_layers PASSED [ 51%]
tests/test_operators.py::test_nan_to_num PASSED [ 51%]
tests/test_operators.py::test_nan_to_num_default PASSED [ 52%]
tests/test_operators.py::test_where_simple[float] PASSED [ 52%]
tests/test_operators.py::test_where_simple[int] PASSED [ 52%]
tests/test_operators.py::test_where_simple[uint16] PASSED [ 52%]
tests/test_operators.py::test_where_simple[float32] PASSED [ 52%]
tests/test_operators.py::test_where_layers PASSED [ 52%]
tests/test_operators.py::test_isin_simple_method PASSED [ 53%]
tests/test_operators.py::test_isin_simple_module PASSED [ 53%]
tests/test_operators.py::test_layer_comparison_to_value[2.0] PASSED [ 53%]
tests/test_operators.py::test_layer_comparison_to_value[2] PASSED [ 53%]
tests/test_operators.py::test_layer_comparison_to_value[val2] PASSED [ 53%]
tests/test_operators.py::test_layer_comparison_to_value[val3] PASSED [ 53%]
tests/test_operators.py::test_layer_less_than_value PASSED [ 54%]
tests/test_operators.py::test_layer_less_than_or_equal_to_value PASSED [ 54%]
tests/test_operators.py::test_layer_greater_than_value PASSED [ 54%]
tests/test_operators.py::test_layer_greater_than_or_equal_to_value PASSED [ 54%]
tests/test_operators.py::test_layer_comparison_to_layer PASSED [ 54%]
tests/test_operators.py::test_layer_less_than_layer PASSED [ 55%]
tests/test_operators.py::test_layer_less_than_or_equal_to_layer PASSED [ 55%]
tests/test_operators.py::test_layer_greater_than_layer PASSED [ 55%]
tests/test_operators.py::test_layer_greater_than_or_equal_to_layer PASSED [ 55%]
tests/test_operators.py::test_log_method PASSED [ 55%]
tests/test_operators.py::test_log_module PASSED [ 55%]
tests/test_operators.py::test_log2 PASSED [ 56%]
tests/test_operators.py::test_log10 PASSED [ 56%]
tests/test_operators.py::test_exp_method PASSED [ 56%]
tests/test_operators.py::test_exp_module PASSED [ 56%]
tests/test_operators.py::test_exp2 PASSED [ 56%]
tests/test_operators.py::test_minimum_layers PASSED [ 56%]
tests/test_operators.py::test_maximum_layers PASSED [ 57%]
tests/test_operators.py::test_clip_both_method PASSED [ 57%]
tests/test_operators.py::test_clip_both_module PASSED [ 57%]
tests/test_operators.py::test_clip_upper_method PASSED [ 57%]
tests/test_operators.py::test_clip_upper_module PASSED [ 57%]
tests/test_operators.py::test_clip_lower_method PASSED [ 57%]
tests/test_operators.py::test_clip_lower_module PASSED [ 58%]
tests/test_optimisation.py::test_h3_vs_naive[0.0-0.0] PASSED [ 58%]
tests/test_optimisation.py::test_h3_vs_naive[0.0-45.0] PASSED [ 58%]
tests/test_optimisation.py::test_h3_vs_naive[45.0-0.0] PASSED [ 58%]
tests/test_optimisation.py::test_h3_vs_naive[45.0-45.0] PASSED [ 58%]
tests/test_optimisation.py::test_h3_vs_naive[85.0-0.0] PASSED [ 58%]
tests/test_optimisation.py::test_h3_vs_naive[85.0-45.0] PASSED [ 59%]
tests/test_optimisation.py::test_h3_vs_naive[1.0-95.0] PASSED [ 59%]
tests/test_optimisation.py::test_h3_vs_naive_for_union[0.0-0.0] PASSED [ 59%]
tests/test_optimisation.py::test_h3_vs_naive_for_union[0.0-45.0] PASSED [ 59%]
tests/test_optimisation.py::test_h3_vs_naive_for_union[45.0-0.0] PASSED [ 59%]
tests/test_optimisation.py::test_h3_vs_naive_for_union[45.0-45.0] PASSED [ 60%]
tests/test_optimisation.py::test_h3_vs_naive_for_union[85.0-0.0] PASSED [ 60%]
tests/test_optimisation.py::test_h3_vs_naive_for_union[85.0-45.0] PASSED [ 60%]
tests/test_optimisation.py::test_h3_vs_naive_for_union[1.0-95.0] PASSED [ 60%]
tests/test_optimisation.py::test_h3_vs_naive_for_intersection[0.0-0.0] PASSED [ 60%]
tests/test_optimisation.py::test_h3_vs_naive_for_intersection[0.0-45.0] PASSED [ 60%]
tests/test_optimisation.py::test_h3_vs_naive_for_intersection[45.0-0.0] PASSED [ 61%]
tests/test_optimisation.py::test_h3_vs_naive_for_intersection[45.0-45.0] PASSED [ 61%]
tests/test_optimisation.py::test_h3_vs_naive_for_intersection[85.0-0.0] PASSED [ 61%]
tests/test_optimisation.py::test_h3_vs_naive_for_intersection[85.0-45.0] PASSED [ 61%]
tests/test_optimisation.py::test_h3_vs_naive_for_intersection[1.0-95.0] PASSED [ 61%]
tests/test_optimisation.py::test_cells_dont_overlap[87a968290ffffff] PASSED [ 61%]
tests/test_optimisation.py::test_cells_dont_overlap[87a9680e0ffffff] PASSED [ 62%]
tests/test_optimisation.py::test_cells_dont_overlap[87a96811cffffff] PASSED [ 62%]
tests/test_optimisation.py::test_cells_dont_overlap[87a968293ffffff] PASSED [ 62%]
tests/test_optimisation.py::test_cells_dont_overlap[87a968768ffffff] PASSED [ 62%]
tests/test_optimisation.py::test_cells_dont_overlap[87a968893ffffff] PASSED [ 62%]
tests/test_optimisation.py::test_cells_dont_overlap[87a968000ffffff] PASSED [ 62%]
tests/test_optimisation.py::test_cells_dont_overlap[87a96b934ffffff] PASSED [ 63%]
tests/test_optimisation.py::test_cells_dont_overlap[87a968130ffffff] PASSED [ 63%]
tests/test_parallel_operators.py::test_add_byte_layers PASSED [ 63%]
tests/test_parallel_operators.py::test_parallel_with_different_skip[1-expected_steps0] PASSED [ 63%]
tests/test_parallel_operators.py::test_parallel_with_different_skip[2-expected_steps1] PASSED [ 63%]
tests/test_parallel_operators.py::test_parallel_unary_numpy_apply_with_function PASSED [ 63%]
tests/test_parallel_operators.py::test_parallel_unary_numpy_apply_with_lambda PASSED [ 64%]
tests/test_parallel_operators.py::test_parallel_where_simple PASSED [ 64%]
tests/test_pickle.py::test_pickle_raster_layer PASSED [ 64%]
tests/test_pickle.py::test_pickle_raster_mem_layer_fails PASSED [ 64%]
tests/test_pickle.py::test_pickle_dyanamic_vector_layer PASSED [ 64%]
tests/test_pickle.py::test_pickle_uniform_area_layer PASSED [ 65%]
tests/test_pickle.py::test_pickle_group_layer PASSED [ 65%]
tests/test_pickle.py::test_pickle_constant_layer[2.5] PASSED [ 65%]
tests/test_pickle.py::test_pickle_constant_layer[2] PASSED [ 65%]
tests/test_pickle.py::test_pickle_constant_layer[c2] PASSED [ 65%]
tests/test_pickle.py::test_pickle_constant_layer[c3] PASSED [ 65%]
tests/test_pickle.py::test_pickle_simple_calc[2.5] PASSED [ 66%]
tests/test_pickle.py::test_pickle_simple_calc[2] PASSED [ 66%]
tests/test_pickle.py::test_pickle_simple_calc[c2] PASSED [ 66%]
tests/test_pickle.py::test_pickle_simple_calc[c3] PASSED [ 66%]
tests/test_pickle.py::test_pickle_lambda_calc PASSED [ 66%]
tests/test_pickle.py::test_pickle_func_calc PASSED [ 66%]
tests/test_pickle.py::test_pickle_rescaled_raster_layer PASSED [ 67%]
tests/test_raster.py::test_make_basic_layer PASSED [ 67%]
tests/test_raster.py::test_make_basic_layer_old_name PASSED [ 67%]
tests/test_raster.py::test_layer_from_null PASSED [ 67%]
tests/test_raster.py::test_layer_from_nonexistent_file PASSED [ 67%]
tests/test_raster.py::test_open_file PASSED [ 67%]
tests/test_raster.py::test_empty_layers_are_pixel_aligned[initial_area0] PASSED [ 68%]
tests/test_raster.py::test_empty_layers_are_pixel_aligned[initial_area1] PASSED [ 68%]
tests/test_raster.py::test_empty_layers_are_pixel_aligned[initial_area2] PASSED [ 68%]
tests/test_raster.py::test_empty_layers_are_pixel_aligned[initial_area3] PASSED [ 68%]
tests/test_raster.py::test_empty_layers_are_pixel_aligned[initial_area4] PASSED [ 68%]
tests/test_raster.py::test_empty_layer_from_raster PASSED [ 68%]
tests/test_raster.py::test_empty_layer_from_raster_with_no_data_value[0] PASSED [ 69%]
tests/test_raster.py::test_empty_layer_from_raster_with_no_data_value[0.0] PASSED [ 69%]
tests/test_raster.py::test_empty_layer_from_raster_with_no_data_value[2] PASSED [ 69%]
tests/test_raster.py::test_empty_layer_from_raster_with_no_data_value[2.0] PASSED [ 69%]
tests/test_raster.py::test_empty_layer_from_raster_with_new_smaller_area PASSED [ 69%]
tests/test_raster.py::test_empty_layer_from_raster_new_datatype PASSED [ 70%]
tests/test_raster.py::test_empty_layer_from_raster_with_window PASSED [ 70%]
tests/test_raster.py::test_layer_with_positive_offset PASSED [ 70%]
tests/test_raster.py::test_layer_with_zero_offset PASSED [ 70%]
tests/test_raster.py::test_layer_with_negative_offset PASSED [ 70%]
tests/test_raster.py::test_layer_with_excessive_negative_offset PASSED [ 70%]
tests/test_raster.py::test_layer_offsets_accumulate PASSED [ 71%]
tests/test_raster.py::test_scale_up PASSED [ 71%]
tests/test_raster.py::test_scale_down PASSED [ 71%]
tests/test_raster.py::test_read_array_size[size0-True] PASSED [ 71%]
tests/test_raster.py::test_read_array_size[size1-True] PASSED [ 71%]
tests/test_raster.py::test_read_array_size[size2-True] PASSED [ 71%]
tests/test_raster.py::test_read_array_size[size3-False] PASSED [ 72%]
tests/test_raster.py::test_read_array_size[size4-False] PASSED [ 72%]
tests/test_raster.py::test_invalid_band PASSED [ 72%]
tests/test_raster.py::test_multiband_raster PASSED [ 72%]
tests/test_rescaling.py::test_simple_scale_down PASSED [ 72%]
tests/test_rescaling.py::test_simple_scale_up PASSED [ 72%]
tests/test_rescaling.py::test_scaling_up_pixels PASSED [ 73%]
tests/test_rescaling.py::test_scaling_down_pixels PASSED [ 73%]
tests/test_rescaling.py::test_rescaled_up_in_operation PASSED [ 73%]
tests/test_rescaling.py::test_rescaled_down_in_operation PASSED [ 73%]
tests/test_rescaling.py::test_rescaled_up_with_window_set PASSED [ 73%]
tests/test_rescaling.py::test_rescaled_up_with_window_set_2 PASSED [ 73%]
tests/test_rescaling.py::test_rescaled_down_with_window_set PASSED [ 74%]
tests/test_rounding.py::test_almost_equal[1.0-1.0-True] PASSED [ 74%]
tests/test_rounding.py::test_almost_equal[1.0-1.1-False] PASSED [ 74%]
tests/test_rounding.py::test_almost_equal[1.1102230246251565e-16-0.0-True] PASSED [ 74%]
tests/test_rounding.py::test_almost_equal[4.440892098500626e-16-0.0-False] PASSED [ 74%]
tests/test_rounding.py::test_pixel_rounding_up[8033.000000000001-0.0008983152841195215-8033] PASSED [ 75%]
tests/test_rounding.py::test_pixel_rounding_up[8033.001-0.0008983152841195215-8033] PASSED [ 75%]
tests/test_rounding.py::test_pixel_rounding_up[8033.01-0.0008983152841195215-8034] PASSED [ 75%]
tests/test_rounding.py::test_pixel_rounding_up[8032.999999999999-0.0008983152841195215-8033] PASSED [ 75%]
tests/test_rounding.py::test_pixel_rounding_down[55.99999999999926-0.0008983152841195215-56] PASSED [ 75%]
tests/test_rounding.py::test_pixel_rounding_down[55.998-0.0008983152841195215-56] PASSED [ 75%]
tests/test_rounding.py::test_pixel_rounding_down[55.98-0.0008983152841195215-55] PASSED [ 76%]
tests/test_rounding.py::test_pixel_rounding_down[55.000000000001-0.0008983152841195215-55] PASSED [ 76%]
tests/test_rounding.py::test_pixel_scale_comparison[pixel_scales0-True] PASSED [ 76%]
tests/test_rounding.py::test_pixel_scale_comparison[pixel_scales1-True] PASSED [ 76%]
tests/test_rounding.py::test_pixel_scale_comparison[pixel_scales2-True] PASSED [ 76%]
tests/test_rounding.py::test_pixel_scale_comparison[pixel_scales3-True] PASSED [ 76%]
tests/test_rounding.py::test_pixel_scale_comparison[pixel_scales4-True] PASSED [ 77%]
tests/test_rounding.py::test_pixel_scale_comparison[pixel_scales5-False] PASSED [ 77%]
tests/test_save_with_window.py::test_add_byte_layers_with_union PASSED [ 77%]
tests/test_save_with_window.py::test_add_byte_layers_with_intersection_with_max_save_raster PASSED [ 77%]
tests/test_save_with_window.py::test_add_byte_layers_with_intersection_with_min_save_raster PASSED [ 77%]
tests/test_sum_with_window.py::test_sum_sans_window_update PASSED [ 77%]
tests/test_sum_with_window.py::test_sum_with_union PASSED [ 78%]
tests/test_sum_with_window.py::test_sum_with_intersection PASSED [ 78%]
tests/test_sum_with_window.py::test_save_with_sum_with_union PASSED [ 78%]
tests/test_sum_with_window.py::test_save_with_sum_with_intersection PASSED [ 78%]
tests/test_uniform_area_layer.py::test_open_uniform_area_layer[1.0] PASSED [ 78%]
tests/test_uniform_area_layer.py::test_open_uniform_area_layer[0.2345678] PASSED [ 78%]
tests/test_uniform_area_layer.py::test_incorrect_tiff_for_uniform_area PASSED [ 79%]
tests/test_uniform_area_layer.py::test_set_intersection PASSED [ 79%]
tests/test_union.py::test_find_union_empty_list PASSED [ 79%]
tests/test_union.py::test_find_union_single_item PASSED [ 79%]
tests/test_union.py::test_find_union_same PASSED [ 79%]
tests/test_union.py::test_find_union_subset PASSED [ 80%]
tests/test_union.py::test_find_union_overlap PASSED [ 80%]
tests/test_union.py::test_find_union_distinct PASSED [ 80%]
tests/test_union.py::test_find_union_with_null PASSED [ 80%]
tests/test_union.py::test_find_union_different_pixel_pitch PASSED [ 80%]
tests/test_union.py::test_set_union_self[0.01] PASSED [ 80%]
tests/test_union.py::test_set_union_self[0.02] PASSED [ 81%]
tests/test_union.py::test_set_union_self[0.03] PASSED [ 81%]
tests/test_union.py::test_set_union_self[0.04] PASSED [ 81%]
tests/test_union.py::test_set_union_self[0.05] PASSED [ 81%]
tests/test_union.py::test_set_union_self[0.06] PASSED [ 81%]
tests/test_union.py::test_set_union_self[0.07] PASSED [ 81%]
tests/test_union.py::test_set_union_self[0.08] PASSED [ 82%]
tests/test_union.py::test_set_union_self[0.09] PASSED [ 82%]
tests/test_union.py::test_set_union_superset[1-1-0-0] PASSED [ 82%]
tests/test_union.py::test_set_union_superset[0-1-0-0] PASSED [ 82%]
tests/test_union.py::test_set_union_superset[1-0-0-0] PASSED [ 82%]
tests/test_union.py::test_set_union_superset[0-0-0-0] PASSED [ 82%]
tests/test_union.py::test_set_union_superset[1-1-1-0] PASSED [ 83%]
tests/test_union.py::test_set_union_superset[0-1-1-0] PASSED [ 83%]
tests/test_union.py::test_set_union_superset[1-0-1-0] PASSED [ 83%]
tests/test_union.py::test_set_union_superset[0-0-1-0] PASSED [ 83%]
tests/test_union.py::test_set_union_superset[1-1-0-1] PASSED [ 83%]
tests/test_union.py::test_set_union_superset[0-1-0-1] PASSED [ 83%]
tests/test_union.py::test_set_union_superset[1-0-0-1] PASSED [ 84%]
tests/test_union.py::test_set_union_superset[0-0-0-1] PASSED [ 84%]
tests/test_union.py::test_set_union_superset[1-1-1-1] PASSED [ 84%]
tests/test_union.py::test_set_union_superset[0-1-1-1] PASSED [ 84%]
tests/test_union.py::test_set_union_superset[1-0-1-1] PASSED [ 84%]
tests/test_union.py::test_set_union_superset[0-0-1-1] PASSED [ 85%]
tests/test_vectors.py::test_basic_vector_layer_no_filter_match PASSED [ 85%]
tests/test_vectors.py::test_basic_dyanamic_vector_layer PASSED [ 85%]
tests/test_vectors.py::test_old_dyanamic_vector_layer PASSED [ 85%]
tests/test_vectors.py::test_rastered_vector_layer PASSED [ 85%]
tests/test_vectors.py::test_old_rastered_vector_layer PASSED [ 85%]
tests/test_vectors.py::test_basic_dynamic_vector_layer_no_filter_match PASSED [ 86%]
tests/test_vectors.py::test_multi_area_vector PASSED [ 86%]
tests/test_vectors.py::test_empty_layer_from_vector PASSED [ 86%]
tests/test_vectors.py::test_vector_layers_with_default_burn_value[VectorLayer] PASSED [ 86%]
tests/test_vectors.py::test_vector_layers_with_default_burn_value[RasteredVectorLayer] PASSED [ 86%]
tests/test_vectors.py::test_vector_layers_with_fixed_burn_value[VectorLayer] PASSED [ 86%]
tests/test_vectors.py::test_vector_layers_with_fixed_burn_value[RasteredVectorLayer] PASSED [ 87%]
tests/test_vectors.py::test_vector_layers_with_default_burn_value_and_filter[VectorLayer] PASSED [ 87%]
tests/test_vectors.py::test_vector_layers_with_default_burn_value_and_filter[RasteredVectorLayer] PASSED [ 87%]
tests/test_vectors.py::test_vector_layers_with_invalid_burn_value[VectorLayer] PASSED [ 87%]
tests/test_vectors.py::test_vector_layers_with_invalid_burn_value[RasteredVectorLayer] PASSED [ 87%]
tests/test_vectors.py::test_vector_layers_with_field_value[VectorLayer] PASSED [ 87%]
tests/test_vectors.py::test_vector_layers_with_field_value[RasteredVectorLayer] PASSED [ 88%]
tests/test_vectors.py::test_vector_layers_with_guessed_type_burn_value[1-1] PASSED [ 88%]
tests/test_vectors.py::test_vector_layers_with_guessed_type_burn_value[42-1] PASSED [ 88%]
tests/test_vectors.py::test_vector_layers_with_guessed_type_burn_value[-1-3] PASSED [ 88%]
tests/test_vectors.py::test_vector_layers_with_guessed_type_burn_value[1024-2] PASSED [ 88%]
tests/test_vectors.py::test_vector_layers_with_guessed_type_burn_value[1048576-4] PASSED [ 88%]
tests/test_vectors.py::test_vector_layers_with_guessed_type_burn_value[-1048576-5] PASSED [ 89%]
tests/test_vectors.py::test_vector_layers_with_guessed_type_burn_value[1.0-7] PASSED [ 89%]
tests/test_vectors.py::test_vector_layers_with_different_type_burn_value[1-1] PASSED [ 89%]
tests/test_vectors.py::test_vector_layers_with_different_type_burn_value[42-1] PASSED [ 89%]
tests/test_vectors.py::test_vector_layers_with_different_type_burn_value[1-3] PASSED [ 89%]
tests/test_vectors.py::test_vector_layers_with_different_type_burn_value[42-3] PASSED [ 90%]
tests/test_vectors.py::test_vector_layers_with_different_type_burn_value[1024-3] PASSED [ 90%]
tests/test_vectors.py::test_vector_layers_with_different_type_burn_value[1.0-6] PASSED [ 90%]
tests/test_vectors.py::test_vector_layers_with_different_type_burn_value[0.5-6] PASSED [ 90%]
tests/test_vectors.py::test_vector_layers_with_different_type_burn_value[1.0-7] PASSED [ 90%]
tests/test_vectors.py::test_vector_layers_with_guess_field_type_burn_value[1-13] PASSED [ 90%]
tests/test_vectors.py::test_vector_layers_with_guess_field_type_burn_value[1.0-7] PASSED [ 91%]
tests/test_vectors.py::test_read_array_size[size0-True] PASSED [ 91%]
tests/test_vectors.py::test_read_array_size[size1-True] PASSED [ 91%]
tests/test_vectors.py::test_read_array_size[size2-True] PASSED [ 91%]
tests/test_vectors.py::test_read_array_size[size3-False] PASSED [ 91%]
tests/test_vectors.py::test_read_array_size[size4-False] PASSED [ 91%]
tests/test_vectors.py::test_anchor_offsets[anchor0-area0-expected0] PASSED [ 92%]
tests/test_vectors.py::test_anchor_offsets[anchor1-area1-expected1] PASSED [ 92%]
tests/test_vectors.py::test_anchor_offsets[anchor2-area2-expected2] PASSED [ 92%]
tests/test_vectors.py::test_anchor_offsets[anchor3-area3-expected3] PASSED [ 92%]
tests/test_vectors.py::test_anchor_offsets[anchor4-area4-expected4] PASSED [ 92%]
tests/test_vectors.py::test_anchor_offsets[anchor5-area5-expected5] PASSED [ 92%]
tests/test_vectors.py::test_anchor_offsets[anchor6-area6-expected6] PASSED [ 93%]
tests/test_vectors.py::test_anchor_offsets[anchor7-area7-expected7] PASSED [ 93%]
tests/test_vectors.py::test_anchor_offsets[anchor8-area8-expected8] PASSED [ 93%]
tests/test_vectors.py::test_anchor_offsets[anchor9-area9-expected9] PASSED [ 93%]
tests/test_vectors.py::test_anchor_offsets[anchor10-area10-expected10] PASSED [ 93%]
tests/test_vectors.py::test_anchor_offsets[anchor11-area11-expected11] PASSED [ 93%]
tests/test_vectors.py::test_anchor_offsets[anchor12-area12-expected12] PASSED [ 94%]
tests/test_vectors.py::test_anchor_offsets[anchor13-area13-expected13] PASSED [ 94%]
tests/test_vectors.py::test_anchor_offsets[anchor14-area14-expected14] PASSED [ 94%]
tests/test_vectors.py::test_anchor_offsets[anchor15-area15-expected15] PASSED [ 94%]
tests/test_vectors.py::test_anchor_offsets[anchor16-area16-expected16] PASSED [ 94%]
tests/test_vectors.py::test_anchor_offsets[anchor17-area17-expected17] PASSED [ 95%]
tests/test_vectors.py::test_vector_layers_with_empty_features[VectorLayer] PASSED [ 95%]
tests/test_vectors.py::test_vector_layers_with_empty_features[RasteredVectorLayer] PASSED [ 95%]
tests/test_window.py::test_window_operators[lhs0-rhs0-False-True] PASSED [ 95%]
tests/test_window.py::test_window_operators[lhs1-rhs1-False-True] PASSED [ 95%]
tests/test_window.py::test_window_operators[lhs2-rhs2-False-True] PASSED [ 95%]
tests/test_window.py::test_window_operators[lhs3-rhs3-False-True] PASSED [ 96%]
tests/test_window.py::test_window_operators[lhs4-rhs4-False-True] PASSED [ 96%]
tests/test_window.py::test_window_operators[lhs5-rhs5-False-True] PASSED [ 96%]
tests/test_window.py::test_window_operators[lhs6-rhs6-False-True] PASSED [ 96%]
tests/test_window.py::test_window_operators[lhs7-rhs7-False-False] PASSED [ 96%]
tests/test_window.py::test_window_operators[lhs8-rhs8-False-False] PASSED [ 96%]
tests/test_window.py::test_window_operators[lhs9-rhs9-False-False] PASSED [ 97%]
tests/test_window.py::test_window_operators[lhs10-rhs10-False-False] PASSED [ 97%]
tests/test_window.py::test_window_operators[lhs11-rhs11-True-False] PASSED [ 97%]
tests/test_window.py::test_window_operators[lhs12-rhs12-True-False] PASSED [ 97%]
tests/test_window.py::test_window_operators[lhs13-rhs13-True-False] PASSED [ 97%]
tests/test_window.py::test_window_operators[lhs14-rhs14-True-False] PASSED [ 97%]
tests/test_window.py::test_window_operators[lhs15-rhs15-False-False] PASSED [ 98%]
tests/test_window.py::test_window_operators[lhs16-rhs16-False-False] PASSED [ 98%]
tests/test_window.py::test_window_operators[lhs17-rhs17-False-False] PASSED [ 98%]
tests/test_window.py::test_window_operators[lhs18-rhs18-False-False] PASSED [ 98%]
tests/test_window.py::test_window_operators[lhs19-rhs19-True-False] PASSED [ 98%]
tests/test_window.py::test_window_operators[lhs20-rhs20-True-False] PASSED [ 98%]
tests/test_window.py::test_find_intersection_empty_list PASSED [ 99%]
tests/test_window.py::test_find_intersection_single_item PASSED [ 99%]
tests/test_window.py::test_find_intersection_same PASSED [ 99%]
tests/test_window.py::test_find_intersection_subset PASSED [ 99%]
tests/test_window.py::test_find_intersection_overlap PASSED [ 99%]
tests/test_window.py::test_find_intersection_distinct PASSED [100%]
============================= 580 passed in 24.41s =============================
---> Removed intermediate container ca75222edfd0
---> f8d8caa7991f
Step 10/10 : RUN python -m pylint yirgacheffe
---> Running in 43f0cde13f50
------------------------------------
Your code has been rated at 10.00/10
---> Removed intermediate container 43f0cde13f50
---> c9c4b10f06c1
Successfully built c9c4b10f06c1
2025-03-27 11:07.54: Job succeeded