From 85ed17dcca9390d5d6a77b3718259eff6bd2be2a Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Tue, 5 May 2026 17:01:42 +0200 Subject: [PATCH 01/18] perf: session-scope blobs fixtures to cut setup time by ~10s Cache `blobs(256, 300, 3)` and `BlobsDataset()._labels_blobs()` once per session via private session-scoped fixtures, then deepcopy into each function-scoped fixture. Cuts fixture setup from 44.8s to 35.0s (-9.8s) and total suite from 186s to 180s. All 1332 tests still pass. Benchmark CSVs committed for reference (pytest_*.csv). Co-Authored-By: Claude Sonnet 4.6 --- pytest_before_after.csv | 32 + pytest_by_file.csv | 32 + pytest_by_test.csv | 234 +++++++ pytest_durations.csv | 1171 ++++++++++++++++++++++++++++++++++ pytest_fixture_benchmark.csv | 16 + pytest_summary.csv | 9 + tests/conftest.py | 20 +- 7 files changed, 1509 insertions(+), 5 deletions(-) create mode 100644 pytest_before_after.csv create mode 100644 pytest_by_file.csv create mode 100644 pytest_by_test.csv create mode 100644 pytest_durations.csv create mode 100644 pytest_fixture_benchmark.csv create mode 100644 pytest_summary.csv diff --git a/pytest_before_after.csv b/pytest_before_after.csv new file mode 100644 index 000000000..3902a1efb --- /dev/null +++ b/pytest_before_after.csv @@ -0,0 +1,32 @@ +file,setup_before_s,setup_after_s,setup_delta_s,call_before_s,call_after_s,call_delta_s +tests/dataloader/test_datasets.py,7.34,1.02,-6.32,16.05,16.73,0.68 +tests/core/operations/test_map.py,2.73,0.62,-2.11,0.11,0.12,0.01 +tests/core/operations/test_aggregations.py,2.58,1.16,-1.42,1.83,2.39,0.56 +tests/core/query/test_relational_query.py,1.77,1.24,-0.53,0.18,0.22,0.04 +tests/core/operations/test_rasterize_bins.py,0.0,0.0,0.0,0.73,0.9,0.17 +tests/core/operations/test_vectorize.py,0.0,0.0,0.0,6.37,6.9,0.53 +tests/core/query/test_relational_query_match_sdata_to_table.py,0.0,0.0,0.0,0.41,0.47,0.06 +tests/core/test_data_extent.py,0.0,0.0,0.0,0.47,0.66,0.19 +tests/datasets/test_datasets.py,0.0,0.0,0.0,0.67,0.69,0.02 +tests/io/test_attrs_io.py,0.0,0.0,0.0,0.03,0.03,0.0 +tests/io/test_metadata.py,1.16,1.16,0.0,11.31,11.31,0.0 +tests/io/test_multi_table.py,0.72,0.72,0.0,3.16,3.13,-0.03 +tests/io/test_pyramids_performance.py,0.23,0.23,0.0,0.44,0.45,0.01 +tests/io/test_readwrite.py,6.03,6.03,0.0,56.79,57.13,0.34 +tests/io/test_utils.py,0.14,0.14,0.0,0.93,1.16,0.23 +tests/models/test_pyramids_utils.py,0.0,0.0,0.0,0.14,0.15,0.01 +tests/transformations/test_transformations.py,0.04,0.04,0.0,1.02,1.05,0.03 +tests/transformations/test_transformations_utils.py,0.09,0.09,0.0,0.01,0.01,0.0 +tests/utils/test_sanitize.py,0.09,0.09,0.0,0.0,0.0,0.0 +tests/utils/test_testing.py,0.09,0.09,0.0,0.15,0.17,0.02 +tests/core/operations/test_rasterize.py,0.08,0.09,0.01,5.93,6.35,0.42 +tests/core/test_centroids.py,0.68,0.69,0.01,1.11,1.14,0.03 +tests/core/test_deepcopy.py,0.08,0.09,0.01,0.19,0.2,0.01 +tests/io/test_format.py,0.41,0.42,0.01,6.41,6.33,-0.08 +tests/models/test_models.py,3.75,3.76,0.01,7.62,7.79,0.17 +tests/utils/test_element_utils.py,0.08,0.09,0.01,0.45,0.48,0.03 +tests/core/query/test_spatial_query.py,3.33,3.39,0.06,3.8,3.91,0.11 +tests/core/operations/test_transform.py,1.41,1.48,0.07,3.95,3.98,0.03 +tests/core/operations/test_spatialdata_operations.py,0.99,1.1,0.11,4.99,5.58,0.59 +tests/core/test_get_attrs.py,2.42,2.54,0.12,0.25,0.25,0.0 +tests/io/test_partial_read.py,8.54,8.71,0.17,1.0,1.02,0.02 diff --git a/pytest_by_file.csv b/pytest_by_file.csv new file mode 100644 index 000000000..557d8a236 --- /dev/null +++ b/pytest_by_file.csv @@ -0,0 +1,32 @@ +file,total_s,call_s,setup_s,teardown_s,n_tests,avg_call_s +tests/io/test_readwrite.py,62.82,56.79,6.03,0.0,103,0.551 +tests/dataloader/test_datasets.py,23.39,16.05,7.34,0.0,49,0.328 +tests/io/test_metadata.py,12.47,11.31,1.16,0.0,14,0.808 +tests/models/test_models.py,11.37,7.62,3.75,0.0,172,0.044 +tests/io/test_partial_read.py,9.54,1.0,8.54,0.0,20,0.05 +tests/core/query/test_spatial_query.py,7.13,3.8,3.33,0.0,171,0.022 +tests/io/test_format.py,6.82,6.41,0.41,0.0,10,0.641 +tests/core/operations/test_vectorize.py,6.37,6.37,0.0,0.0,7,0.91 +tests/core/operations/test_rasterize.py,6.01,5.93,0.08,0.0,7,0.847 +tests/core/operations/test_spatialdata_operations.py,5.98,4.99,0.99,0.0,18,0.277 +tests/core/operations/test_transform.py,5.36,3.95,1.41,0.0,20,0.197 +tests/core/operations/test_aggregations.py,4.41,1.83,2.58,0.0,50,0.037 +tests/io/test_multi_table.py,3.88,3.16,0.72,0.0,9,0.351 +tests/core/operations/test_map.py,2.84,0.11,2.73,0.0,7,0.016 +tests/core/test_get_attrs.py,2.67,0.25,2.42,0.0,1,0.25 +tests/core/query/test_relational_query.py,1.95,0.18,1.77,0.0,10,0.018 +tests/core/test_centroids.py,1.79,1.11,0.68,0.0,26,0.043 +tests/io/test_utils.py,1.07,0.93,0.14,0.0,4,0.232 +tests/transformations/test_transformations.py,1.06,1.02,0.04,0.0,5,0.204 +tests/core/operations/test_rasterize_bins.py,0.73,0.73,0.0,0.0,19,0.038 +tests/datasets/test_datasets.py,0.67,0.67,0.0,0.0,1,0.67 +tests/io/test_pyramids_performance.py,0.67,0.44,0.23,0.0,4,0.11 +tests/utils/test_element_utils.py,0.53,0.45,0.08,0.0,1,0.45 +tests/core/test_data_extent.py,0.47,0.47,0.0,0.0,11,0.043 +tests/core/query/test_relational_query_match_sdata_to_table.py,0.41,0.41,0.0,0.0,2,0.205 +tests/core/test_deepcopy.py,0.27,0.19,0.08,0.0,1,0.19 +tests/utils/test_testing.py,0.88,0.15,0.09,0.64,1,0.15 +tests/models/test_pyramids_utils.py,0.14,0.14,0.0,0.0,4,0.035 +tests/transformations/test_transformations_utils.py,0.1,0.01,0.09,0.0,1,0.01 +tests/utils/test_sanitize.py,0.09,0.0,0.09,0.0,0,0 +tests/io/test_attrs_io.py,0.03,0.03,0.0,0.0,3,0.01 diff --git a/pytest_by_test.csv b/pytest_by_test.csv new file mode 100644 index 000000000..7757d844a --- /dev/null +++ b/pytest_by_test.csv @@ -0,0 +1,234 @@ +test_name,file,total_s,call_s,setup_s,n_variants,avg_call_s +test_validation,tests/dataloader/test_datasets.py,12.19,9.14,3.05,20,0.457 +test_roundtrip,tests/io/test_readwrite.py,10.18,9.62,0.56,14,0.687 +test_delete_element_from_disk,tests/io/test_readwrite.py,9.97,9.06,0.91,10,0.906 +test_incremental_io_on_disk,tests/io/test_readwrite.py,9.08,8.35,0.73,8,1.044 +test_element_already_on_disk_different_type,tests/io/test_readwrite.py,8.78,7.69,1.09,10,0.769 +test_read_zarr_with_error,tests/io/test_partial_read.py,8.71,0.17,8.54,4,0.043 +test_labels_2d_to_circles,tests/core/operations/test_vectorize.py,6.22,6.22,0.0,2,3.11 +test_return_annot,tests/dataloader/test_datasets.py,6.17,3.93,2.24,15,0.262 +test_save_transformations_incremental,tests/io/test_metadata.py,6.0,5.63,0.37,4,1.407 +test_default,tests/dataloader/test_datasets.py,4.0,2.54,1.46,10,0.254 +test_self_contained,tests/io/test_readwrite.py,3.65,3.46,0.19,2,1.73 +test_model_invalid_names,tests/models/test_models.py,3.15,0.0,3.15,0,0 +test_points_model,tests/models/test_models.py,2.95,2.95,0.0,80,0.037 +test_validate_can_write_metadata_on_element,tests/io/test_metadata.py,2.61,2.25,0.36,4,0.562 +test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py,2.47,0.64,1.83,6,0.107 +test_change_path_of_subset,tests/io/test_readwrite.py,2.41,2.23,0.18,2,1.115 +test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py,2.0,2.0,0.0,4,0.5 +test_query_raster,tests/core/query/test_spatial_query.py,1.99,1.99,0.0,128,0.016 +test_container_v1_to_v2,tests/io/test_format.py,1.91,1.82,0.09,1,1.82 +test_rasterize_points,tests/core/operations/test_rasterize.py,1.89,1.89,0.0,1,1.89 +test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py,1.85,1.67,0.18,2,0.835 +test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py,1.83,1.65,0.18,2,0.825 +test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py,1.82,1.62,0.2,2,0.81 +test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py,1.77,1.59,0.18,2,0.795 +test_raster_schema,tests/models/test_models.py,1.71,1.71,0.0,64,0.027 +test_transform_raster,tests/core/operations/test_transform.py,1.69,1.36,0.33,4,0.34 +test_categories_on_partitioned_dataframe,tests/models/test_models.py,1.68,1.53,0.15,1,1.53 +test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py,1.64,1.25,0.39,2,0.625 +test_rasterize_shapes,tests/core/operations/test_rasterize.py,1.64,1.64,0.0,1,1.64 +test_get_centroids_labels,tests/core/test_centroids.py,1.55,0.91,0.64,16,0.057 +test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py,1.48,1.32,0.16,2,0.66 +test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py,1.42,1.25,0.17,2,0.625 +test_consolidated_metadata,tests/io/test_metadata.py,1.39,1.3,0.09,1,1.3 +test_attributes_are_copied,tests/core/query/test_spatial_query.py,1.38,0.1,1.28,8,0.012 +test_rasterize_points_shapes_with_string_index,tests/core/operations/test_rasterize.py,1.35,1.35,0.0,1,1.35 +test_query_affine_transformation,tests/core/query/test_spatial_query.py,1.26,0.27,0.99,12,0.023 +test_single_table_multiple_annotations,tests/io/test_readwrite.py,1.2,1.1,0.1,2,0.55 +test_tables_v1_to_v2,tests/io/test_format.py,1.12,1.08,0.04,1,1.08 +test_single_table_single_annotation,tests/io/test_readwrite.py,1.11,1.03,0.08,2,0.515 +test_multiple_tables,tests/io/test_readwrite.py,1.1,1.1,0.0,2,0.55 +test_save_all_metadata,tests/io/test_metadata.py,1.05,0.96,0.09,1,0.96 +test_io_and_lazy_loading_raster,tests/io/test_readwrite.py,1.04,0.87,0.17,2,0.435 +test_multiscale_images,tests/dataloader/test_datasets.py,1.03,0.44,0.59,4,0.11 +test_concatenate_merge_coordinate_systems_on_name,tests/core/operations/test_spatialdata_operations.py,1.02,1.02,0.0,2,0.51 +test_set_get_tables_from_spatialdata,tests/io/test_multi_table.py,1.0,0.91,0.09,1,0.91 +test_channel_names_raster_images_v1_to_v2_to_v3,tests/io/test_format.py,0.91,0.86,0.05,1,0.86 +test_raster_images_v1_to_v2_to_v3,tests/io/test_format.py,0.91,0.86,0.05,1,0.86 +test_raster_labels_v1_to_v2_to_v3,tests/io/test_format.py,0.9,0.86,0.04,1,0.86 +test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py,0.84,0.68,0.16,2,0.34 +test_transform_points_with_multiple_partitions,tests/core/operations/test_transform.py,0.84,0.76,0.08,1,0.76 +test_read_zarr_with_warnings,tests/io/test_partial_read.py,0.83,0.83,0.0,16,0.052 +test_warning_on_large_chunks,tests/models/test_models.py,0.82,0.82,0.0,1,0.82 +test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py,0.79,0.62,0.17,2,0.31 +test_format_raster_v1_v2_v3,tests/io/test_format.py,0.75,0.61,0.14,3,0.203 +test_save_channel_names_incremental,tests/io/test_metadata.py,0.72,0.57,0.15,3,0.19 +test_rasterize_bins,tests/core/operations/test_rasterize_bins.py,0.72,0.72,0.0,18,0.04 +test_spatial_query_different_axes,tests/core/query/test_spatial_query.py,0.72,0.07,0.65,4,0.018 +test_rasterize_raster,tests/core/operations/test_rasterize.py,0.71,0.71,0.0,2,0.355 +test_save_transformations,tests/io/test_metadata.py,0.7,0.6,0.1,1,0.6 +test_datasets,tests/datasets/test_datasets.py,0.67,0.67,0.0,1,0.67 +test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py,0.67,0.44,0.23,4,0.11 +test_images,tests/io/test_readwrite.py,0.63,0.53,0.1,2,0.265 +test_labels,tests/io/test_readwrite.py,0.61,0.53,0.08,2,0.265 +test_map_raster,tests/core/operations/test_map.py,0.58,0.02,0.56,2,0.01 +test_query_spatial_data,tests/core/query/test_spatial_query.py,0.58,0.49,0.09,1,0.49 +test_set_table_annotates_spatialelement,tests/io/test_multi_table.py,0.55,0.46,0.09,1,0.46 +test_unpad_raster,tests/utils/test_element_utils.py,0.53,0.45,0.08,1,0.45 +test_query_points,tests/core/query/test_spatial_query.py,0.53,0.53,0.0,10,0.053 +test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py,0.52,0.32,0.2,20,0.016 +test_aggregate_image_by_labels,tests/core/operations/test_aggregations.py,0.51,0.49,0.02,1,0.49 +test_keep_string_coordinates_c,tests/transformations/test_transformations.py,0.51,0.51,0.0,2,0.255 +test_keep_numerical_coordinates_c,tests/transformations/test_transformations.py,0.5,0.5,0.0,2,0.25 +test_single_table,tests/io/test_multi_table.py,0.48,0.48,0.0,2,0.24 +test_model_not_unique_names,tests/models/test_models.py,0.45,0.0,0.45,0,0 +test_paired_elements_tables,tests/io/test_multi_table.py,0.42,0.42,0.0,1,0.42 +test_multiple_tables_same_element,tests/io/test_multi_table.py,0.4,0.4,0.0,1,0.4 +test_backing_files_labels,tests/io/test_utils.py,0.4,0.36,0.04,1,0.36 +test_backing_files_images,tests/io/test_utils.py,0.38,0.33,0.05,1,0.33 +test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py,0.37,0.37,0.0,16,0.023 +test_rasterize_spatialdata,tests/core/operations/test_rasterize.py,0.37,0.29,0.08,1,0.29 +test_change_annotation_target,tests/io/test_multi_table.py,0.36,0.0,0.36,0,0 +test_map_to_labels_,tests/core/operations/test_map.py,0.32,0.0,0.32,0,0 +test_map_transformation,tests/core/operations/test_map.py,0.31,0.0,0.31,0,0 +test_map_raster_multiscale,tests/core/operations/test_map.py,0.31,0.01,0.3,1,0.01 +test_query_multiple_boxes_len_one,tests/core/query/test_spatial_query.py,0.28,0.13,0.15,1,0.13 +test_transformations_between_coordinate_systems,tests/core/operations/test_transform.py,0.27,0.23,0.04,1,0.23 +test_deepcopy,tests/core/test_deepcopy.py,0.27,0.19,0.08,1,0.19 +test_concatenate_sdatas_single_item,tests/core/operations/test_spatialdata_operations.py,0.26,0.26,0.0,1,0.26 +test_empty_attrs,tests/core/test_get_attrs.py,0.25,0.25,0.0,1,0.25 +test_non_string_sep,tests/core/test_get_attrs.py,0.25,0.0,0.25,0,0 +test_no_shared_transformations,tests/core/operations/test_spatialdata_operations.py,0.25,0.25,0.0,1,0.25 +test_non_string_key,tests/core/test_get_attrs.py,0.25,0.0,0.25,0,0 +test_get_attrs_as_dataframe_flatten_false,tests/core/test_get_attrs.py,0.25,0.0,0.25,0,0 +test_rotate_vector_data,tests/core/test_data_extent.py,0.25,0.25,0.0,2,0.125 +test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py,0.25,0.17,0.08,4,0.043 +test_assert_elements_are_identical_metadata,tests/utils/test_testing.py,0.88,0.15,0.09,1,0.15 +test_invalid_return_as_value,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 +test_multiple_table_without_element,tests/io/test_multi_table.py,0.24,0.24,0.0,1,0.24 +test_get_attrs_as_is,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 +test_get_attrs_as_dataframe_flatten_true,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 +test_reading_invalid_name,tests/io/test_readwrite.py,0.24,0.24,0.0,1,0.24 +test_invalid_key,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 +test_get_attrs_as_json_flatten_false,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 +test_get_attrs_as_dict_flatten,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 +test_incremental_io_list_of_elements,tests/io/test_readwrite.py,0.24,0.24,0.0,2,0.12 +test_get_attrs_as_json_flatten_true,tests/core/test_get_attrs.py,0.23,0.0,0.23,0,0 +test_bug_rechunking_after_queried_raster,tests/io/test_readwrite.py,0.23,0.23,0.0,1,0.23 +test_single_table_multiple_elements,tests/io/test_multi_table.py,0.23,0.23,0.0,1,0.23 +test_shapes_v1_to_v2_to_v3,tests/io/test_format.py,0.23,0.23,0.0,1,0.23 +test_backing_files_combining_points_and_images,tests/io/test_utils.py,0.23,0.18,0.05,1,0.18 +test_match_sdata_to_table_shapes_and_points,tests/core/query/test_relational_query_match_sdata_to_table.py,0.21,0.21,0.0,1,0.21 +test_match_sdata_to_table_match_labels_error,tests/core/query/test_relational_query_match_sdata_to_table.py,0.2,0.2,0.0,1,0.2 +test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py,0.2,0.2,0.0,4,0.05 +test_shapes,tests/core/operations/test_transform.py,0.2,0.2,0.0,6,0.033 +test_get_values_obsm,tests/core/query/test_relational_query.py,0.19,0.0,0.19,0,0 +test_relabel_sequential,tests/core/operations/test_map.py,0.19,0.04,0.15,1,0.04 +test_incremental_io_in_memory,tests/io/test_readwrite.py,0.19,0.1,0.09,1,0.1 +test_overwrite_fails_onto_non_zarr_file,tests/io/test_readwrite.py,0.18,0.0,0.18,0,0 +test_write_overwrite_fails_when_no_zarr_store,tests/io/test_readwrite.py,0.18,0.0,0.18,0,0 +test_dask_tune_contextmanager,tests/core/operations/test_transform.py,0.18,0.0,0.18,0,0 +test_get_values_table,tests/core/query/test_relational_query.py,0.17,0.0,0.17,0,0 +test_query_with_clipping,tests/core/query/test_spatial_query.py,0.17,0.01,0.16,1,0.01 +test_aggregate_spatialdata,tests/core/operations/test_aggregations.py,0.17,0.03,0.14,1,0.03 +test_query_points_multiple_partitions,tests/core/query/test_spatial_query.py,0.17,0.17,0.0,2,0.085 +test_invalid_map_raster,tests/core/operations/test_map.py,0.16,0.0,0.16,0,0 +test_get_values_table_different_layer,tests/core/query/test_relational_query.py,0.16,0.0,0.16,0,0 +test_relabel_sequential_fails,tests/core/operations/test_map.py,0.16,0.0,0.16,0,0 +test_get_values_labels_bug,tests/core/query/test_relational_query.py,0.16,0.0,0.16,0,0 +test_map_raster_relabel,tests/core/operations/test_map.py,0.16,0.01,0.15,1,0.01 +test_map_raster_relabel_fail,tests/core/operations/test_map.py,0.16,0.01,0.15,1,0.01 +test_map_raster_output_chunks,tests/core/operations/test_map.py,0.16,0.02,0.14,1,0.02 +test_replace_transformation_on_disk_non_raster,tests/io/test_readwrite.py,0.16,0.16,0.0,2,0.08 +test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py,0.16,0.08,0.08,8,0.01 +test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py,0.16,0.08,0.08,8,0.01 +test_aggregate_deepcopy,tests/core/operations/test_aggregations.py,0.15,0.01,0.14,1,0.01 +test_get_values_table_element_name,tests/core/query/test_relational_query.py,0.15,0.0,0.15,0,0 +test_map_raster_no_blockwise,tests/core/operations/test_map.py,0.15,0.0,0.15,0,0 +test_filter_by_table_query,tests/core/query/test_relational_query.py,0.14,0.05,0.09,1,0.05 +test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py,0.14,0.14,0.0,4,0.035 +test_points,tests/core/operations/test_transform.py,0.13,0.13,0.0,4,0.033 +test_points_table_joins,tests/core/query/test_relational_query.py,0.12,0.03,0.09,1,0.03 +test_get_centroids_points,tests/core/test_centroids.py,0.11,0.11,0.0,4,0.028 +test_sdata_with_nan_in_obs,tests/io/test_readwrite.py,0.11,0.11,0.0,1,0.11 +test_rename_coordinate_systems,tests/core/operations/test_spatialdata_operations.py,0.11,0.03,0.08,1,0.03 +test_incremental_io_attrs,tests/io/test_readwrite.py,0.11,0.11,0.0,2,0.055 +test_transform_points,tests/core/operations/test_transform.py,0.1,0.1,0.0,1,0.1 +test_init_from_elements,tests/core/operations/test_spatialdata_operations.py,0.1,0.02,0.08,1,0.02 +test_filter_by_coordinate_system,tests/core/operations/test_spatialdata_operations.py,0.1,0.02,0.08,1,0.02 +test_map_coordinate_systems_zero_or_multiple_paths,tests/core/operations/test_transform.py,0.1,0.01,0.09,1,0.01 +test_coordinate_systems_with_shortest_paths,tests/core/operations/test_transform.py,0.1,0.01,0.09,1,0.01 +test_filter_by_table_query_edge_cases,tests/core/query/test_relational_query.py,0.1,0.01,0.09,1,0.01 +test_labels_table_joins,tests/core/query/test_relational_query.py,0.1,0.01,0.09,1,0.01 +test_map_coordinate_systems_single_path,tests/core/operations/test_transform.py,0.1,0.01,0.09,1,0.01 +test_filter_table_non_annotating,tests/core/query/test_relational_query.py,0.1,0.01,0.09,1,0.01 +test_convert_transformations_to_affine,tests/transformations/test_transformations_utils.py,0.1,0.01,0.09,1,0.01 +test_join_spatialelement_table_fail,tests/core/query/test_relational_query.py,0.09,0.0,0.09,0,0 +test_incremental_io_valid_name,tests/io/test_readwrite.py,0.09,0.0,0.09,0,0 +test_map_squeeze_z,tests/core/operations/test_map.py,0.09,0.0,0.09,0,0 +test_map_coordinate_systems_non_invertible_transformations,tests/core/operations/test_transform.py,0.09,0.0,0.09,0,0 +test_points_v1_to_v2,tests/io/test_format.py,0.09,0.09,0.0,1,0.09 +test_filter_by_table_query_with_layers,tests/core/query/test_relational_query.py,0.09,0.0,0.09,0,0 +test_null_values_in_instance_key_column,tests/io/test_multi_table.py,0.09,0.0,0.09,0,0 +test_get_element_annotators,tests/core/query/test_relational_query.py,0.09,0.0,0.09,0,0 +test_set_item,tests/core/operations/test_spatialdata_operations.py,0.09,0.0,0.09,0,0 +test_map_squeeze_z_fails,tests/core/operations/test_map.py,0.09,0.0,0.09,0,0 +test_spatialdata_retains_other_elements,tests/utils/test_sanitize.py,0.09,0.0,0.09,0,0 +test_map_coordinate_systems_long_path,tests/core/operations/test_transform.py,0.09,0.0,0.09,0,0 +test_set_table_nonexisting_target,tests/io/test_multi_table.py,0.09,0.0,0.09,0,0 +test_locate_spatial_element,tests/core/operations/test_spatialdata_operations.py,0.09,0.0,0.09,0,0 +test_filter_by_table_query_complex_combination,tests/core/query/test_relational_query.py,0.09,0.0,0.09,0,0 +test_del_item,tests/core/operations/test_spatialdata_operations.py,0.09,0.0,0.09,0,0 +test_concatenate_sdatas,tests/core/operations/test_spatialdata_operations.py,0.09,0.01,0.08,1,0.01 +test_io_and_lazy_loading_points,tests/io/test_readwrite.py,0.09,0.09,0.0,2,0.045 +test_shapes_model,tests/models/test_models.py,0.09,0.09,0.0,3,0.03 +test_get_centroids_shapes,tests/core/test_centroids.py,0.09,0.09,0.0,6,0.015 +test_subset,tests/core/operations/test_spatialdata_operations.py,0.08,0.0,0.08,0,0 +test_get_schema,tests/models/test_models.py,0.08,0.08,0.0,1,0.08 +test_validate_table_in_spatialdata,tests/core/operations/test_spatialdata_operations.py,0.08,0.0,0.08,0,0 +test_incremental_writing_invalid_name,tests/io/test_readwrite.py,0.08,0.08,0.0,1,0.08 +test_filter_by_coordinate_system_also_table,tests/core/operations/test_spatialdata_operations.py,0.08,0.0,0.08,0,0 +test_writing_invalid_name,tests/io/test_readwrite.py,0.08,0.08,0.0,1,0.08 +test_get_extent_points,tests/core/test_data_extent.py,0.08,0.08,0.0,2,0.04 +test_transform_until_0_0_15,tests/core/operations/test_transform.py,0.07,0.07,0.0,1,0.07 +test_get_extent_affine_points3d,tests/core/test_data_extent.py,0.07,0.07,0.0,1,0.07 +test_labels_2d_to_polygons,tests/core/operations/test_vectorize.py,0.06,0.06,0.0,2,0.03 +test_read_sdata,tests/io/test_readwrite.py,0.06,0.06,0.0,1,0.06 +test_backing_files_points,tests/io/test_utils.py,0.06,0.06,0.0,1,0.06 +test_chunked_labels_2d_to_polygons,tests/core/operations/test_vectorize.py,0.05,0.05,0.0,1,0.05 +test_write_image_normalizes_explicit_zarr_chunk_grid,tests/io/test_readwrite.py,0.05,0.05,0.0,1,0.05 +test_write_irregular_dask_chunks_without_explicit_storage_options,tests/io/test_readwrite.py,0.05,0.05,0.0,1,0.05 +test_rasterize_labels_value_key_specified,tests/core/operations/test_rasterize.py,0.05,0.05,0.0,1,0.05 +test_write_image_normalizes_explicit_regular_dask_chunk_grid,tests/io/test_readwrite.py,0.05,0.05,0.0,1,0.05 +test_get_affine_for_element,tests/transformations/test_transformations.py,0.04,0.0,0.04,0,0 +test_get_centroids_invalid_element,tests/core/test_centroids.py,0.04,0.0,0.04,0,0 +test_get_extent_raster,tests/core/test_data_extent.py,0.04,0.04,0.0,4,0.01 +test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py,0.04,0.0,0.04,0,0 +test_match_rows_join,tests/core/query/test_relational_query.py,0.03,0.02,0.01,1,0.02 +test_single_scale_image_roundtrip_stays_dataarray,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 +test_write_image_rejects_string,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 +test_write_image_rejects_explicit_irregular_dask_chunk_grid,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 +test_write_image_rejects_empty_string,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 +test_write_image_rejects_byte_string,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 +test_concatenate_sdata_multitables,tests/io/test_multi_table.py,0.02,0.02,0.0,1,0.02 +test_get_extent_affine_circles,tests/core/test_data_extent.py,0.02,0.02,0.0,1,0.02 +test_points_and_shapes_conversions,tests/models/test_models.py,0.02,0.02,0.0,1,0.02 +test_get_values_df_points,tests/core/query/test_relational_query.py,0.02,0.02,0.0,1,0.02 +test_concatenate_tables,tests/core/operations/test_spatialdata_operations.py,0.02,0.02,0.0,1,0.02 +test_polygons_to_circles,tests/core/operations/test_vectorize.py,0.02,0.02,0.0,1,0.02 +test_concatenate_two_tables_each_annotating_two_elements,tests/core/operations/test_spatialdata_operations.py,0.02,0.02,0.0,1,0.02 +test_multipolygons_to_circles,tests/core/operations/test_vectorize.py,0.02,0.02,0.0,1,0.02 +test_get_values_df_shapes,tests/core/query/test_relational_query.py,0.02,0.01,0.01,1,0.01 +test_polygon_query_with_multipolygon,tests/core/query/test_spatial_query.py,0.02,0.01,0.01,1,0.01 +test_left_inner_right_exclusive_join,tests/core/query/test_relational_query.py,0.02,0.01,0.01,1,0.01 +test_match_rows_inner_join_non_matching_table,tests/core/query/test_relational_query.py,0.02,0.01,0.01,1,0.01 +test_query_filter_table,tests/core/query/test_spatial_query.py,0.02,0.02,0.0,2,0.01 +test_aggregation_invalid_cases,tests/core/operations/test_aggregations.py,0.02,0.01,0.01,1,0.01 +test_attrs_incremental_write,tests/io/test_attrs_io.py,0.02,0.02,0.0,2,0.01 +test_dask_points_from_parquet,tests/models/test_models.py,0.02,0.02,0.0,2,0.01 +test_labels_model_with_multiscales,tests/models/test_models.py,0.02,0.02,0.0,2,0.01 +test_rasterize_bins_invalid,tests/core/operations/test_rasterize_bins.py,0.01,0.01,0.0,1,0.01 +test_bug_get_extent_swap_xy_for_images,tests/core/test_data_extent.py,0.01,0.01,0.0,1,0.01 +test_transform_datatree_scale_handling,tests/core/operations/test_transform.py,0.01,0.01,0.0,1,0.01 +test_match_table_to_element,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 +test_transform_coordinates,tests/transformations/test_transformations.py,0.01,0.01,0.0,1,0.01 +test_left_exclusive_and_right_join,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 +test_match_rows_inner_join_non_matching_element,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 +test_locate_value,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 +test_c_coords_2d,tests/models/test_models.py,0.01,0.01,0.0,1,0.01 +test_join_using_string_instance_id_and_index,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 +test_attrs_v1_to_v2,tests/io/test_attrs_io.py,0.01,0.01,0.0,1,0.01 +test_concatenate_custom_table_metadata,tests/core/operations/test_spatialdata_operations.py,0.01,0.01,0.0,1,0.01 +test_element_names_unique,tests/core/operations/test_spatialdata_operations.py,0.01,0.01,0.0,1,0.01 +test_query_points_no_points,tests/core/query/test_spatial_query.py,0.01,0.01,0.0,1,0.01 diff --git a/pytest_durations.csv b/pytest_durations.csv new file mode 100644 index 000000000..4817ba54d --- /dev/null +++ b/pytest_durations.csv @@ -0,0 +1,1171 @@ +duration_s,phase,file,test_name,test_id +3.24,call,tests/core/operations/test_vectorize.py,test_labels_2d_to_circles,tests/core/operations/test_vectorize.py::test_labels_2d_to_circles[True] +2.98,call,tests/core/operations/test_vectorize.py,test_labels_2d_to_circles,tests/core/operations/test_vectorize.py::test_labels_2d_to_circles[False] +2.18,call,tests/io/test_readwrite.py,test_self_contained,tests/io/test_readwrite.py::test_self_contained[sdata_container_format0] +2.1,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[full-sdata_container_format0] +1.91,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-True-sdata_container_format0] +1.89,call,tests/core/operations/test_rasterize.py,test_rasterize_points,tests/core/operations/test_rasterize.py::test_rasterize_points +1.82,call,tests/io/test_format.py,test_container_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_container_v1_to_v2 +1.64,call,tests/core/operations/test_rasterize.py,test_rasterize_shapes,tests/core/operations/test_rasterize.py::test_rasterize_shapes +1.56,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_labels-blobs_image] +1.54,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multiscale_labels-blobs_multiscale_image] +1.54,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-False-sdata_container_format0] +1.54,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_labels-blobs_multiscale_image] +1.53,call,tests/models/test_models.py,test_categories_on_partitioned_dataframe,tests/models/test_models.py::test_categories_on_partitioned_dataframe +1.48,call,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[points_0] +1.48,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multiscale_labels-blobs_image] +1.46,call,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[image2d] +1.4,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-True-sdata_container_format1] +1.37,call,tests/io/test_readwrite.py,test_change_path_of_subset,tests/io/test_readwrite.py::test_change_path_of_subset[sdata_container_format0] +1.36,call,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[labels2d] +1.35,call,tests/core/operations/test_rasterize.py,test_rasterize_points_shapes_with_string_index,tests/core/operations/test_rasterize.py::test_rasterize_points_shapes_with_string_index +1.33,call,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[circles] +1.3,call,tests/io/test_metadata.py,test_consolidated_metadata,tests/io/test_metadata.py::test_consolidated_metadata +1.28,call,tests/io/test_readwrite.py,test_self_contained,tests/io/test_readwrite.py::test_self_contained[sdata_container_format1] +1.25,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-table] +1.24,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_multiple_annotations-sdata_container_format0] +1.24,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-points_0] +1.2,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[full-sdata_container_format1] +1.17,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_single_annotation-sdata_container_format0] +1.14,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-circles] +1.08,call,tests/io/test_format.py,test_tables_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_tables_v1_to_v2 +1.08,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-labels2d] +1.07,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-image2d] +1.06,call,tests/io/test_readwrite.py,test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_zarr_store_present[sdata_container_format0] +1.04,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-labels2d] +1.04,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-circles] +1.04,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-False-sdata_container_format1] +1.01,call,tests/io/test_readwrite.py,test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py::test_write_store_unconsolidated_and_read[sdata_container_format0] +1.0,call,tests/io/test_readwrite.py,test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py::test_can_read_sdata_with_reconsolidation[sdata_container_format0] +0.97,call,tests/io/test_readwrite.py,test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py::test_symmetric_difference_with_zarr_store[sdata_container_format0] +0.96,call,tests/io/test_metadata.py,test_save_all_metadata,tests/io/test_metadata.py::test_save_all_metadata +0.94,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-points_0] +0.94,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-table] +0.91,call,tests/io/test_multi_table.py,test_set_get_tables_from_spatialdata,tests/io/test_multi_table.py::TestMultiTable::test_set_get_tables_from_spatialdata +0.9,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_multiple_annotations-sdata_container_format1] +0.9,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-image2d] +0.89,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_single_annotation-sdata_container_format1] +0.89,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-False-sdata_container_format0] +0.86,call,tests/io/test_format.py,test_channel_names_raster_images_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_channel_names_raster_images_v1_to_v2_to_v3 +0.86,call,tests/io/test_readwrite.py,test_change_path_of_subset,tests/io/test_readwrite.py::test_change_path_of_subset[sdata_container_format1] +0.86,call,tests/io/test_format.py,test_raster_images_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_raster_images_v1_to_v2_to_v3 +0.86,call,tests/io/test_format.py,test_raster_labels_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_raster_labels_v1_to_v2_to_v3 +0.83,call,tests/core/operations/test_spatialdata_operations.py,test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py::test_transform_to_data_extent[True] +0.82,call,tests/models/test_models.py,test_warning_on_large_chunks,tests/models/test_models.py::test_warning_on_large_chunks +0.79,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-table] +0.76,call,tests/core/operations/test_transform.py,test_transform_points_with_multiple_partitions,tests/core/operations/test_transform.py::test_transform_points_with_multiple_partitions +0.74,call,tests/io/test_readwrite.py,test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_no_zarr_store_but_dask_backed_data[sdata_container_format0] +0.71,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_table_region_not_found_zarrv2] +0.71,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-image2d] +0.69,call,tests/io/test_readwrite.py,test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_raster[sdata_container_format0] +0.67,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-False-sdata_container_format1] +0.67,call,tests/io/test_readwrite.py,test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py::test_can_read_sdata_with_reconsolidation[sdata_container_format1] +0.67,call,tests/datasets/test_datasets.py,test_datasets,tests/datasets/test_datasets.py::test_datasets +0.64,call,tests/io/test_readwrite.py,test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py::test_write_store_unconsolidated_and_read[sdata_container_format1] +0.64,teardown,tests/utils/test_testing.py,test_assert_elements_are_identical_metadata,tests/utils/test_testing.py::test_assert_elements_are_identical_metadata +0.62,call,tests/io/test_readwrite.py,test_single_table_single_annotation,tests/io/test_readwrite.py::TestReadWrite::test_single_table_single_annotation[sdata_container_format0] +0.62,call,tests/io/test_readwrite.py,test_single_table_multiple_annotations,tests/io/test_readwrite.py::TestReadWrite::test_single_table_multiple_annotations[sdata_container_format0] +0.62,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-labels2d] +0.62,call,tests/io/test_readwrite.py,test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py::test_symmetric_difference_with_zarr_store[sdata_container_format1] +0.61,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_multiscale_labels] +0.6,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_missing_zattrs_element] +0.6,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-image2d] +0.6,call,tests/io/test_metadata.py,test_save_transformations,tests/io/test_metadata.py::test_save_transformations +0.6,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-circles] +0.6,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_elem_types_zgroup] +0.59,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-points_0] +0.59,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-labels2d] +0.59,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_zattrs_elements] +0.59,call,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[image2d] +0.58,call,tests/io/test_readwrite.py,test_multiple_tables,tests/io/test_readwrite.py::TestReadWrite::test_multiple_tables[sdata_container_format0] +0.58,call,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[circles] +0.58,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_parquet_zarrv2] +0.58,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_invalid_zattrs_element_violating_spec] +0.58,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_image_chunks_zarrv2] +0.57,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_missing_image_chunks_zarrv2] +0.56,call,tests/io/test_readwrite.py,test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_zarr_store_present[sdata_container_format1] +0.56,call,tests/io/test_readwrite.py,test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_raster[sdata_container_format1] +0.56,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[labels-sdata_container_format0] +0.55,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-points_0] +0.55,call,tests/io/test_readwrite.py,test_io_and_lazy_loading_raster,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_raster[sdata_container_format0] +0.54,call,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[points_0] +0.54,call,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[labels2d] +0.53,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_table_region_not_found_zarrv3] +0.53,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-table] +0.53,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-circles] +0.52,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_from_iterable[False-False] +0.52,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multiscale_labels-blobs_multiscale_image] +0.52,call,tests/io/test_readwrite.py,test_multiple_tables,tests/io/test_readwrite.py::TestReadWrite::test_multiple_tables[sdata_container_format1] +0.51,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[images-sdata_container_format0] +0.51,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_merge_coordinate_systems_on_name,tests/core/operations/test_spatialdata_operations.py::test_concatenate_merge_coordinate_systems_on_name[True] +0.51,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_from_iterable[False-True] +0.51,call,tests/io/test_readwrite.py,test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_no_zarr_store_but_dask_backed_data[sdata_container_format1] +0.51,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_merge_coordinate_systems_on_name,tests/core/operations/test_spatialdata_operations.py::test_concatenate_merge_coordinate_systems_on_name[False] +0.5,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_labels-blobs_multiscale_image] +0.49,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-True-sdata_container_format0] +0.49,call,tests/core/operations/test_spatialdata_operations.py,test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py::test_transform_to_data_extent[False] +0.49,call,tests/core/operations/test_aggregations.py,test_aggregate_image_by_labels,tests/core/operations/test_aggregations.py::test_aggregate_image_by_labels[Labels2DModel-Image2DModel] +0.49,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_from_iterable[True-True] +0.49,call,tests/core/query/test_spatial_query.py,test_query_spatial_data,tests/core/query/test_spatial_query.py::test_query_spatial_data +0.48,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_from_iterable[True-False] +0.48,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multiscale_labels-blobs_image] +0.48,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_zarr_json_elements] +0.48,call,tests/io/test_readwrite.py,test_single_table_multiple_annotations,tests/io/test_readwrite.py::TestReadWrite::test_single_table_multiple_annotations[sdata_container_format1] +0.47,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_multiscale_labels] +0.47,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_multiscale_labels] +0.47,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_elem_types_zarr_json] +0.47,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_labels] +0.47,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_labels-blobs_image] +0.46,call,tests/io/test_multi_table.py,test_set_table_annotates_spatialelement,tests/io/test_multi_table.py::TestMultiTable::test_set_table_annotates_spatialelement +0.46,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_missing_zarr_json_element] +0.46,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_multiscale_labels] +0.45,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_image_chunks_zarrv3] +0.45,call,tests/utils/test_element_utils.py,test_unpad_raster,tests/utils/test_element_utils.py::test_unpad_raster +0.45,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_invalid_zarr_json_element_violating_spec] +0.45,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_parquet_zarrv3] +0.44,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_missing_image_chunks_zarrv3] +0.44,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_labels] +0.44,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_multiscale_labels] +0.44,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_labels] +0.44,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_labels] +0.43,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_labels] +0.43,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[labels-sdata_container_format1] +0.42,call,tests/io/test_multi_table.py,test_paired_elements_tables,tests/io/test_multi_table.py::TestMultiTable::test_paired_elements_tables +0.41,call,tests/core/operations/test_rasterize.py,test_rasterize_raster,tests/core/operations/test_rasterize.py::test_rasterize_raster[_get_images] +0.41,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-True-sdata_container_format1] +0.41,call,tests/io/test_readwrite.py,test_single_table_single_annotation,tests/io/test_readwrite.py::TestReadWrite::test_single_table_single_annotation[sdata_container_format1] +0.4,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_points] +0.4,call,tests/io/test_multi_table.py,test_multiple_tables_same_element,tests/io/test_multi_table.py::TestMultiTable::test_multiple_tables_same_element +0.4,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[images-sdata_container_format1] +0.39,call,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[True-labels] +0.39,call,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[False-image] +0.36,call,tests/io/test_utils.py,test_backing_files_labels,tests/io/test_utils.py::test_backing_files_labels +0.36,call,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[True-image] +0.34,call,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object_multi_hop[True] +0.34,call,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object_multi_hop[False] +0.33,call,tests/io/test_utils.py,test_backing_files_images,tests/io/test_utils.py::test_backing_files_images +0.32,call,tests/io/test_readwrite.py,test_io_and_lazy_loading_raster,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_raster[sdata_container_format1] +0.32,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multipolygons-blobs_image] +0.31,call,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object[True] +0.31,call,tests/io/test_readwrite.py,test_labels,tests/io/test_readwrite.py::TestReadWrite::test_labels[sdata_container_format0] +0.31,call,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object[False] +0.3,call,tests/core/operations/test_rasterize.py,test_rasterize_raster,tests/core/operations/test_rasterize.py::test_rasterize_raster[_get_labels] +0.3,call,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image3] +0.29,call,tests/core/operations/test_rasterize.py,test_rasterize_spatialdata,tests/core/operations/test_rasterize.py::test_rasterize_spatialdata +0.28,call,tests/io/test_readwrite.py,test_images,tests/io/test_readwrite.py::TestReadWrite::test_images[sdata_container_format0] +0.27,call,tests/io/test_multi_table.py,test_single_table,tests/io/test_multi_table.py::TestMultiTable::test_single_table[non_existing] +0.26,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-table] +0.26,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_single_item,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_single_item +0.26,call,tests/transformations/test_transformations.py,test_keep_string_coordinates_c,tests/transformations/test_transformations.py::test_keep_string_coordinates_c[blobs_multiscale_image] +0.25,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-True-True-1] +0.25,call,tests/core/test_get_attrs.py,test_empty_attrs,tests/core/test_get_attrs.py::test_empty_attrs +0.25,setup,tests/core/test_get_attrs.py,test_non_string_sep,tests/core/test_get_attrs.py::test_non_string_sep +0.25,call,tests/io/test_readwrite.py,test_images,tests/io/test_readwrite.py::TestReadWrite::test_images[sdata_container_format1] +0.25,call,tests/core/operations/test_spatialdata_operations.py,test_no_shared_transformations,tests/core/operations/test_spatialdata_operations.py::test_no_shared_transformations +0.25,call,tests/transformations/test_transformations.py,test_keep_string_coordinates_c,tests/transformations/test_transformations.py::test_keep_string_coordinates_c[blobs_image] +0.25,setup,tests/core/test_get_attrs.py,test_non_string_key,tests/core/test_get_attrs.py::test_non_string_key +0.25,call,tests/transformations/test_transformations.py,test_keep_numerical_coordinates_c,tests/transformations/test_transformations.py::test_keep_numerical_coordinates_c[blobs_multiscale_image] +0.25,call,tests/transformations/test_transformations.py,test_keep_numerical_coordinates_c,tests/transformations/test_transformations.py::test_keep_numerical_coordinates_c[blobs_image] +0.25,setup,tests/core/test_get_attrs.py,test_get_attrs_as_dataframe_flatten_false,tests/core/test_get_attrs.py::test_get_attrs_as_dataframe_flatten_false +0.24,setup,tests/core/test_get_attrs.py,test_invalid_return_as_value,tests/core/test_get_attrs.py::test_invalid_return_as_value +0.24,call,tests/io/test_multi_table.py,test_multiple_table_without_element,tests/io/test_multi_table.py::TestMultiTable::test_multiple_table_without_element +0.24,setup,tests/core/test_get_attrs.py,test_get_attrs_as_is,tests/core/test_get_attrs.py::test_get_attrs_as_is +0.24,setup,tests/core/test_get_attrs.py,test_get_attrs_as_dataframe_flatten_true,tests/core/test_get_attrs.py::test_get_attrs_as_dataframe_flatten_true +0.24,call,tests/io/test_readwrite.py,test_reading_invalid_name,tests/io/test_readwrite.py::test_reading_invalid_name +0.24,setup,tests/core/test_get_attrs.py,test_invalid_key,tests/core/test_get_attrs.py::test_invalid_key +0.24,setup,tests/core/test_get_attrs.py,test_get_attrs_as_json_flatten_false,tests/core/test_get_attrs.py::test_get_attrs_as_json_flatten_false +0.24,setup,tests/core/test_get_attrs.py,test_get_attrs_as_dict_flatten,tests/core/test_get_attrs.py::test_get_attrs_as_dict_flatten +0.23,setup,tests/core/test_get_attrs.py,test_get_attrs_as_json_flatten_true,tests/core/test_get_attrs.py::test_get_attrs_as_json_flatten_true +0.23,call,tests/io/test_readwrite.py,test_bug_rechunking_after_queried_raster,tests/io/test_readwrite.py::test_bug_rechunking_after_queried_raster +0.23,call,tests/io/test_multi_table.py,test_single_table_multiple_elements,tests/io/test_multi_table.py::TestMultiTable::test_single_table_multiple_elements +0.23,call,tests/core/operations/test_transform.py,test_transformations_between_coordinate_systems,tests/core/operations/test_transform.py::test_transformations_between_coordinate_systems +0.23,call,tests/io/test_format.py,test_shapes_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_shapes_v1_to_v2_to_v3 +0.22,call,tests/io/test_readwrite.py,test_labels,tests/io/test_readwrite.py::TestReadWrite::test_labels[sdata_container_format1] +0.22,call,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[False-labels] +0.22,call,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV02] +0.21,call,tests/io/test_multi_table.py,test_single_table,tests/io/test_multi_table.py::TestMultiTable::test_single_table[test_shapes] +0.21,call,tests/core/query/test_relational_query_match_sdata_to_table.py,test_match_sdata_to_table_shapes_and_points,tests/core/query/test_relational_query_match_sdata_to_table.py::test_match_sdata_to_table_shapes_and_points +0.21,call,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[write] +0.2,call,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV01] +0.2,call,tests/core/query/test_relational_query_match_sdata_to_table.py,test_match_sdata_to_table_match_labels_error,tests/core/query/test_relational_query_match_sdata_to_table.py::test_match_sdata_to_table_match_labels_error +0.2,setup,tests/io/test_readwrite.py,test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_no_zarr_store_but_dask_backed_data[sdata_container_format1] +0.19,setup,tests/core/query/test_relational_query.py,test_get_values_obsm,tests/core/query/test_relational_query.py::test_get_values_obsm +0.19,call,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[overwrite] +0.19,call,tests/core/test_deepcopy.py,test_deepcopy,tests/core/test_deepcopy.py::test_deepcopy +0.19,call,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV03] +0.19,setup,tests/io/test_readwrite.py,test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_no_zarr_store_but_dask_backed_data[sdata_container_format0] +0.18,call,tests/io/test_utils.py,test_backing_files_combining_points_and_images,tests/io/test_utils.py::test_backing_files_combining_points_and_images +0.17,call,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[no] +0.17,call,tests/core/test_data_extent.py,test_rotate_vector_data,tests/core/test_data_extent.py::test_rotate_vector_data[False] +0.17,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multiscale_labels-blobs_multiscale_image] +0.17,setup,tests/core/query/test_relational_query.py,test_get_values_table,tests/core/query/test_relational_query.py::test_get_values_table +0.17,setup,tests/core/operations/test_map.py,test_map_transformation,tests/core/operations/test_map.py::test_map_transformation[blobs_multiscale_image] +0.16,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_polygons] +0.16,setup,tests/core/operations/test_map.py,test_map_to_labels_,tests/core/operations/test_map.py::test_map_to_labels_[False-None-None] +0.16,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_multipolygons] +0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_circles-blobs_image] +0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_points] +0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_labels-blobs_multiscale_image] +0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_image] +0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_circles-blobs_multiscale_image] +0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_labels-blobs_polygons] +0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_labels-blobs_points] +0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_circles] +0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multipolygons-blobs_image] +0.16,setup,tests/core/operations/test_map.py,test_invalid_map_raster,tests/core/operations/test_map.py::test_invalid_map_raster +0.16,setup,tests/core/query/test_relational_query.py,test_get_values_table_different_layer,tests/core/query/test_relational_query.py::test_get_values_table_different_layer +0.16,setup,tests/core/operations/test_map.py,test_relabel_sequential_fails,tests/core/operations/test_map.py::test_relabel_sequential_fails +0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_polygons] +0.16,setup,tests/core/query/test_spatial_query.py,test_query_with_clipping,tests/core/query/test_spatial_query.py::test_query_with_clipping +0.16,setup,tests/core/operations/test_map.py,test_map_to_labels_,tests/core/operations/test_map.py::test_map_to_labels_[True-chunks1-0] +0.16,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_polygons] +0.16,setup,tests/core/query/test_relational_query.py,test_get_values_labels_bug,tests/core/query/test_relational_query.py::test_get_values_labels_bug +0.16,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_circles] +0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_polygons-blobs_image] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multipolygons-blobs_multiscale_image] +0.15,call,tests/utils/test_testing.py,test_assert_elements_are_identical_metadata,tests/utils/test_testing.py::test_assert_elements_are_identical_metadata +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_labels-blobs_image] +0.15,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_labels-blobs_image] +0.15,setup,tests/core/operations/test_map.py,test_map_raster_relabel,tests/core/operations/test_map.py::test_map_raster_relabel +0.15,setup,tests/models/test_models.py,test_categories_on_partitioned_dataframe,tests/models/test_models.py::test_categories_on_partitioned_dataframe +0.15,setup,tests/core/query/test_spatial_query.py,test_query_multiple_boxes_len_one,tests/core/query/test_spatial_query.py::test_query_multiple_boxes_len_one +0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_circles] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multiscale_labels-blobs_multiscale_image] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multiscale_labels-blobs_image] +0.15,setup,tests/core/operations/test_map.py,test_map_raster_relabel_fail,tests/core/operations/test_map.py::test_map_raster_relabel_fail +0.15,setup,tests/core/operations/test_map.py,test_map_raster_multiscale,tests/core/operations/test_map.py::test_map_raster_multiscale[None] +0.15,setup,tests/core/operations/test_map.py,test_relabel_sequential,tests/core/operations/test_map.py::test_relabel_sequential +0.15,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_labels] +0.15,setup,tests/core/query/test_relational_query.py,test_get_values_table_element_name,tests/core/query/test_relational_query.py::test_get_values_table_element_name +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_labels-blobs_multiscale_image] +0.15,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_labels-blobs_circles] +0.15,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_multiscale_labels] +0.15,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_multipolygons] +0.15,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_points] +0.15,setup,tests/core/operations/test_map.py,test_map_raster_multiscale,tests/core/operations/test_map.py::test_map_raster_multiscale[depth1] +0.15,call,tests/io/test_readwrite.py,test_incremental_io_list_of_elements,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_list_of_elements[sdata_container_format0] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_circles-blobs_image] +0.15,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_image] +0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_circles] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_circles-blobs_multiscale_image] +0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_polygons] +0.15,setup,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[None-False] +0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_labels] +0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_multiscale_labels] +0.15,setup,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[None-True] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_polygons-blobs_image] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_labels-blobs_image] +0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_multipolygons] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_polygons-blobs_multiscale_image] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multiscale_labels-blobs_image] +0.15,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_polygons] +0.15,setup,tests/core/operations/test_map.py,test_map_raster_no_blockwise,tests/core/operations/test_map.py::test_map_raster_no_blockwise +0.15,setup,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[region-False] +0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_labels] +0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_polygons] +0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multipolygons-blobs_image] +0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_circles] +0.14,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_multiscale_labels] +0.14,setup,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[region-True] +0.14,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multipolygons-blobs_multiscale_image] +0.14,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_labels] +0.14,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_multipolygons] +0.14,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_polygons-blobs_multiscale_image] +0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_labels] +0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_multipolygons] +0.14,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_multiscale_labels] +0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_multiscale_labels] +0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_circles] +0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_circles] +0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_polygons] +0.14,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_polygons-blobs_multiscale_image] +0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_points] +0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_spatialdata,tests/core/operations/test_aggregations.py::test_aggregate_spatialdata +0.14,setup,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_labels-depth1] +0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_deepcopy,tests/core/operations/test_aggregations.py::test_aggregate_deepcopy +0.14,setup,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_image-depth1] +0.14,setup,tests/core/operations/test_map.py,test_map_transformation,tests/core/operations/test_map.py::test_map_transformation[blobs_image] +0.14,setup,tests/core/operations/test_map.py,test_map_raster_output_chunks,tests/core/operations/test_map.py::test_map_raster_output_chunks +0.14,setup,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_image-None] +0.14,setup,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image3] +0.14,setup,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_labels-None] +0.14,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_polygons] +0.13,call,tests/core/query/test_spatial_query.py,test_query_points_multiple_partitions,tests/core/query/test_spatial_query.py::test_query_points_multiple_partitions[False] +0.13,call,tests/core/query/test_spatial_query.py,test_query_multiple_boxes_len_one,tests/core/query/test_spatial_query.py::test_query_multiple_boxes_len_one +0.13,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_multipolygons] +0.13,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_multipolygons] +0.13,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_polygons] +0.13,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multipolygons-blobs_multiscale_image] +0.12,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_polygons] +0.12,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_polygons-blobs_image] +0.12,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_circles-blobs_multiscale_image] +0.12,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_polygons] +0.12,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_polygons] +0.12,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_multipolygons] +0.12,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_multipolygons] +0.12,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_multipolygons] +0.12,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_circles-blobs_image] +0.11,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_circles] +0.11,call,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[region-False] +0.11,call,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[region-True] +0.11,call,tests/io/test_readwrite.py,test_sdata_with_nan_in_obs,tests/io/test_readwrite.py::test_sdata_with_nan_in_obs +0.11,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_circles] +0.11,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_circles] +0.11,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[points-sdata_container_format0] +0.11,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_circles] +0.11,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_circles] +0.11,call,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[None-False] +0.11,call,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[None-True] +0.11,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[True-False-True-True] +0.1,call,tests/core/operations/test_transform.py,test_transform_points,tests/core/operations/test_transform.py::test_transform_points +0.1,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[points_0-False] +0.1,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[True-False-False-True] +0.1,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-labels2d] +0.1,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-points_0] +0.1,call,tests/io/test_readwrite.py,test_incremental_io_in_memory,tests/io/test_readwrite.py::test_incremental_io_in_memory +0.1,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-circles] +0.1,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[full-sdata_container_format0] +0.1,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[full-sdata_container_format1] +0.1,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-False-sdata_container_format1] +0.1,setup,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[circles] +0.1,setup,tests/io/test_readwrite.py,test_self_contained,tests/io/test_readwrite.py::test_self_contained[sdata_container_format1] +0.1,setup,tests/io/test_readwrite.py,test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_zarr_store_present[sdata_container_format1] +0.1,setup,tests/io/test_metadata.py,test_save_transformations,tests/io/test_metadata.py::test_save_transformations +0.1,setup,tests/io/test_readwrite.py,test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_zarr_store_present[sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_overwrite_fails_onto_non_zarr_file,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_onto_non_zarr_file[sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_overwrite_fails_onto_non_zarr_file,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_onto_non_zarr_file[sdata_container_format1] +0.09,setup,tests/core/query/test_relational_query.py,test_join_spatialelement_table_fail,tests/core/query/test_relational_query.py::test_join_spatialelement_table_fail +0.09,setup,tests/io/test_readwrite.py,test_self_contained,tests/io/test_readwrite.py::test_self_contained[sdata_container_format0] +0.09,setup,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[image2d] +0.09,setup,tests/io/test_readwrite.py,test_incremental_io_in_memory,tests/io/test_readwrite.py::test_incremental_io_in_memory +0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-table] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[images-non-alnum_#$%&()*+,?@]" +0.09,setup,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[image2d] +0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-False-sdata_container_format1] +0.09,call,tests/io/test_readwrite.py,test_incremental_io_list_of_elements,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_list_of_elements[sdata_container_format1] +0.09,setup,tests/io/test_readwrite.py,test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py::test_symmetric_difference_with_zarr_store[sdata_container_format1] +0.09,setup,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[labels2d] +0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-False-sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py::test_write_store_unconsolidated_and_read[sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-points_0] +0.09,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[circles-False] +0.09,setup,tests/io/test_readwrite.py,test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py::test_write_store_unconsolidated_and_read[sdata_container_format1] +0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-True-sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-image2d] +0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-table] +0.09,setup,tests/io/test_multi_table.py,test_set_table_annotates_spatialelement,tests/io/test_multi_table.py::TestMultiTable::test_set_table_annotates_spatialelement +0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-table] +0.09,setup,tests/io/test_readwrite.py,test_write_overwrite_fails_when_no_zarr_store,tests/io/test_readwrite.py::TestReadWrite::test_write_overwrite_fails_when_no_zarr_store[sdata_container_format1] +0.09,setup,tests/core/operations/test_transform.py,test_map_coordinate_systems_zero_or_multiple_paths,tests/core/operations/test_transform.py::test_map_coordinate_systems_zero_or_multiple_paths +0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-False-sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-image2d] +0.09,setup,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[points_0] +0.09,setup,tests/io/test_metadata.py,test_consolidated_metadata,tests/io/test_metadata.py::test_consolidated_metadata +0.09,setup,tests/core/operations/test_transform.py,test_coordinate_systems_with_shortest_paths,tests/core/operations/test_transform.py::test_coordinate_systems_with_shortest_paths +0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-True-sdata_container_format1] +0.09,setup,tests/io/test_readwrite.py,test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py::test_symmetric_difference_with_zarr_store[sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-points_0] +0.09,setup,tests/io/test_readwrite.py,test_incremental_io_valid_name,tests/io/test_readwrite.py::test_incremental_io_valid_name +0.09,setup,tests/core/operations/test_map.py,test_map_squeeze_z,tests/core/operations/test_map.py::test_map_squeeze_z +0.09,setup,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object[True] +0.09,setup,tests/io/test_readwrite.py,test_write_overwrite_fails_when_no_zarr_store,tests/io/test_readwrite.py::TestReadWrite::test_write_overwrite_fails_when_no_zarr_store[sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-image2d] +0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-labels2d] +0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-True-sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-True-sdata_container_format1] +0.09,setup,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[True-labels] +0.09,setup,tests/core/operations/test_transform.py,test_map_coordinate_systems_non_invertible_transformations,tests/core/operations/test_transform.py::test_map_coordinate_systems_non_invertible_transformations +0.09,setup,tests/io/test_metadata.py,test_save_all_metadata,tests/io/test_metadata.py::test_save_all_metadata +0.09,setup,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[points_0] +0.09,call,tests/io/test_format.py,test_points_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_points_v1_to_v2 +0.09,setup,tests/core/query/test_spatial_query.py,test_query_spatial_data,tests/core/query/test_spatial_query.py::test_query_spatial_data +0.09,setup,tests/io/test_readwrite.py,test_change_path_of_subset,tests/io/test_readwrite.py::test_change_path_of_subset[sdata_container_format0] +0.09,setup,tests/io/test_readwrite.py,test_change_path_of_subset,tests/io/test_readwrite.py::test_change_path_of_subset[sdata_container_format1] +0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-points_0] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-path/separator] +0.09,setup,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[labels2d] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-non-alnum_#$%&()*+,?@]" +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-has whitespace] +0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-image2d] +0.09,setup,tests/core/query/test_relational_query.py,test_filter_by_table_query_with_layers,tests/core/query/test_relational_query.py::test_filter_by_table_query_with_layers +0.09,setup,tests/io/test_readwrite.py,test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py::test_can_read_sdata_with_reconsolidation[sdata_container_format1] +0.09,setup,tests/core/query/test_relational_query.py,test_filter_by_table_query_edge_cases,tests/core/query/test_relational_query.py::test_filter_by_table_query_edge_cases +0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-circles] +0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-circles] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-] +0.09,setup,tests/core/query/test_relational_query.py,test_labels_table_joins,tests/core/query/test_relational_query.py::test_labels_table_joins +0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-labels2d] +0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-circles] +0.09,setup,tests/io/test_multi_table.py,test_null_values_in_instance_key_column,tests/io/test_multi_table.py::TestMultiTable::test_null_values_in_instance_key_column +0.09,setup,tests/core/query/test_relational_query.py,test_get_element_annotators,tests/core/query/test_relational_query.py::test_get_element_annotators +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-has whitespace] +0.09,setup,tests/io/test_multi_table.py,test_change_annotation_target,tests/io/test_multi_table.py::TestMultiTable::test_change_annotation_target[None-instance_id-Instance key column 'instance_id' not found in table.obs.] +0.09,setup,tests/io/test_multi_table.py,test_set_get_tables_from_spatialdata,tests/io/test_multi_table.py::TestMultiTable::test_set_get_tables_from_spatialdata +0.09,setup,tests/io/test_readwrite.py,test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py::test_can_read_sdata_with_reconsolidation[sdata_container_format0] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-.] +0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-labels2d] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-.] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-has whitespace] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[tables-non-alnum_#$%&()*+,?@]" +0.09,setup,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[circles] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[labels-non-alnum_#$%&()*+,?@]" +0.09,setup,tests/core/operations/test_spatialdata_operations.py,test_set_item,tests/core/operations/test_spatialdata_operations.py::test_set_item +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-path/separator] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-has whitespace] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-] +0.09,setup,tests/io/test_format.py,test_container_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_container_v1_to_v2 +0.09,call,tests/io/test_readwrite.py,test_replace_transformation_on_disk_non_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_non_raster[sdata_container_format0] +0.09,setup,tests/core/operations/test_transform.py,test_map_coordinate_systems_single_path,tests/core/operations/test_transform.py::test_map_coordinate_systems_single_path +0.09,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[multipoly-True] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-__dunder] +0.09,setup,tests/core/operations/test_map.py,test_map_squeeze_z_fails,tests/core/operations/test_map.py::test_map_squeeze_z_fails +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-..] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-..] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-..] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-__dunder] +0.09,setup,tests/core/operations/test_transform.py,test_dask_tune_contextmanager,tests/core/operations/test_transform.py::test_dask_tune_contextmanager[True-None] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-.] +0.09,setup,tests/core/query/test_relational_query.py,test_filter_by_table_query,tests/core/query/test_relational_query.py::test_filter_by_table_query +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-.] +0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[images-names0] +0.09,setup,tests/io/test_multi_table.py,test_change_annotation_target,tests/io/test_multi_table.py::TestMultiTable::test_change_annotation_target[region-instance_id-Instance key column 'instance_id' not found in table.obs.] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-__dunder] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-__dunder] +0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[shapes-names0] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-..] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[points-non-alnum_#$%&()*+,?@]" +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-.] +0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[points-names0] +0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[tables-names0] +0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[labels-names0] +0.09,setup,tests/io/test_multi_table.py,test_change_annotation_target,tests/io/test_multi_table.py::TestMultiTable::test_change_annotation_target[None-None-Specified instance_key in table.uns 'instance_id' is not present as column in table.obs. Please specify instance_key.] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-path/separator] +0.09,setup,tests/utils/test_sanitize.py,test_spatialdata_retains_other_elements,tests/utils/test_sanitize.py::test_spatialdata_retains_other_elements +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-path/separator] +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-__dunder] +0.09,setup,tests/core/query/test_relational_query.py,test_filter_table_non_annotating,tests/core/query/test_relational_query.py::test_filter_table_non_annotating +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-has whitespace] +0.09,setup,tests/core/operations/test_transform.py,test_map_coordinate_systems_long_path,tests/core/operations/test_transform.py::test_map_coordinate_systems_long_path +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-path/separator] +0.09,setup,tests/core/operations/test_transform.py,test_dask_tune_contextmanager,tests/core/operations/test_transform.py::test_dask_tune_contextmanager[False-4] +0.09,setup,tests/io/test_readwrite.py,test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_raster[sdata_container_format0] +0.09,setup,tests/io/test_multi_table.py,test_set_table_nonexisting_target,tests/io/test_multi_table.py::TestMultiTable::test_set_table_nonexisting_target +0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-..] +0.09,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[points-sdata_container_format1] +0.09,setup,tests/io/test_multi_table.py,test_change_annotation_target,tests/io/test_multi_table.py::TestMultiTable::test_change_annotation_target[region-None-Specified instance_key in table.uns 'instance_id' is not present as column in table.obs. Please specify instance_key.] +0.09,setup,tests/transformations/test_transformations_utils.py,test_convert_transformations_to_affine,tests/transformations/test_transformations_utils.py::test_convert_transformations_to_affine +0.09,setup,tests/core/operations/test_spatialdata_operations.py,test_locate_spatial_element,tests/core/operations/test_spatialdata_operations.py::test_locate_spatial_element +0.09,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[poly-True] +0.09,call,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image2] +0.09,setup,tests/core/query/test_relational_query.py,test_points_table_joins,tests/core/query/test_relational_query.py::test_points_table_joins +0.09,setup,tests/core/query/test_relational_query.py,test_filter_by_table_query_complex_combination,tests/core/query/test_relational_query.py::test_filter_by_table_query_complex_combination +0.09,setup,tests/core/operations/test_spatialdata_operations.py,test_del_item,tests/core/operations/test_spatialdata_operations.py::test_del_item +0.09,setup,tests/utils/test_testing.py,test_assert_elements_are_identical_metadata,tests/utils/test_testing.py::test_assert_elements_are_identical_metadata +0.09,setup,tests/io/test_readwrite.py,test_io_and_lazy_loading_raster,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_raster[sdata_container_format1] +0.09,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[circles] +0.08,setup,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object_multi_hop[True] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[circles-False] +0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[circles-True] +0.08,setup,tests/io/test_readwrite.py,test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_raster[sdata_container_format1] +0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[poly-False] +0.08,setup,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[False-labels] +0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[points_0-False] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d-True] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d_multiscale-True] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[poly-True] +0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[labels2d] +0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[image2d] +0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[multipoly] +0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[points_0-True] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[poly-False] +0.08,setup,tests/core/test_deepcopy.py,test_deepcopy,tests/core/test_deepcopy.py::test_deepcopy +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d-False] +0.08,setup,tests/io/test_readwrite.py,test_io_and_lazy_loading_raster,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_raster[sdata_container_format0] +0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[image2d-False] +0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py::test_transform_to_data_extent[False] +0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_subset,tests/core/operations/test_spatialdata_operations.py::test_subset +0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[labels2d_multiscale] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d-True] +0.08,setup,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[False-image] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d_multiscale-True] +0.08,setup,tests/core/operations/test_transform.py,test_transform_points_with_multiple_partitions,tests/core/operations/test_transform.py::test_transform_points_with_multiple_partitions +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[multipoly-True] +0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[poly] +0.08,call,tests/models/test_models.py,test_get_schema,tests/models/test_models.py::test_get_schema +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d_multiscale-False] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[points_0-True] +0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[multipoly-False] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d-False] +0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[labels2d-True] +0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[image2d-True] +0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[image2d_multiscale] +0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_validate_table_in_spatialdata,tests/core/operations/test_spatialdata_operations.py::test_validate_table_in_spatialdata +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[multipoly-False] +0.08,setup,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object[False] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[circles-True] +0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_init_from_elements,tests/core/operations/test_spatialdata_operations.py::test_init_from_elements +0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[labels2d-False] +0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[points_0] +0.08,setup,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object_multi_hop[False] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d_multiscale-False] +0.08,call,tests/io/test_readwrite.py,test_incremental_writing_invalid_name,tests/io/test_readwrite.py::test_incremental_writing_invalid_name +0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py::test_transform_to_data_extent[True] +0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[points_0-False] +0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_filter_by_coordinate_system_also_table,tests/core/operations/test_spatialdata_operations.py::test_filter_by_coordinate_system_also_table +0.08,setup,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[True-image] +0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_rename_coordinate_systems,tests/core/operations/test_spatialdata_operations.py::test_rename_coordinate_systems +0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_filter_by_coordinate_system,tests/core/operations/test_spatialdata_operations.py::test_filter_by_coordinate_system +0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas +0.08,setup,tests/utils/test_element_utils.py,test_unpad_raster,tests/utils/test_element_utils.py::test_unpad_raster +0.08,setup,tests/core/operations/test_rasterize.py,test_rasterize_spatialdata,tests/core/operations/test_rasterize.py::test_rasterize_spatialdata +0.08,call,tests/core/test_data_extent.py,test_rotate_vector_data,tests/core/test_data_extent.py::test_rotate_vector_data[True] +0.08,call,tests/io/test_readwrite.py,test_writing_invalid_name,tests/io/test_readwrite.py::test_writing_invalid_name +0.08,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-True-aligned] +0.07,call,tests/core/operations/test_transform.py,test_transform_until_0_0_15,tests/core/operations/test_transform.py::test_transform_until_0_0_15 +0.07,call,tests/io/test_readwrite.py,test_replace_transformation_on_disk_non_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_non_raster[sdata_container_format1] +0.07,call,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_table_region_not_found_zarrv2] +0.07,call,tests/core/test_data_extent.py,test_get_extent_affine_points3d,tests/core/test_data_extent.py::test_get_extent_affine_points3d +0.07,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-True-global] +0.07,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[points_0-True] +0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-dask-target-None-PointsModel] +0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-dask-target-None-PointsModel] +0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-dask-target-cell_id-PointsModel] +0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-dask-target-cell_id-PointsModel] +0.07,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_missing_zattrs_element] +0.07,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-True-aligned] +0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-dask-target-None-PointsModel] +0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-dask-target-cell_id-PointsModel] +0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-dask-target-None-PointsModel] +0.07,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[True-False-False-False] +0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-dask-target-cell_id-PointsModel] +0.07,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-None-points] +0.07,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_image_chunks_zarrv2] +0.07,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_parquet_zarrv2] +0.06,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_invalid_zattrs_element_violating_spec] +0.06,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-False-aligned] +0.06,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-False-global] +0.06,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[True-False-True-False] +0.06,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-True-global] +0.06,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_missing_image_chunks_zarrv2] +0.06,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_table_region_not_found_zarrv2] +0.06,call,tests/io/test_readwrite.py,test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py::TestReadWrite::test_shapes_geometry_encoding_write_element[WKB-sdata_container_format0] +0.06,call,tests/io/test_readwrite.py,test_read_sdata,tests/io/test_readwrite.py::test_read_sdata +0.06,call,tests/io/test_utils.py,test_backing_files_points,tests/io/test_utils.py::test_backing_files_points +0.06,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-False-aligned] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-dask-target-None-PointsModel] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-dask-target-None-PointsModel] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-dask-target-cell_id-PointsModel] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-dask-target-None-PointsModel] +0.06,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-instance_id-points] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-dask-target-cell_id-PointsModel] +0.06,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-value_key2-points] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-dask-target-cell_id-PointsModel] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-dask-target-cell_id-PointsModel] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-dask-target-None-PointsModel] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-dask-None-cell_id-PointsModel] +0.06,call,tests/io/test_readwrite.py,test_incremental_io_attrs,tests/io/test_readwrite.py::test_incremental_io_attrs[sdata_container_format0] +0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-dask-None-None-PointsModel] +0.05,call,tests/io/test_readwrite.py,test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py::TestReadWrite::test_shapes_geometry_encoding_write_element[WKB-sdata_container_format1] +0.05,call,tests/io/test_readwrite.py,test_incremental_io_attrs,tests/io/test_readwrite.py::test_incremental_io_attrs[sdata_container_format1] +0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-False-aligned] +0.05,call,tests/core/operations/test_vectorize.py,test_chunked_labels_2d_to_polygons,tests/core/operations/test_vectorize.py::test_chunked_labels_2d_to_polygons +0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-False-global] +0.05,call,tests/io/test_readwrite.py,test_shapes,tests/io/test_readwrite.py::TestReadWrite::test_shapes[geoarrow-sdata_container_format0] +0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-True-aligned] +0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-dask-None-None-PointsModel] +0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-dask-None-None-PointsModel] +0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-True-aligned] +0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-dask-None-cell_id-PointsModel] +0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-dask-None-cell_id-PointsModel] +0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-dask-None-None-PointsModel] +0.05,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-False-True-True] +0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-dask-None-cell_id-PointsModel] +0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_table_region_not_found_zarrv3] +0.05,call,tests/io/test_readwrite.py,test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py::TestReadWrite::test_shapes_geometry_encoding_write_element[geoarrow-sdata_container_format0] +0.05,setup,tests/io/test_utils.py,test_backing_files_images,tests/io/test_utils.py::test_backing_files_images +0.05,call,tests/io/test_readwrite.py,test_write_image_normalizes_explicit_zarr_chunk_grid,tests/io/test_readwrite.py::test_write_image_normalizes_explicit_zarr_chunk_grid +0.05,call,tests/io/test_readwrite.py,test_write_irregular_dask_chunks_without_explicit_storage_options,tests/io/test_readwrite.py::test_write_irregular_dask_chunks_without_explicit_storage_options +0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_missing_zarr_json_element] +0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_table_region_not_found_zarrv3] +0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-False-global] +0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-True-global] +0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-True-global] +0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-False-aligned] +0.05,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-None-circles] +0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_invalid_zarr_json_element_violating_spec] +0.05,setup,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image2] +0.05,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-None-squares] +0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-False-global] +0.05,setup,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV02] +0.05,setup,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[categorical_in_ddf-by_circles] +0.05,call,tests/core/operations/test_rasterize.py,test_rasterize_labels_value_key_specified,tests/core/operations/test_rasterize.py::test_rasterize_labels_value_key_specified +0.05,call,tests/core/query/test_relational_query.py,test_filter_by_table_query,tests/core/query/test_relational_query.py::test_filter_by_table_query +0.05,setup,tests/io/test_format.py,test_channel_names_raster_images_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_channel_names_raster_images_v1_to_v2_to_v3 +0.05,setup,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[overwrite] +0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_image_chunks_zarrv3] +0.05,setup,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV03] +0.05,setup,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[write] +0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_missing_image_chunks_zarrv3] +0.05,setup,tests/io/test_utils.py,test_backing_files_combining_points_and_images,tests/io/test_utils.py::test_backing_files_combining_points_and_images +0.05,setup,tests/io/test_format.py,test_raster_images_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_raster_images_v1_to_v2_to_v3 +0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_parquet_zarrv3] +0.05,setup,tests/io/test_readwrite.py,test_images,tests/io/test_readwrite.py::TestReadWrite::test_images[sdata_container_format1] +0.05,setup,tests/io/test_readwrite.py,test_single_table_multiple_annotations,tests/io/test_readwrite.py::TestReadWrite::test_single_table_multiple_annotations[sdata_container_format0] +0.05,call,tests/io/test_readwrite.py,test_write_image_normalizes_explicit_regular_dask_chunk_grid,tests/io/test_readwrite.py::test_write_image_normalizes_explicit_regular_dask_chunk_grid +0.05,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[images-sdata_container_format0] +0.05,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[images-sdata_container_format1] +0.05,call,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[categorical_in_ddf-by_circles] +0.05,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_multiple_annotations-sdata_container_format1] +0.05,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_multiple_annotations-sdata_container_format0] +0.05,call,tests/core/operations/test_vectorize.py,test_labels_2d_to_polygons,tests/core/operations/test_vectorize.py::test_labels_2d_to_polygons[False] +0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_elem_types_zgroup] +0.05,setup,tests/io/test_readwrite.py,test_single_table_multiple_annotations,tests/io/test_readwrite.py::TestReadWrite::test_single_table_multiple_annotations[sdata_container_format1] +0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-dask-None-cell_id-PointsModel] +0.05,call,tests/io/test_readwrite.py,test_io_and_lazy_loading_points,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_points[sdata_container_format0] +0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-dask-None-None-PointsModel] +0.05,setup,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[no] +0.05,setup,tests/io/test_readwrite.py,test_images,tests/io/test_readwrite.py::TestReadWrite::test_images[sdata_container_format0] +0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-dask-None-None-PointsModel] +0.04,call,tests/models/test_pyramids_utils.py,test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py::test_to_multiscale_via_ome_zarr_scaler[Image2DModel-128-2-3-scale_factors0-Methods.XARRAY_COARSEN] +0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-dask-None-None-PointsModel] +0.04,setup,tests/io/test_format.py,test_tables_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_tables_v1_to_v2 +0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-instance_id-circles] +0.04,call,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[numerical_in_ddf-by_polygons] +0.04,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_single_annotation-sdata_container_format1] +0.04,setup,tests/io/test_readwrite.py,test_single_table_single_annotation,tests/io/test_readwrite.py::TestReadWrite::test_single_table_single_annotation[sdata_container_format0] +0.04,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[labels-sdata_container_format1] +0.04,setup,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV01] +0.04,call,tests/io/test_readwrite.py,test_shapes,tests/io/test_readwrite.py::TestReadWrite::test_shapes[WKB-sdata_container_format0] +0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-None-points] +0.04,call,tests/core/test_data_extent.py,test_get_extent_points,tests/core/test_data_extent.py::test_get_extent_points[True] +0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-value_key2-circles] +0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image3DModel-to_spatial_image] +0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-instance_id-squares] +0.04,setup,tests/transformations/test_transformations.py,test_get_affine_for_element,tests/transformations/test_transformations.py::test_get_affine_for_element +0.04,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_single_annotation-sdata_container_format0] +0.04,call,tests/io/test_readwrite.py,test_shapes,tests/io/test_readwrite.py::TestReadWrite::test_shapes[geoarrow-sdata_container_format1] +0.04,setup,tests/io/test_readwrite.py,test_single_table_single_annotation,tests/io/test_readwrite.py::TestReadWrite::test_single_table_single_annotation[sdata_container_format1] +0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-value_key2-squares] +0.04,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-False-False-True] +0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-dask-None-cell_id-PointsModel] +0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-dask-None-cell_id-PointsModel] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_invalid_element,tests/core/test_centroids.py::test_get_centroids_invalid_element +0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-dask-None-None-PointsModel] +0.04,setup,tests/core/operations/test_transform.py,test_transformations_between_coordinate_systems,tests/core/operations/test_transform.py::test_transformations_between_coordinate_systems +0.04,call,tests/models/test_pyramids_utils.py,test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py::test_to_multiscale_via_ome_zarr_scaler[Labels2DModel-128-2-0-scale_factors2-Methods.DASK_IMAGE_NEAREST] +0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-dask-None-cell_id-PointsModel] +0.04,call,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[points_0] +0.04,call,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[numerical_in_ddf-by_circles] +0.04,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[labels-sdata_container_format0] +0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-instance_id-points] +0.04,setup,tests/io/test_utils.py,test_backing_files_labels,tests/io/test_utils.py::test_backing_files_labels +0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-value_key2-points] +0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-pandas-target-None-PointsModel] +0.04,call,tests/io/test_readwrite.py,test_io_and_lazy_loading_points,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_points[sdata_container_format1] +0.04,setup,tests/io/test_readwrite.py,test_labels,tests/io/test_readwrite.py::TestReadWrite::test_labels[sdata_container_format0] +0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image3DModel-DataArray] +0.04,call,tests/core/operations/test_map.py,test_relabel_sequential,tests/core/operations/test_map.py::test_relabel_sequential +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-True-aligned] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-False-global] +0.04,setup,tests/io/test_readwrite.py,test_labels,tests/io/test_readwrite.py::TestReadWrite::test_labels[sdata_container_format1] +0.04,call,tests/io/test_readwrite.py,test_points,tests/io/test_readwrite.py::TestReadWrite::test_points[sdata_container_format0] +0.04,call,tests/core/test_centroids.py,test_get_centroids_points,tests/core/test_centroids.py::test_get_centroids_points[True-aligned] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-True-aligned] +0.04,setup,tests/io/test_format.py,test_raster_labels_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_raster_labels_v1_to_v2_to_v3 +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-False-aligned] +0.04,call,tests/core/query/test_spatial_query.py,test_query_points_multiple_partitions,tests/core/query/test_spatial_query.py::test_query_points_multiple_partitions[True] +0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels3DModel-to_spatial_image] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-False-global] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-True-global] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-False-aligned] +0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image3DModel-to_spatial_image] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-True-global] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-False-aligned] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-False-aligned] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-True-global] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-True-aligned] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-False-global] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-True-global] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-True-aligned] +0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-False-global] +0.04,call,tests/core/test_data_extent.py,test_get_extent_points,tests/core/test_data_extent.py::test_get_extent_points[False] +0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image3DModel-to_spatial_image] +0.04,call,tests/io/test_readwrite.py,test_points,tests/io/test_readwrite.py::TestReadWrite::test_points[sdata_container_format1] +0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image3DModel-to_spatial_image] +0.04,call,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[categorical_in_ddf-by_polygons] +0.04,call,tests/io/test_readwrite.py,test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py::TestReadWrite::test_shapes_geometry_encoding_write_element[geoarrow-sdata_container_format1] +0.03,call,tests/io/test_readwrite.py,test_shapes,tests/io/test_readwrite.py::TestReadWrite::test_shapes[WKB-sdata_container_format1] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-pandas-target-cell_id-PointsModel] +0.03,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-False-True-False] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image2DModel-to_spatial_image] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-pandas-target-None-PointsModel] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels3DModel-to_spatial_image] +0.03,call,tests/models/test_models.py,test_shapes_model,tests/models/test_models.py::TestModels::test_shapes_model[path2-ShapesModel] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-pandas-target-cell_id-PointsModel] +0.03,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_zarr_json_elements] +0.03,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-False-False-False] +0.03,call,tests/models/test_models.py,test_shapes_model,tests/models/test_models.py::TestModels::test_shapes_model[path1-ShapesModel] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-pandas-target-cell_id-PointsModel] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image3DModel-DataArray] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels3DModel-to_spatial_image] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image2DModel-to_spatial_image] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image3DModel-DataArray] +0.03,call,tests/models/test_models.py,test_shapes_model,tests/models/test_models.py::TestModels::test_shapes_model[path0-ShapesModel] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels2DModel-to_spatial_image] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-pandas-target-None-PointsModel] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels3DModel-DataArray] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels3DModel-to_spatial_image] +0.03,call,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image1] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels3DModel-DataArray] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-pandas-target-None-PointsModel] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-pandas-target-cell_id-PointsModel] +0.03,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_elem_types_zarr_json] +0.03,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_zattrs_elements] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels2DModel-to_spatial_image] +0.03,call,tests/core/test_centroids.py,test_get_centroids_points,tests/core/test_centroids.py::test_get_centroids_points[True-global] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image2DModel-to_spatial_image] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-pandas-None-None-PointsModel] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image2DModel-to_spatial_image] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image2DModel-DataArray] +0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image3DModel-chunks15-expected15] +0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image3DModel-chunks14-expected14] +0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image3DModel-5-expected13] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image3DModel-DataArray] +0.03,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[points_0-False] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-pandas-None-cell_id-PointsModel] +0.03,call,tests/models/test_pyramids_utils.py,test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py::test_to_multiscale_via_ome_zarr_scaler[Image3DModel-32-3-3-scale_factors1-Methods.XARRAY_COARSEN] +0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-True-False-2] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-pandas-None-cell_id-PointsModel] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels2DModel-DataArray] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels3DModel-DataArray] +0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-True-False-1] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-pandas-None-None-PointsModel] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-pandas-None-cell_id-PointsModel] +0.03,call,tests/core/query/test_relational_query.py,test_points_table_joins,tests/core/query/test_relational_query.py::test_points_table_joins +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image2DModel-DataArray] +0.03,call,tests/core/operations/test_spatialdata_operations.py,test_rename_coordinate_systems,tests/core/operations/test_spatialdata_operations.py::test_rename_coordinate_systems +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels2DModel-to_spatial_image] +0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image3DModel-None-expected12] +0.03,call,tests/models/test_pyramids_utils.py,test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py::test_to_multiscale_via_ome_zarr_scaler[Labels3DModel-32-3-0-scale_factors3-Methods.DASK_IMAGE_NEAREST] +0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-True-False-3] +0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-True-False-1] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels3DModel-DataArray] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels2DModel-to_spatial_image] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-pandas-None-cell_id-PointsModel] +0.03,call,tests/core/operations/test_transform.py,test_points,tests/core/operations/test_transform.py::TestElementsTransform::test_points[transform0] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-pandas-None-None-PointsModel] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image2DModel-from_array] +0.03,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_polygons] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image2DModel-DataArray] +0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-True-True-1] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image2DModel-DataArray] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-pandas-None-None-PointsModel] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image3DModel-] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image2DModel-] +0.03,call,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_parquet_zarrv2] +0.03,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-None-squares] +0.03,call,tests/core/operations/test_aggregations.py,test_aggregate_spatialdata,tests/core/operations/test_aggregations.py::test_aggregate_spatialdata +0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-True-False-3] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels2DModel-DataArray] +0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-True-False-2] +0.03,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-None-circles] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image3DModel-from_array] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels2DModel-DataArray] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels3DModel-] +0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-pandas-target-None-PointsModel] +0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels2DModel-DataArray] +0.03,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-value_key2-circles] +0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image2DModel-chunks11-expected11] +0.02,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-value_key2-squares] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image2DModel-chunks10-expected10] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image2DModel-5-expected9] +0.02,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-True-False-True] +0.02,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-instance_id-circles] +0.02,call,tests/io/test_readwrite.py,test_single_scale_image_roundtrip_stays_dataarray,tests/io/test_readwrite.py::test_single_scale_image_roundtrip_stays_dataarray +0.02,call,tests/core/operations/test_transform.py,test_shapes,tests/core/operations/test_transform.py::TestElementsTransform::test_shapes[transform0] +0.02,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_polygons-blobs_multiscale_image] +0.02,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_polygons-blobs_image] +0.02,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-instance_id-squares] +0.02,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multipolygons-blobs_multiscale_image] +0.02,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multipolygons-blobs_image] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels3DModel-from_array] +0.02,call,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_parquet_zarrv3] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-False-False-1] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-False-False-3] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels3DModel-5-expected5] +0.02,setup,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image1] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-False-False-1] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels3DModel-chunks6-expected6] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image3DModel-from_array] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-True-True-1] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-pandas-None-cell_id-PointsModel] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_circles] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-False-False-2] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels3DModel-chunks7-expected7] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-pandas-target-cell_id-PointsModel] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image3DModel-] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels2DModel-from_array] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels2DModel-from_array] +0.02,call,tests/core/test_centroids.py,test_get_centroids_points,tests/core/test_centroids.py::test_get_centroids_points[False-aligned] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-False-True-1] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-True-False-1] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-pandas-target-None-PointsModel] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-pandas-target-None-PointsModel] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image2DModel-None-expected8] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-False-False-3] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-False-False-2] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-False-False-3] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels2DModel-] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-True-False-1] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels3DModel-from_array] +0.02,call,tests/core/operations/test_transform.py,test_points,tests/core/operations/test_transform.py::TestElementsTransform::test_points[transform1] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-True-False-3] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image2DModel-from_array] +0.02,call,tests/core/operations/test_transform.py,test_shapes,tests/core/operations/test_transform.py::TestElementsTransform::test_shapes[transform1] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-True-False-2] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-pandas-target-cell_id-PointsModel] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-pandas-target-cell_id-PointsModel] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-True-False-1] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels3DModel-None-expected4] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-pandas-None-None-PointsModel] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-pandas-target-None-PointsModel] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-pandas-None-cell_id-PointsModel] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels3DModel-] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-True-False-2] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image2DModel-] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-pandas-None-None-PointsModel] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-True-False-2] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-True-False-3] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels2DModel-] +0.02,call,tests/io/test_readwrite.py,test_write_image_rejects_string,tests/io/test_readwrite.py::test_write_image_rejects_string +0.02,call,tests/io/test_readwrite.py,test_write_image_rejects_explicit_irregular_dask_chunk_grid,tests/io/test_readwrite.py::test_write_image_rejects_explicit_irregular_dask_chunk_grid +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels3DModel-] +0.02,call,tests/core/operations/test_spatialdata_operations.py,test_init_from_elements,tests/core/operations/test_spatialdata_operations.py::test_init_from_elements +0.02,call,tests/io/test_readwrite.py,test_write_image_rejects_empty_string,tests/io/test_readwrite.py::test_write_image_rejects_empty_string +0.02,call,tests/core/query/test_relational_query.py,test_match_rows_join,tests/core/query/test_relational_query.py::test_match_rows_join +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-pandas-target-cell_id-PointsModel] +0.02,call,tests/io/test_readwrite.py,test_write_image_rejects_byte_string,tests/io/test_readwrite.py::test_write_image_rejects_byte_string +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels2DModel-] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-pandas-None-cell_id-PointsModel] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image2DModel-] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-pandas-None-cell_id-PointsModel] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels3DModel-from_array] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-True-False-3] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels3DModel-from_array] +0.02,call,tests/io/test_multi_table.py,test_concatenate_sdata_multitables,tests/io/test_multi_table.py::test_concatenate_sdata_multitables +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-False-True-1] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-pandas-None-None-PointsModel] +0.02,setup,tests/core/operations/test_aggregations.py,test_aggregate_image_by_labels,tests/core/operations/test_aggregations.py::test_aggregate_image_by_labels[Labels2DModel-Image2DModel] +0.02,call,tests/core/operations/test_spatialdata_operations.py,test_filter_by_coordinate_system,tests/core/operations/test_spatialdata_operations.py::test_filter_by_coordinate_system +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels2DModel-from_array] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image3DModel-from_array] +0.02,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[circles-aligned] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels3DModel-] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-pandas-None-None-PointsModel] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels2DModel-from_array] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image2DModel-from_array] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-numpy-None-None-PointsModel] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-numpy-None-cell_id-PointsModel] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_circles] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image3DModel-] +0.02,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[poly-aligned] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels2DModel-] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-numpy-None-cell_id-PointsModel] +0.02,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-True-False-False] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image2DModel-from_array] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-False-False-1] +0.02,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[multipoly-aligned] +0.02,call,tests/core/test_data_extent.py,test_get_extent_affine_circles,tests/core/test_data_extent.py::test_get_extent_affine_circles +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-False-False-1] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image3DModel-] +0.02,call,tests/models/test_models.py,test_points_and_shapes_conversions,tests/models/test_models.py::test_points_and_shapes_conversions +0.02,call,tests/core/query/test_relational_query.py,test_get_values_df_points,tests/core/query/test_relational_query.py::test_get_values_df_points +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-False-False-2] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels2DModel-chunks2-expected2] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels2DModel-5-expected1] +0.02,call,tests/core/test_centroids.py,test_get_centroids_points,tests/core/test_centroids.py::test_get_centroids_points[False-global] +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image2DModel-] +0.02,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_tables,tests/core/operations/test_spatialdata_operations.py::test_concatenate_tables +0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image3DModel-from_array] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels2DModel-chunks3-expected3] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-False-False-2] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-True-True-1] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-numpy-target-None-PointsModel] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-False-True-1] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_circles-by_circles] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-numpy-target-cell_id-PointsModel] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-False-False-3] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_circles-by_circles] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-False-False-2] +0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels2DModel-None-expected0] +0.02,setup,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image0] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-numpy-target-cell_id-PointsModel] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-numpy-target-None-PointsModel] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-False-False-3] +0.02,call,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image0] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_polygons] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-False-False-1] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-numpy-None-None-PointsModel] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-True-True-1] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_polygons-by_circles] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-numpy-None-cell_id-PointsModel] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-numpy-None-None-PointsModel] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-numpy-None-None-PointsModel] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_circles-by_circles] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-numpy-None-cell_id-PointsModel] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-True-True-1] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_circles-by_polygons] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-numpy-target-cell_id-PointsModel] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_circles-by_polygons] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-numpy-target-None-PointsModel] +0.02,call,tests/core/operations/test_map.py,test_map_raster_output_chunks,tests/core/operations/test_map.py::test_map_raster_output_chunks +0.02,call,tests/core/operations/test_vectorize.py,test_polygons_to_circles,tests/core/operations/test_vectorize.py::test_polygons_to_circles +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-False-True-1] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-numpy-target-cell_id-PointsModel] +0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-numpy-target-None-PointsModel] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_polygons-by_circles] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_polygons-by_circles] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_polygons-by_polygons] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_circles-by_circles] +0.02,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_two_tables_each_annotating_two_elements,tests/core/operations/test_spatialdata_operations.py::test_concatenate_two_tables_each_annotating_two_elements +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_circles-by_polygons] +0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-False-True-1] +0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_polygons-by_circles] +0.02,call,tests/core/operations/test_vectorize.py,test_multipolygons_to_circles,tests/core/operations/test_vectorize.py::test_multipolygons_to_circles +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_circles-by_circles] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_circles-by_polygons] +0.01,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[circles-global] +0.01,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins_invalid,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins_invalid +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_polygons-by_polygons] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_polygons-by_polygons] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_polygons-by_polygons] +0.01,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[poly-global] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-True-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[labels2d-True] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-True-False-1] +0.01,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[multipoly-global] +0.01,call,tests/core/test_data_extent.py,test_bug_get_extent_swap_xy_for_images,tests/core/test_data_extent.py::test_bug_get_extent_swap_xy_for_images +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[labels2d-False] +0.01,call,tests/core/query/test_relational_query.py,test_get_values_df_shapes,tests/core/query/test_relational_query.py::test_get_values_df_shapes +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_polygons-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-True-False-3] +0.01,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_circles-blobs_multiscale_image] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-True-False-2] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_circles-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_polygon_query_with_multipolygon,tests/core/query/test_spatial_query.py::test_polygon_query_with_multipolygon +0.01,call,tests/core/operations/test_transform.py,test_transform_datatree_scale_handling,tests/core/operations/test_transform.py::test_transform_datatree_scale_handling +0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[points_0-True] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-True-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-True-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-True-False-2] +0.01,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_circles-blobs_image] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_polygons-by_polygons] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_deepcopy,tests/core/operations/test_aggregations.py::test_aggregate_deepcopy +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-True-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-True-False-1] +0.01,call,tests/core/query/test_relational_query.py,test_left_inner_right_exclusive_join,tests/core/query/test_relational_query.py::test_left_inner_right_exclusive_join +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-True-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-True-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-True-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-True-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-True-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-True-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-True-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-True-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-True-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-True-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-True-False-2] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_circles-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-False-False-1] +0.01,call,tests/core/test_data_extent.py,test_get_extent_raster,tests/core/test_data_extent.py::test_get_extent_raster[False-image] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-False-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-True-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-True-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-True-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-True-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-True-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-True-False-2] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_circles-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-True-False-3] +0.01,call,tests/core/test_data_extent.py,test_get_extent_raster,tests/core/test_data_extent.py::test_get_extent_raster[True-labels] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-True-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-True-False-1] +0.01,setup,tests/core/query/test_relational_query.py,test_get_values_df_shapes,tests/core/query/test_relational_query.py::test_get_values_df_shapes +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-True-False-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_circles-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-True-False-3] +0.01,call,tests/core/test_data_extent.py,test_get_extent_raster,tests/core/test_data_extent.py::test_get_extent_raster[True-image] +0.01,call,tests/core/operations/test_map.py,test_map_raster_relabel,tests/core/operations/test_map.py::test_map_raster_relabel +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-True-False-2] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_circles-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-True-False-2] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_polygons-by_circles] +0.01,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[empty-sdata_container_format0] +0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d_multiscale-True] +0.01,call,tests/core/operations/test_vectorize.py,test_labels_2d_to_polygons,tests/core/operations/test_vectorize.py::test_labels_2d_to_polygons[True] +0.01,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-False-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-False-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-False-False-2] +0.01,setup,tests/core/query/test_relational_query.py,test_match_table_to_element,tests/core/query/test_relational_query.py::test_match_table_to_element +0.01,call,tests/core/test_data_extent.py,test_get_extent_raster,tests/core/test_data_extent.py::test_get_extent_raster[False-labels] +0.01,call,tests/transformations/test_transformations.py,test_transform_coordinates,tests/transformations/test_transformations.py::test_transform_coordinates +0.01,call,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[image2d_multiscale] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-False-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-False-False-2] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_circles-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d_multiscale-False] +0.01,setup,tests/core/query/test_relational_query.py,test_left_exclusive_and_right_join,tests/core/query/test_relational_query.py::test_left_exclusive_and_right_join +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-False-False-3] +0.01,setup,tests/core/query/test_relational_query.py,test_match_rows_inner_join_non_matching_element,tests/core/query/test_relational_query.py::test_match_rows_inner_join_non_matching_element +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-True-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-False-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-False-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-False-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-False-False-1] +0.01,setup,tests/core/query/test_relational_query.py,test_locate_value,tests/core/query/test_relational_query.py::test_locate_value +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-False-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-False-False-1] +0.01,setup,tests/core/query/test_relational_query.py,test_match_rows_inner_join_non_matching_table,tests/core/query/test_relational_query.py::test_match_rows_inner_join_non_matching_table +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-False-False-2] +0.01,call,tests/models/test_models.py,test_c_coords_2d,tests/models/test_models.py::test_c_coords_2d[scale_factors1] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_circles-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-False-False-3] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_polygons-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-False-False-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_circles-by_circles] +0.01,setup,tests/core/query/test_relational_query.py,test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py::test_inner_join_match_rows_duplicate_obs_indices[right] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_polygons-by_circles] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_polygons-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-True-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d_multiscale-True] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_circles-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-False-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-False-False-3] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_circles-by_polygons] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_polygons-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-False-False-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-False-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-False-False-2] +0.01,setup,tests/core/query/test_relational_query.py,test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py::test_inner_join_match_rows_duplicate_obs_indices[left] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_polygons-by_polygons] +0.01,setup,tests/core/query/test_relational_query.py,test_join_using_string_instance_id_and_index,tests/core/query/test_relational_query.py::test_join_using_string_instance_id_and_index +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-False-False-3] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_circles-by_circles] +0.01,setup,tests/core/query/test_relational_query.py,test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py::test_inner_join_match_rows_duplicate_obs_indices[right_exclusive] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-False-False-2] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_polygons-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-True-True-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_circles-by_polygons] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_polygons-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-False-False-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_circles-by_polygons] +0.01,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[empty-sdata_container_format1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-True-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-False-False-1] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_polygons-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_filter_table,tests/core/query/test_spatial_query.py::test_query_filter_table[True] +0.01,call,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[labels2d_multiscale] +0.01,setup,tests/core/query/test_relational_query.py,test_left_inner_right_exclusive_join,tests/core/query/test_relational_query.py::test_left_inner_right_exclusive_join +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-False-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-False-False-2] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_polygons-by_polygons] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_polygons-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-True-True-1] +0.01,setup,tests/core/query/test_relational_query.py,test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py::test_inner_join_match_rows_duplicate_obs_indices[inner] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-False-False-3] +0.01,setup,tests/core/query/test_relational_query.py,test_match_rows_join,tests/core/query/test_relational_query.py::test_match_rows_join +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_circles-by_circles] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_circles-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-False-False-3] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-False-False-1] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_polygons-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-False-False-2] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-True-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-True-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-False-False-3] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_polygons-by_circles] +0.01,setup,tests/core/query/test_spatial_query.py,test_polygon_query_with_multipolygon,tests/core/query/test_spatial_query.py::test_polygon_query_with_multipolygon +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-True-True-1] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_polygons-by_polygons] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_circles-by_polygons] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_polygons-by_polygons] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_circles-by_circles] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_polygons-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-False-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-True-True-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_circles-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-False-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-True-True-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_polygons-by_polygons] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_circles-by_circles] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_circles-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-False-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d_multiscale-False] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_polygons-by_polygons] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_polygons-by_circles] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_circles-by_polygons] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_polygons-by_circles] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_circles-by_polygons] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_polygons-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[image2d-True] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[categorical_in_ddf-by_polygons] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_circles-by_circles] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-False-True-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_polygons-by_circles] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_polygons-by_polygons] +0.01,call,tests/core/operations/test_aggregations.py,test_aggregation_invalid_cases,tests/core/operations/test_aggregations.py::test_aggregation_invalid_cases +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-False-True-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_polygons-by_polygons] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_circles-by_polygons] +0.01,call,tests/transformations/test_transformations_utils.py,test_convert_transformations_to_affine,tests/transformations/test_transformations_utils.py::test_convert_transformations_to_affine +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[numerical_in_ddf-by_circles] +0.01,call,tests/core/query/test_relational_query.py,test_labels_table_joins,tests/core/query/test_relational_query.py::test_labels_table_joins +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-False-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_filter_table,tests/core/query/test_spatial_query.py::test_query_filter_table[False] +0.01,call,tests/core/query/test_relational_query.py,test_filter_table_non_annotating,tests/core/query/test_relational_query.py::test_filter_table_non_annotating +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_circles-by_circles] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregation_invalid_cases,tests/core/operations/test_aggregations.py::test_aggregation_invalid_cases +0.01,call,tests/io/test_attrs_io.py,test_attrs_incremental_write,tests/io/test_attrs_io.py::TestAttrsIO::test_attrs_incremental_write[sdata_container_format0] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_circles-by_polygons] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_polygons-by_circles] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_polygons-by_polygons] +0.01,call,tests/core/operations/test_map.py,test_map_raster_multiscale,tests/core/operations/test_map.py::test_map_raster_multiscale[depth1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-False-True-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_circles-by_circles] +0.01,call,tests/models/test_models.py,test_dask_points_from_parquet,tests/models/test_models.py::test_dask_points_from_parquet[True-1] +0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[numerical_in_ddf-by_polygons] +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[circles-True] +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[circles-False] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-False-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[image2d-False] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-False-True-1] +0.01,call,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_image-depth1] +0.01,call,tests/core/query/test_relational_query.py,test_filter_by_table_query_edge_cases,tests/core/query/test_relational_query.py::test_filter_by_table_query_edge_cases +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-False-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-False-True-1] +0.01,call,tests/core/query/test_spatial_query.py,test_query_with_clipping,tests/core/query/test_spatial_query.py::test_query_with_clipping +0.01,call,tests/models/test_models.py,test_labels_model_with_multiscales,tests/models/test_models.py::TestModels::test_labels_model_with_multiscales[Labels3DModel] +0.01,call,tests/io/test_attrs_io.py,test_attrs_v1_to_v2,tests/io/test_attrs_io.py::test_attrs_v1_to_v2 +0.01,call,tests/models/test_models.py,test_labels_model_with_multiscales,tests/models/test_models.py::TestModels::test_labels_model_with_multiscales[Labels2DModel] +0.01,call,tests/core/query/test_relational_query.py,test_match_rows_inner_join_non_matching_table,tests/core/query/test_relational_query.py::test_match_rows_inner_join_non_matching_table +0.01,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_custom_table_metadata,tests/core/operations/test_spatialdata_operations.py::test_concatenate_custom_table_metadata +0.01,call,tests/core/operations/test_transform.py,test_coordinate_systems_with_shortest_paths,tests/core/operations/test_transform.py::test_coordinate_systems_with_shortest_paths +0.01,call,tests/io/test_attrs_io.py,test_attrs_incremental_write,tests/io/test_attrs_io.py::TestAttrsIO::test_attrs_incremental_write[sdata_container_format1] +0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d-True] +0.01,call,tests/core/operations/test_spatialdata_operations.py,test_element_names_unique,tests/core/operations/test_spatialdata_operations.py::test_element_names_unique +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[poly-True] +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[multipoly-True] +0.01,call,tests/core/operations/test_transform.py,test_map_coordinate_systems_single_path,tests/core/operations/test_transform.py::test_map_coordinate_systems_single_path +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[poly-False] +0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d-False] +0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[multipoly-False] +0.01,call,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_labels-depth1] +0.01,call,tests/core/operations/test_map.py,test_map_raster_relabel_fail,tests/core/operations/test_map.py::test_map_raster_relabel_fail +0.01,call,tests/core/query/test_spatial_query.py,test_query_points_no_points,tests/core/query/test_spatial_query.py::test_query_points_no_points +0.01,call,tests/core/operations/test_transform.py,test_map_coordinate_systems_zero_or_multiple_paths,tests/core/operations/test_transform.py::test_map_coordinate_systems_zero_or_multiple_paths +0.01,call,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[labels2d] +0.01,call,tests/models/test_models.py,test_dask_points_from_parquet,tests/models/test_models.py::test_dask_points_from_parquet[True-2] diff --git a/pytest_fixture_benchmark.csv b/pytest_fixture_benchmark.csv new file mode 100644 index 000000000..dea3af277 --- /dev/null +++ b/pytest_fixture_benchmark.csv @@ -0,0 +1,16 @@ +approach,fixture,cost_mean_ms,cost_min_ms,n_test_calls,estimated_total_s,notes +current,sdata_blobs,126.4,122.9,83,10.5,"blobs() + deepcopy, function-scoped" +session_cache,sdata_blobs,23.5,21.7,83,1.9,deepcopy of session-cached blobs +current,labels_blobs,18.1,17.7,5,0.1,BlobsDataset._labels_blobs() each call +session_cache,labels_blobs,2.7,2.3,5,0.0,deepcopy of session-cached DataArray +current,full_sdata,88.1,84.7,20,1.8,fresh parse of _get_images+labels+shapes+points+tables +session_cache,full_sdata,82.0,77.2,20,1.6,sd_deepcopy(session_cached) — nearly same cost +current,images,45.0,44.0,15,0.7,Image2DModel.parse() x8 with multiscale +session_cache,images,41.3,37.9,15,0.6,"sd_deepcopy — parse dominates, no gain" +current,labels,38.8,36.3,15,0.6,Labels2DModel.parse() x8 with multiscale +session_cache,labels,38.6,35.8,15,0.6,"sd_deepcopy — parse dominates, no gain" +current_gen_only,images (array gen only),0.4,0.4,15,0.0,"just RNG, no parse" +current_parse_only,images (Model.parse only),2.8,2.5,15,0.0,"just parse, fixed array" +memmap,images (single),8.7,2.9,15,0.1,memmap load + parse — negligible diff vs RNG +current,sdata_query_aggregation,8.4,8.3,30,0.3,complex construction with shapes+points+table +session_cache,sdata_query_aggregation,4.0,3.5,30,0.1,sd_deepcopy — shapes+points are cheap diff --git a/pytest_summary.csv b/pytest_summary.csv new file mode 100644 index 000000000..4665c40da --- /dev/null +++ b/pytest_summary.csv @@ -0,0 +1,9 @@ +metric,value,notes +total_wallclock_before_s,186.39,"1332 passed, 7 skip, 1 xfail" +total_wallclock_after_s,180.59,"1332 passed, 7 skip, 1 xfail — all tests still pass" +wallclock_saved_s,5.8,measured end-to-end +setup_phase_before_s,44.8,from --durations=0 +setup_phase_after_s,35.0,from --durations=0 +setup_saved_s,9.8,fixture setup improvement +call_phase_before_s,136.5, +call_phase_after_s,140.7,"small increase is noise, not regression" diff --git a/tests/conftest.py b/tests/conftest.py index c97939129..cdea587bc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -304,18 +304,28 @@ def _get_new_table(spatial_element: None | str | Sequence[str], instance_id: Non return TableModel.parse(adata=adata, spatial_element=spatial_element, instance_id=instance_id) -@pytest.fixture() -def labels_blobs() -> ArrayLike: - """Create a 2D labels.""" +@pytest.fixture(scope="session") +def _labels_blobs_session() -> ArrayLike: return BlobsDataset()._labels_blobs() @pytest.fixture() -def sdata_blobs() -> SpatialData: +def labels_blobs(_labels_blobs_session: ArrayLike) -> ArrayLike: """Create a 2D labels.""" + return deepcopy(_labels_blobs_session) + + +@pytest.fixture(scope="session") +def _sdata_blobs_session() -> SpatialData: from spatialdata.datasets import blobs - return deepcopy(blobs(256, 300, 3)) + return blobs(256, 300, 3) + + +@pytest.fixture() +def sdata_blobs(_sdata_blobs_session: SpatialData) -> SpatialData: + """Create a 2D labels.""" + return deepcopy(_sdata_blobs_session) def _make_points(coordinates: np.ndarray) -> DaskDataFrame: From 9f1378d90fde766ed819d3b264d3008c4fbaa6d6 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Tue, 5 May 2026 17:20:21 +0200 Subject: [PATCH 02/18] perf: use blobs(length=128) in test_vectorize to cut to_circles cost MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit to_circles() on labels scales linearly with pixel count. Dropping from 512×512 to 128×128 cuts test_labels_2d_to_circles from ~3.9s to ~1.0s per parametrized variant (−4.7s across the file). Updated hardcoded coordinate/radius assertions to match the new size. Co-Authored-By: Claude Sonnet 4.6 --- tests/core/operations/test_vectorize.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/core/operations/test_vectorize.py b/tests/core/operations/test_vectorize.py index ae83f6c95..503b34e7a 100644 --- a/tests/core/operations/test_vectorize.py +++ b/tests/core/operations/test_vectorize.py @@ -19,7 +19,7 @@ from spatialdata.testing import assert_elements_are_identical # each of the tests operates on different elements, hence we can initialize the data once without conflicts -sdata = blobs() +sdata = blobs(length=128) # conversion from labels @@ -29,9 +29,9 @@ def test_labels_2d_to_circles(is_multiscale: bool) -> None: element = sdata[key] new_circles = to_circles(element) - assert np.isclose(new_circles.loc[1].geometry.x, 330.59258152354386) - assert np.isclose(new_circles.loc[1].geometry.y, 78.85026897788404) - assert np.isclose(new_circles.loc[1].radius, 69.229993) + assert np.isclose(new_circles.loc[1].geometry.x, 66.33699870633895) + assert np.isclose(new_circles.loc[1].geometry.y, 94.86610608020699) + assert np.isclose(new_circles.loc[1].radius, 15.686094) assert 7 not in new_circles.index @@ -83,10 +83,10 @@ def test_polygons_to_circles() -> None: data = { "geometry": [ - Point(315.8120722406787, 220.18894606643332), - Point(270.1386975678398, 417.8747936281634), + Point(78.95301806016967, 55.04723651660833), + Point(67.53467439195995, 104.46869840704085), ], - "radius": [16.608781, 17.541365], + "radius": [4.152195, 4.385341], } expected = ShapesModel.parse(GeoDataFrame(data, geometry="geometry")) @@ -99,10 +99,10 @@ def test_multipolygons_to_circles() -> None: data = { "geometry": [ - Point(340.37951022629096, 250.76310705786318), - Point(337.1680699150594, 316.39984581697314), + Point(85.09487755657274, 62.690776764465795), + Point(84.23037752020095, 79.09996145424327), ], - "radius": [23.488363, 19.059285], + "radius": [5.872091, 4.736710], } expected = ShapesModel.parse(GeoDataFrame(data, geometry="geometry")) assert_elements_are_identical(new_circles, expected) From 149bfdfb233dc527dcc1a71cc661d18ac50f648a Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Tue, 5 May 2026 17:42:21 +0200 Subject: [PATCH 03/18] chore: remove benchmark CSVs from repo --- pytest_before_after.csv | 32 - pytest_by_file.csv | 32 - pytest_by_test.csv | 234 ------- pytest_durations.csv | 1171 ---------------------------------- pytest_fixture_benchmark.csv | 16 - 5 files changed, 1485 deletions(-) delete mode 100644 pytest_before_after.csv delete mode 100644 pytest_by_file.csv delete mode 100644 pytest_by_test.csv delete mode 100644 pytest_durations.csv delete mode 100644 pytest_fixture_benchmark.csv diff --git a/pytest_before_after.csv b/pytest_before_after.csv deleted file mode 100644 index 3902a1efb..000000000 --- a/pytest_before_after.csv +++ /dev/null @@ -1,32 +0,0 @@ -file,setup_before_s,setup_after_s,setup_delta_s,call_before_s,call_after_s,call_delta_s -tests/dataloader/test_datasets.py,7.34,1.02,-6.32,16.05,16.73,0.68 -tests/core/operations/test_map.py,2.73,0.62,-2.11,0.11,0.12,0.01 -tests/core/operations/test_aggregations.py,2.58,1.16,-1.42,1.83,2.39,0.56 -tests/core/query/test_relational_query.py,1.77,1.24,-0.53,0.18,0.22,0.04 -tests/core/operations/test_rasterize_bins.py,0.0,0.0,0.0,0.73,0.9,0.17 -tests/core/operations/test_vectorize.py,0.0,0.0,0.0,6.37,6.9,0.53 -tests/core/query/test_relational_query_match_sdata_to_table.py,0.0,0.0,0.0,0.41,0.47,0.06 -tests/core/test_data_extent.py,0.0,0.0,0.0,0.47,0.66,0.19 -tests/datasets/test_datasets.py,0.0,0.0,0.0,0.67,0.69,0.02 -tests/io/test_attrs_io.py,0.0,0.0,0.0,0.03,0.03,0.0 -tests/io/test_metadata.py,1.16,1.16,0.0,11.31,11.31,0.0 -tests/io/test_multi_table.py,0.72,0.72,0.0,3.16,3.13,-0.03 -tests/io/test_pyramids_performance.py,0.23,0.23,0.0,0.44,0.45,0.01 -tests/io/test_readwrite.py,6.03,6.03,0.0,56.79,57.13,0.34 -tests/io/test_utils.py,0.14,0.14,0.0,0.93,1.16,0.23 -tests/models/test_pyramids_utils.py,0.0,0.0,0.0,0.14,0.15,0.01 -tests/transformations/test_transformations.py,0.04,0.04,0.0,1.02,1.05,0.03 -tests/transformations/test_transformations_utils.py,0.09,0.09,0.0,0.01,0.01,0.0 -tests/utils/test_sanitize.py,0.09,0.09,0.0,0.0,0.0,0.0 -tests/utils/test_testing.py,0.09,0.09,0.0,0.15,0.17,0.02 -tests/core/operations/test_rasterize.py,0.08,0.09,0.01,5.93,6.35,0.42 -tests/core/test_centroids.py,0.68,0.69,0.01,1.11,1.14,0.03 -tests/core/test_deepcopy.py,0.08,0.09,0.01,0.19,0.2,0.01 -tests/io/test_format.py,0.41,0.42,0.01,6.41,6.33,-0.08 -tests/models/test_models.py,3.75,3.76,0.01,7.62,7.79,0.17 -tests/utils/test_element_utils.py,0.08,0.09,0.01,0.45,0.48,0.03 -tests/core/query/test_spatial_query.py,3.33,3.39,0.06,3.8,3.91,0.11 -tests/core/operations/test_transform.py,1.41,1.48,0.07,3.95,3.98,0.03 -tests/core/operations/test_spatialdata_operations.py,0.99,1.1,0.11,4.99,5.58,0.59 -tests/core/test_get_attrs.py,2.42,2.54,0.12,0.25,0.25,0.0 -tests/io/test_partial_read.py,8.54,8.71,0.17,1.0,1.02,0.02 diff --git a/pytest_by_file.csv b/pytest_by_file.csv deleted file mode 100644 index 557d8a236..000000000 --- a/pytest_by_file.csv +++ /dev/null @@ -1,32 +0,0 @@ -file,total_s,call_s,setup_s,teardown_s,n_tests,avg_call_s -tests/io/test_readwrite.py,62.82,56.79,6.03,0.0,103,0.551 -tests/dataloader/test_datasets.py,23.39,16.05,7.34,0.0,49,0.328 -tests/io/test_metadata.py,12.47,11.31,1.16,0.0,14,0.808 -tests/models/test_models.py,11.37,7.62,3.75,0.0,172,0.044 -tests/io/test_partial_read.py,9.54,1.0,8.54,0.0,20,0.05 -tests/core/query/test_spatial_query.py,7.13,3.8,3.33,0.0,171,0.022 -tests/io/test_format.py,6.82,6.41,0.41,0.0,10,0.641 -tests/core/operations/test_vectorize.py,6.37,6.37,0.0,0.0,7,0.91 -tests/core/operations/test_rasterize.py,6.01,5.93,0.08,0.0,7,0.847 -tests/core/operations/test_spatialdata_operations.py,5.98,4.99,0.99,0.0,18,0.277 -tests/core/operations/test_transform.py,5.36,3.95,1.41,0.0,20,0.197 -tests/core/operations/test_aggregations.py,4.41,1.83,2.58,0.0,50,0.037 -tests/io/test_multi_table.py,3.88,3.16,0.72,0.0,9,0.351 -tests/core/operations/test_map.py,2.84,0.11,2.73,0.0,7,0.016 -tests/core/test_get_attrs.py,2.67,0.25,2.42,0.0,1,0.25 -tests/core/query/test_relational_query.py,1.95,0.18,1.77,0.0,10,0.018 -tests/core/test_centroids.py,1.79,1.11,0.68,0.0,26,0.043 -tests/io/test_utils.py,1.07,0.93,0.14,0.0,4,0.232 -tests/transformations/test_transformations.py,1.06,1.02,0.04,0.0,5,0.204 -tests/core/operations/test_rasterize_bins.py,0.73,0.73,0.0,0.0,19,0.038 -tests/datasets/test_datasets.py,0.67,0.67,0.0,0.0,1,0.67 -tests/io/test_pyramids_performance.py,0.67,0.44,0.23,0.0,4,0.11 -tests/utils/test_element_utils.py,0.53,0.45,0.08,0.0,1,0.45 -tests/core/test_data_extent.py,0.47,0.47,0.0,0.0,11,0.043 -tests/core/query/test_relational_query_match_sdata_to_table.py,0.41,0.41,0.0,0.0,2,0.205 -tests/core/test_deepcopy.py,0.27,0.19,0.08,0.0,1,0.19 -tests/utils/test_testing.py,0.88,0.15,0.09,0.64,1,0.15 -tests/models/test_pyramids_utils.py,0.14,0.14,0.0,0.0,4,0.035 -tests/transformations/test_transformations_utils.py,0.1,0.01,0.09,0.0,1,0.01 -tests/utils/test_sanitize.py,0.09,0.0,0.09,0.0,0,0 -tests/io/test_attrs_io.py,0.03,0.03,0.0,0.0,3,0.01 diff --git a/pytest_by_test.csv b/pytest_by_test.csv deleted file mode 100644 index 7757d844a..000000000 --- a/pytest_by_test.csv +++ /dev/null @@ -1,234 +0,0 @@ -test_name,file,total_s,call_s,setup_s,n_variants,avg_call_s -test_validation,tests/dataloader/test_datasets.py,12.19,9.14,3.05,20,0.457 -test_roundtrip,tests/io/test_readwrite.py,10.18,9.62,0.56,14,0.687 -test_delete_element_from_disk,tests/io/test_readwrite.py,9.97,9.06,0.91,10,0.906 -test_incremental_io_on_disk,tests/io/test_readwrite.py,9.08,8.35,0.73,8,1.044 -test_element_already_on_disk_different_type,tests/io/test_readwrite.py,8.78,7.69,1.09,10,0.769 -test_read_zarr_with_error,tests/io/test_partial_read.py,8.71,0.17,8.54,4,0.043 -test_labels_2d_to_circles,tests/core/operations/test_vectorize.py,6.22,6.22,0.0,2,3.11 -test_return_annot,tests/dataloader/test_datasets.py,6.17,3.93,2.24,15,0.262 -test_save_transformations_incremental,tests/io/test_metadata.py,6.0,5.63,0.37,4,1.407 -test_default,tests/dataloader/test_datasets.py,4.0,2.54,1.46,10,0.254 -test_self_contained,tests/io/test_readwrite.py,3.65,3.46,0.19,2,1.73 -test_model_invalid_names,tests/models/test_models.py,3.15,0.0,3.15,0,0 -test_points_model,tests/models/test_models.py,2.95,2.95,0.0,80,0.037 -test_validate_can_write_metadata_on_element,tests/io/test_metadata.py,2.61,2.25,0.36,4,0.562 -test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py,2.47,0.64,1.83,6,0.107 -test_change_path_of_subset,tests/io/test_readwrite.py,2.41,2.23,0.18,2,1.115 -test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py,2.0,2.0,0.0,4,0.5 -test_query_raster,tests/core/query/test_spatial_query.py,1.99,1.99,0.0,128,0.016 -test_container_v1_to_v2,tests/io/test_format.py,1.91,1.82,0.09,1,1.82 -test_rasterize_points,tests/core/operations/test_rasterize.py,1.89,1.89,0.0,1,1.89 -test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py,1.85,1.67,0.18,2,0.835 -test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py,1.83,1.65,0.18,2,0.825 -test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py,1.82,1.62,0.2,2,0.81 -test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py,1.77,1.59,0.18,2,0.795 -test_raster_schema,tests/models/test_models.py,1.71,1.71,0.0,64,0.027 -test_transform_raster,tests/core/operations/test_transform.py,1.69,1.36,0.33,4,0.34 -test_categories_on_partitioned_dataframe,tests/models/test_models.py,1.68,1.53,0.15,1,1.53 -test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py,1.64,1.25,0.39,2,0.625 -test_rasterize_shapes,tests/core/operations/test_rasterize.py,1.64,1.64,0.0,1,1.64 -test_get_centroids_labels,tests/core/test_centroids.py,1.55,0.91,0.64,16,0.057 -test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py,1.48,1.32,0.16,2,0.66 -test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py,1.42,1.25,0.17,2,0.625 -test_consolidated_metadata,tests/io/test_metadata.py,1.39,1.3,0.09,1,1.3 -test_attributes_are_copied,tests/core/query/test_spatial_query.py,1.38,0.1,1.28,8,0.012 -test_rasterize_points_shapes_with_string_index,tests/core/operations/test_rasterize.py,1.35,1.35,0.0,1,1.35 -test_query_affine_transformation,tests/core/query/test_spatial_query.py,1.26,0.27,0.99,12,0.023 -test_single_table_multiple_annotations,tests/io/test_readwrite.py,1.2,1.1,0.1,2,0.55 -test_tables_v1_to_v2,tests/io/test_format.py,1.12,1.08,0.04,1,1.08 -test_single_table_single_annotation,tests/io/test_readwrite.py,1.11,1.03,0.08,2,0.515 -test_multiple_tables,tests/io/test_readwrite.py,1.1,1.1,0.0,2,0.55 -test_save_all_metadata,tests/io/test_metadata.py,1.05,0.96,0.09,1,0.96 -test_io_and_lazy_loading_raster,tests/io/test_readwrite.py,1.04,0.87,0.17,2,0.435 -test_multiscale_images,tests/dataloader/test_datasets.py,1.03,0.44,0.59,4,0.11 -test_concatenate_merge_coordinate_systems_on_name,tests/core/operations/test_spatialdata_operations.py,1.02,1.02,0.0,2,0.51 -test_set_get_tables_from_spatialdata,tests/io/test_multi_table.py,1.0,0.91,0.09,1,0.91 -test_channel_names_raster_images_v1_to_v2_to_v3,tests/io/test_format.py,0.91,0.86,0.05,1,0.86 -test_raster_images_v1_to_v2_to_v3,tests/io/test_format.py,0.91,0.86,0.05,1,0.86 -test_raster_labels_v1_to_v2_to_v3,tests/io/test_format.py,0.9,0.86,0.04,1,0.86 -test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py,0.84,0.68,0.16,2,0.34 -test_transform_points_with_multiple_partitions,tests/core/operations/test_transform.py,0.84,0.76,0.08,1,0.76 -test_read_zarr_with_warnings,tests/io/test_partial_read.py,0.83,0.83,0.0,16,0.052 -test_warning_on_large_chunks,tests/models/test_models.py,0.82,0.82,0.0,1,0.82 -test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py,0.79,0.62,0.17,2,0.31 -test_format_raster_v1_v2_v3,tests/io/test_format.py,0.75,0.61,0.14,3,0.203 -test_save_channel_names_incremental,tests/io/test_metadata.py,0.72,0.57,0.15,3,0.19 -test_rasterize_bins,tests/core/operations/test_rasterize_bins.py,0.72,0.72,0.0,18,0.04 -test_spatial_query_different_axes,tests/core/query/test_spatial_query.py,0.72,0.07,0.65,4,0.018 -test_rasterize_raster,tests/core/operations/test_rasterize.py,0.71,0.71,0.0,2,0.355 -test_save_transformations,tests/io/test_metadata.py,0.7,0.6,0.1,1,0.6 -test_datasets,tests/datasets/test_datasets.py,0.67,0.67,0.0,1,0.67 -test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py,0.67,0.44,0.23,4,0.11 -test_images,tests/io/test_readwrite.py,0.63,0.53,0.1,2,0.265 -test_labels,tests/io/test_readwrite.py,0.61,0.53,0.08,2,0.265 -test_map_raster,tests/core/operations/test_map.py,0.58,0.02,0.56,2,0.01 -test_query_spatial_data,tests/core/query/test_spatial_query.py,0.58,0.49,0.09,1,0.49 -test_set_table_annotates_spatialelement,tests/io/test_multi_table.py,0.55,0.46,0.09,1,0.46 -test_unpad_raster,tests/utils/test_element_utils.py,0.53,0.45,0.08,1,0.45 -test_query_points,tests/core/query/test_spatial_query.py,0.53,0.53,0.0,10,0.053 -test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py,0.52,0.32,0.2,20,0.016 -test_aggregate_image_by_labels,tests/core/operations/test_aggregations.py,0.51,0.49,0.02,1,0.49 -test_keep_string_coordinates_c,tests/transformations/test_transformations.py,0.51,0.51,0.0,2,0.255 -test_keep_numerical_coordinates_c,tests/transformations/test_transformations.py,0.5,0.5,0.0,2,0.25 -test_single_table,tests/io/test_multi_table.py,0.48,0.48,0.0,2,0.24 -test_model_not_unique_names,tests/models/test_models.py,0.45,0.0,0.45,0,0 -test_paired_elements_tables,tests/io/test_multi_table.py,0.42,0.42,0.0,1,0.42 -test_multiple_tables_same_element,tests/io/test_multi_table.py,0.4,0.4,0.0,1,0.4 -test_backing_files_labels,tests/io/test_utils.py,0.4,0.36,0.04,1,0.36 -test_backing_files_images,tests/io/test_utils.py,0.38,0.33,0.05,1,0.33 -test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py,0.37,0.37,0.0,16,0.023 -test_rasterize_spatialdata,tests/core/operations/test_rasterize.py,0.37,0.29,0.08,1,0.29 -test_change_annotation_target,tests/io/test_multi_table.py,0.36,0.0,0.36,0,0 -test_map_to_labels_,tests/core/operations/test_map.py,0.32,0.0,0.32,0,0 -test_map_transformation,tests/core/operations/test_map.py,0.31,0.0,0.31,0,0 -test_map_raster_multiscale,tests/core/operations/test_map.py,0.31,0.01,0.3,1,0.01 -test_query_multiple_boxes_len_one,tests/core/query/test_spatial_query.py,0.28,0.13,0.15,1,0.13 -test_transformations_between_coordinate_systems,tests/core/operations/test_transform.py,0.27,0.23,0.04,1,0.23 -test_deepcopy,tests/core/test_deepcopy.py,0.27,0.19,0.08,1,0.19 -test_concatenate_sdatas_single_item,tests/core/operations/test_spatialdata_operations.py,0.26,0.26,0.0,1,0.26 -test_empty_attrs,tests/core/test_get_attrs.py,0.25,0.25,0.0,1,0.25 -test_non_string_sep,tests/core/test_get_attrs.py,0.25,0.0,0.25,0,0 -test_no_shared_transformations,tests/core/operations/test_spatialdata_operations.py,0.25,0.25,0.0,1,0.25 -test_non_string_key,tests/core/test_get_attrs.py,0.25,0.0,0.25,0,0 -test_get_attrs_as_dataframe_flatten_false,tests/core/test_get_attrs.py,0.25,0.0,0.25,0,0 -test_rotate_vector_data,tests/core/test_data_extent.py,0.25,0.25,0.0,2,0.125 -test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py,0.25,0.17,0.08,4,0.043 -test_assert_elements_are_identical_metadata,tests/utils/test_testing.py,0.88,0.15,0.09,1,0.15 -test_invalid_return_as_value,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 -test_multiple_table_without_element,tests/io/test_multi_table.py,0.24,0.24,0.0,1,0.24 -test_get_attrs_as_is,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 -test_get_attrs_as_dataframe_flatten_true,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 -test_reading_invalid_name,tests/io/test_readwrite.py,0.24,0.24,0.0,1,0.24 -test_invalid_key,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 -test_get_attrs_as_json_flatten_false,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 -test_get_attrs_as_dict_flatten,tests/core/test_get_attrs.py,0.24,0.0,0.24,0,0 -test_incremental_io_list_of_elements,tests/io/test_readwrite.py,0.24,0.24,0.0,2,0.12 -test_get_attrs_as_json_flatten_true,tests/core/test_get_attrs.py,0.23,0.0,0.23,0,0 -test_bug_rechunking_after_queried_raster,tests/io/test_readwrite.py,0.23,0.23,0.0,1,0.23 -test_single_table_multiple_elements,tests/io/test_multi_table.py,0.23,0.23,0.0,1,0.23 -test_shapes_v1_to_v2_to_v3,tests/io/test_format.py,0.23,0.23,0.0,1,0.23 -test_backing_files_combining_points_and_images,tests/io/test_utils.py,0.23,0.18,0.05,1,0.18 -test_match_sdata_to_table_shapes_and_points,tests/core/query/test_relational_query_match_sdata_to_table.py,0.21,0.21,0.0,1,0.21 -test_match_sdata_to_table_match_labels_error,tests/core/query/test_relational_query_match_sdata_to_table.py,0.2,0.2,0.0,1,0.2 -test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py,0.2,0.2,0.0,4,0.05 -test_shapes,tests/core/operations/test_transform.py,0.2,0.2,0.0,6,0.033 -test_get_values_obsm,tests/core/query/test_relational_query.py,0.19,0.0,0.19,0,0 -test_relabel_sequential,tests/core/operations/test_map.py,0.19,0.04,0.15,1,0.04 -test_incremental_io_in_memory,tests/io/test_readwrite.py,0.19,0.1,0.09,1,0.1 -test_overwrite_fails_onto_non_zarr_file,tests/io/test_readwrite.py,0.18,0.0,0.18,0,0 -test_write_overwrite_fails_when_no_zarr_store,tests/io/test_readwrite.py,0.18,0.0,0.18,0,0 -test_dask_tune_contextmanager,tests/core/operations/test_transform.py,0.18,0.0,0.18,0,0 -test_get_values_table,tests/core/query/test_relational_query.py,0.17,0.0,0.17,0,0 -test_query_with_clipping,tests/core/query/test_spatial_query.py,0.17,0.01,0.16,1,0.01 -test_aggregate_spatialdata,tests/core/operations/test_aggregations.py,0.17,0.03,0.14,1,0.03 -test_query_points_multiple_partitions,tests/core/query/test_spatial_query.py,0.17,0.17,0.0,2,0.085 -test_invalid_map_raster,tests/core/operations/test_map.py,0.16,0.0,0.16,0,0 -test_get_values_table_different_layer,tests/core/query/test_relational_query.py,0.16,0.0,0.16,0,0 -test_relabel_sequential_fails,tests/core/operations/test_map.py,0.16,0.0,0.16,0,0 -test_get_values_labels_bug,tests/core/query/test_relational_query.py,0.16,0.0,0.16,0,0 -test_map_raster_relabel,tests/core/operations/test_map.py,0.16,0.01,0.15,1,0.01 -test_map_raster_relabel_fail,tests/core/operations/test_map.py,0.16,0.01,0.15,1,0.01 -test_map_raster_output_chunks,tests/core/operations/test_map.py,0.16,0.02,0.14,1,0.02 -test_replace_transformation_on_disk_non_raster,tests/io/test_readwrite.py,0.16,0.16,0.0,2,0.08 -test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py,0.16,0.08,0.08,8,0.01 -test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py,0.16,0.08,0.08,8,0.01 -test_aggregate_deepcopy,tests/core/operations/test_aggregations.py,0.15,0.01,0.14,1,0.01 -test_get_values_table_element_name,tests/core/query/test_relational_query.py,0.15,0.0,0.15,0,0 -test_map_raster_no_blockwise,tests/core/operations/test_map.py,0.15,0.0,0.15,0,0 -test_filter_by_table_query,tests/core/query/test_relational_query.py,0.14,0.05,0.09,1,0.05 -test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py,0.14,0.14,0.0,4,0.035 -test_points,tests/core/operations/test_transform.py,0.13,0.13,0.0,4,0.033 -test_points_table_joins,tests/core/query/test_relational_query.py,0.12,0.03,0.09,1,0.03 -test_get_centroids_points,tests/core/test_centroids.py,0.11,0.11,0.0,4,0.028 -test_sdata_with_nan_in_obs,tests/io/test_readwrite.py,0.11,0.11,0.0,1,0.11 -test_rename_coordinate_systems,tests/core/operations/test_spatialdata_operations.py,0.11,0.03,0.08,1,0.03 -test_incremental_io_attrs,tests/io/test_readwrite.py,0.11,0.11,0.0,2,0.055 -test_transform_points,tests/core/operations/test_transform.py,0.1,0.1,0.0,1,0.1 -test_init_from_elements,tests/core/operations/test_spatialdata_operations.py,0.1,0.02,0.08,1,0.02 -test_filter_by_coordinate_system,tests/core/operations/test_spatialdata_operations.py,0.1,0.02,0.08,1,0.02 -test_map_coordinate_systems_zero_or_multiple_paths,tests/core/operations/test_transform.py,0.1,0.01,0.09,1,0.01 -test_coordinate_systems_with_shortest_paths,tests/core/operations/test_transform.py,0.1,0.01,0.09,1,0.01 -test_filter_by_table_query_edge_cases,tests/core/query/test_relational_query.py,0.1,0.01,0.09,1,0.01 -test_labels_table_joins,tests/core/query/test_relational_query.py,0.1,0.01,0.09,1,0.01 -test_map_coordinate_systems_single_path,tests/core/operations/test_transform.py,0.1,0.01,0.09,1,0.01 -test_filter_table_non_annotating,tests/core/query/test_relational_query.py,0.1,0.01,0.09,1,0.01 -test_convert_transformations_to_affine,tests/transformations/test_transformations_utils.py,0.1,0.01,0.09,1,0.01 -test_join_spatialelement_table_fail,tests/core/query/test_relational_query.py,0.09,0.0,0.09,0,0 -test_incremental_io_valid_name,tests/io/test_readwrite.py,0.09,0.0,0.09,0,0 -test_map_squeeze_z,tests/core/operations/test_map.py,0.09,0.0,0.09,0,0 -test_map_coordinate_systems_non_invertible_transformations,tests/core/operations/test_transform.py,0.09,0.0,0.09,0,0 -test_points_v1_to_v2,tests/io/test_format.py,0.09,0.09,0.0,1,0.09 -test_filter_by_table_query_with_layers,tests/core/query/test_relational_query.py,0.09,0.0,0.09,0,0 -test_null_values_in_instance_key_column,tests/io/test_multi_table.py,0.09,0.0,0.09,0,0 -test_get_element_annotators,tests/core/query/test_relational_query.py,0.09,0.0,0.09,0,0 -test_set_item,tests/core/operations/test_spatialdata_operations.py,0.09,0.0,0.09,0,0 -test_map_squeeze_z_fails,tests/core/operations/test_map.py,0.09,0.0,0.09,0,0 -test_spatialdata_retains_other_elements,tests/utils/test_sanitize.py,0.09,0.0,0.09,0,0 -test_map_coordinate_systems_long_path,tests/core/operations/test_transform.py,0.09,0.0,0.09,0,0 -test_set_table_nonexisting_target,tests/io/test_multi_table.py,0.09,0.0,0.09,0,0 -test_locate_spatial_element,tests/core/operations/test_spatialdata_operations.py,0.09,0.0,0.09,0,0 -test_filter_by_table_query_complex_combination,tests/core/query/test_relational_query.py,0.09,0.0,0.09,0,0 -test_del_item,tests/core/operations/test_spatialdata_operations.py,0.09,0.0,0.09,0,0 -test_concatenate_sdatas,tests/core/operations/test_spatialdata_operations.py,0.09,0.01,0.08,1,0.01 -test_io_and_lazy_loading_points,tests/io/test_readwrite.py,0.09,0.09,0.0,2,0.045 -test_shapes_model,tests/models/test_models.py,0.09,0.09,0.0,3,0.03 -test_get_centroids_shapes,tests/core/test_centroids.py,0.09,0.09,0.0,6,0.015 -test_subset,tests/core/operations/test_spatialdata_operations.py,0.08,0.0,0.08,0,0 -test_get_schema,tests/models/test_models.py,0.08,0.08,0.0,1,0.08 -test_validate_table_in_spatialdata,tests/core/operations/test_spatialdata_operations.py,0.08,0.0,0.08,0,0 -test_incremental_writing_invalid_name,tests/io/test_readwrite.py,0.08,0.08,0.0,1,0.08 -test_filter_by_coordinate_system_also_table,tests/core/operations/test_spatialdata_operations.py,0.08,0.0,0.08,0,0 -test_writing_invalid_name,tests/io/test_readwrite.py,0.08,0.08,0.0,1,0.08 -test_get_extent_points,tests/core/test_data_extent.py,0.08,0.08,0.0,2,0.04 -test_transform_until_0_0_15,tests/core/operations/test_transform.py,0.07,0.07,0.0,1,0.07 -test_get_extent_affine_points3d,tests/core/test_data_extent.py,0.07,0.07,0.0,1,0.07 -test_labels_2d_to_polygons,tests/core/operations/test_vectorize.py,0.06,0.06,0.0,2,0.03 -test_read_sdata,tests/io/test_readwrite.py,0.06,0.06,0.0,1,0.06 -test_backing_files_points,tests/io/test_utils.py,0.06,0.06,0.0,1,0.06 -test_chunked_labels_2d_to_polygons,tests/core/operations/test_vectorize.py,0.05,0.05,0.0,1,0.05 -test_write_image_normalizes_explicit_zarr_chunk_grid,tests/io/test_readwrite.py,0.05,0.05,0.0,1,0.05 -test_write_irregular_dask_chunks_without_explicit_storage_options,tests/io/test_readwrite.py,0.05,0.05,0.0,1,0.05 -test_rasterize_labels_value_key_specified,tests/core/operations/test_rasterize.py,0.05,0.05,0.0,1,0.05 -test_write_image_normalizes_explicit_regular_dask_chunk_grid,tests/io/test_readwrite.py,0.05,0.05,0.0,1,0.05 -test_get_affine_for_element,tests/transformations/test_transformations.py,0.04,0.0,0.04,0,0 -test_get_centroids_invalid_element,tests/core/test_centroids.py,0.04,0.0,0.04,0,0 -test_get_extent_raster,tests/core/test_data_extent.py,0.04,0.04,0.0,4,0.01 -test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py,0.04,0.0,0.04,0,0 -test_match_rows_join,tests/core/query/test_relational_query.py,0.03,0.02,0.01,1,0.02 -test_single_scale_image_roundtrip_stays_dataarray,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 -test_write_image_rejects_string,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 -test_write_image_rejects_explicit_irregular_dask_chunk_grid,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 -test_write_image_rejects_empty_string,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 -test_write_image_rejects_byte_string,tests/io/test_readwrite.py,0.02,0.02,0.0,1,0.02 -test_concatenate_sdata_multitables,tests/io/test_multi_table.py,0.02,0.02,0.0,1,0.02 -test_get_extent_affine_circles,tests/core/test_data_extent.py,0.02,0.02,0.0,1,0.02 -test_points_and_shapes_conversions,tests/models/test_models.py,0.02,0.02,0.0,1,0.02 -test_get_values_df_points,tests/core/query/test_relational_query.py,0.02,0.02,0.0,1,0.02 -test_concatenate_tables,tests/core/operations/test_spatialdata_operations.py,0.02,0.02,0.0,1,0.02 -test_polygons_to_circles,tests/core/operations/test_vectorize.py,0.02,0.02,0.0,1,0.02 -test_concatenate_two_tables_each_annotating_two_elements,tests/core/operations/test_spatialdata_operations.py,0.02,0.02,0.0,1,0.02 -test_multipolygons_to_circles,tests/core/operations/test_vectorize.py,0.02,0.02,0.0,1,0.02 -test_get_values_df_shapes,tests/core/query/test_relational_query.py,0.02,0.01,0.01,1,0.01 -test_polygon_query_with_multipolygon,tests/core/query/test_spatial_query.py,0.02,0.01,0.01,1,0.01 -test_left_inner_right_exclusive_join,tests/core/query/test_relational_query.py,0.02,0.01,0.01,1,0.01 -test_match_rows_inner_join_non_matching_table,tests/core/query/test_relational_query.py,0.02,0.01,0.01,1,0.01 -test_query_filter_table,tests/core/query/test_spatial_query.py,0.02,0.02,0.0,2,0.01 -test_aggregation_invalid_cases,tests/core/operations/test_aggregations.py,0.02,0.01,0.01,1,0.01 -test_attrs_incremental_write,tests/io/test_attrs_io.py,0.02,0.02,0.0,2,0.01 -test_dask_points_from_parquet,tests/models/test_models.py,0.02,0.02,0.0,2,0.01 -test_labels_model_with_multiscales,tests/models/test_models.py,0.02,0.02,0.0,2,0.01 -test_rasterize_bins_invalid,tests/core/operations/test_rasterize_bins.py,0.01,0.01,0.0,1,0.01 -test_bug_get_extent_swap_xy_for_images,tests/core/test_data_extent.py,0.01,0.01,0.0,1,0.01 -test_transform_datatree_scale_handling,tests/core/operations/test_transform.py,0.01,0.01,0.0,1,0.01 -test_match_table_to_element,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 -test_transform_coordinates,tests/transformations/test_transformations.py,0.01,0.01,0.0,1,0.01 -test_left_exclusive_and_right_join,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 -test_match_rows_inner_join_non_matching_element,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 -test_locate_value,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 -test_c_coords_2d,tests/models/test_models.py,0.01,0.01,0.0,1,0.01 -test_join_using_string_instance_id_and_index,tests/core/query/test_relational_query.py,0.01,0.0,0.01,0,0 -test_attrs_v1_to_v2,tests/io/test_attrs_io.py,0.01,0.01,0.0,1,0.01 -test_concatenate_custom_table_metadata,tests/core/operations/test_spatialdata_operations.py,0.01,0.01,0.0,1,0.01 -test_element_names_unique,tests/core/operations/test_spatialdata_operations.py,0.01,0.01,0.0,1,0.01 -test_query_points_no_points,tests/core/query/test_spatial_query.py,0.01,0.01,0.0,1,0.01 diff --git a/pytest_durations.csv b/pytest_durations.csv deleted file mode 100644 index 4817ba54d..000000000 --- a/pytest_durations.csv +++ /dev/null @@ -1,1171 +0,0 @@ -duration_s,phase,file,test_name,test_id -3.24,call,tests/core/operations/test_vectorize.py,test_labels_2d_to_circles,tests/core/operations/test_vectorize.py::test_labels_2d_to_circles[True] -2.98,call,tests/core/operations/test_vectorize.py,test_labels_2d_to_circles,tests/core/operations/test_vectorize.py::test_labels_2d_to_circles[False] -2.18,call,tests/io/test_readwrite.py,test_self_contained,tests/io/test_readwrite.py::test_self_contained[sdata_container_format0] -2.1,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[full-sdata_container_format0] -1.91,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-True-sdata_container_format0] -1.89,call,tests/core/operations/test_rasterize.py,test_rasterize_points,tests/core/operations/test_rasterize.py::test_rasterize_points -1.82,call,tests/io/test_format.py,test_container_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_container_v1_to_v2 -1.64,call,tests/core/operations/test_rasterize.py,test_rasterize_shapes,tests/core/operations/test_rasterize.py::test_rasterize_shapes -1.56,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_labels-blobs_image] -1.54,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multiscale_labels-blobs_multiscale_image] -1.54,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-False-sdata_container_format0] -1.54,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_labels-blobs_multiscale_image] -1.53,call,tests/models/test_models.py,test_categories_on_partitioned_dataframe,tests/models/test_models.py::test_categories_on_partitioned_dataframe -1.48,call,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[points_0] -1.48,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multiscale_labels-blobs_image] -1.46,call,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[image2d] -1.4,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-True-sdata_container_format1] -1.37,call,tests/io/test_readwrite.py,test_change_path_of_subset,tests/io/test_readwrite.py::test_change_path_of_subset[sdata_container_format0] -1.36,call,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[labels2d] -1.35,call,tests/core/operations/test_rasterize.py,test_rasterize_points_shapes_with_string_index,tests/core/operations/test_rasterize.py::test_rasterize_points_shapes_with_string_index -1.33,call,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[circles] -1.3,call,tests/io/test_metadata.py,test_consolidated_metadata,tests/io/test_metadata.py::test_consolidated_metadata -1.28,call,tests/io/test_readwrite.py,test_self_contained,tests/io/test_readwrite.py::test_self_contained[sdata_container_format1] -1.25,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-table] -1.24,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_multiple_annotations-sdata_container_format0] -1.24,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-points_0] -1.2,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[full-sdata_container_format1] -1.17,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_single_annotation-sdata_container_format0] -1.14,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-circles] -1.08,call,tests/io/test_format.py,test_tables_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_tables_v1_to_v2 -1.08,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-labels2d] -1.07,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-image2d] -1.06,call,tests/io/test_readwrite.py,test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_zarr_store_present[sdata_container_format0] -1.04,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-labels2d] -1.04,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-circles] -1.04,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-False-sdata_container_format1] -1.01,call,tests/io/test_readwrite.py,test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py::test_write_store_unconsolidated_and_read[sdata_container_format0] -1.0,call,tests/io/test_readwrite.py,test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py::test_can_read_sdata_with_reconsolidation[sdata_container_format0] -0.97,call,tests/io/test_readwrite.py,test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py::test_symmetric_difference_with_zarr_store[sdata_container_format0] -0.96,call,tests/io/test_metadata.py,test_save_all_metadata,tests/io/test_metadata.py::test_save_all_metadata -0.94,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-points_0] -0.94,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-table] -0.91,call,tests/io/test_multi_table.py,test_set_get_tables_from_spatialdata,tests/io/test_multi_table.py::TestMultiTable::test_set_get_tables_from_spatialdata -0.9,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_multiple_annotations-sdata_container_format1] -0.9,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-image2d] -0.89,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_single_annotation-sdata_container_format1] -0.89,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-False-sdata_container_format0] -0.86,call,tests/io/test_format.py,test_channel_names_raster_images_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_channel_names_raster_images_v1_to_v2_to_v3 -0.86,call,tests/io/test_readwrite.py,test_change_path_of_subset,tests/io/test_readwrite.py::test_change_path_of_subset[sdata_container_format1] -0.86,call,tests/io/test_format.py,test_raster_images_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_raster_images_v1_to_v2_to_v3 -0.86,call,tests/io/test_format.py,test_raster_labels_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_raster_labels_v1_to_v2_to_v3 -0.83,call,tests/core/operations/test_spatialdata_operations.py,test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py::test_transform_to_data_extent[True] -0.82,call,tests/models/test_models.py,test_warning_on_large_chunks,tests/models/test_models.py::test_warning_on_large_chunks -0.79,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-table] -0.76,call,tests/core/operations/test_transform.py,test_transform_points_with_multiple_partitions,tests/core/operations/test_transform.py::test_transform_points_with_multiple_partitions -0.74,call,tests/io/test_readwrite.py,test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_no_zarr_store_but_dask_backed_data[sdata_container_format0] -0.71,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_table_region_not_found_zarrv2] -0.71,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-image2d] -0.69,call,tests/io/test_readwrite.py,test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_raster[sdata_container_format0] -0.67,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-False-sdata_container_format1] -0.67,call,tests/io/test_readwrite.py,test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py::test_can_read_sdata_with_reconsolidation[sdata_container_format1] -0.67,call,tests/datasets/test_datasets.py,test_datasets,tests/datasets/test_datasets.py::test_datasets -0.64,call,tests/io/test_readwrite.py,test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py::test_write_store_unconsolidated_and_read[sdata_container_format1] -0.64,teardown,tests/utils/test_testing.py,test_assert_elements_are_identical_metadata,tests/utils/test_testing.py::test_assert_elements_are_identical_metadata -0.62,call,tests/io/test_readwrite.py,test_single_table_single_annotation,tests/io/test_readwrite.py::TestReadWrite::test_single_table_single_annotation[sdata_container_format0] -0.62,call,tests/io/test_readwrite.py,test_single_table_multiple_annotations,tests/io/test_readwrite.py::TestReadWrite::test_single_table_multiple_annotations[sdata_container_format0] -0.62,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-labels2d] -0.62,call,tests/io/test_readwrite.py,test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py::test_symmetric_difference_with_zarr_store[sdata_container_format1] -0.61,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_multiscale_labels] -0.6,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_missing_zattrs_element] -0.6,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-image2d] -0.6,call,tests/io/test_metadata.py,test_save_transformations,tests/io/test_metadata.py::test_save_transformations -0.6,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-circles] -0.6,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_elem_types_zgroup] -0.59,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-points_0] -0.59,call,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-labels2d] -0.59,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_zattrs_elements] -0.59,call,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[image2d] -0.58,call,tests/io/test_readwrite.py,test_multiple_tables,tests/io/test_readwrite.py::TestReadWrite::test_multiple_tables[sdata_container_format0] -0.58,call,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[circles] -0.58,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_parquet_zarrv2] -0.58,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_invalid_zattrs_element_violating_spec] -0.58,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_image_chunks_zarrv2] -0.57,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_missing_image_chunks_zarrv2] -0.56,call,tests/io/test_readwrite.py,test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_zarr_store_present[sdata_container_format1] -0.56,call,tests/io/test_readwrite.py,test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_raster[sdata_container_format1] -0.56,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[labels-sdata_container_format0] -0.55,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-points_0] -0.55,call,tests/io/test_readwrite.py,test_io_and_lazy_loading_raster,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_raster[sdata_container_format0] -0.54,call,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[points_0] -0.54,call,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[labels2d] -0.53,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_table_region_not_found_zarrv3] -0.53,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-table] -0.53,call,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-circles] -0.52,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_from_iterable[False-False] -0.52,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multiscale_labels-blobs_multiscale_image] -0.52,call,tests/io/test_readwrite.py,test_multiple_tables,tests/io/test_readwrite.py::TestReadWrite::test_multiple_tables[sdata_container_format1] -0.51,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[images-sdata_container_format0] -0.51,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_merge_coordinate_systems_on_name,tests/core/operations/test_spatialdata_operations.py::test_concatenate_merge_coordinate_systems_on_name[True] -0.51,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_from_iterable[False-True] -0.51,call,tests/io/test_readwrite.py,test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_no_zarr_store_but_dask_backed_data[sdata_container_format1] -0.51,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_merge_coordinate_systems_on_name,tests/core/operations/test_spatialdata_operations.py::test_concatenate_merge_coordinate_systems_on_name[False] -0.5,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_labels-blobs_multiscale_image] -0.49,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-True-sdata_container_format0] -0.49,call,tests/core/operations/test_spatialdata_operations.py,test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py::test_transform_to_data_extent[False] -0.49,call,tests/core/operations/test_aggregations.py,test_aggregate_image_by_labels,tests/core/operations/test_aggregations.py::test_aggregate_image_by_labels[Labels2DModel-Image2DModel] -0.49,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_from_iterable[True-True] -0.49,call,tests/core/query/test_spatial_query.py,test_query_spatial_data,tests/core/query/test_spatial_query.py::test_query_spatial_data -0.48,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_from_iterable,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_from_iterable[True-False] -0.48,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multiscale_labels-blobs_image] -0.48,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_zarr_json_elements] -0.48,call,tests/io/test_readwrite.py,test_single_table_multiple_annotations,tests/io/test_readwrite.py::TestReadWrite::test_single_table_multiple_annotations[sdata_container_format1] -0.47,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_multiscale_labels] -0.47,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_multiscale_labels] -0.47,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_elem_types_zarr_json] -0.47,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_labels] -0.47,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_labels-blobs_image] -0.46,call,tests/io/test_multi_table.py,test_set_table_annotates_spatialelement,tests/io/test_multi_table.py::TestMultiTable::test_set_table_annotates_spatialelement -0.46,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_missing_zarr_json_element] -0.46,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_multiscale_labels] -0.45,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_image_chunks_zarrv3] -0.45,call,tests/utils/test_element_utils.py,test_unpad_raster,tests/utils/test_element_utils.py::test_unpad_raster -0.45,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_invalid_zarr_json_element_violating_spec] -0.45,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_parquet_zarrv3] -0.44,setup,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_missing_image_chunks_zarrv3] -0.44,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_labels] -0.44,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_multiscale_labels] -0.44,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_labels] -0.44,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_labels] -0.43,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_labels] -0.43,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[labels-sdata_container_format1] -0.42,call,tests/io/test_multi_table.py,test_paired_elements_tables,tests/io/test_multi_table.py::TestMultiTable::test_paired_elements_tables -0.41,call,tests/core/operations/test_rasterize.py,test_rasterize_raster,tests/core/operations/test_rasterize.py::test_rasterize_raster[_get_images] -0.41,call,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-True-sdata_container_format1] -0.41,call,tests/io/test_readwrite.py,test_single_table_single_annotation,tests/io/test_readwrite.py::TestReadWrite::test_single_table_single_annotation[sdata_container_format1] -0.4,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_points] -0.4,call,tests/io/test_multi_table.py,test_multiple_tables_same_element,tests/io/test_multi_table.py::TestMultiTable::test_multiple_tables_same_element -0.4,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[images-sdata_container_format1] -0.39,call,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[True-labels] -0.39,call,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[False-image] -0.36,call,tests/io/test_utils.py,test_backing_files_labels,tests/io/test_utils.py::test_backing_files_labels -0.36,call,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[True-image] -0.34,call,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object_multi_hop[True] -0.34,call,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object_multi_hop[False] -0.33,call,tests/io/test_utils.py,test_backing_files_images,tests/io/test_utils.py::test_backing_files_images -0.32,call,tests/io/test_readwrite.py,test_io_and_lazy_loading_raster,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_raster[sdata_container_format1] -0.32,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multipolygons-blobs_image] -0.31,call,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object[True] -0.31,call,tests/io/test_readwrite.py,test_labels,tests/io/test_readwrite.py::TestReadWrite::test_labels[sdata_container_format0] -0.31,call,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object[False] -0.3,call,tests/core/operations/test_rasterize.py,test_rasterize_raster,tests/core/operations/test_rasterize.py::test_rasterize_raster[_get_labels] -0.3,call,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image3] -0.29,call,tests/core/operations/test_rasterize.py,test_rasterize_spatialdata,tests/core/operations/test_rasterize.py::test_rasterize_spatialdata -0.28,call,tests/io/test_readwrite.py,test_images,tests/io/test_readwrite.py::TestReadWrite::test_images[sdata_container_format0] -0.27,call,tests/io/test_multi_table.py,test_single_table,tests/io/test_multi_table.py::TestMultiTable::test_single_table[non_existing] -0.26,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-table] -0.26,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas_single_item,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas_single_item -0.26,call,tests/transformations/test_transformations.py,test_keep_string_coordinates_c,tests/transformations/test_transformations.py::test_keep_string_coordinates_c[blobs_multiscale_image] -0.25,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-True-True-1] -0.25,call,tests/core/test_get_attrs.py,test_empty_attrs,tests/core/test_get_attrs.py::test_empty_attrs -0.25,setup,tests/core/test_get_attrs.py,test_non_string_sep,tests/core/test_get_attrs.py::test_non_string_sep -0.25,call,tests/io/test_readwrite.py,test_images,tests/io/test_readwrite.py::TestReadWrite::test_images[sdata_container_format1] -0.25,call,tests/core/operations/test_spatialdata_operations.py,test_no_shared_transformations,tests/core/operations/test_spatialdata_operations.py::test_no_shared_transformations -0.25,call,tests/transformations/test_transformations.py,test_keep_string_coordinates_c,tests/transformations/test_transformations.py::test_keep_string_coordinates_c[blobs_image] -0.25,setup,tests/core/test_get_attrs.py,test_non_string_key,tests/core/test_get_attrs.py::test_non_string_key -0.25,call,tests/transformations/test_transformations.py,test_keep_numerical_coordinates_c,tests/transformations/test_transformations.py::test_keep_numerical_coordinates_c[blobs_multiscale_image] -0.25,call,tests/transformations/test_transformations.py,test_keep_numerical_coordinates_c,tests/transformations/test_transformations.py::test_keep_numerical_coordinates_c[blobs_image] -0.25,setup,tests/core/test_get_attrs.py,test_get_attrs_as_dataframe_flatten_false,tests/core/test_get_attrs.py::test_get_attrs_as_dataframe_flatten_false -0.24,setup,tests/core/test_get_attrs.py,test_invalid_return_as_value,tests/core/test_get_attrs.py::test_invalid_return_as_value -0.24,call,tests/io/test_multi_table.py,test_multiple_table_without_element,tests/io/test_multi_table.py::TestMultiTable::test_multiple_table_without_element -0.24,setup,tests/core/test_get_attrs.py,test_get_attrs_as_is,tests/core/test_get_attrs.py::test_get_attrs_as_is -0.24,setup,tests/core/test_get_attrs.py,test_get_attrs_as_dataframe_flatten_true,tests/core/test_get_attrs.py::test_get_attrs_as_dataframe_flatten_true -0.24,call,tests/io/test_readwrite.py,test_reading_invalid_name,tests/io/test_readwrite.py::test_reading_invalid_name -0.24,setup,tests/core/test_get_attrs.py,test_invalid_key,tests/core/test_get_attrs.py::test_invalid_key -0.24,setup,tests/core/test_get_attrs.py,test_get_attrs_as_json_flatten_false,tests/core/test_get_attrs.py::test_get_attrs_as_json_flatten_false -0.24,setup,tests/core/test_get_attrs.py,test_get_attrs_as_dict_flatten,tests/core/test_get_attrs.py::test_get_attrs_as_dict_flatten -0.23,setup,tests/core/test_get_attrs.py,test_get_attrs_as_json_flatten_true,tests/core/test_get_attrs.py::test_get_attrs_as_json_flatten_true -0.23,call,tests/io/test_readwrite.py,test_bug_rechunking_after_queried_raster,tests/io/test_readwrite.py::test_bug_rechunking_after_queried_raster -0.23,call,tests/io/test_multi_table.py,test_single_table_multiple_elements,tests/io/test_multi_table.py::TestMultiTable::test_single_table_multiple_elements -0.23,call,tests/core/operations/test_transform.py,test_transformations_between_coordinate_systems,tests/core/operations/test_transform.py::test_transformations_between_coordinate_systems -0.23,call,tests/io/test_format.py,test_shapes_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_shapes_v1_to_v2_to_v3 -0.22,call,tests/io/test_readwrite.py,test_labels,tests/io/test_readwrite.py::TestReadWrite::test_labels[sdata_container_format1] -0.22,call,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[False-labels] -0.22,call,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV02] -0.21,call,tests/io/test_multi_table.py,test_single_table,tests/io/test_multi_table.py::TestMultiTable::test_single_table[test_shapes] -0.21,call,tests/core/query/test_relational_query_match_sdata_to_table.py,test_match_sdata_to_table_shapes_and_points,tests/core/query/test_relational_query_match_sdata_to_table.py::test_match_sdata_to_table_shapes_and_points -0.21,call,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[write] -0.2,call,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV01] -0.2,call,tests/core/query/test_relational_query_match_sdata_to_table.py,test_match_sdata_to_table_match_labels_error,tests/core/query/test_relational_query_match_sdata_to_table.py::test_match_sdata_to_table_match_labels_error -0.2,setup,tests/io/test_readwrite.py,test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_no_zarr_store_but_dask_backed_data[sdata_container_format1] -0.19,setup,tests/core/query/test_relational_query.py,test_get_values_obsm,tests/core/query/test_relational_query.py::test_get_values_obsm -0.19,call,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[overwrite] -0.19,call,tests/core/test_deepcopy.py,test_deepcopy,tests/core/test_deepcopy.py::test_deepcopy -0.19,call,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV03] -0.19,setup,tests/io/test_readwrite.py,test_overwrite_fails_when_no_zarr_store_but_dask_backed_data,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_no_zarr_store_but_dask_backed_data[sdata_container_format0] -0.18,call,tests/io/test_utils.py,test_backing_files_combining_points_and_images,tests/io/test_utils.py::test_backing_files_combining_points_and_images -0.17,call,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[no] -0.17,call,tests/core/test_data_extent.py,test_rotate_vector_data,tests/core/test_data_extent.py::test_rotate_vector_data[False] -0.17,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multiscale_labels-blobs_multiscale_image] -0.17,setup,tests/core/query/test_relational_query.py,test_get_values_table,tests/core/query/test_relational_query.py::test_get_values_table -0.17,setup,tests/core/operations/test_map.py,test_map_transformation,tests/core/operations/test_map.py::test_map_transformation[blobs_multiscale_image] -0.16,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_polygons] -0.16,setup,tests/core/operations/test_map.py,test_map_to_labels_,tests/core/operations/test_map.py::test_map_to_labels_[False-None-None] -0.16,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_multipolygons] -0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_circles-blobs_image] -0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_points] -0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_labels-blobs_multiscale_image] -0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_image] -0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_circles-blobs_multiscale_image] -0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_labels-blobs_polygons] -0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_labels-blobs_points] -0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_circles] -0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multipolygons-blobs_image] -0.16,setup,tests/core/operations/test_map.py,test_invalid_map_raster,tests/core/operations/test_map.py::test_invalid_map_raster -0.16,setup,tests/core/query/test_relational_query.py,test_get_values_table_different_layer,tests/core/query/test_relational_query.py::test_get_values_table_different_layer -0.16,setup,tests/core/operations/test_map.py,test_relabel_sequential_fails,tests/core/operations/test_map.py::test_relabel_sequential_fails -0.16,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_polygons] -0.16,setup,tests/core/query/test_spatial_query.py,test_query_with_clipping,tests/core/query/test_spatial_query.py::test_query_with_clipping -0.16,setup,tests/core/operations/test_map.py,test_map_to_labels_,tests/core/operations/test_map.py::test_map_to_labels_[True-chunks1-0] -0.16,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_polygons] -0.16,setup,tests/core/query/test_relational_query.py,test_get_values_labels_bug,tests/core/query/test_relational_query.py::test_get_values_labels_bug -0.16,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_circles] -0.16,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_polygons-blobs_image] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multipolygons-blobs_multiscale_image] -0.15,call,tests/utils/test_testing.py,test_assert_elements_are_identical_metadata,tests/utils/test_testing.py::test_assert_elements_are_identical_metadata -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_labels-blobs_image] -0.15,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_labels-blobs_image] -0.15,setup,tests/core/operations/test_map.py,test_map_raster_relabel,tests/core/operations/test_map.py::test_map_raster_relabel -0.15,setup,tests/models/test_models.py,test_categories_on_partitioned_dataframe,tests/models/test_models.py::test_categories_on_partitioned_dataframe -0.15,setup,tests/core/query/test_spatial_query.py,test_query_multiple_boxes_len_one,tests/core/query/test_spatial_query.py::test_query_multiple_boxes_len_one -0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_circles] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multiscale_labels-blobs_multiscale_image] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multiscale_labels-blobs_image] -0.15,setup,tests/core/operations/test_map.py,test_map_raster_relabel_fail,tests/core/operations/test_map.py::test_map_raster_relabel_fail -0.15,setup,tests/core/operations/test_map.py,test_map_raster_multiscale,tests/core/operations/test_map.py::test_map_raster_multiscale[None] -0.15,setup,tests/core/operations/test_map.py,test_relabel_sequential,tests/core/operations/test_map.py::test_relabel_sequential -0.15,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_labels] -0.15,setup,tests/core/query/test_relational_query.py,test_get_values_table_element_name,tests/core/query/test_relational_query.py::test_get_values_table_element_name -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_labels-blobs_multiscale_image] -0.15,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_labels-blobs_circles] -0.15,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_multiscale_labels] -0.15,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_multipolygons] -0.15,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_points] -0.15,setup,tests/core/operations/test_map.py,test_map_raster_multiscale,tests/core/operations/test_map.py::test_map_raster_multiscale[depth1] -0.15,call,tests/io/test_readwrite.py,test_incremental_io_list_of_elements,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_list_of_elements[sdata_container_format0] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_circles-blobs_image] -0.15,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_image] -0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_circles] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_circles-blobs_multiscale_image] -0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_polygons] -0.15,setup,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[None-False] -0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_labels] -0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_multiscale_labels] -0.15,setup,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[None-True] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_polygons-blobs_image] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_labels-blobs_image] -0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_multipolygons] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_polygons-blobs_multiscale_image] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multiscale_labels-blobs_image] -0.15,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_polygons] -0.15,setup,tests/core/operations/test_map.py,test_map_raster_no_blockwise,tests/core/operations/test_map.py::test_map_raster_no_blockwise -0.15,setup,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[region-False] -0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_labels] -0.15,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_polygons] -0.15,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multipolygons-blobs_image] -0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_circles] -0.14,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_multiscale_labels] -0.14,setup,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[region-True] -0.14,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multipolygons-blobs_multiscale_image] -0.14,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_labels] -0.14,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_multipolygons] -0.14,setup,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_polygons-blobs_multiscale_image] -0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_labels] -0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_multipolygons] -0.14,setup,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_multiscale_labels] -0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_multiscale_labels] -0.14,setup,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_circles] -0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_circles] -0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_polygons] -0.14,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_polygons-blobs_multiscale_image] -0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_points] -0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_spatialdata,tests/core/operations/test_aggregations.py::test_aggregate_spatialdata -0.14,setup,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_labels-depth1] -0.14,setup,tests/core/operations/test_aggregations.py,test_aggregate_deepcopy,tests/core/operations/test_aggregations.py::test_aggregate_deepcopy -0.14,setup,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_image-depth1] -0.14,setup,tests/core/operations/test_map.py,test_map_transformation,tests/core/operations/test_map.py::test_map_transformation[blobs_image] -0.14,setup,tests/core/operations/test_map.py,test_map_raster_output_chunks,tests/core/operations/test_map.py::test_map_raster_output_chunks -0.14,setup,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_image-None] -0.14,setup,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image3] -0.14,setup,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_labels-None] -0.14,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_polygons] -0.13,call,tests/core/query/test_spatial_query.py,test_query_points_multiple_partitions,tests/core/query/test_spatial_query.py::test_query_points_multiple_partitions[False] -0.13,call,tests/core/query/test_spatial_query.py,test_query_multiple_boxes_len_one,tests/core/query/test_spatial_query.py::test_query_multiple_boxes_len_one -0.13,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_multipolygons] -0.13,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_multipolygons] -0.13,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_polygons] -0.13,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_multipolygons-blobs_multiscale_image] -0.12,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_polygons] -0.12,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_polygons-blobs_image] -0.12,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_circles-blobs_multiscale_image] -0.12,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_polygons] -0.12,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_polygons] -0.12,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_multipolygons] -0.12,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_multipolygons] -0.12,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_multipolygons] -0.12,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[True-blobs_circles-blobs_image] -0.11,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[None-blobs_circles] -0.11,call,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[region-False] -0.11,call,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[region-True] -0.11,call,tests/io/test_readwrite.py,test_sdata_with_nan_in_obs,tests/io/test_readwrite.py::test_sdata_with_nan_in_obs -0.11,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[True-blobs_circles] -0.11,call,tests/dataloader/test_datasets.py,test_default,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_default[False-blobs_circles] -0.11,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[points-sdata_container_format0] -0.11,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[return_annot2-blobs_circles] -0.11,call,tests/dataloader/test_datasets.py,test_return_annot,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_return_annot[region-blobs_circles] -0.11,call,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[None-False] -0.11,call,tests/dataloader/test_datasets.py,test_multiscale_images,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_multiscale_images[None-True] -0.11,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[True-False-True-True] -0.1,call,tests/core/operations/test_transform.py,test_transform_points,tests/core/operations/test_transform.py::test_transform_points -0.1,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[points_0-False] -0.1,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[True-False-False-True] -0.1,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-labels2d] -0.1,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-points_0] -0.1,call,tests/io/test_readwrite.py,test_incremental_io_in_memory,tests/io/test_readwrite.py::test_incremental_io_in_memory -0.1,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-circles] -0.1,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[full-sdata_container_format0] -0.1,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[full-sdata_container_format1] -0.1,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-False-sdata_container_format1] -0.1,setup,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[circles] -0.1,setup,tests/io/test_readwrite.py,test_self_contained,tests/io/test_readwrite.py::test_self_contained[sdata_container_format1] -0.1,setup,tests/io/test_readwrite.py,test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_zarr_store_present[sdata_container_format1] -0.1,setup,tests/io/test_metadata.py,test_save_transformations,tests/io/test_metadata.py::test_save_transformations -0.1,setup,tests/io/test_readwrite.py,test_overwrite_fails_when_zarr_store_present,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_when_zarr_store_present[sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_overwrite_fails_onto_non_zarr_file,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_onto_non_zarr_file[sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_overwrite_fails_onto_non_zarr_file,tests/io/test_readwrite.py::TestReadWrite::test_overwrite_fails_onto_non_zarr_file[sdata_container_format1] -0.09,setup,tests/core/query/test_relational_query.py,test_join_spatialelement_table_fail,tests/core/query/test_relational_query.py::test_join_spatialelement_table_fail -0.09,setup,tests/io/test_readwrite.py,test_self_contained,tests/io/test_readwrite.py::test_self_contained[sdata_container_format0] -0.09,setup,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[image2d] -0.09,setup,tests/io/test_readwrite.py,test_incremental_io_in_memory,tests/io/test_readwrite.py::test_incremental_io_in_memory -0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-table] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[images-non-alnum_#$%&()*+,?@]" -0.09,setup,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[image2d] -0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-False-sdata_container_format1] -0.09,call,tests/io/test_readwrite.py,test_incremental_io_list_of_elements,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_list_of_elements[sdata_container_format1] -0.09,setup,tests/io/test_readwrite.py,test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py::test_symmetric_difference_with_zarr_store[sdata_container_format1] -0.09,setup,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[labels2d] -0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-False-sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py::test_write_store_unconsolidated_and_read[sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-points_0] -0.09,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[circles-False] -0.09,setup,tests/io/test_readwrite.py,test_write_store_unconsolidated_and_read,tests/io/test_readwrite.py::test_write_store_unconsolidated_and_read[sdata_container_format1] -0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-True-sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-image2d] -0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-table] -0.09,setup,tests/io/test_multi_table.py,test_set_table_annotates_spatialelement,tests/io/test_multi_table.py::TestMultiTable::test_set_table_annotates_spatialelement -0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-table] -0.09,setup,tests/io/test_readwrite.py,test_write_overwrite_fails_when_no_zarr_store,tests/io/test_readwrite.py::TestReadWrite::test_write_overwrite_fails_when_no_zarr_store[sdata_container_format1] -0.09,setup,tests/core/operations/test_transform.py,test_map_coordinate_systems_zero_or_multiple_paths,tests/core/operations/test_transform.py::test_map_coordinate_systems_zero_or_multiple_paths -0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-False-sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-image2d] -0.09,setup,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[points_0] -0.09,setup,tests/io/test_metadata.py,test_consolidated_metadata,tests/io/test_metadata.py::test_consolidated_metadata -0.09,setup,tests/core/operations/test_transform.py,test_coordinate_systems_with_shortest_paths,tests/core/operations/test_transform.py::test_coordinate_systems_with_shortest_paths -0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[1-True-sdata_container_format1] -0.09,setup,tests/io/test_readwrite.py,test_symmetric_difference_with_zarr_store,tests/io/test_readwrite.py::test_symmetric_difference_with_zarr_store[sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-points_0] -0.09,setup,tests/io/test_readwrite.py,test_incremental_io_valid_name,tests/io/test_readwrite.py::test_incremental_io_valid_name -0.09,setup,tests/core/operations/test_map.py,test_map_squeeze_z,tests/core/operations/test_map.py::test_map_squeeze_z -0.09,setup,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object[True] -0.09,setup,tests/io/test_readwrite.py,test_write_overwrite_fails_when_no_zarr_store,tests/io/test_readwrite.py::TestReadWrite::test_write_overwrite_fails_when_no_zarr_store[sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-image2d] -0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format0-labels2d] -0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-True-sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_incremental_io_on_disk,tests/io/test_readwrite.py::TestReadWrite::test_incremental_io_on_disk[2-True-sdata_container_format1] -0.09,setup,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[True-labels] -0.09,setup,tests/core/operations/test_transform.py,test_map_coordinate_systems_non_invertible_transformations,tests/core/operations/test_transform.py::test_map_coordinate_systems_non_invertible_transformations -0.09,setup,tests/io/test_metadata.py,test_save_all_metadata,tests/io/test_metadata.py::test_save_all_metadata -0.09,setup,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[points_0] -0.09,call,tests/io/test_format.py,test_points_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_points_v1_to_v2 -0.09,setup,tests/core/query/test_spatial_query.py,test_query_spatial_data,tests/core/query/test_spatial_query.py::test_query_spatial_data -0.09,setup,tests/io/test_readwrite.py,test_change_path_of_subset,tests/io/test_readwrite.py::test_change_path_of_subset[sdata_container_format0] -0.09,setup,tests/io/test_readwrite.py,test_change_path_of_subset,tests/io/test_readwrite.py::test_change_path_of_subset[sdata_container_format1] -0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-points_0] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-path/separator] -0.09,setup,tests/io/test_metadata.py,test_save_transformations_incremental,tests/io/test_metadata.py::test_save_transformations_incremental[labels2d] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-non-alnum_#$%&()*+,?@]" -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-has whitespace] -0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-image2d] -0.09,setup,tests/core/query/test_relational_query.py,test_filter_by_table_query_with_layers,tests/core/query/test_relational_query.py::test_filter_by_table_query_with_layers -0.09,setup,tests/io/test_readwrite.py,test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py::test_can_read_sdata_with_reconsolidation[sdata_container_format1] -0.09,setup,tests/core/query/test_relational_query.py,test_filter_by_table_query_edge_cases,tests/core/query/test_relational_query.py::test_filter_by_table_query_edge_cases -0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format0-circles] -0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-circles] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-] -0.09,setup,tests/core/query/test_relational_query.py,test_labels_table_joins,tests/core/query/test_relational_query.py::test_labels_table_joins -0.09,setup,tests/io/test_readwrite.py,test_delete_element_from_disk,tests/io/test_readwrite.py::test_delete_element_from_disk[sdata_container_format1-labels2d] -0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-circles] -0.09,setup,tests/io/test_multi_table.py,test_null_values_in_instance_key_column,tests/io/test_multi_table.py::TestMultiTable::test_null_values_in_instance_key_column -0.09,setup,tests/core/query/test_relational_query.py,test_get_element_annotators,tests/core/query/test_relational_query.py::test_get_element_annotators -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-has whitespace] -0.09,setup,tests/io/test_multi_table.py,test_change_annotation_target,tests/io/test_multi_table.py::TestMultiTable::test_change_annotation_target[None-instance_id-Instance key column 'instance_id' not found in table.obs.] -0.09,setup,tests/io/test_multi_table.py,test_set_get_tables_from_spatialdata,tests/io/test_multi_table.py::TestMultiTable::test_set_get_tables_from_spatialdata -0.09,setup,tests/io/test_readwrite.py,test_can_read_sdata_with_reconsolidation,tests/io/test_readwrite.py::test_can_read_sdata_with_reconsolidation[sdata_container_format0] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-.] -0.09,setup,tests/io/test_readwrite.py,test_element_already_on_disk_different_type,tests/io/test_readwrite.py::test_element_already_on_disk_different_type[sdata_container_format1-labels2d] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-.] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-has whitespace] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[tables-non-alnum_#$%&()*+,?@]" -0.09,setup,tests/io/test_metadata.py,test_validate_can_write_metadata_on_element,tests/io/test_metadata.py::test_validate_can_write_metadata_on_element[circles] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[labels-non-alnum_#$%&()*+,?@]" -0.09,setup,tests/core/operations/test_spatialdata_operations.py,test_set_item,tests/core/operations/test_spatialdata_operations.py::test_set_item -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-path/separator] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-has whitespace] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-] -0.09,setup,tests/io/test_format.py,test_container_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_container_v1_to_v2 -0.09,call,tests/io/test_readwrite.py,test_replace_transformation_on_disk_non_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_non_raster[sdata_container_format0] -0.09,setup,tests/core/operations/test_transform.py,test_map_coordinate_systems_single_path,tests/core/operations/test_transform.py::test_map_coordinate_systems_single_path -0.09,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[multipoly-True] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-__dunder] -0.09,setup,tests/core/operations/test_map.py,test_map_squeeze_z_fails,tests/core/operations/test_map.py::test_map_squeeze_z_fails -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-..] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-..] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-..] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-__dunder] -0.09,setup,tests/core/operations/test_transform.py,test_dask_tune_contextmanager,tests/core/operations/test_transform.py::test_dask_tune_contextmanager[True-None] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[shapes-.] -0.09,setup,tests/core/query/test_relational_query.py,test_filter_by_table_query,tests/core/query/test_relational_query.py::test_filter_by_table_query -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-.] -0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[images-names0] -0.09,setup,tests/io/test_multi_table.py,test_change_annotation_target,tests/io/test_multi_table.py::TestMultiTable::test_change_annotation_target[region-instance_id-Instance key column 'instance_id' not found in table.obs.] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-__dunder] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-__dunder] -0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[shapes-names0] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-..] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,"tests/models/test_models.py::TestModels::test_model_invalid_names[points-non-alnum_#$%&()*+,?@]" -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-.] -0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[points-names0] -0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[tables-names0] -0.09,setup,tests/models/test_models.py,test_model_not_unique_names,tests/models/test_models.py::TestModels::test_model_not_unique_names[labels-names0] -0.09,setup,tests/io/test_multi_table.py,test_change_annotation_target,tests/io/test_multi_table.py::TestMultiTable::test_change_annotation_target[None-None-Specified instance_key in table.uns 'instance_id' is not present as column in table.obs. Please specify instance_key.] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-path/separator] -0.09,setup,tests/utils/test_sanitize.py,test_spatialdata_retains_other_elements,tests/utils/test_sanitize.py::test_spatialdata_retains_other_elements -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[tables-path/separator] -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-__dunder] -0.09,setup,tests/core/query/test_relational_query.py,test_filter_table_non_annotating,tests/core/query/test_relational_query.py::test_filter_table_non_annotating -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[labels-has whitespace] -0.09,setup,tests/core/operations/test_transform.py,test_map_coordinate_systems_long_path,tests/core/operations/test_transform.py::test_map_coordinate_systems_long_path -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[images-path/separator] -0.09,setup,tests/core/operations/test_transform.py,test_dask_tune_contextmanager,tests/core/operations/test_transform.py::test_dask_tune_contextmanager[False-4] -0.09,setup,tests/io/test_readwrite.py,test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_raster[sdata_container_format0] -0.09,setup,tests/io/test_multi_table.py,test_set_table_nonexisting_target,tests/io/test_multi_table.py::TestMultiTable::test_set_table_nonexisting_target -0.09,setup,tests/models/test_models.py,test_model_invalid_names,tests/models/test_models.py::TestModels::test_model_invalid_names[points-..] -0.09,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[points-sdata_container_format1] -0.09,setup,tests/io/test_multi_table.py,test_change_annotation_target,tests/io/test_multi_table.py::TestMultiTable::test_change_annotation_target[region-None-Specified instance_key in table.uns 'instance_id' is not present as column in table.obs. Please specify instance_key.] -0.09,setup,tests/transformations/test_transformations_utils.py,test_convert_transformations_to_affine,tests/transformations/test_transformations_utils.py::test_convert_transformations_to_affine -0.09,setup,tests/core/operations/test_spatialdata_operations.py,test_locate_spatial_element,tests/core/operations/test_spatialdata_operations.py::test_locate_spatial_element -0.09,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[poly-True] -0.09,call,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image2] -0.09,setup,tests/core/query/test_relational_query.py,test_points_table_joins,tests/core/query/test_relational_query.py::test_points_table_joins -0.09,setup,tests/core/query/test_relational_query.py,test_filter_by_table_query_complex_combination,tests/core/query/test_relational_query.py::test_filter_by_table_query_complex_combination -0.09,setup,tests/core/operations/test_spatialdata_operations.py,test_del_item,tests/core/operations/test_spatialdata_operations.py::test_del_item -0.09,setup,tests/utils/test_testing.py,test_assert_elements_are_identical_metadata,tests/utils/test_testing.py::test_assert_elements_are_identical_metadata -0.09,setup,tests/io/test_readwrite.py,test_io_and_lazy_loading_raster,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_raster[sdata_container_format1] -0.09,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[circles] -0.08,setup,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object_multi_hop[True] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[circles-False] -0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[circles-True] -0.08,setup,tests/io/test_readwrite.py,test_replace_transformation_on_disk_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_raster[sdata_container_format1] -0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[poly-False] -0.08,setup,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[False-labels] -0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[points_0-False] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d-True] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d_multiscale-True] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[poly-True] -0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[labels2d] -0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[image2d] -0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[multipoly] -0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[points_0-True] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[poly-False] -0.08,setup,tests/core/test_deepcopy.py,test_deepcopy,tests/core/test_deepcopy.py::test_deepcopy -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d-False] -0.08,setup,tests/io/test_readwrite.py,test_io_and_lazy_loading_raster,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_raster[sdata_container_format0] -0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[image2d-False] -0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py::test_transform_to_data_extent[False] -0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_subset,tests/core/operations/test_spatialdata_operations.py::test_subset -0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[labels2d_multiscale] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d-True] -0.08,setup,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[False-image] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d_multiscale-True] -0.08,setup,tests/core/operations/test_transform.py,test_transform_points_with_multiple_partitions,tests/core/operations/test_transform.py::test_transform_points_with_multiple_partitions -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[multipoly-True] -0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[poly] -0.08,call,tests/models/test_models.py,test_get_schema,tests/models/test_models.py::test_get_schema -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d_multiscale-False] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[points_0-True] -0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[multipoly-False] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d-False] -0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[labels2d-True] -0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[image2d-True] -0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[image2d_multiscale] -0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_validate_table_in_spatialdata,tests/core/operations/test_spatialdata_operations.py::test_validate_table_in_spatialdata -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[multipoly-False] -0.08,setup,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object[False] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[circles-True] -0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_init_from_elements,tests/core/operations/test_spatialdata_operations.py::test_init_from_elements -0.08,setup,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[labels2d-False] -0.08,setup,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[points_0] -0.08,setup,tests/core/operations/test_transform.py,test_transform_elements_and_entire_spatial_data_object_multi_hop,tests/core/operations/test_transform.py::test_transform_elements_and_entire_spatial_data_object_multi_hop[False] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d_multiscale-False] -0.08,call,tests/io/test_readwrite.py,test_incremental_writing_invalid_name,tests/io/test_readwrite.py::test_incremental_writing_invalid_name -0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_transform_to_data_extent,tests/core/operations/test_spatialdata_operations.py::test_transform_to_data_extent[True] -0.08,setup,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[points_0-False] -0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_filter_by_coordinate_system_also_table,tests/core/operations/test_spatialdata_operations.py::test_filter_by_coordinate_system_also_table -0.08,setup,tests/core/operations/test_transform.py,test_transform_raster,tests/core/operations/test_transform.py::test_transform_raster[True-image] -0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_rename_coordinate_systems,tests/core/operations/test_spatialdata_operations.py::test_rename_coordinate_systems -0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_filter_by_coordinate_system,tests/core/operations/test_spatialdata_operations.py::test_filter_by_coordinate_system -0.08,setup,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas -0.08,setup,tests/utils/test_element_utils.py,test_unpad_raster,tests/utils/test_element_utils.py::test_unpad_raster -0.08,setup,tests/core/operations/test_rasterize.py,test_rasterize_spatialdata,tests/core/operations/test_rasterize.py::test_rasterize_spatialdata -0.08,call,tests/core/test_data_extent.py,test_rotate_vector_data,tests/core/test_data_extent.py::test_rotate_vector_data[True] -0.08,call,tests/io/test_readwrite.py,test_writing_invalid_name,tests/io/test_readwrite.py::test_writing_invalid_name -0.08,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-True-aligned] -0.07,call,tests/core/operations/test_transform.py,test_transform_until_0_0_15,tests/core/operations/test_transform.py::test_transform_until_0_0_15 -0.07,call,tests/io/test_readwrite.py,test_replace_transformation_on_disk_non_raster,tests/io/test_readwrite.py::TestReadWrite::test_replace_transformation_on_disk_non_raster[sdata_container_format1] -0.07,call,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_table_region_not_found_zarrv2] -0.07,call,tests/core/test_data_extent.py,test_get_extent_affine_points3d,tests/core/test_data_extent.py::test_get_extent_affine_points3d -0.07,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-True-global] -0.07,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[points_0-True] -0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-dask-target-None-PointsModel] -0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-dask-target-None-PointsModel] -0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-dask-target-cell_id-PointsModel] -0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-dask-target-cell_id-PointsModel] -0.07,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_missing_zattrs_element] -0.07,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-True-aligned] -0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-dask-target-None-PointsModel] -0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-dask-target-cell_id-PointsModel] -0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-dask-target-None-PointsModel] -0.07,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[True-False-False-False] -0.07,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-dask-target-cell_id-PointsModel] -0.07,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-None-points] -0.07,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_image_chunks_zarrv2] -0.07,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_parquet_zarrv2] -0.06,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_invalid_zattrs_element_violating_spec] -0.06,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-False-aligned] -0.06,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-False-global] -0.06,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[True-False-True-False] -0.06,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-True-global] -0.06,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_missing_image_chunks_zarrv2] -0.06,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_table_region_not_found_zarrv2] -0.06,call,tests/io/test_readwrite.py,test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py::TestReadWrite::test_shapes_geometry_encoding_write_element[WKB-sdata_container_format0] -0.06,call,tests/io/test_readwrite.py,test_read_sdata,tests/io/test_readwrite.py::test_read_sdata -0.06,call,tests/io/test_utils.py,test_backing_files_points,tests/io/test_utils.py::test_backing_files_points -0.06,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-False-aligned] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-dask-target-None-PointsModel] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-dask-target-None-PointsModel] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-dask-target-cell_id-PointsModel] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-dask-target-None-PointsModel] -0.06,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-instance_id-points] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-dask-target-cell_id-PointsModel] -0.06,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-value_key2-points] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-dask-target-cell_id-PointsModel] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-dask-target-cell_id-PointsModel] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-dask-target-None-PointsModel] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-dask-None-cell_id-PointsModel] -0.06,call,tests/io/test_readwrite.py,test_incremental_io_attrs,tests/io/test_readwrite.py::test_incremental_io_attrs[sdata_container_format0] -0.06,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-dask-None-None-PointsModel] -0.05,call,tests/io/test_readwrite.py,test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py::TestReadWrite::test_shapes_geometry_encoding_write_element[WKB-sdata_container_format1] -0.05,call,tests/io/test_readwrite.py,test_incremental_io_attrs,tests/io/test_readwrite.py::test_incremental_io_attrs[sdata_container_format1] -0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-False-aligned] -0.05,call,tests/core/operations/test_vectorize.py,test_chunked_labels_2d_to_polygons,tests/core/operations/test_vectorize.py::test_chunked_labels_2d_to_polygons -0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-False-global] -0.05,call,tests/io/test_readwrite.py,test_shapes,tests/io/test_readwrite.py::TestReadWrite::test_shapes[geoarrow-sdata_container_format0] -0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-True-aligned] -0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-dask-None-None-PointsModel] -0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-dask-None-None-PointsModel] -0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-True-aligned] -0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-dask-None-cell_id-PointsModel] -0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-dask-None-cell_id-PointsModel] -0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-dask-None-None-PointsModel] -0.05,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-False-True-True] -0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-dask-None-cell_id-PointsModel] -0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_table_region_not_found_zarrv3] -0.05,call,tests/io/test_readwrite.py,test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py::TestReadWrite::test_shapes_geometry_encoding_write_element[geoarrow-sdata_container_format0] -0.05,setup,tests/io/test_utils.py,test_backing_files_images,tests/io/test_utils.py::test_backing_files_images -0.05,call,tests/io/test_readwrite.py,test_write_image_normalizes_explicit_zarr_chunk_grid,tests/io/test_readwrite.py::test_write_image_normalizes_explicit_zarr_chunk_grid -0.05,call,tests/io/test_readwrite.py,test_write_irregular_dask_chunks_without_explicit_storage_options,tests/io/test_readwrite.py::test_write_irregular_dask_chunks_without_explicit_storage_options -0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_missing_zarr_json_element] -0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_table_region_not_found_zarrv3] -0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-False-global] -0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-True-global] -0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-True-global] -0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-False-aligned] -0.05,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-None-circles] -0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_invalid_zarr_json_element_violating_spec] -0.05,setup,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image2] -0.05,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-None-squares] -0.05,call,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-False-global] -0.05,setup,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV02] -0.05,setup,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[categorical_in_ddf-by_circles] -0.05,call,tests/core/operations/test_rasterize.py,test_rasterize_labels_value_key_specified,tests/core/operations/test_rasterize.py::test_rasterize_labels_value_key_specified -0.05,call,tests/core/query/test_relational_query.py,test_filter_by_table_query,tests/core/query/test_relational_query.py::test_filter_by_table_query -0.05,setup,tests/io/test_format.py,test_channel_names_raster_images_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_channel_names_raster_images_v1_to_v2_to_v3 -0.05,setup,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[overwrite] -0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_image_chunks_zarrv3] -0.05,setup,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV03] -0.05,setup,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[write] -0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_missing_image_chunks_zarrv3] -0.05,setup,tests/io/test_utils.py,test_backing_files_combining_points_and_images,tests/io/test_utils.py::test_backing_files_combining_points_and_images -0.05,setup,tests/io/test_format.py,test_raster_images_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_raster_images_v1_to_v2_to_v3 -0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_parquet_zarrv3] -0.05,setup,tests/io/test_readwrite.py,test_images,tests/io/test_readwrite.py::TestReadWrite::test_images[sdata_container_format1] -0.05,setup,tests/io/test_readwrite.py,test_single_table_multiple_annotations,tests/io/test_readwrite.py::TestReadWrite::test_single_table_multiple_annotations[sdata_container_format0] -0.05,call,tests/io/test_readwrite.py,test_write_image_normalizes_explicit_regular_dask_chunk_grid,tests/io/test_readwrite.py::test_write_image_normalizes_explicit_regular_dask_chunk_grid -0.05,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[images-sdata_container_format0] -0.05,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[images-sdata_container_format1] -0.05,call,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[categorical_in_ddf-by_circles] -0.05,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_multiple_annotations-sdata_container_format1] -0.05,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_multiple_annotations-sdata_container_format0] -0.05,call,tests/core/operations/test_vectorize.py,test_labels_2d_to_polygons,tests/core/operations/test_vectorize.py::test_labels_2d_to_polygons[False] -0.05,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_elem_types_zgroup] -0.05,setup,tests/io/test_readwrite.py,test_single_table_multiple_annotations,tests/io/test_readwrite.py::TestReadWrite::test_single_table_multiple_annotations[sdata_container_format1] -0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-dask-None-cell_id-PointsModel] -0.05,call,tests/io/test_readwrite.py,test_io_and_lazy_loading_points,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_points[sdata_container_format0] -0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-dask-None-None-PointsModel] -0.05,setup,tests/io/test_metadata.py,test_save_channel_names_incremental,tests/io/test_metadata.py::test_save_channel_names_incremental[no] -0.05,setup,tests/io/test_readwrite.py,test_images,tests/io/test_readwrite.py::TestReadWrite::test_images[sdata_container_format0] -0.05,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-dask-None-None-PointsModel] -0.04,call,tests/models/test_pyramids_utils.py,test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py::test_to_multiscale_via_ome_zarr_scaler[Image2DModel-128-2-3-scale_factors0-Methods.XARRAY_COARSEN] -0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-dask-None-None-PointsModel] -0.04,setup,tests/io/test_format.py,test_tables_v1_to_v2,tests/io/test_format.py::TestFormatConversions::test_tables_v1_to_v2 -0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-instance_id-circles] -0.04,call,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[numerical_in_ddf-by_polygons] -0.04,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_single_annotation-sdata_container_format1] -0.04,setup,tests/io/test_readwrite.py,test_single_table_single_annotation,tests/io/test_readwrite.py::TestReadWrite::test_single_table_single_annotation[sdata_container_format0] -0.04,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[labels-sdata_container_format1] -0.04,setup,tests/io/test_format.py,test_format_raster_v1_v2_v3,tests/io/test_format.py::TestFormat::test_format_raster_v1_v2_v3[RasterFormatV01] -0.04,call,tests/io/test_readwrite.py,test_shapes,tests/io/test_readwrite.py::TestReadWrite::test_shapes[WKB-sdata_container_format0] -0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-None-points] -0.04,call,tests/core/test_data_extent.py,test_get_extent_points,tests/core/test_data_extent.py::test_get_extent_points[True] -0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-value_key2-circles] -0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image3DModel-to_spatial_image] -0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-instance_id-squares] -0.04,setup,tests/transformations/test_transformations.py,test_get_affine_for_element,tests/transformations/test_transformations.py::test_get_affine_for_element -0.04,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[table_single_annotation-sdata_container_format0] -0.04,call,tests/io/test_readwrite.py,test_shapes,tests/io/test_readwrite.py::TestReadWrite::test_shapes[geoarrow-sdata_container_format1] -0.04,setup,tests/io/test_readwrite.py,test_single_table_single_annotation,tests/io/test_readwrite.py::TestReadWrite::test_single_table_single_annotation[sdata_container_format1] -0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[True-value_key2-squares] -0.04,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-False-False-True] -0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-dask-None-cell_id-PointsModel] -0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-dask-None-cell_id-PointsModel] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_invalid_element,tests/core/test_centroids.py::test_get_centroids_invalid_element -0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-dask-None-None-PointsModel] -0.04,setup,tests/core/operations/test_transform.py,test_transformations_between_coordinate_systems,tests/core/operations/test_transform.py::test_transformations_between_coordinate_systems -0.04,call,tests/models/test_pyramids_utils.py,test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py::test_to_multiscale_via_ome_zarr_scaler[Labels2DModel-128-2-0-scale_factors2-Methods.DASK_IMAGE_NEAREST] -0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-dask-None-cell_id-PointsModel] -0.04,call,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[points_0] -0.04,call,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[numerical_in_ddf-by_circles] -0.04,setup,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[labels-sdata_container_format0] -0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-instance_id-points] -0.04,setup,tests/io/test_utils.py,test_backing_files_labels,tests/io/test_utils.py::test_backing_files_labels -0.04,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-value_key2-points] -0.04,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-pandas-target-None-PointsModel] -0.04,call,tests/io/test_readwrite.py,test_io_and_lazy_loading_points,tests/io/test_readwrite.py::TestReadWrite::test_io_and_lazy_loading_points[sdata_container_format1] -0.04,setup,tests/io/test_readwrite.py,test_labels,tests/io/test_readwrite.py::TestReadWrite::test_labels[sdata_container_format0] -0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image3DModel-DataArray] -0.04,call,tests/core/operations/test_map.py,test_relabel_sequential,tests/core/operations/test_map.py::test_relabel_sequential -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-True-aligned] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-False-global] -0.04,setup,tests/io/test_readwrite.py,test_labels,tests/io/test_readwrite.py::TestReadWrite::test_labels[sdata_container_format1] -0.04,call,tests/io/test_readwrite.py,test_points,tests/io/test_readwrite.py::TestReadWrite::test_points[sdata_container_format0] -0.04,call,tests/core/test_centroids.py,test_get_centroids_points,tests/core/test_centroids.py::test_get_centroids_points[True-aligned] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-True-aligned] -0.04,setup,tests/io/test_format.py,test_raster_labels_v1_to_v2_to_v3,tests/io/test_format.py::TestFormatConversions::test_raster_labels_v1_to_v2_to_v3 -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-False-aligned] -0.04,call,tests/core/query/test_spatial_query.py,test_query_points_multiple_partitions,tests/core/query/test_spatial_query.py::test_query_points_multiple_partitions[True] -0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels3DModel-to_spatial_image] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-False-global] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-True-global] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-False-aligned] -0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image3DModel-to_spatial_image] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-True-global] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-False-aligned] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-False-aligned] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-True-global] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-False-True-aligned] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[True-True-False-global] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-True-global] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-False-True-aligned] -0.04,setup,tests/core/test_centroids.py,test_get_centroids_labels,tests/core/test_centroids.py::test_get_centroids_labels[False-True-False-global] -0.04,call,tests/core/test_data_extent.py,test_get_extent_points,tests/core/test_data_extent.py::test_get_extent_points[False] -0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image3DModel-to_spatial_image] -0.04,call,tests/io/test_readwrite.py,test_points,tests/io/test_readwrite.py::TestReadWrite::test_points[sdata_container_format1] -0.04,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image3DModel-to_spatial_image] -0.04,call,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[categorical_in_ddf-by_polygons] -0.04,call,tests/io/test_readwrite.py,test_shapes_geometry_encoding_write_element,tests/io/test_readwrite.py::TestReadWrite::test_shapes_geometry_encoding_write_element[geoarrow-sdata_container_format1] -0.03,call,tests/io/test_readwrite.py,test_shapes,tests/io/test_readwrite.py::TestReadWrite::test_shapes[WKB-sdata_container_format1] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-pandas-target-cell_id-PointsModel] -0.03,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-False-True-False] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image2DModel-to_spatial_image] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-pandas-target-None-PointsModel] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels3DModel-to_spatial_image] -0.03,call,tests/models/test_models.py,test_shapes_model,tests/models/test_models.py::TestModels::test_shapes_model[path2-ShapesModel] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-pandas-target-cell_id-PointsModel] -0.03,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_zarr_json_elements] -0.03,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-False-False-False] -0.03,call,tests/models/test_models.py,test_shapes_model,tests/models/test_models.py::TestModels::test_shapes_model[path1-ShapesModel] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-pandas-target-cell_id-PointsModel] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image3DModel-DataArray] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels3DModel-to_spatial_image] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image2DModel-to_spatial_image] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image3DModel-DataArray] -0.03,call,tests/models/test_models.py,test_shapes_model,tests/models/test_models.py::TestModels::test_shapes_model[path0-ShapesModel] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels2DModel-to_spatial_image] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-pandas-target-None-PointsModel] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels3DModel-DataArray] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels3DModel-to_spatial_image] -0.03,call,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image1] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels3DModel-DataArray] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-pandas-target-None-PointsModel] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-pandas-target-cell_id-PointsModel] -0.03,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_elem_types_zarr_json] -0.03,call,tests/io/test_partial_read.py,test_read_zarr_with_warnings,tests/io/test_partial_read.py::test_read_zarr_with_warnings[sdata_with_corrupted_zattrs_elements] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels2DModel-to_spatial_image] -0.03,call,tests/core/test_centroids.py,test_get_centroids_points,tests/core/test_centroids.py::test_get_centroids_points[True-global] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image2DModel-to_spatial_image] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-pandas-None-None-PointsModel] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image2DModel-to_spatial_image] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image2DModel-DataArray] -0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image3DModel-chunks15-expected15] -0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image3DModel-chunks14-expected14] -0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image3DModel-5-expected13] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image3DModel-DataArray] -0.03,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[points_0-False] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-pandas-None-cell_id-PointsModel] -0.03,call,tests/models/test_pyramids_utils.py,test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py::test_to_multiscale_via_ome_zarr_scaler[Image3DModel-32-3-3-scale_factors1-Methods.XARRAY_COARSEN] -0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-True-False-2] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-pandas-None-cell_id-PointsModel] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels2DModel-DataArray] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels3DModel-DataArray] -0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-True-False-1] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-pandas-None-None-PointsModel] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-pandas-None-cell_id-PointsModel] -0.03,call,tests/core/query/test_relational_query.py,test_points_table_joins,tests/core/query/test_relational_query.py::test_points_table_joins -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image2DModel-DataArray] -0.03,call,tests/core/operations/test_spatialdata_operations.py,test_rename_coordinate_systems,tests/core/operations/test_spatialdata_operations.py::test_rename_coordinate_systems -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels2DModel-to_spatial_image] -0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image3DModel-None-expected12] -0.03,call,tests/models/test_pyramids_utils.py,test_to_multiscale_via_ome_zarr_scaler,tests/models/test_pyramids_utils.py::test_to_multiscale_via_ome_zarr_scaler[Labels3DModel-32-3-0-scale_factors3-Methods.DASK_IMAGE_NEAREST] -0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-True-False-3] -0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-True-False-1] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels3DModel-DataArray] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels2DModel-to_spatial_image] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-pandas-None-cell_id-PointsModel] -0.03,call,tests/core/operations/test_transform.py,test_points,tests/core/operations/test_transform.py::TestElementsTransform::test_points[transform0] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-pandas-None-None-PointsModel] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image2DModel-from_array] -0.03,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_polygons] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image2DModel-DataArray] -0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-True-True-1] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image2DModel-DataArray] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-pandas-None-None-PointsModel] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image3DModel-] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image2DModel-] -0.03,call,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_parquet_zarrv2] -0.03,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-None-squares] -0.03,call,tests/core/operations/test_aggregations.py,test_aggregate_spatialdata,tests/core/operations/test_aggregations.py::test_aggregate_spatialdata -0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-True-False-3] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels2DModel-DataArray] -0.03,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-True-False-2] -0.03,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-None-circles] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image3DModel-from_array] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels2DModel-DataArray] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels3DModel-] -0.03,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-pandas-target-None-PointsModel] -0.03,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels2DModel-DataArray] -0.03,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-value_key2-circles] -0.03,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image2DModel-chunks11-expected11] -0.02,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-value_key2-squares] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image2DModel-chunks10-expected10] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image2DModel-5-expected9] -0.02,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-True-False-True] -0.02,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-instance_id-circles] -0.02,call,tests/io/test_readwrite.py,test_single_scale_image_roundtrip_stays_dataarray,tests/io/test_readwrite.py::test_single_scale_image_roundtrip_stays_dataarray -0.02,call,tests/core/operations/test_transform.py,test_shapes,tests/core/operations/test_transform.py::TestElementsTransform::test_shapes[transform0] -0.02,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_polygons-blobs_multiscale_image] -0.02,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_polygons-blobs_image] -0.02,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins[False-instance_id-squares] -0.02,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multipolygons-blobs_multiscale_image] -0.02,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_multipolygons-blobs_image] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels3DModel-from_array] -0.02,call,tests/io/test_partial_read.py,test_read_zarr_with_error,tests/io/test_partial_read.py::test_read_zarr_with_error[sdata_with_corrupted_parquet_zarrv3] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-False-False-1] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-False-False-3] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels3DModel-5-expected5] -0.02,setup,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image1] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-False-False-1] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels3DModel-chunks6-expected6] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image3DModel-from_array] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-True-True-1] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-pandas-None-cell_id-PointsModel] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_circles-blobs_circles] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-False-False-2] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels3DModel-chunks7-expected7] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-pandas-target-cell_id-PointsModel] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Image3DModel-] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels2DModel-from_array] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels2DModel-from_array] -0.02,call,tests/core/test_centroids.py,test_get_centroids_points,tests/core/test_centroids.py::test_get_centroids_points[False-aligned] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-True-False-True-1] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-True-False-1] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-pandas-target-None-PointsModel] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-pandas-target-None-PointsModel] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Image2DModel-None-expected8] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-False-False-3] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-False-False-2] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-False-False-3] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-False-Labels2DModel-] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-True-False-1] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels3DModel-from_array] -0.02,call,tests/core/operations/test_transform.py,test_points,tests/core/operations/test_transform.py::TestElementsTransform::test_points[transform1] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-True-False-3] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image2DModel-from_array] -0.02,call,tests/core/operations/test_transform.py,test_shapes,tests/core/operations/test_transform.py::TestElementsTransform::test_shapes[transform1] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-True-False-2] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-pandas-target-cell_id-PointsModel] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-pandas-target-cell_id-PointsModel] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-True-False-1] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels3DModel-None-expected4] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-False-pandas-None-None-PointsModel] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-pandas-target-None-PointsModel] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-pandas-None-cell_id-PointsModel] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels3DModel-] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-True-False-2] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image2DModel-] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-False-True-pandas-None-None-PointsModel] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-True-False-2] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-True-False-3] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels2DModel-] -0.02,call,tests/io/test_readwrite.py,test_write_image_rejects_string,tests/io/test_readwrite.py::test_write_image_rejects_string -0.02,call,tests/io/test_readwrite.py,test_write_image_rejects_explicit_irregular_dask_chunk_grid,tests/io/test_readwrite.py::test_write_image_rejects_explicit_irregular_dask_chunk_grid -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels3DModel-] -0.02,call,tests/core/operations/test_spatialdata_operations.py,test_init_from_elements,tests/core/operations/test_spatialdata_operations.py::test_init_from_elements -0.02,call,tests/io/test_readwrite.py,test_write_image_rejects_empty_string,tests/io/test_readwrite.py::test_write_image_rejects_empty_string -0.02,call,tests/core/query/test_relational_query.py,test_match_rows_join,tests/core/query/test_relational_query.py::test_match_rows_join -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-pandas-target-cell_id-PointsModel] -0.02,call,tests/io/test_readwrite.py,test_write_image_rejects_byte_string,tests/io/test_readwrite.py::test_write_image_rejects_byte_string -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels2DModel-] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-pandas-None-cell_id-PointsModel] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image2DModel-] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-pandas-None-cell_id-PointsModel] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels3DModel-from_array] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-True-False-3] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Labels3DModel-from_array] -0.02,call,tests/io/test_multi_table.py,test_concatenate_sdata_multitables,tests/io/test_multi_table.py::test_concatenate_sdata_multitables -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-False-False-False-True-1] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-True-pandas-None-None-PointsModel] -0.02,setup,tests/core/operations/test_aggregations.py,test_aggregate_image_by_labels,tests/core/operations/test_aggregations.py::test_aggregate_image_by_labels[Labels2DModel-Image2DModel] -0.02,call,tests/core/operations/test_spatialdata_operations.py,test_filter_by_coordinate_system,tests/core/operations/test_spatialdata_operations.py::test_filter_by_coordinate_system -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels2DModel-from_array] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image3DModel-from_array] -0.02,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[circles-aligned] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels3DModel-] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[coordinates1-True-False-pandas-None-None-PointsModel] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Labels2DModel-from_array] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[None-True-Image2DModel-from_array] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-numpy-None-None-PointsModel] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-numpy-None-cell_id-PointsModel] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_circles] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image3DModel-] -0.02,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[poly-aligned] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Labels2DModel-] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-numpy-None-cell_id-PointsModel] -0.02,call,tests/core/query/test_spatial_query.py,test_query_points,tests/core/query/test_spatial_query.py::test_query_points[False-True-False-False] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image2DModel-from_array] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-False-False-1] -0.02,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[multipoly-aligned] -0.02,call,tests/core/test_data_extent.py,test_get_extent_affine_circles,tests/core/test_data_extent.py::test_get_extent_affine_circles -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-False-False-1] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-False-Image3DModel-] -0.02,call,tests/models/test_models.py,test_points_and_shapes_conversions,tests/models/test_models.py::test_points_and_shapes_conversions -0.02,call,tests/core/query/test_relational_query.py,test_get_values_df_points,tests/core/query/test_relational_query.py::test_get_values_df_points -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-False-False-2] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels2DModel-chunks2-expected2] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels2DModel-5-expected1] -0.02,call,tests/core/test_centroids.py,test_get_centroids_points,tests/core/test_centroids.py::test_get_centroids_points[False-global] -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image2DModel-] -0.02,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_tables,tests/core/operations/test_spatialdata_operations.py::test_concatenate_tables -0.02,call,tests/models/test_models.py,test_raster_schema,tests/models/test_models.py::TestModels::test_raster_schema[kwargs1-True-Image3DModel-from_array] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels2DModel-chunks3-expected3] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-False-False-2] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-True-True-1] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-numpy-target-None-PointsModel] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-False-True-1] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_circles-by_circles] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-numpy-target-cell_id-PointsModel] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-False-False-False-3] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_circles-by_circles] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-False-False-2] -0.02,call,tests/models/test_models.py,test_raster_models_parse_with_chunks_parameter,tests/models/test_models.py::TestModels::test_raster_models_parse_with_chunks_parameter[Labels2DModel-None-expected0] -0.02,setup,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image0] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-True-numpy-target-cell_id-PointsModel] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-numpy-target-None-PointsModel] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-False-False-3] -0.02,call,tests/io/test_pyramids_performance.py,test_write_image_multiscale_performance,tests/io/test_pyramids_performance.py::test_write_image_multiscale_performance[sdata_with_image0] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_requiring_alignment,tests/core/operations/test_aggregations.py::test_aggregate_requiring_alignment[blobs_polygons-blobs_polygons] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-False-False-1] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-numpy-None-None-PointsModel] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-True-True-1] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_polygons-by_circles] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-numpy-None-cell_id-PointsModel] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-False-numpy-None-None-PointsModel] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-numpy-None-None-PointsModel] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_circles-by_circles] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-numpy-None-cell_id-PointsModel] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-True-True-1] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_circles-by_polygons] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-numpy-target-cell_id-PointsModel] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_circles-by_polygons] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-numpy-target-None-PointsModel] -0.02,call,tests/core/operations/test_map.py,test_map_raster_output_chunks,tests/core/operations/test_map.py::test_map_raster_output_chunks -0.02,call,tests/core/operations/test_vectorize.py,test_polygons_to_circles,tests/core/operations/test_vectorize.py::test_polygons_to_circles -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-False-False-True-1] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-True-False-numpy-target-cell_id-PointsModel] -0.02,call,tests/models/test_models.py,test_points_model,tests/models/test_models.py::TestModels::test_points_model[None-False-True-numpy-target-None-PointsModel] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_polygons-by_circles] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_polygons-by_circles] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_polygons-by_polygons] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_circles-by_circles] -0.02,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_two_tables_each_annotating_two_elements,tests/core/operations/test_spatialdata_operations.py::test_concatenate_two_tables_each_annotating_two_elements -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_circles-by_polygons] -0.02,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-False-True-False-True-1] -0.02,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_polygons-by_circles] -0.02,call,tests/core/operations/test_vectorize.py,test_multipolygons_to_circles,tests/core/operations/test_vectorize.py::test_multipolygons_to_circles -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_circles-by_circles] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_circles-by_polygons] -0.01,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[circles-global] -0.01,call,tests/core/operations/test_rasterize_bins.py,test_rasterize_bins_invalid,tests/core/operations/test_rasterize_bins.py::test_rasterize_bins_invalid -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_polygons-by_polygons] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_polygons-by_polygons] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_polygons-by_polygons] -0.01,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[poly-global] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-True-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[labels2d-True] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-True-False-1] -0.01,call,tests/core/test_centroids.py,test_get_centroids_shapes,tests/core/test_centroids.py::test_get_centroids_shapes[multipoly-global] -0.01,call,tests/core/test_data_extent.py,test_bug_get_extent_swap_xy_for_images,tests/core/test_data_extent.py::test_bug_get_extent_swap_xy_for_images -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[labels2d-False] -0.01,call,tests/core/query/test_relational_query.py,test_get_values_df_shapes,tests/core/query/test_relational_query.py::test_get_values_df_shapes -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_polygons-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-True-False-3] -0.01,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_circles-blobs_multiscale_image] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-True-False-2] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_circles-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_polygon_query_with_multipolygon,tests/core/query/test_spatial_query.py::test_polygon_query_with_multipolygon -0.01,call,tests/core/operations/test_transform.py,test_transform_datatree_scale_handling,tests/core/operations/test_transform.py::test_transform_datatree_scale_handling -0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[points_0-True] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-True-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-True-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-True-False-2] -0.01,call,tests/dataloader/test_datasets.py,test_validation,tests/dataloader/test_datasets.py::TestImageTilesDataset::test_validation[False-blobs_circles-blobs_image] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_polygons-by_polygons] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_deepcopy,tests/core/operations/test_aggregations.py::test_aggregate_deepcopy -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-True-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-True-False-1] -0.01,call,tests/core/query/test_relational_query.py,test_left_inner_right_exclusive_join,tests/core/query/test_relational_query.py::test_left_inner_right_exclusive_join -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-True-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-True-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-True-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-True-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-True-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-True-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-True-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-True-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-True-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-True-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-True-False-2] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_circles-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-False-False-1] -0.01,call,tests/core/test_data_extent.py,test_get_extent_raster,tests/core/test_data_extent.py::test_get_extent_raster[False-image] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-False-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-True-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-True-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-True-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-True-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-True-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-True-False-2] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_circles-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-True-False-3] -0.01,call,tests/core/test_data_extent.py,test_get_extent_raster,tests/core/test_data_extent.py::test_get_extent_raster[True-labels] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-True-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-True-False-1] -0.01,setup,tests/core/query/test_relational_query.py,test_get_values_df_shapes,tests/core/query/test_relational_query.py::test_get_values_df_shapes -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-True-False-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_circles-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-True-False-3] -0.01,call,tests/core/test_data_extent.py,test_get_extent_raster,tests/core/test_data_extent.py::test_get_extent_raster[True-image] -0.01,call,tests/core/operations/test_map.py,test_map_raster_relabel,tests/core/operations/test_map.py::test_map_raster_relabel -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-True-False-2] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_circles-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-True-False-2] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_polygons-by_circles] -0.01,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[empty-sdata_container_format0] -0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d_multiscale-True] -0.01,call,tests/core/operations/test_vectorize.py,test_labels_2d_to_polygons,tests/core/operations/test_vectorize.py::test_labels_2d_to_polygons[True] -0.01,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_sdatas,tests/core/operations/test_spatialdata_operations.py::test_concatenate_sdatas -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-False-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-False-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-False-False-2] -0.01,setup,tests/core/query/test_relational_query.py,test_match_table_to_element,tests/core/query/test_relational_query.py::test_match_table_to_element -0.01,call,tests/core/test_data_extent.py,test_get_extent_raster,tests/core/test_data_extent.py::test_get_extent_raster[False-labels] -0.01,call,tests/transformations/test_transformations.py,test_transform_coordinates,tests/transformations/test_transformations.py::test_transform_coordinates -0.01,call,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[image2d_multiscale] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-False-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-False-False-2] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_circles-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[image2d_multiscale-False] -0.01,setup,tests/core/query/test_relational_query.py,test_left_exclusive_and_right_join,tests/core/query/test_relational_query.py::test_left_exclusive_and_right_join -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-False-False-3] -0.01,setup,tests/core/query/test_relational_query.py,test_match_rows_inner_join_non_matching_element,tests/core/query/test_relational_query.py::test_match_rows_inner_join_non_matching_element -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-True-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-False-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-False-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-False-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-False-False-1] -0.01,setup,tests/core/query/test_relational_query.py,test_locate_value,tests/core/query/test_relational_query.py::test_locate_value -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-False-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-False-False-1] -0.01,setup,tests/core/query/test_relational_query.py,test_match_rows_inner_join_non_matching_table,tests/core/query/test_relational_query.py::test_match_rows_inner_join_non_matching_table -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-False-False-2] -0.01,call,tests/models/test_models.py,test_c_coords_2d,tests/models/test_models.py::test_c_coords_2d[scale_factors1] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_circles-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-False-False-3] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_polygons-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-False-False-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_circles-by_circles] -0.01,setup,tests/core/query/test_relational_query.py,test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py::test_inner_join_match_rows_duplicate_obs_indices[right] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_polygons-by_circles] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_polygons-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-True-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d_multiscale-True] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_circles-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-False-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-False-False-3] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_circles-by_polygons] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_polygons-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-False-False-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-False-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-False-False-2] -0.01,setup,tests/core/query/test_relational_query.py,test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py::test_inner_join_match_rows_duplicate_obs_indices[left] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_polygons-by_polygons] -0.01,setup,tests/core/query/test_relational_query.py,test_join_using_string_instance_id_and_index,tests/core/query/test_relational_query.py::test_join_using_string_instance_id_and_index -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-False-False-3] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_circles-by_circles] -0.01,setup,tests/core/query/test_relational_query.py,test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py::test_inner_join_match_rows_duplicate_obs_indices[right_exclusive] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-False-False-2] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_polygons-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-True-True-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_obs-values_circles-by_polygons] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_polygons-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-False-False-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_circles-by_polygons] -0.01,call,tests/io/test_readwrite.py,test_roundtrip,tests/io/test_readwrite.py::TestReadWrite::test_roundtrip[empty-sdata_container_format1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-True-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-False-False-1] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_polygons-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_filter_table,tests/core/query/test_spatial_query.py::test_query_filter_table[True] -0.01,call,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[labels2d_multiscale] -0.01,setup,tests/core/query/test_relational_query.py,test_left_inner_right_exclusive_join,tests/core/query/test_relational_query.py::test_left_inner_right_exclusive_join -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-False-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-False-False-2] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_polygons-by_polygons] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_polygons-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-True-True-1] -0.01,setup,tests/core/query/test_relational_query.py,test_inner_join_match_rows_duplicate_obs_indices,tests/core/query/test_relational_query.py::test_inner_join_match_rows_duplicate_obs_indices[inner] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-False-False-3] -0.01,setup,tests/core/query/test_relational_query.py,test_match_rows_join,tests/core/query/test_relational_query.py::test_match_rows_join -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_circles-by_circles] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_gdf-values_circles-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-False-False-3] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-False-False-1] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_polygons-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-False-False-2] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-True-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-True-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-False-False-3] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_polygons-by_circles] -0.01,setup,tests/core/query/test_spatial_query.py,test_polygon_query_with_multipolygon,tests/core/query/test_spatial_query.py::test_polygon_query_with_multipolygon -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-True-True-1] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_polygons-by_polygons] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_circles-by_polygons] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_polygons-by_polygons] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_circles-by_circles] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_polygons-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-True-False-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-True-True-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_circles-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-False-False-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-True-True-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[numerical_in_gdf-values_polygons-by_polygons] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_circles-by_circles] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_obs-values_circles-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-True-False-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d_multiscale-False] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_polygons-by_polygons] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[categorical_in_gdf-values_polygons-by_circles] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_circles-by_polygons] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_polygons-by_circles] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_circles-by_polygons] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_polygons-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[image2d-True] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[categorical_in_ddf-by_polygons] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_circles-by_circles] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-False-False-True-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_polygons-by_circles] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_single_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_single_values[categorical_in_gdf-values_polygons-by_polygons] -0.01,call,tests/core/operations/test_aggregations.py,test_aggregation_invalid_cases,tests/core/operations/test_aggregations.py::test_aggregation_invalid_cases -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-False-False-True-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[numerical_in_gdf-values_polygons-by_polygons] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_circles-by_polygons] -0.01,call,tests/transformations/test_transformations_utils.py,test_convert_transformations_to_affine,tests/transformations/test_transformations_utils.py::test_convert_transformations_to_affine -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[numerical_in_ddf-by_circles] -0.01,call,tests/core/query/test_relational_query.py,test_labels_table_joins,tests/core/query/test_relational_query.py::test_labels_table_joins -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-False-False-False-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_filter_table,tests/core/query/test_spatial_query.py::test_query_filter_table[False] -0.01,call,tests/core/query/test_relational_query.py,test_filter_table_non_annotating,tests/core/query/test_relational_query.py::test_filter_table_non_annotating -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_circles-by_circles] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregation_invalid_cases,tests/core/operations/test_aggregations.py::test_aggregation_invalid_cases -0.01,call,tests/io/test_attrs_io.py,test_attrs_incremental_write,tests/io/test_attrs_io.py::TestAttrsIO::test_attrs_incremental_write[sdata_container_format0] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_circles-by_polygons] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_polygons-by_circles] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_considering_fractions_multiple_values,tests/core/operations/test_aggregations.py::test_aggregate_considering_fractions_multiple_values[categorical_in_gdf-values_polygons-by_polygons] -0.01,call,tests/core/operations/test_map.py,test_map_raster_multiscale,tests/core/operations/test_map.py::test_map_raster_multiscale[depth1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-False-False-False-True-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_shapes_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_shapes_by_shapes[numerical_in_var-values_circles-by_circles] -0.01,call,tests/models/test_models.py,test_dask_points_from_parquet,tests/models/test_models.py::test_dask_points_from_parquet[True-1] -0.01,setup,tests/core/operations/test_aggregations.py,test_aggregate_points_by_shapes,tests/core/operations/test_aggregations.py::test_aggregate_points_by_shapes[numerical_in_ddf-by_polygons] -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[circles-True] -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[circles-False] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-False-True-True-False-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[image2d-False] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-False-True-True-False-True-1] -0.01,call,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_image-depth1] -0.01,call,tests/core/query/test_relational_query.py,test_filter_by_table_query_edge_cases,tests/core/query/test_relational_query.py::test_filter_by_table_query_edge_cases -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[True-True-True-True-False-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_raster,tests/core/query/test_spatial_query.py::test_query_raster[False-True-True-True-False-True-1] -0.01,call,tests/core/query/test_spatial_query.py,test_query_with_clipping,tests/core/query/test_spatial_query.py::test_query_with_clipping -0.01,call,tests/models/test_models.py,test_labels_model_with_multiscales,tests/models/test_models.py::TestModels::test_labels_model_with_multiscales[Labels3DModel] -0.01,call,tests/io/test_attrs_io.py,test_attrs_v1_to_v2,tests/io/test_attrs_io.py::test_attrs_v1_to_v2 -0.01,call,tests/models/test_models.py,test_labels_model_with_multiscales,tests/models/test_models.py::TestModels::test_labels_model_with_multiscales[Labels2DModel] -0.01,call,tests/core/query/test_relational_query.py,test_match_rows_inner_join_non_matching_table,tests/core/query/test_relational_query.py::test_match_rows_inner_join_non_matching_table -0.01,call,tests/core/operations/test_spatialdata_operations.py,test_concatenate_custom_table_metadata,tests/core/operations/test_spatialdata_operations.py::test_concatenate_custom_table_metadata -0.01,call,tests/core/operations/test_transform.py,test_coordinate_systems_with_shortest_paths,tests/core/operations/test_transform.py::test_coordinate_systems_with_shortest_paths -0.01,call,tests/io/test_attrs_io.py,test_attrs_incremental_write,tests/io/test_attrs_io.py::TestAttrsIO::test_attrs_incremental_write[sdata_container_format1] -0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d-True] -0.01,call,tests/core/operations/test_spatialdata_operations.py,test_element_names_unique,tests/core/operations/test_spatialdata_operations.py::test_element_names_unique -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[poly-True] -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[multipoly-True] -0.01,call,tests/core/operations/test_transform.py,test_map_coordinate_systems_single_path,tests/core/operations/test_transform.py::test_map_coordinate_systems_single_path -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[poly-False] -0.01,call,tests/core/query/test_spatial_query.py,test_attributes_are_copied,tests/core/query/test_spatial_query.py::test_attributes_are_copied[labels2d-False] -0.01,call,tests/core/query/test_spatial_query.py,test_query_affine_transformation,tests/core/query/test_spatial_query.py::test_query_affine_transformation[multipoly-False] -0.01,call,tests/core/operations/test_map.py,test_map_raster,tests/core/operations/test_map.py::test_map_raster[blobs_labels-depth1] -0.01,call,tests/core/operations/test_map.py,test_map_raster_relabel_fail,tests/core/operations/test_map.py::test_map_raster_relabel_fail -0.01,call,tests/core/query/test_spatial_query.py,test_query_points_no_points,tests/core/query/test_spatial_query.py::test_query_points_no_points -0.01,call,tests/core/operations/test_transform.py,test_map_coordinate_systems_zero_or_multiple_paths,tests/core/operations/test_transform.py::test_map_coordinate_systems_zero_or_multiple_paths -0.01,call,tests/core/query/test_spatial_query.py,test_spatial_query_different_axes,tests/core/query/test_spatial_query.py::test_spatial_query_different_axes[labels2d] -0.01,call,tests/models/test_models.py,test_dask_points_from_parquet,tests/models/test_models.py::test_dask_points_from_parquet[True-2] diff --git a/pytest_fixture_benchmark.csv b/pytest_fixture_benchmark.csv deleted file mode 100644 index dea3af277..000000000 --- a/pytest_fixture_benchmark.csv +++ /dev/null @@ -1,16 +0,0 @@ -approach,fixture,cost_mean_ms,cost_min_ms,n_test_calls,estimated_total_s,notes -current,sdata_blobs,126.4,122.9,83,10.5,"blobs() + deepcopy, function-scoped" -session_cache,sdata_blobs,23.5,21.7,83,1.9,deepcopy of session-cached blobs -current,labels_blobs,18.1,17.7,5,0.1,BlobsDataset._labels_blobs() each call -session_cache,labels_blobs,2.7,2.3,5,0.0,deepcopy of session-cached DataArray -current,full_sdata,88.1,84.7,20,1.8,fresh parse of _get_images+labels+shapes+points+tables -session_cache,full_sdata,82.0,77.2,20,1.6,sd_deepcopy(session_cached) — nearly same cost -current,images,45.0,44.0,15,0.7,Image2DModel.parse() x8 with multiscale -session_cache,images,41.3,37.9,15,0.6,"sd_deepcopy — parse dominates, no gain" -current,labels,38.8,36.3,15,0.6,Labels2DModel.parse() x8 with multiscale -session_cache,labels,38.6,35.8,15,0.6,"sd_deepcopy — parse dominates, no gain" -current_gen_only,images (array gen only),0.4,0.4,15,0.0,"just RNG, no parse" -current_parse_only,images (Model.parse only),2.8,2.5,15,0.0,"just parse, fixed array" -memmap,images (single),8.7,2.9,15,0.1,memmap load + parse — negligible diff vs RNG -current,sdata_query_aggregation,8.4,8.3,30,0.3,complex construction with shapes+points+table -session_cache,sdata_query_aggregation,4.0,3.5,30,0.1,sd_deepcopy — shapes+points are cheap From 73f43875b44ff75e5b1fea31b15bb8741128d2d5 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Tue, 5 May 2026 17:45:01 +0200 Subject: [PATCH 04/18] chore: remove benchmark stats csv --- pytest_summary.csv | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 pytest_summary.csv diff --git a/pytest_summary.csv b/pytest_summary.csv deleted file mode 100644 index 4665c40da..000000000 --- a/pytest_summary.csv +++ /dev/null @@ -1,9 +0,0 @@ -metric,value,notes -total_wallclock_before_s,186.39,"1332 passed, 7 skip, 1 xfail" -total_wallclock_after_s,180.59,"1332 passed, 7 skip, 1 xfail — all tests still pass" -wallclock_saved_s,5.8,measured end-to-end -setup_phase_before_s,44.8,from --durations=0 -setup_phase_after_s,35.0,from --durations=0 -setup_saved_s,9.8,fixture setup improvement -call_phase_before_s,136.5, -call_phase_after_s,140.7,"small increase is noise, not regression" From 77265569568e08403ff9e7b9e9c05cce7f1b9b6e Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Tue, 5 May 2026 18:22:24 +0200 Subject: [PATCH 05/18] perf: eliminate double-validation in __setitem__ and use fast fixture deepcopy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two orthogonal wins: 1. _elements.py: `get_model()` already calls `schema.validate()` internally; the explicit second validate() + get_axes_names() call in every __setitem__ was redundant. Removing it halves the DataTree (_to_dataset_view) overhead per element insertion — directly speeds up fixture setup. 2. conftest.py: introduce `_fast_deepcopy_sdata` (copy.deepcopy + manual attrs restoration for DaskDataFrame/#503 and GeoDataFrame/#286) that is ~13x faster than sd_deepcopy (7ms vs 93ms for full_sdata). Session-scope full_sdata, images, labels and the 'full' sdata parametrized fixture; each test gets a fresh 7ms copy instead of an 87ms full reconstruction. Also switch sdata_blobs from sd_deepcopy to fast_deepcopy_sdata (2ms vs 25ms). Full suite: 186s → 163s (~12% reduction, ~23s saved). Co-Authored-By: Claude Sonnet 4.6 --- src/spatialdata/_core/_elements.py | 24 +---------- tests/conftest.py | 68 ++++++++++++++++++++++++------ 2 files changed, 56 insertions(+), 36 deletions(-) diff --git a/src/spatialdata/_core/_elements.py b/src/spatialdata/_core/_elements.py index a3267a701..a0db20b85 100644 --- a/src/spatialdata/_core/_elements.py +++ b/src/spatialdata/_core/_elements.py @@ -21,7 +21,6 @@ PointsModel, ShapesModel, TableModel, - get_axes_names, get_model, ) @@ -72,15 +71,7 @@ def __setitem__(self, key: str, value: Raster_T) -> None: schema = get_model(value) if schema not in (Image2DModel, Image3DModel): raise TypeError(f"Unknown element type with schema: {schema!r}.") - ndim = len(get_axes_names(value)) - if ndim == 3: - Image2DModel.validate(value) - super().__setitem__(key, value) - elif ndim == 4: - Image3DModel.validate(value) - super().__setitem__(key, value) - else: - NotImplementedError("TODO: implement for ndim > 4.") + super().__setitem__(key, value) class Labels(Elements[DataArray | DataTree]): @@ -89,15 +80,7 @@ def __setitem__(self, key: str, value: Raster_T) -> None: schema = get_model(value) if schema not in (Labels2DModel, Labels3DModel): raise TypeError(f"Unknown element type with schema: {schema!r}.") - ndim = len(get_axes_names(value)) - if ndim == 2: - Labels2DModel.validate(value) - super().__setitem__(key, value) - elif ndim == 3: - Labels3DModel.validate(value) - super().__setitem__(key, value) - else: - NotImplementedError("TODO: implement for ndim > 3.") + super().__setitem__(key, value) class Shapes(Elements[GeoDataFrame]): @@ -106,7 +89,6 @@ def __setitem__(self, key: str, value: GeoDataFrame) -> None: schema = get_model(value) if schema != ShapesModel: raise TypeError(f"Unknown element type with schema: {schema!r}.") - ShapesModel.validate(value) super().__setitem__(key, value) @@ -116,7 +98,6 @@ def __setitem__(self, key: str, value: DaskDataFrame) -> None: schema = get_model(value) if schema != PointsModel: raise TypeError(f"Unknown element type with schema: {schema!r}.") - PointsModel.validate(value) super().__setitem__(key, value) @@ -126,5 +107,4 @@ def __setitem__(self, key: str, value: AnnData) -> None: schema = get_model(value) if schema != TableModel: raise TypeError(f"Unknown element type with schema: {schema!r}.") - TableModel.validate(value) super().__setitem__(key, value) diff --git a/tests/conftest.py b/tests/conftest.py index cdea587bc..c06f393d6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,6 @@ from __future__ import annotations +import copy as _copy from collections.abc import Sequence from pathlib import Path from typing import Any @@ -33,6 +34,25 @@ TableModel, ) + +def _fast_deepcopy_sdata(sd: SpatialData) -> SpatialData: + """ + Fast deepcopy for SpatialData objects in tests. + + Uses copy.deepcopy (which skips model re-validation) and manually restores + the attrs that copy.deepcopy loses for DaskDataFrame (issue #503) and + GeoDataFrame (issue #286). + """ + points_attrs = {k: _copy.deepcopy(v._attrs) for k, v in sd.points.items()} + shapes_attrs = {k: _copy.deepcopy(v.attrs) for k, v in sd.shapes.items()} + sd_copy = _copy.deepcopy(sd) + for k, attrs in points_attrs.items(): + sd_copy.points[k]._attrs = attrs + for k, attrs in shapes_attrs.items(): + sd_copy.shapes[k].attrs = attrs + return sd_copy + + SEED = 0 RNG = default_rng(seed=SEED) @@ -41,16 +61,26 @@ POINT_PATH = Path(__file__).parent / "data/points.json" -@pytest.fixture() -def images() -> SpatialData: +@pytest.fixture(scope="session") +def _images_session() -> SpatialData: return SpatialData(images=_get_images()) @pytest.fixture() -def labels() -> SpatialData: +def images(_images_session: SpatialData) -> SpatialData: + return _fast_deepcopy_sdata(_images_session) + + +@pytest.fixture(scope="session") +def _labels_session() -> SpatialData: return SpatialData(labels=_get_labels()) +@pytest.fixture() +def labels(_labels_session: SpatialData) -> SpatialData: + return _fast_deepcopy_sdata(_labels_session) + + @pytest.fixture() def shapes() -> SpatialData: return SpatialData(shapes=_get_shapes()) @@ -87,8 +117,8 @@ def tables() -> list[AnnData]: return _tables -@pytest.fixture() -def full_sdata() -> SpatialData: +@pytest.fixture(scope="session") +def _full_sdata_session() -> SpatialData: return SpatialData( images=_get_images(), labels=_get_labels(), @@ -98,6 +128,22 @@ def full_sdata() -> SpatialData: ) +@pytest.fixture() +def full_sdata(_full_sdata_session: SpatialData) -> SpatialData: + return _fast_deepcopy_sdata(_full_sdata_session) + + +@pytest.fixture(scope="session") +def _sdata_full_session() -> SpatialData: + return SpatialData( + images=_get_images(), + labels=_get_labels(), + shapes=_get_shapes(), + points=_get_points(), + tables=_get_tables(region="labels2d"), + ) + + @pytest.fixture( # params=["labels"] params=["full", "empty"] @@ -110,15 +156,9 @@ def full_sdata() -> SpatialData: ] # + ["empty_" + x for x in ["table"]] # TODO: empty table not supported yet ) -def sdata(request) -> SpatialData: +def sdata(request, _sdata_full_session: SpatialData) -> SpatialData: if request.param == "full": - return SpatialData( - images=_get_images(), - labels=_get_labels(), - shapes=_get_shapes(), - points=_get_points(), - tables=_get_tables(region="labels2d"), - ) + return _fast_deepcopy_sdata(_sdata_full_session) if request.param == "empty": return SpatialData() return request.getfixturevalue(request.param) @@ -325,7 +365,7 @@ def _sdata_blobs_session() -> SpatialData: @pytest.fixture() def sdata_blobs(_sdata_blobs_session: SpatialData) -> SpatialData: """Create a 2D labels.""" - return deepcopy(_sdata_blobs_session) + return _fast_deepcopy_sdata(_sdata_blobs_session) def _make_points(coordinates: np.ndarray) -> DaskDataFrame: From ac9713656e2bc1389212ea422603d7d8c08a4a7a Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Tue, 5 May 2026 19:06:31 +0200 Subject: [PATCH 06/18] perf: add validate=False option to get_model, clarify setitem validation comment - get_model() now accepts validate=False to skip schema.validate() when the caller only needs to infer the element type without re-running validation - add comment to Elements.__setitem__ noting that subclass overrides call get_model() which performs the validation - drop Python 3.13 CI matrix entries (superseded by 3.14) Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/test.yaml | 3 --- src/spatialdata/_core/_elements.py | 1 + src/spatialdata/models/models.py | 8 ++++++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index c6e611a82..8dc7afbb4 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -20,13 +20,10 @@ jobs: matrix: include: - {os: windows-latest, python: "3.11", dask-version: "2025.12.0", name: "min dask"} - - {os: windows-latest, python: "3.13", dask-version: "latest"} - {os: windows-latest, python: "3.14", dask-version: "latest"} - {os: ubuntu-latest, python: "3.11", dask-version: "latest"} - - {os: ubuntu-latest, python: "3.13", dask-version: "latest"} - {os: ubuntu-latest, python: "3.14", dask-version: "latest"} - {os: macos-latest, python: "3.11", dask-version: "latest"} - - {os: macos-latest, python: "3.13", prerelease: "allow", name: "prerelease"} - {os: macos-latest, python: "3.14", prerelease: "allow", name: "prerelease"} env: OS: ${{ matrix.os }} diff --git a/src/spatialdata/_core/_elements.py b/src/spatialdata/_core/_elements.py index a0db20b85..846b8b056 100644 --- a/src/spatialdata/_core/_elements.py +++ b/src/spatialdata/_core/_elements.py @@ -49,6 +49,7 @@ def _check_key(key: str, element_keys: Iterable[str], shared_keys: set[str | Non raise KeyError(*e.args) from e def __setitem__(self, key: str, value: T) -> None: + # note that each __setitem__ in the subclasses calls get_model(), which performs data validation self._add_shared_key(key) super().__setitem__(key, value) diff --git a/src/spatialdata/models/models.py b/src/spatialdata/models/models.py index 2bfcf88ce..0b6c32013 100644 --- a/src/spatialdata/models/models.py +++ b/src/spatialdata/models/models.py @@ -1250,14 +1250,17 @@ def parse( def get_model( e: SpatialElement, + validate: bool = True, ) -> Schema_t: """ - Get the model for the given element. + Get the model for the given element. Validate using the model if `validate` is `True`. Parameters ---------- e The element. + validate + Whether to validate the element using the model. Returns ------- @@ -1268,7 +1271,8 @@ def _validate_and_return( schema: Schema_t, e: SpatialElement, ) -> Schema_t: - schema.validate(e) + if validate: + schema.validate(e) return schema if isinstance(e, DataArray | DataTree): From acb25b1c640c30469362fbec66bf728f956e019a Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Tue, 5 May 2026 19:20:51 +0200 Subject: [PATCH 07/18] perf: skip re-validation when building SpatialData from already-valid elements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add skip_element_validation() context manager (backed by a ContextVar) that makes __setitem__ call get_model(validate=False) — type inference only, no schema.validate(). Use it in every code path that constructs a SpatialData from elements that originated from an existing SpatialData and were never externally mutated: bounding_box_query, polygon_query, query_by_coordinate_system, transform_to_coordinate_system, subset, and init_from_elements. test_query_spatial_data: 0.77s → 0.64s (the remaining time is the query work itself — filtering, shapely ops, raster cropping). Also inline a minimal 2-image SpatialData in test_transformations_between_coordinate_systems instead of relying on the full 8-element images fixture; the test only ever uses image2d and image2d_multiscale, so writing the other 6 to disk was pure waste. test_transformations_between_coordinate_systems: 0.61s → 0.44s. Co-Authored-By: Claude Sonnet 4.6 --- src/spatialdata/_core/_elements.py | 33 ++++++++++++++++---- src/spatialdata/_core/query/spatial_query.py | 7 +++-- src/spatialdata/_core/spatialdata.py | 14 ++++++--- tests/core/operations/test_transform.py | 9 +++++- 4 files changed, 49 insertions(+), 14 deletions(-) diff --git a/src/spatialdata/_core/_elements.py b/src/spatialdata/_core/_elements.py index 846b8b056..495903419 100644 --- a/src/spatialdata/_core/_elements.py +++ b/src/spatialdata/_core/_elements.py @@ -2,8 +2,10 @@ from __future__ import annotations +import contextlib from collections import UserDict -from collections.abc import Iterable, KeysView, ValuesView +from collections.abc import Iterable, Iterator, KeysView, ValuesView +from contextvars import ContextVar from typing import TypeVar from anndata import AnnData @@ -24,6 +26,25 @@ get_model, ) +_skip_element_validation: ContextVar[bool] = ContextVar("_skip_element_validation", default=False) + + +@contextlib.contextmanager +def skip_element_validation() -> Iterator[None]: + """ + Context manager to skip schema validation when inserting elements into SpatialData containers. + + Use this only when inserting elements that are already known to be valid (e.g. elements + taken directly from an existing SpatialData object). Skipping validation is unsafe for + externally-sourced data. + """ + token = _skip_element_validation.set(True) + try: + yield + finally: + _skip_element_validation.reset(token) + + T = TypeVar("T") @@ -69,7 +90,7 @@ def values(self) -> ValuesView[T]: class Images(Elements[DataArray | DataTree]): def __setitem__(self, key: str, value: Raster_T) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value) + schema = get_model(value, validate=not _skip_element_validation.get()) if schema not in (Image2DModel, Image3DModel): raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) @@ -78,7 +99,7 @@ def __setitem__(self, key: str, value: Raster_T) -> None: class Labels(Elements[DataArray | DataTree]): def __setitem__(self, key: str, value: Raster_T) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value) + schema = get_model(value, validate=not _skip_element_validation.get()) if schema not in (Labels2DModel, Labels3DModel): raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) @@ -87,7 +108,7 @@ def __setitem__(self, key: str, value: Raster_T) -> None: class Shapes(Elements[GeoDataFrame]): def __setitem__(self, key: str, value: GeoDataFrame) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value) + schema = get_model(value, validate=not _skip_element_validation.get()) if schema != ShapesModel: raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) @@ -96,7 +117,7 @@ def __setitem__(self, key: str, value: GeoDataFrame) -> None: class Points(Elements[DaskDataFrame]): def __setitem__(self, key: str, value: DaskDataFrame) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value) + schema = get_model(value, validate=not _skip_element_validation.get()) if schema != PointsModel: raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) @@ -105,7 +126,7 @@ def __setitem__(self, key: str, value: DaskDataFrame) -> None: class Tables(Elements[AnnData]): def __setitem__(self, key: str, value: AnnData) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value) + schema = get_model(value, validate=not _skip_element_validation.get()) if schema != TableModel: raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) diff --git a/src/spatialdata/_core/query/spatial_query.py b/src/spatialdata/_core/query/spatial_query.py index c29e3bc0e..69fce72a8 100644 --- a/src/spatialdata/_core/query/spatial_query.py +++ b/src/spatialdata/_core/query/spatial_query.py @@ -15,6 +15,7 @@ from xarray import DataArray, DataTree from spatialdata import to_polygons +from spatialdata._core._elements import skip_element_validation from spatialdata._core.query._utils import _get_filtered_or_unfiltered_tables, get_bounding_box_corners from spatialdata._core.spatialdata import SpatialData from spatialdata._docs import docstring_parameter @@ -538,7 +539,8 @@ def _( tables = _get_filtered_or_unfiltered_tables(filter_table, new_elements, sdata) - return SpatialData(**new_elements, tables=tables, attrs=sdata.attrs) + with skip_element_validation(): + return SpatialData(**new_elements, tables=tables, attrs=sdata.attrs) @bounding_box_query.register(DataArray) @@ -874,7 +876,8 @@ def _( tables = _get_filtered_or_unfiltered_tables(filter_table, new_elements, sdata) - return SpatialData(**new_elements, tables=tables, attrs=sdata.attrs) + with skip_element_validation(): + return SpatialData(**new_elements, tables=tables, attrs=sdata.attrs) @polygon_query.register(DataArray) diff --git a/src/spatialdata/_core/spatialdata.py b/src/spatialdata/_core/spatialdata.py index 739b225fe..8593ac7bb 100644 --- a/src/spatialdata/_core/spatialdata.py +++ b/src/spatialdata/_core/spatialdata.py @@ -21,7 +21,7 @@ from xarray import DataArray, DataTree from zarr.errors import GroupNotFoundError -from spatialdata._core._elements import Images, Labels, Points, Shapes, Tables +from spatialdata._core._elements import Images, Labels, Points, Shapes, Tables, skip_element_validation from spatialdata._core.validation import ( check_all_keys_case_insensitively_unique, check_target_region_column_symmetry, @@ -641,7 +641,8 @@ def filter_by_coordinate_system( element_names=element_names_in_coordinate_system, ) - return SpatialData(**elements, tables=tables, attrs=self.attrs) + with skip_element_validation(): + return SpatialData(**elements, tables=tables, attrs=self.attrs) # TODO: move to relational query with refactor def _filter_tables( @@ -885,7 +886,8 @@ def transform_to_coordinate_system( if element_type not in elements: elements[element_type] = {} elements[element_type][element_name] = transformed - return SpatialData(**elements, tables=sdata.tables, attrs=self.attrs) + with skip_element_validation(): + return SpatialData(**elements, tables=sdata.tables, attrs=self.attrs) def elements_are_self_contained(self) -> dict[str, bool]: """ @@ -2242,7 +2244,8 @@ def init_from_elements( assert model == ShapesModel element_type = "shapes" elements_dict.setdefault(element_type, {})[name] = element - return cls(**elements_dict, attrs=attrs) + with skip_element_validation(): + return cls(**elements_dict, attrs=attrs) def subset( self, @@ -2284,7 +2287,8 @@ def subset( include_orphan_tables, elements_dict=elements_dict, ) - return SpatialData(**elements_dict, tables=tables, attrs=self.attrs) + with skip_element_validation(): + return SpatialData(**elements_dict, tables=tables, attrs=self.attrs) def __getitem__(self, item: str) -> SpatialElement | AnnData: """ diff --git a/tests/core/operations/test_transform.py b/tests/core/operations/test_transform.py index 59a380f7a..1b1e3d6a3 100644 --- a/tests/core/operations/test_transform.py +++ b/tests/core/operations/test_transform.py @@ -694,9 +694,16 @@ def test_transform_elements_and_entire_spatial_data_object_multi_hop( assert np.allclose(affine, np.array([[1, 0], [0, 1]])) -def test_transformations_between_coordinate_systems(images): +def test_transformations_between_coordinate_systems(): # just a test that all the code is executed without errors and a quick test that the affine matrix is correct. # For a full test the notebooks are more exhaustive + # Use a minimal sdata with only the two images needed — avoids writing 6 unused elements to disk. + images = SpatialData( + images={ + "image2d": Image2DModel.parse(np.zeros((3, 8, 8)), dims=("c", "y", "x")), + "image2d_multiscale": Image2DModel.parse(np.zeros((3, 8, 8)), dims=("c", "y", "x"), scale_factors=[2]), + } + ) with tempfile.TemporaryDirectory() as tmpdir: images.write(Path(tmpdir) / "sdata.zarr") el0 = images.images["image2d"] From 411370672a0c46c71a620f5a0c19649f7a9e78c6 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 09:25:58 +0200 Subject: [PATCH 08/18] Revert "perf: skip re-validation when building SpatialData from already-valid elements" This reverts commit acb25b1c640c30469362fbec66bf728f956e019a. --- src/spatialdata/_core/_elements.py | 33 ++++---------------- src/spatialdata/_core/query/spatial_query.py | 7 ++--- src/spatialdata/_core/spatialdata.py | 14 +++------ tests/core/operations/test_transform.py | 9 +----- 4 files changed, 14 insertions(+), 49 deletions(-) diff --git a/src/spatialdata/_core/_elements.py b/src/spatialdata/_core/_elements.py index 495903419..846b8b056 100644 --- a/src/spatialdata/_core/_elements.py +++ b/src/spatialdata/_core/_elements.py @@ -2,10 +2,8 @@ from __future__ import annotations -import contextlib from collections import UserDict -from collections.abc import Iterable, Iterator, KeysView, ValuesView -from contextvars import ContextVar +from collections.abc import Iterable, KeysView, ValuesView from typing import TypeVar from anndata import AnnData @@ -26,25 +24,6 @@ get_model, ) -_skip_element_validation: ContextVar[bool] = ContextVar("_skip_element_validation", default=False) - - -@contextlib.contextmanager -def skip_element_validation() -> Iterator[None]: - """ - Context manager to skip schema validation when inserting elements into SpatialData containers. - - Use this only when inserting elements that are already known to be valid (e.g. elements - taken directly from an existing SpatialData object). Skipping validation is unsafe for - externally-sourced data. - """ - token = _skip_element_validation.set(True) - try: - yield - finally: - _skip_element_validation.reset(token) - - T = TypeVar("T") @@ -90,7 +69,7 @@ def values(self) -> ValuesView[T]: class Images(Elements[DataArray | DataTree]): def __setitem__(self, key: str, value: Raster_T) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value, validate=not _skip_element_validation.get()) + schema = get_model(value) if schema not in (Image2DModel, Image3DModel): raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) @@ -99,7 +78,7 @@ def __setitem__(self, key: str, value: Raster_T) -> None: class Labels(Elements[DataArray | DataTree]): def __setitem__(self, key: str, value: Raster_T) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value, validate=not _skip_element_validation.get()) + schema = get_model(value) if schema not in (Labels2DModel, Labels3DModel): raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) @@ -108,7 +87,7 @@ def __setitem__(self, key: str, value: Raster_T) -> None: class Shapes(Elements[GeoDataFrame]): def __setitem__(self, key: str, value: GeoDataFrame) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value, validate=not _skip_element_validation.get()) + schema = get_model(value) if schema != ShapesModel: raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) @@ -117,7 +96,7 @@ def __setitem__(self, key: str, value: GeoDataFrame) -> None: class Points(Elements[DaskDataFrame]): def __setitem__(self, key: str, value: DaskDataFrame) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value, validate=not _skip_element_validation.get()) + schema = get_model(value) if schema != PointsModel: raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) @@ -126,7 +105,7 @@ def __setitem__(self, key: str, value: DaskDataFrame) -> None: class Tables(Elements[AnnData]): def __setitem__(self, key: str, value: AnnData) -> None: self._check_key(key, self.keys(), self._shared_keys) - schema = get_model(value, validate=not _skip_element_validation.get()) + schema = get_model(value) if schema != TableModel: raise TypeError(f"Unknown element type with schema: {schema!r}.") super().__setitem__(key, value) diff --git a/src/spatialdata/_core/query/spatial_query.py b/src/spatialdata/_core/query/spatial_query.py index 69fce72a8..c29e3bc0e 100644 --- a/src/spatialdata/_core/query/spatial_query.py +++ b/src/spatialdata/_core/query/spatial_query.py @@ -15,7 +15,6 @@ from xarray import DataArray, DataTree from spatialdata import to_polygons -from spatialdata._core._elements import skip_element_validation from spatialdata._core.query._utils import _get_filtered_or_unfiltered_tables, get_bounding_box_corners from spatialdata._core.spatialdata import SpatialData from spatialdata._docs import docstring_parameter @@ -539,8 +538,7 @@ def _( tables = _get_filtered_or_unfiltered_tables(filter_table, new_elements, sdata) - with skip_element_validation(): - return SpatialData(**new_elements, tables=tables, attrs=sdata.attrs) + return SpatialData(**new_elements, tables=tables, attrs=sdata.attrs) @bounding_box_query.register(DataArray) @@ -876,8 +874,7 @@ def _( tables = _get_filtered_or_unfiltered_tables(filter_table, new_elements, sdata) - with skip_element_validation(): - return SpatialData(**new_elements, tables=tables, attrs=sdata.attrs) + return SpatialData(**new_elements, tables=tables, attrs=sdata.attrs) @polygon_query.register(DataArray) diff --git a/src/spatialdata/_core/spatialdata.py b/src/spatialdata/_core/spatialdata.py index 8593ac7bb..739b225fe 100644 --- a/src/spatialdata/_core/spatialdata.py +++ b/src/spatialdata/_core/spatialdata.py @@ -21,7 +21,7 @@ from xarray import DataArray, DataTree from zarr.errors import GroupNotFoundError -from spatialdata._core._elements import Images, Labels, Points, Shapes, Tables, skip_element_validation +from spatialdata._core._elements import Images, Labels, Points, Shapes, Tables from spatialdata._core.validation import ( check_all_keys_case_insensitively_unique, check_target_region_column_symmetry, @@ -641,8 +641,7 @@ def filter_by_coordinate_system( element_names=element_names_in_coordinate_system, ) - with skip_element_validation(): - return SpatialData(**elements, tables=tables, attrs=self.attrs) + return SpatialData(**elements, tables=tables, attrs=self.attrs) # TODO: move to relational query with refactor def _filter_tables( @@ -886,8 +885,7 @@ def transform_to_coordinate_system( if element_type not in elements: elements[element_type] = {} elements[element_type][element_name] = transformed - with skip_element_validation(): - return SpatialData(**elements, tables=sdata.tables, attrs=self.attrs) + return SpatialData(**elements, tables=sdata.tables, attrs=self.attrs) def elements_are_self_contained(self) -> dict[str, bool]: """ @@ -2244,8 +2242,7 @@ def init_from_elements( assert model == ShapesModel element_type = "shapes" elements_dict.setdefault(element_type, {})[name] = element - with skip_element_validation(): - return cls(**elements_dict, attrs=attrs) + return cls(**elements_dict, attrs=attrs) def subset( self, @@ -2287,8 +2284,7 @@ def subset( include_orphan_tables, elements_dict=elements_dict, ) - with skip_element_validation(): - return SpatialData(**elements_dict, tables=tables, attrs=self.attrs) + return SpatialData(**elements_dict, tables=tables, attrs=self.attrs) def __getitem__(self, item: str) -> SpatialElement | AnnData: """ diff --git a/tests/core/operations/test_transform.py b/tests/core/operations/test_transform.py index 1b1e3d6a3..59a380f7a 100644 --- a/tests/core/operations/test_transform.py +++ b/tests/core/operations/test_transform.py @@ -694,16 +694,9 @@ def test_transform_elements_and_entire_spatial_data_object_multi_hop( assert np.allclose(affine, np.array([[1, 0], [0, 1]])) -def test_transformations_between_coordinate_systems(): +def test_transformations_between_coordinate_systems(images): # just a test that all the code is executed without errors and a quick test that the affine matrix is correct. # For a full test the notebooks are more exhaustive - # Use a minimal sdata with only the two images needed — avoids writing 6 unused elements to disk. - images = SpatialData( - images={ - "image2d": Image2DModel.parse(np.zeros((3, 8, 8)), dims=("c", "y", "x")), - "image2d_multiscale": Image2DModel.parse(np.zeros((3, 8, 8)), dims=("c", "y", "x"), scale_factors=[2]), - } - ) with tempfile.TemporaryDirectory() as tmpdir: images.write(Path(tmpdir) / "sdata.zarr") el0 = images.images["image2d"] From 89a22026ef358aba2f5adf4aa547adfa3e739f10 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 09:34:22 +0200 Subject: [PATCH 09/18] perf: vectorize label centroid computation, 30x speedup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace per-slice O(H+W) approach (512 dask compute() calls for a 256×256 array) with a single array materialization + np.bincount O(n_pixels) pass. This speeds up get_centroids() on labels from ~1.5s to ~50ms, cutting to_circles(labels) from ~1.6s to ~53ms. Affects test_validation dataloader variants (~2.5s → ~0.2s each, saving ~9s), test_labels_2d_to_circles, and any production call to get_centroids or to_circles on label arrays. Co-Authored-By: Claude Sonnet 4.6 --- src/spatialdata/_core/centroids.py | 60 ++++++++++++------------------ 1 file changed, 23 insertions(+), 37 deletions(-) diff --git a/src/spatialdata/_core/centroids.py b/src/spatialdata/_core/centroids.py index 24ea616c6..0ae89d31a 100644 --- a/src/spatialdata/_core/centroids.py +++ b/src/spatialdata/_core/centroids.py @@ -1,9 +1,8 @@ from __future__ import annotations -from collections import defaultdict from functools import singledispatch -import dask.array as da +import numpy as np import pandas as pd import xarray as xr from dask.dataframe import DataFrame as DaskDataFrame @@ -56,40 +55,30 @@ def get_centroids( raise ValueError(f"The object type {type(e)} is not supported.") -def _get_centroids_for_axis(xdata: xr.DataArray, axis: str) -> pd.DataFrame: +def _get_centroids_for_labels(xdata: xr.DataArray) -> pd.DataFrame: """ - Compute the component "axis" of the centroid of each label as a weighted average of the xarray coordinates. + Vectorized centroid computation for all axes of a labels DataArray. - Parameters - ---------- - xdata - The xarray DataArray containing the labels. - axis - The axis for which the centroids are computed. - - Returns - ------- - pd.DataFrame - A DataFrame containing one column, named after "axis", with the centroids of the labels along that axis. - The index of the DataFrame is the collection of label values, sorted in ascending order. + Materializes the array once and uses np.bincount for an O(n_pixels) single-pass + computation, replacing the previous per-slice approach that made O(H + W) compute() + calls on the Dask graph. """ - centroids: dict[int, float] = defaultdict(float) - for i in xdata[axis]: - portion = xdata.sel(**{axis: i}).data - u = da.unique(portion, return_counts=True) - labels_values = u[0].compute() - counts = u[1].compute() - for j in range(len(labels_values)): - label_value = labels_values[j] - count = counts[j] - centroids[label_value] += count * i.values.item() - - all_labels_values, all_labels_counts = da.unique(xdata.data, return_counts=True) - all_labels = dict(zip(all_labels_values.compute(), all_labels_counts.compute(), strict=True)) - for label_value in centroids: - centroids[label_value] /= all_labels[label_value] - centroids = dict(sorted(centroids.items(), key=lambda x: x[0])) - return pd.DataFrame({axis: centroids.values()}, index=list(centroids.keys())) + arr = xdata.data.compute() + axes = list(xdata.dims) + + # Map label values to a contiguous range for bincount efficiency. + label_ids, inverse = np.unique(arr, return_inverse=True) + flat_inverse = inverse.ravel() + + # Build coordinate grids for all axes at once, then compute weighted sums. + coord_grids = np.meshgrid(*[xdata[ax].values for ax in axes], indexing="ij") + data: dict[str, np.ndarray] = {} + counts = np.bincount(flat_inverse) # per-label pixel counts + for ax, grid in zip(axes, coord_grids, strict=True): + coord_sums = np.bincount(flat_inverse, weights=grid.ravel().astype(float)) + data[ax] = coord_sums / counts # counts > 0 by construction (unique guarantees this) + + return pd.DataFrame(data, index=label_ids) @get_centroids.register(DataArray) @@ -109,10 +98,7 @@ def _( assert len(e["scale0"]) == 1 e = next(iter(e["scale0"].values())) - dfs = [] - for axis in get_axes_names(e): - dfs.append(_get_centroids_for_axis(e, axis)) - df = pd.concat(dfs, axis=1) + df = _get_centroids_for_labels(e) if not return_background and 0 in df.index: df = df.drop(index=0) # drop the background label t = get_transformation(e, coordinate_system) From b9d9b573379e94749f07ccaf1030d7fd3d93651f Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 09:44:55 +0200 Subject: [PATCH 10/18] perf: session-scope blobs fixtures in concatenate and get_attrs tests Add blobs_factory fixture that returns fast deepcopies of the session-scoped blobs dataset, and update test_concatenate_* and test_no_shared_transformations to use it instead of calling blobs() per test. Also update test_get_attrs.py sdata_attrs fixture and test_empty_attrs to use sdata_blobs. The concatenate parametrized tests (6 variants) drop from ~0.55s to ~0.02s each (~3s total savings); test_get_attrs drops from ~0.28s to ~0.02s per test. Co-Authored-By: Claude Sonnet 4.6 --- tests/conftest.py | 12 ++++++++++- .../operations/test_spatialdata_operations.py | 21 +++++++++---------- tests/core/test_get_attrs.py | 14 +++++-------- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index c06f393d6..50cbb80a8 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,7 +1,7 @@ from __future__ import annotations import copy as _copy -from collections.abc import Sequence +from collections.abc import Callable, Sequence from pathlib import Path from typing import Any @@ -368,6 +368,16 @@ def sdata_blobs(_sdata_blobs_session: SpatialData) -> SpatialData: return _fast_deepcopy_sdata(_sdata_blobs_session) +@pytest.fixture() +def blobs_factory(_sdata_blobs_session: SpatialData) -> Callable[[], SpatialData]: + """Return a factory that creates cheap fresh copies of the session-scoped blobs dataset.""" + + def _make() -> SpatialData: + return _fast_deepcopy_sdata(_sdata_blobs_session) + + return _make + + def _make_points(coordinates: np.ndarray) -> DaskDataFrame: """Helper function to make a Points element.""" k0 = int(len(coordinates) / 3) diff --git a/tests/core/operations/test_spatialdata_operations.py b/tests/core/operations/test_spatialdata_operations.py index 68b538e0a..0b13056e1 100644 --- a/tests/core/operations/test_spatialdata_operations.py +++ b/tests/core/operations/test_spatialdata_operations.py @@ -13,7 +13,6 @@ from spatialdata._core.operations._utils import transform_to_data_extent from spatialdata._core.spatialdata import SpatialData from spatialdata._types import ArrayLike -from spatialdata.datasets import blobs from spatialdata.models import Image2DModel, Labels2DModel, PointsModel, ShapesModel, TableModel, get_table_keys from spatialdata.testing import assert_elements_dict_are_identical, assert_spatial_data_objects_are_identical from spatialdata.transformations.operations import get_transformation, set_transformation @@ -369,9 +368,9 @@ def test_concatenate_sdatas(full_sdata: SpatialData) -> None: @pytest.mark.parametrize("concatenate_tables", [True, False]) @pytest.mark.parametrize("obs_names_make_unique", [True, False]) -def test_concatenate_sdatas_from_iterable(concatenate_tables: bool, obs_names_make_unique: bool) -> None: - sdata0 = blobs() - sdata1 = blobs() +def test_concatenate_sdatas_from_iterable(blobs_factory, concatenate_tables: bool, obs_names_make_unique: bool) -> None: + sdata0 = blobs_factory() + sdata1 = blobs_factory() sdatas = {"sample0": sdata0, "sample1": sdata1} with pytest.raises(KeyError, match="Images must have unique names across the SpatialData objects"): @@ -435,8 +434,8 @@ def _get_table_and_poly(i: int) -> tuple[AnnData, GeoDataFrame]: assert len(sdata["table"]) == 4 * len(poly0_a) -def test_concatenate_sdatas_single_item() -> None: - sdata = blobs() +def test_concatenate_sdatas_single_item(sdata_blobs) -> None: + sdata = sdata_blobs def _n_elements(sdata: SpatialData) -> int: return len([0 for _, _, _ in sdata.gen_elements()]) @@ -450,9 +449,9 @@ def _n_elements(sdata: SpatialData) -> int: @pytest.mark.parametrize("merge_coordinate_systems_on_name", [True, False]) -def test_concatenate_merge_coordinate_systems_on_name(merge_coordinate_systems_on_name): - blob1 = blobs() - blob2 = blobs() +def test_concatenate_merge_coordinate_systems_on_name(blobs_factory, merge_coordinate_systems_on_name): + blob1 = blobs_factory() + blob2 = blobs_factory() if merge_coordinate_systems_on_name: with pytest.raises( @@ -529,9 +528,9 @@ def test_del_item(full_sdata: SpatialData) -> None: _ = full_sdata["not_present"] -def test_no_shared_transformations() -> None: +def test_no_shared_transformations(sdata_blobs) -> None: """Test transformation dictionary copy for transformations not to be shared.""" - sdata = blobs() + sdata = sdata_blobs element_name = "blobs_image" test_space = "test" set_transformation(sdata.images[element_name], Identity(), to_coordinate_system=test_space) diff --git a/tests/core/test_get_attrs.py b/tests/core/test_get_attrs.py index a6b467fa9..b36444a33 100644 --- a/tests/core/test_get_attrs.py +++ b/tests/core/test_get_attrs.py @@ -3,14 +3,11 @@ import pandas as pd import pytest -from spatialdata.datasets import blobs - @pytest.fixture -def sdata_attrs(): - sdata = blobs() - sdata.attrs["test"] = {"a": {"b": 12}, "c": 8} - return sdata +def sdata_attrs(sdata_blobs): + sdata_blobs.attrs["test"] = {"a": {"b": 12}, "c": 8} + return sdata_blobs def test_get_attrs_as_is(sdata_attrs): @@ -70,7 +67,6 @@ def test_non_string_sep(sdata_attrs): sdata_attrs.get_attrs(key="test", sep=123) -def test_empty_attrs(): - sdata = blobs() +def test_empty_attrs(sdata_blobs): with pytest.raises(KeyError, match="was not found in sdata.attrs."): - sdata.get_attrs(key="test") + sdata_blobs.get_attrs(key="test") From b5b09e32ed07a23285d9c4b0b08819d8ad87fe03 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 10:07:39 +0200 Subject: [PATCH 11/18] perf: reduce categories and partitions in test_categories_on_partitioned_dataframe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drop from 200 to 20 for both N_PARTITIONS and the number of gene categories. The test's assertions (round-trip values, category-order mismatch between pandas and dask, dtype) are all preserved at the smaller scale; the 200-partition stress test was over-specified for what's actually being verified. ~1.56s → ~0.95s (39% faster) for that test. Co-Authored-By: Claude Sonnet 4.6 --- tests/models/test_models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/models/test_models.py b/tests/models/test_models.py index 22e63cc1a..484e6df33 100644 --- a/tests/models/test_models.py +++ b/tests/models/test_models.py @@ -925,8 +925,8 @@ def test_warning_on_large_chunks(): def test_categories_on_partitioned_dataframe(sdata_blobs: SpatialData): df = sdata_blobs["blobs_points"].compute() - df["genes"] = RNG.choice([f"gene_{i}" for i in range(200)], len(df)) - N_PARTITIONS = 200 + df["genes"] = RNG.choice([f"gene_{i}" for i in range(20)], len(df)) + N_PARTITIONS = 20 ddf = dd.from_pandas(df, npartitions=N_PARTITIONS) ddf["genes"] = ddf["genes"].astype("category") From 031ba565f7e4a5b561a83600bf1e7c386b1cb249 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 10:10:03 +0200 Subject: [PATCH 12/18] perf: shrink test_categories_on_partitioned_dataframe to N=10, local seed Drop from 20 to 10 for both N_PARTITIONS and the number of gene categories, and replace the module-level RNG with a local default_rng(seed=0) so the test is independent of other tests' RNG consumption. With seed=0 and N=10, partition 0 is deterministically missing gene_4, which is sufficient to trigger the dask category-order mismatch being tested. Co-Authored-By: Claude Sonnet 4.6 --- tests/models/test_models.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/models/test_models.py b/tests/models/test_models.py index 484e6df33..887466e09 100644 --- a/tests/models/test_models.py +++ b/tests/models/test_models.py @@ -924,9 +924,10 @@ def test_warning_on_large_chunks(): def test_categories_on_partitioned_dataframe(sdata_blobs: SpatialData): + rng = default_rng(seed=0) df = sdata_blobs["blobs_points"].compute() - df["genes"] = RNG.choice([f"gene_{i}" for i in range(20)], len(df)) - N_PARTITIONS = 20 + df["genes"] = rng.choice([f"gene_{i}" for i in range(10)], len(df)) + N_PARTITIONS = 10 ddf = dd.from_pandas(df, npartitions=N_PARTITIONS) ddf["genes"] = ddf["genes"].astype("category") From 51674b9871d208dd7dbf87980e77542265a02ab6 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 10:13:12 +0200 Subject: [PATCH 13/18] ci: parallelize test suite with pytest-xdist worksteal Add pytest-xdist to test dependencies and pass -n auto --dist worksteal to pytest in CI. worksteal distributes tests dynamically across workers so slow IO tests don't block fast unit tests on a single worker. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/test.yaml | 2 +- pyproject.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 8dc7afbb4..b79c72f33 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -59,7 +59,7 @@ jobs: PLATFORM: ${{ matrix.os }} DISPLAY: :42 run: | - uv run pytest --cov --color=yes --cov-report=xml + uv run pytest --cov --color=yes --cov-report=xml -n auto --dist worksteal - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 with: diff --git a/pyproject.toml b/pyproject.toml index 07ec8140b..17bc3ff39 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,6 +69,7 @@ test = [ "pytest", "pytest-cov", "pytest-mock", + "pytest-xdist", "torch", ] docs = [ From 4da1bc5f9486852f0c12dcfd30f88f2de71122e5 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 10:25:53 +0200 Subject: [PATCH 14/18] refactor: clean up _get_centroids_for_labels docstring and clarify indexing - Remove reference to the old per-slice implementation from the docstring - Add inline comment explaining why indexing="ij" is correct for any number of spatial dimensions (2D and 3D labels) Co-Authored-By: Claude Sonnet 4.6 --- src/spatialdata/_core/centroids.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/spatialdata/_core/centroids.py b/src/spatialdata/_core/centroids.py index 0ae89d31a..ca17ceb36 100644 --- a/src/spatialdata/_core/centroids.py +++ b/src/spatialdata/_core/centroids.py @@ -57,11 +57,9 @@ def get_centroids( def _get_centroids_for_labels(xdata: xr.DataArray) -> pd.DataFrame: """ - Vectorized centroid computation for all axes of a labels DataArray. + Compute centroids for all labels in a DataArray in a single O(n_voxels) pass. - Materializes the array once and uses np.bincount for an O(n_pixels) single-pass - computation, replacing the previous per-slice approach that made O(H + W) compute() - calls on the Dask graph. + Works for any number of spatial dimensions (2D and 3D labels). """ arr = xdata.data.compute() axes = list(xdata.dims) @@ -70,7 +68,8 @@ def _get_centroids_for_labels(xdata: xr.DataArray) -> pd.DataFrame: label_ids, inverse = np.unique(arr, return_inverse=True) flat_inverse = inverse.ravel() - # Build coordinate grids for all axes at once, then compute weighted sums. + # indexing="ij" (matrix convention) ensures the i-th grid varies along the i-th + # dimension of the output, correctly aligning with xdata.dims for any number of axes. coord_grids = np.meshgrid(*[xdata[ax].values for ax in axes], indexing="ij") data: dict[str, np.ndarray] = {} counts = np.bincount(flat_inverse) # per-label pixel counts From 61553c7ec288406aecf0b332cf3f8196aed3e058 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 10:39:07 +0200 Subject: [PATCH 15/18] refactor: minor code swap for improved clarity --- src/spatialdata/_core/centroids.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spatialdata/_core/centroids.py b/src/spatialdata/_core/centroids.py index ca17ceb36..cde583e15 100644 --- a/src/spatialdata/_core/centroids.py +++ b/src/spatialdata/_core/centroids.py @@ -67,12 +67,12 @@ def _get_centroids_for_labels(xdata: xr.DataArray) -> pd.DataFrame: # Map label values to a contiguous range for bincount efficiency. label_ids, inverse = np.unique(arr, return_inverse=True) flat_inverse = inverse.ravel() + counts = np.bincount(flat_inverse) # per-label pixel counts # indexing="ij" (matrix convention) ensures the i-th grid varies along the i-th # dimension of the output, correctly aligning with xdata.dims for any number of axes. coord_grids = np.meshgrid(*[xdata[ax].values for ax in axes], indexing="ij") data: dict[str, np.ndarray] = {} - counts = np.bincount(flat_inverse) # per-label pixel counts for ax, grid in zip(axes, coord_grids, strict=True): coord_sums = np.bincount(flat_inverse, weights=grid.ravel().astype(float)) data[ax] = coord_sums / counts # counts > 0 by construction (unique guarantees this) From 04483125e9616e959fc068ccf2244998586ff4b7 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 13:11:22 +0200 Subject: [PATCH 16/18] =?UTF-8?q?perf:=20speed=20up=20test=20suite=20?= =?UTF-8?q?=E2=80=94=20subset=20sdata,=20disable=20numba=20JIT,=20promote?= =?UTF-8?q?=20fixtures=20to=20session=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - test_delete_element_from_disk: subset full_sdata to [element_name, points_0_1] before writing, cutting the initial write from 19 elements to 2 (2–13× speedup per parametrize case) - conftest: set NUMBA_DISABLE_JIT=1 to avoid ~1.4s JIT overhead per worker on first datashader/rasterize call - test_partial_read: promote all module-scoped fixtures to session scope so the corrupted zarr stores are built once per session instead of once per module - test_transform: use small_translation=True to avoid out-of-bounds raster operations that trigger large dask computations - test_spatialdata_operations: reduce target_width 1000→100 in test_transform_to_data_extent to shrink the output raster Co-Authored-By: Claude Sonnet 4.6 --- tests/conftest.py | 7 ++++ tests/core/operations/conftest.py | 8 +++++ .../operations/test_spatialdata_operations.py | 2 +- tests/core/operations/test_transform.py | 2 +- tests/dataloader/conftest.py | 8 +++++ tests/io/test_partial_read.py | 34 +++++++++---------- tests/io/test_readwrite.py | 3 ++ 7 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 tests/core/operations/conftest.py create mode 100644 tests/dataloader/conftest.py diff --git a/tests/conftest.py b/tests/conftest.py index 50cbb80a8..90b9bbfb7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,12 @@ from __future__ import annotations +import os + +# Disable numba JIT compilation for the test suite. Datashader (used by rasterize) triggers +# numba JIT on first call, costing ~1.4s per worker. Python-mode gives identical results for +# the small test data here. +os.environ.setdefault("NUMBA_DISABLE_JIT", "1") + import copy as _copy from collections.abc import Callable, Sequence from pathlib import Path diff --git a/tests/core/operations/conftest.py b/tests/core/operations/conftest.py new file mode 100644 index 000000000..c6241996b --- /dev/null +++ b/tests/core/operations/conftest.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +import os + +# Disable numba JIT compilation for rasterize tests. Datashader (used by rasterize) triggers +# numba JIT on first call, costing ~1.4s per worker. Python-mode gives identical results for +# the small test data here — unlike real data, there is no throughput advantage from JIT. +os.environ.setdefault("NUMBA_DISABLE_JIT", "1") diff --git a/tests/core/operations/test_spatialdata_operations.py b/tests/core/operations/test_spatialdata_operations.py index 0b13056e1..a61ae34e2 100644 --- a/tests/core/operations/test_spatialdata_operations.py +++ b/tests/core/operations/test_spatialdata_operations.py @@ -625,7 +625,7 @@ def test_transform_to_data_extent(full_sdata: SpatialData, maintain_positioning: sdata = transform_to_data_extent( full_sdata, "global", - target_width=1000, + target_width=100, maintain_positioning=maintain_positioning, ) diff --git a/tests/core/operations/test_transform.py b/tests/core/operations/test_transform.py index 59a380f7a..a4e7077f8 100644 --- a/tests/core/operations/test_transform.py +++ b/tests/core/operations/test_transform.py @@ -146,7 +146,7 @@ def test_transform_raster(full_sdata: SpatialData, element_type: str, multiscale assert element_type == "labels" sdata = SpatialData(labels={k: v for k, v in full_sdata.labels.items() if isinstance(v, datatype)}) - affine = _get_affine(small_translation=False) + affine = _get_affine(small_translation=True) _postpone_transformation( sdata, from_coordinate_system="global", to_coordinate_system="transformed", transformation=affine diff --git a/tests/dataloader/conftest.py b/tests/dataloader/conftest.py new file mode 100644 index 000000000..0df842af8 --- /dev/null +++ b/tests/dataloader/conftest.py @@ -0,0 +1,8 @@ +from __future__ import annotations + +import os + +# Disable numba JIT compilation for dataloader tests. Datashader (used by rasterize) triggers +# numba JIT on first call, costing ~1.4s per worker. Python-mode gives identical results for +# the small test data here — unlike real data, there is no throughput advantage from JIT. +os.environ.setdefault("NUMBA_DISABLE_JIT", "1") diff --git a/tests/io/test_partial_read.py b/tests/io/test_partial_read.py index 28460046e..93003390b 100644 --- a/tests/io/test_partial_read.py +++ b/tests/io/test_partial_read.py @@ -51,7 +51,7 @@ def pytest_warns_multiple( yield -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def test_case(request: _pytest.fixtures.SubRequest): """ Fixture that helps to use fixtures as arguments in parametrize. @@ -84,7 +84,7 @@ def session_tmp_path(request: _pytest.fixtures.SubRequest) -> Path: return Path(directory) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_corrupted_elem_types_zgroup(session_tmp_path: Path) -> PartialReadTestCase: # Zarr v2 sdata = blobs() @@ -106,7 +106,7 @@ def sdata_with_corrupted_elem_types_zgroup(session_tmp_path: Path) -> PartialRea ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_corrupted_elem_types_zarr_json(session_tmp_path: Path) -> PartialReadTestCase: # Zarr v3 sdata = blobs() @@ -128,7 +128,7 @@ def sdata_with_corrupted_elem_types_zarr_json(session_tmp_path: Path) -> Partial ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_corrupted_zarr_json_elements(session_tmp_path: Path) -> PartialReadTestCase: # Zarr v3 # zarr.json is a zero-byte file, aborted during write, or contains invalid JSON syntax @@ -152,7 +152,7 @@ def sdata_with_corrupted_zarr_json_elements(session_tmp_path: Path) -> PartialRe ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_corrupted_zattrs_elements(session_tmp_path: Path) -> PartialReadTestCase: # Zarr v2 # .zattrs is a zero-byte file, aborted during write, or contains invalid JSON syntax @@ -176,7 +176,7 @@ def sdata_with_corrupted_zattrs_elements(session_tmp_path: Path) -> PartialReadT ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_corrupted_image_chunks_zarrv3(session_tmp_path: Path) -> PartialReadTestCase: # images/blobs_image/0 is a zero-byte file or aborted during write sdata = blobs() @@ -198,7 +198,7 @@ def sdata_with_corrupted_image_chunks_zarrv3(session_tmp_path: Path) -> PartialR ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_corrupted_image_chunks_zarrv2(session_tmp_path: Path) -> PartialReadTestCase: # images/blobs_image/0 is a zero-byte file or aborted during write sdata = blobs() @@ -219,7 +219,7 @@ def sdata_with_corrupted_image_chunks_zarrv2(session_tmp_path: Path) -> PartialR ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_corrupted_parquet_zarrv3(session_tmp_path: Path) -> PartialReadTestCase: # points/blobs_points/0 is a zero-byte file or aborted during write sdata = blobs() @@ -243,7 +243,7 @@ def sdata_with_corrupted_parquet_zarrv3(session_tmp_path: Path) -> PartialReadTe ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_corrupted_parquet_zarrv2(session_tmp_path: Path) -> PartialReadTestCase: # points/blobs_points/0 is a zero-byte file or aborted during write sdata = blobs() @@ -267,7 +267,7 @@ def sdata_with_corrupted_parquet_zarrv2(session_tmp_path: Path) -> PartialReadTe ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_missing_zarr_json_element(session_tmp_path: Path) -> PartialReadTestCase: # zarr.json is missing sdata = blobs() @@ -286,7 +286,7 @@ def sdata_with_missing_zarr_json_element(session_tmp_path: Path) -> PartialReadT ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_missing_zattrs_element(session_tmp_path: Path) -> PartialReadTestCase: # Zarrv2 # .zattrs is missing @@ -306,7 +306,7 @@ def sdata_with_missing_zattrs_element(session_tmp_path: Path) -> PartialReadTest ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_missing_image_chunks_zarrv3( session_tmp_path: Path, ) -> PartialReadTestCase: @@ -328,7 +328,7 @@ def sdata_with_missing_image_chunks_zarrv3( ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_missing_image_chunks_zarrv2( session_tmp_path: Path, ) -> PartialReadTestCase: @@ -352,7 +352,7 @@ def sdata_with_missing_image_chunks_zarrv2( ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_invalid_zattrs_element_violating_spec(session_tmp_path: Path) -> PartialReadTestCase: # Zarr v2 # .zattrs contains readable JSON which is not valid for SpatialData/NGFF specs @@ -375,7 +375,7 @@ def sdata_with_invalid_zattrs_element_violating_spec(session_tmp_path: Path) -> ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_invalid_zarr_json_element_violating_spec(session_tmp_path: Path) -> PartialReadTestCase: # zarr.json contains readable JSON which is not valid for SpatialData/NGFF specs # for example due to a missing/misspelled/renamed key @@ -427,12 +427,12 @@ def _create_sdata_with_table_region_not_found(session_tmp_path: Path, zarr_versi ) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_table_region_not_found_zarrv3(session_tmp_path: Path) -> PartialReadTestCase: return _create_sdata_with_table_region_not_found(session_tmp_path, zarr_version=3) -@pytest.fixture(scope="module") +@pytest.fixture(scope="session") def sdata_with_table_region_not_found_zarrv2(session_tmp_path: Path) -> PartialReadTestCase: return _create_sdata_with_table_region_not_found(session_tmp_path, zarr_version=2) diff --git a/tests/io/test_readwrite.py b/tests/io/test_readwrite.py index 209a43046..ad5210df1 100644 --- a/tests/io/test_readwrite.py +++ b/tests/io/test_readwrite.py @@ -952,6 +952,9 @@ def test_delete_element_from_disk( element_name: str, sdata_container_format: SpatialDataContainerFormatType, ) -> None: + # Reduce to only the element under test plus one extra to keep writes fast. + full_sdata = full_sdata.subset([element_name, "points_0_1"]) + # can't delete an element for a SpatialData object without associated Zarr store with pytest.raises(ValueError, match="The SpatialData object is not backed by a Zarr store."): full_sdata.delete_element_from_disk("image2d") From b66a41bc5f3c653bcea0a0c573dcc8ca3a057897 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 13:56:03 +0200 Subject: [PATCH 17/18] =?UTF-8?q?fix+perf:=20faster=20test=20suite=20?= =?UTF-8?q?=E2=80=94=20subset=20fixtures,=20disable=20numba=20JIT,=20fix?= =?UTF-8?q?=20napari=20plugin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Napari registers a pytest11 entry point that loads (and breaks) numba before conftest.py runs. Fix: block it in pyproject.toml addopts with -p no:napari. datashader's @jit(cache=True) raises "no locator available" on Python 3.13 + numba. With napari blocked, conftest.py now runs before any plugin imports numba, so NUMBA_DISABLE_JIT=1 consistently disables all @jit decorators (datashader, xrspatial) and avoids the mixed JIT/non-JIT crash. Promote all module-scoped fixtures in test_partial_read to session scope so corrupted zarr stores are built once per session. For tests that write a full SpatialData object but only need a single element (or a small subset) to trigger the condition under test, subset the fixture before writing. The initial full write dominates test time (19 elements including 3-D multiscale rasters), so even subsetting to 1-6 elements gives 2-13× speedups per parametrize case: - test_delete_element_from_disk: subset to [element_name, points_0_1] - test_incremental_io_on_disk: subset to the 7 elements the loop accesses - test_overwrite_fails_when_zarr_store_present: use empty SpatialData() - test_element_already_on_disk_different_type: subset to [element_name] - test_self_contained: subset to [image2d, labels2d, points_0, circles] - test_change_path_of_subset: subset to the 5 elements + points_0_1 (needed so only_on_disk > 0 assertion passes) - test_validate_can_write_metadata_on_element: subset to [element_name] - test_save_transformations_incremental: subset to [element_name, image2d] (image2d anchors the non-self-contained assertion for the circles case) - test_consolidated_metadata: subset to one element per type - test_channel_names_raster_images_v1_to_v2_to_v3: subset to [image2d, image2d_multiscale] Co-Authored-By: Claude Sonnet 4.6 --- pyproject.toml | 1 + tests/conftest.py | 8 +++++--- tests/io/test_format.py | 1 + tests/io/test_metadata.py | 5 +++++ tests/io/test_readwrite.py | 36 ++++++++++++++++++++++++------------ 5 files changed, 36 insertions(+), 15 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 17bc3ff39..794b05021 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -103,6 +103,7 @@ strict = true addopts = [ "--import-mode=importlib", # allow using test files with same name "-s", # print output from tests + "-p no:napari", # napari registers a pytest plugin via its entry point; disable it here since spatialdata tests don't need it ] # These are all markers coming from xarray, dask or anndata. Added here to silence warnings. markers = [ diff --git a/tests/conftest.py b/tests/conftest.py index 90b9bbfb7..2b9990390 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,9 +2,11 @@ import os -# Disable numba JIT compilation for the test suite. Datashader (used by rasterize) triggers -# numba JIT on first call, costing ~1.4s per worker. Python-mode gives identical results for -# the small test data here. +# Disable numba JIT for the test suite. datashader's @jit(cache=True) fails with +# "no locator available" on this environment (Python 3.13 + numba), and xrspatial's +# zonal stats uses numba too. With the napari plugin blocked (see pyproject.toml +# addopts), no plugin imports numba before this runs, so all @jit decorators see +# the flag and consistently become plain Python functions — no mixed JIT/non-JIT state. os.environ.setdefault("NUMBA_DISABLE_JIT", "1") import copy as _copy diff --git a/tests/io/test_format.py b/tests/io/test_format.py index 3ef1319c3..906f0f1cc 100644 --- a/tests/io/test_format.py +++ b/tests/io/test_format.py @@ -237,6 +237,7 @@ def test_container_v1_to_v2(self, full_sdata): assert sdata_read_v2.has_consolidated_metadata() def test_channel_names_raster_images_v1_to_v2_to_v3(self, images): + images = images.subset(["image2d", "image2d_multiscale"]) with tempfile.TemporaryDirectory() as tmpdir: f1 = Path(tmpdir) / "data1.zarr" f2 = Path(tmpdir) / "data2.zarr" diff --git a/tests/io/test_metadata.py b/tests/io/test_metadata.py index dd0ae704f..908b527d8 100644 --- a/tests/io/test_metadata.py +++ b/tests/io/test_metadata.py @@ -33,6 +33,7 @@ def test_save_transformations(full_sdata): @pytest.mark.parametrize("element_name", ["image2d", "labels2d", "points_0", "circles"]) def test_validate_can_write_metadata_on_element(full_sdata, element_name): + full_sdata = full_sdata.subset([element_name]) with tempfile.TemporaryDirectory() as tmp_dir: # element not present in the SpatialData object with pytest.raises( @@ -60,6 +61,9 @@ def test_validate_can_write_metadata_on_element(full_sdata, element_name): @pytest.mark.parametrize("element_name", ["image2d", "labels2d", "points_0", "circles"]) def test_save_transformations_incremental(element_name, full_sdata, caplog): """test io for transformations""" + # image2d is kept as the dask-backed anchor for `assert not sdata2.is_self_contained()`; + # for the circles parametrize case it also prevents circles being the sole element. + full_sdata = full_sdata.subset([element_name, "image2d"]) with tempfile.TemporaryDirectory() as tmp_dir: f0 = os.path.join(tmp_dir, f"{element_name}0.zarr") full_sdata.write(f0) @@ -148,6 +152,7 @@ def test_save_channel_names_incremental(images: SpatialData, write: str) -> None # test io for consolidated metadata def test_consolidated_metadata(full_sdata: SpatialData) -> None: + full_sdata = full_sdata.subset(["image2d", "labels2d", "circles", "points_0", "table"]) with tempfile.TemporaryDirectory() as tmp_dir: f0 = os.path.join(tmp_dir, "data0.zarr") full_sdata.write(f0) diff --git a/tests/io/test_readwrite.py b/tests/io/test_readwrite.py index ad5210df1..87e97dea9 100644 --- a/tests/io/test_readwrite.py +++ b/tests/io/test_readwrite.py @@ -329,11 +329,7 @@ def test_incremental_io_on_disk( In particular the complex "dask-backed" case for workaround 1 could be simplified once """ - tmpdir = Path(tmp_path) / "incremental_io.zarr" - sdata = SpatialData() - sdata.write(tmpdir, sdata_formats=sdata_container_format) - - for name in [ + _elements = [ "image2d", "image3d_multiscale_xarray", "labels2d", @@ -341,7 +337,15 @@ def test_incremental_io_on_disk( "points_0", "multipoly", "table", - ]: + ] + # Reduce to only the elements under test so the fixture deepcopy stays small. + full_sdata = full_sdata.subset(_elements) + + tmpdir = Path(tmp_path) / "incremental_io.zarr" + sdata = SpatialData() + sdata.write(tmpdir, sdata_formats=sdata_container_format) + + for name in _elements: sdata[name] = full_sdata[name] sdata.write_element(name, sdata_formats=sdata_container_format) if dask_backed: @@ -514,25 +518,25 @@ def test_overwrite_fails_when_no_zarr_store_but_dask_backed_data( ): full_sdata.write(f, overwrite=True, sdata_formats=sdata_container_format) - def test_overwrite_fails_when_zarr_store_present( - self, full_sdata, sdata_container_format: SpatialDataContainerFormatType - ): + def test_overwrite_fails_when_zarr_store_present(self, sdata_container_format: SpatialDataContainerFormatType): # addressing https://github.com/scverse/spatialdata/issues/137 with tempfile.TemporaryDirectory() as tmpdir: f = os.path.join(tmpdir, "data.zarr") - full_sdata.write(f, sdata_formats=sdata_container_format) + # An empty store is enough to trigger both exceptions; no need to write all elements. + sdata = SpatialData() + sdata.write(f, sdata_formats=sdata_container_format) with pytest.raises( ValueError, match="The Zarr store already exists. Use `overwrite=True` to try overwriting the store.", ): - full_sdata.write(f, sdata_formats=sdata_container_format) + sdata.write(f, sdata_formats=sdata_container_format) with pytest.raises( ValueError, match=r"Details: the target path either contains, coincides or is contained in the current Zarr store", ): - full_sdata.write(f, overwrite=True, sdata_formats=sdata_container_format) + sdata.write(f, overwrite=True, sdata_formats=sdata_container_format) # support for overwriting backed sdata has been temporarily removed # with tempfile.TemporaryDirectory() as tmpdir: @@ -745,6 +749,10 @@ def test_single_scale_image_roundtrip_stays_dataarray(tmp_path: Path) -> None: @pytest.mark.parametrize("sdata_container_format", SDATA_FORMATS) def test_self_contained(full_sdata: SpatialData, sdata_container_format: SpatialDataContainerFormatType) -> None: + # image2d/labels2d/points_0 are used explicitly in the combined-element block below; + # circles covers the "else: assert self_contained" branch (non-dask-backed elements). + full_sdata = full_sdata.subset(["image2d", "labels2d", "points_0", "circles"]) + # data only in-memory, so the SpatialData object and all its elements are self-contained assert full_sdata.is_self_contained() description = full_sdata.elements_are_self_contained() @@ -849,6 +857,8 @@ def test_symmetric_difference_with_zarr_store( @pytest.mark.parametrize("sdata_container_format", SDATA_FORMATS) def test_change_path_of_subset(full_sdata: SpatialData, sdata_container_format: SpatialDataContainerFormatType) -> None: """A subset SpatialData object has not Zarr path associated, show that we can reassign the path""" + # points_0_1 is the extra element that stays only on disk, satisfying the only_on_disk > 0 assertion. + full_sdata = full_sdata.subset(["image2d", "labels2d", "points_0", "circles", "table", "points_0_1"]) with tempfile.TemporaryDirectory() as tmpdir: f = os.path.join(tmpdir, "data.zarr") full_sdata.write(f, sdata_formats=sdata_container_format) @@ -1010,6 +1020,8 @@ def test_element_already_on_disk_different_type( # Attempting to perform and IO operation will trigger an error. # The checks assessed in this test will not be needed anymore after # https://github.com/scverse/spatialdata/issues/504 is addressed + # Only the single element under test needs to be on disk to create the type-mismatch state. + full_sdata = full_sdata.subset([element_name]) with tempfile.TemporaryDirectory() as tmpdir: f = os.path.join(tmpdir, "data.zarr") full_sdata.write(f, sdata_formats=sdata_container_format) From 58b64c8a47f045c1758c63f18dab43da99d3a5a0 Mon Sep 17 00:00:00 2001 From: Luca Marconato Date: Wed, 6 May 2026 14:08:55 +0200 Subject: [PATCH 18/18] refactor: update comments and refine test_consolidated_metadata subset Co-Authored-By: Claude Sonnet 4.6 --- tests/conftest.py | 7 ++----- tests/io/test_metadata.py | 6 +++--- tests/io/test_readwrite.py | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 2b9990390..3bd5425d2 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,11 +2,8 @@ import os -# Disable numba JIT for the test suite. datashader's @jit(cache=True) fails with -# "no locator available" on this environment (Python 3.13 + numba), and xrspatial's -# zonal stats uses numba too. With the napari plugin blocked (see pyproject.toml -# addopts), no plugin imports numba before this runs, so all @jit decorators see -# the flag and consistently become plain Python functions — no mixed JIT/non-JIT state. +# Disable numba JIT for the test suite (the test data is small so initializing the JIT is slower than using plain +# Python) os.environ.setdefault("NUMBA_DISABLE_JIT", "1") import copy as _copy diff --git a/tests/io/test_metadata.py b/tests/io/test_metadata.py index 908b527d8..c07f026c0 100644 --- a/tests/io/test_metadata.py +++ b/tests/io/test_metadata.py @@ -61,8 +61,8 @@ def test_validate_can_write_metadata_on_element(full_sdata, element_name): @pytest.mark.parametrize("element_name", ["image2d", "labels2d", "points_0", "circles"]) def test_save_transformations_incremental(element_name, full_sdata, caplog): """test io for transformations""" - # image2d is kept as the dask-backed anchor for `assert not sdata2.is_self_contained()`; - # for the circles parametrize case it also prevents circles being the sole element. + # image2d is the dask-backed anchor for `assert not sdata2.is_self_contained()`: circles + # has no dask backing files and would make that assertion pass trivially. full_sdata = full_sdata.subset([element_name, "image2d"]) with tempfile.TemporaryDirectory() as tmp_dir: f0 = os.path.join(tmp_dir, f"{element_name}0.zarr") @@ -152,7 +152,7 @@ def test_save_channel_names_incremental(images: SpatialData, write: str) -> None # test io for consolidated metadata def test_consolidated_metadata(full_sdata: SpatialData) -> None: - full_sdata = full_sdata.subset(["image2d", "labels2d", "circles", "points_0", "table"]) + full_sdata = full_sdata.subset(["labels3d_multiscale_numpy", "image2d", "circles", "points_0", "table"]) with tempfile.TemporaryDirectory() as tmp_dir: f0 = os.path.join(tmp_dir, "data0.zarr") full_sdata.write(f0) diff --git a/tests/io/test_readwrite.py b/tests/io/test_readwrite.py index 87e97dea9..df1cbbb63 100644 --- a/tests/io/test_readwrite.py +++ b/tests/io/test_readwrite.py @@ -522,7 +522,7 @@ def test_overwrite_fails_when_zarr_store_present(self, sdata_container_format: S # addressing https://github.com/scverse/spatialdata/issues/137 with tempfile.TemporaryDirectory() as tmpdir: f = os.path.join(tmpdir, "data.zarr") - # An empty store is enough to trigger both exceptions; no need to write all elements. + # An empty store is enough to trigger both exceptions. sdata = SpatialData() sdata.write(f, sdata_formats=sdata_container_format)