Files
geointel/artifacts/evidence/accuracy/P1/backend-full-suite.junit.xml
T

233 lines
202 KiB
XML

<?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="0" failures="17" skipped="0" tests="1197" time="70.556" timestamp="2026-08-01T18:30:49.403037+02:00" hostname="DESKTOP"><testcase classname="tests.test_alembic_logging_config" name="test_alembic_logging_formatter_uses_runtime_interpolation_tokens" time="0.002" /><testcase classname="tests.test_auth" name="test_guest_access_defaults_on_when_operator_authentication_is_enabled" time="0.237" /><testcase classname="tests.test_auth" name="test_guest_default_is_inactive_but_valid_when_operator_authentication_is_disabled" time="0.166" /><testcase classname="tests.test_auth" name="test_auth_session_and_health_are_public_but_api_is_protected" time="0.181" /><testcase classname="tests.test_auth" name="test_login_uses_http_only_session_cookie_and_logout_revokes_browser_access" time="0.298" /><testcase classname="tests.test_auth" name="test_guest_login_exposes_models_but_rejects_management_and_cross_project_requests" time="0.405" /><testcase classname="tests.test_auth" name="test_guest_session_tokens_fail_closed_without_a_project_scope" time="0.244" /><testcase classname="tests.test_auth" name="test_password_hash_and_session_signatures_fail_closed" time="0.343" /><testcase classname="tests.test_auth" name="test_unraid_runtime_carries_only_hashed_operator_credentials" time="0.003" /><testcase classname="tests.test_belgium_candidate_evaluation" name="test_iou_and_one_to_one_matching" time="0.001" /><testcase classname="tests.test_belgium_candidate_evaluation" name="test_empty_reference_counts_false_positives" time="0.001" /><testcase classname="tests.test_belgium_candidate_evaluation" name="test_box_scaling_preserves_center" time="0.001" /><testcase classname="tests.test_belgium_candidate_evaluation" name="test_containment_suppression_removes_nested_lower_score_box" time="0.001" /><testcase classname="tests.test_belgium_training_iteration_assessment" name="test_calibration_selection_prefers_worst_region_then_aggregate" time="0.001" /><testcase classname="tests.test_belgium_training_iteration_assessment" name="test_threshold_lookup_is_exact" time="0.001" /><testcase classname="tests.test_belgium_training_iteration_assessment" name="test_release_assessment_rejects_changed_inference_configuration" time="0.001" /><testcase classname="tests.test_belgium_training_loop" name="test_training_command_is_cuda_deterministic_and_bound_to_frozen_inputs" time="0.011" /><testcase classname="tests.test_belgium_training_loop" name="test_training_command_supports_conservative_aerial_finetuning" time="0.003" /><testcase classname="tests.test_belgium_training_loop" name="test_failed_iteration_builds_train_only_sampling_for_next_checkpoint" time="0.004" /><testcase classname="tests.test_belgium_training_loop" name="test_partial_iteration_resume_uses_exact_checkpoint_and_cuda" time="0.003" /><testcase classname="tests.test_belgium_training_loop" name="test_dry_run_can_gate_existing_checkpoint_without_training" time="0.460" /><testcase classname="tests.test_belgium_training_loop" name="test_existing_checkpoint_iteration_directory_can_be_created_without_yolo" time="0.004" /><testcase classname="tests.test_belgium_training_loop" name="test_loop_refuses_failed_dataset_audit" time="0.627" /><testcase classname="tests.test_belgium_training_loop" name="test_pending_human_review_does_not_block_objective_training" time="0.001" /><testcase classname="tests.test_belgium_training_loop" name="test_training_audit_still_fails_closed_on_automated_integrity_gates" time="0.001" /><testcase classname="tests.test_belgium_training_loop" name="test_missing_tile_quality_evidence_fails_closed" time="0.001" /><testcase classname="tests.test_belgium_training_loop" name="test_calibration_failure_blocks_protected_evaluation" time="0.001" /><testcase classname="tests.test_belgium_training_loop" name="test_threshold_selection_uses_worst_region_then_aggregate" time="0.001" /><testcase classname="tests.test_belgium_training_loop" name="test_rejected_candidate_score_prioritizes_weakest_release_gate" time="0.001" /><testcase classname="tests.test_belgium_training_portfolio" name="test_portfolio_covers_every_region_split_and_context_family" time="0.002" /><testcase classname="tests.test_belgium_training_portfolio" name="test_portfolio_bbox_is_metric_sized" time="0.137" /><testcase classname="tests.test_belgium_training_portfolio" name="test_failure_driven_expansion_is_train_only_and_context_complete" time="0.001" /><testcase classname="tests.test_building_label_normalization" name="test_normalizer_retains_native_identity_and_records_rejections" time="0.295" /><testcase classname="tests.test_building_label_normalization" name="test_spatial_leakage_audit_fails_cross_split_neighbors" time="0.039" /><testcase classname="tests.test_building_label_normalization" name="test_normalizer_rejects_features_created_after_dated_imagery" time="0.040" /><testcase classname="tests.test_building_label_normalization" name="test_normalizer_rejects_same_year_feature_after_annual_mosaic_start" time="0.031" /><testcase classname="tests.test_building_label_normalization" name="test_normalizer_applies_provider_native_source_class_allowlist" time="0.022" /><testcase classname="tests.test_building_label_normalization" name="test_normalizer_merges_only_touching_visible_roof_instances" time="0.032" /><testcase classname="tests.test_building_label_normalization" name="test_visible_roof_merge_retains_large_touching_chains" time="0.002" /><testcase classname="tests.test_building_proposal_filter" name="test_evenly_limited_is_deterministic" time="0.001" /><testcase classname="tests.test_building_proposal_filter" name="test_validation_threshold_is_selected_without_test_data" time="0.001" /><testcase classname="tests.test_building_proposal_filter" name="test_negative_match_iou" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_backend_dockerfile_copies_package_sources_before_pip_install" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_backend_dockerfile_installs_approved_gis_runtime_stack" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_backend_pyproject_exposes_gis_optional_dependency_group" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_all_in_one_dockerfile_can_opt_into_ai_dependencies_without_base_install" time="0.002" /><testcase classname="tests.test_docker_runtime_config" name="test_all_in_one_dockerfile_copies_operator_scripts_for_runtime_use" time="0.013" /><testcase classname="tests.test_docker_runtime_config" name="test_all_in_one_dockerfile_copies_operator_scripts_after_dependency_install" time="0.002" /><testcase classname="tests.test_docker_runtime_config" name="test_compose_does_not_require_missing_root_env_file" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_compose_exposes_frontend_on_configurable_host_port_with_cors_origin" time="0.002" /><testcase classname="tests.test_docker_runtime_config" name="test_env_example_uses_runtime_env_names_read_by_backend_and_frontend" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_walloon_runtime_settings_are_editable_in_compose_and_unraid" time="0.004" /><testcase classname="tests.test_docker_runtime_config" name="test_frontend_uses_same_origin_api_proxy_by_default" time="0.044" /><testcase classname="tests.test_docker_runtime_config" name="test_nginx_runtime_allows_real_gis_upload_payloads" time="0.004" /><testcase classname="tests.test_docker_runtime_config" name="test_nginx_runtime_allows_long_ai_and_qa_requests" time="0.002" /><testcase classname="tests.test_docker_runtime_config" name="test_compose_does_not_publish_postgis_on_default_host_port" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_compose_waits_for_healthy_database_and_applies_migrations" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_compose_mounts_demo_fixtures_for_backend_runtime" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_compose_has_backend_and_frontend_healthchecks" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_frontend_waits_for_healthy_backend_in_compose" time="0.002" /><testcase classname="tests.test_docker_runtime_config" name="test_backend_docker_start_script_waits_for_sql_connection_before_migrations" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_runtime_sets_writable_ultralytics_config_directory" time="0.002" /><testcase classname="tests.test_docker_runtime_config" name="test_regional_official_vector_sources_are_configurable_in_every_runtime" time="0.003" /><testcase classname="tests.test_docker_runtime_config" name="test_segmentation_and_mdk_acquisition_are_configurable_in_every_runtime" time="0.003" /><testcase classname="tests.test_docker_runtime_config" name="test_compose_reconciles_interrupted_runs_after_restart_like_unraid_runtime" time="0.002" /><testcase classname="tests.test_docker_runtime_config" name="test_docker_build_contexts_exclude_vendor_build_and_cache_outputs" time="0.040" /><testcase classname="tests.test_docker_runtime_config" name="test_browser_runtime_verification_script_detects_proxy_contract" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_gis_runtime_verification_script_detects_required_capabilities" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_gis_import_smoke_script_checks_runtime_imports" time="0.002" /><testcase classname="tests.test_docker_runtime_config" name="test_backend_docker_context_contains_gis_import_smoke_script" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_all_in_one_dockerfile_caches_dependencies_and_pins_driver_compatible_cuda_torch" time="0.001" /><testcase classname="tests.test_docker_runtime_config" name="test_unraid_deploy_passes_ai_build_arg_and_yolo_runtime_env" time="0.003" /><testcase classname="tests.test_docker_runtime_config" name="test_unraid_ai_runtime_requests_nvidia_and_fails_closed" time="0.002" /><testcase classname="tests.test_error_envelope_contract" name="test_app_error_uses_top_level_api_error_contract" time="0.024" /><testcase classname="tests.test_error_envelope_contract" name="test_http_exception_uses_top_level_api_error_contract" time="0.287" /><testcase classname="tests.test_error_envelope_contract" name="test_validation_error_uses_top_level_api_error_contract" time="0.011" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_dataset_validation_source_preserves_manifest_path" time="0.024" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_sampling_repeats_only_failed_region_train_tiles" time="0.004" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_sampling_can_use_calibration_before_test_is_opened" time="0.002" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_precision_correction_can_balance_positive_and_negative_tiles" time="0.003" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_sampling_targets_failed_calibration_contexts_without_using_protected_tiles" time="0.006" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_recall_dominance_does_not_suppress_negatives_when_background_gate_failed" time="0.002" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_region_cap_drops_only_repeats_and_preserves_every_unique_tile" time="0.005" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_region_cap_rotates_repeats_between_sampling_rounds" time="0.008" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_region_cap_preserves_failed_context_positive_before_hard_negative" time="0.003" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_precision_guard_band_keeps_near_gate_region_stabilized" time="0.002" /><testcase classname="tests.test_failure_driven_yolo_sampling" name="test_coastal_precision_failure_targets_port_and_dunes_negatives" time="0.002" /><testcase classname="tests.test_frontend_api_client_error_parser" name="test_frontend_api_client_accepts_top_level_error_contract" time="0.001" /><testcase classname="tests.test_frontend_api_client_error_parser" name="test_frontend_api_client_remains_legacy_error_tolerant" time="0.001" /><testcase classname="tests.test_geojson_dataset_service" name="test_parse_geojson_payload_extracts_metadata" time="0.003" /><testcase classname="tests.test_geojson_dataset_service" name="test_parse_geojson_payload_rejects_non_feature_collection" time="0.001" /><testcase classname="tests.test_geojson_dataset_service" name="test_get_dataset_geojson_reads_stored_payload" time="0.019" /><testcase classname="tests.test_geojson_dataset_service" name="test_get_dataset_geojson_rejects_invalid_stored_json" time="0.020" /><testcase classname="tests.test_geojson_dataset_service" name="test_parse_geojson_payload_returns_vector_metadata" time="0.008" /><testcase classname="tests.test_geojson_dataset_service" name="test_parse_geojson_payload_reports_z_dimension_for_canonical_2d_storage" time="0.002" /><testcase classname="tests.test_geojson_dataset_service" name="test_parse_geojson_payload_rejects_invalid_geometry" time="0.001" /><testcase classname="tests.test_geojson_dataset_service" name="test_get_dataset_geojson_accepts_legacy_geojson_type" time="0.013" /><testcase classname="tests.test_geojson_dataset_service" name="test_vector_summary_supports_legacy_geojson_type" time="0.001" /><testcase classname="tests.test_grayscale_yolo_dataset" name="test_grayscale_builder_preserves_labels_and_split" time="0.590" /><testcase classname="tests.test_health" name="test_liveness_is_independent_from_database" time="0.008" /><testcase classname="tests.test_health" name="test_readiness_returns_ok_only_when_all_checks_pass" time="0.011" /><testcase classname="tests.test_health" name="test_compatibility_health_is_fail_closed" time="0.010" /><testcase classname="tests.test_health" name="test_system_capabilities_report_runtime_state" time="0.010" /><testcase classname="tests.test_health" name="test_requests_receive_a_correlation_id" time="0.019" /><testcase classname="tests.test_live_migration_smoke_script" name="test_live_migration_smoke_checks_postgis_after_migrations" time="0.002" /><testcase classname="tests.test_live_migration_smoke_script" name="test_live_migration_smoke_checks_required_runtime_schema_objects" time="0.002" /><testcase classname="tests.test_live_migration_smoke_script" name="test_live_migration_smoke_reports_collation_version_mismatch_without_failing" time="0.001" /><testcase classname="tests.test_mdk_bathymetry_acquisition" name="test_acquisition_fails_closed_when_disabled" time="0.004" /><testcase classname="tests.test_mdk_bathymetry_acquisition" name="test_acquisition_fails_closed_without_coverage_id" time="0.004" /><testcase classname="tests.test_mdk_bathymetry_acquisition" name="test_acquisition_rejects_oversized_bbox" time="0.005" /><testcase classname="tests.test_mdk_bathymetry_acquisition" name="test_acquisition_requires_reachable_probe" time="0.004" /><testcase classname="tests.test_mdk_bathymetry_acquisition" name="test_acquisition_requires_advertised_coverage_id" time="0.003" /><testcase classname="tests.test_mdk_bathymetry_acquisition" name="test_acquisition_rejects_non_geotiff_coverage_response" time="0.004" /><testcase classname="tests.test_mdk_bathymetry_acquisition" name="test_get_coverage_url_is_bounded_and_pinned" time="0.003" /><testcase classname="tests.test_mdk_bathymetry_acquisition" name="test_source_module_never_disables_tls_verification" time="0.001" /><testcase classname="tests.test_model_asset_catalog" name="test_model_asset_catalog_lists_supported_local_model_files" time="0.020" /><testcase classname="tests.test_model_asset_catalog" name="test_model_asset_catalog_resolves_known_asset" time="0.013" /><testcase classname="tests.test_model_asset_catalog" name="test_model_asset_catalog_only_exposes_explicit_active_asset_in_runtime" time="0.040" /><testcase classname="tests.test_model_asset_catalog" name="test_model_asset_catalog_rejects_unknown_asset" time="0.012" /><testcase classname="tests.test_model_asset_catalog" name="test_model_assets_api_returns_canonical_envelope" time="0.042" /><testcase classname="tests.test_model_asset_catalog" name="test_detection_run_persists_selected_model_asset_parameters" time="0.041" /><testcase classname="tests.test_operator_polygon_label_qa" name="test_geometry_rings_yields_polygon_exterior_and_hole" time="0.001" /><testcase classname="tests.test_operator_polygon_label_qa" name="test_geometry_rings_flattens_multipolygon_rings" time="0.001" /><testcase classname="tests.test_operator_polygon_label_qa" name="test_geometry_rings_ignores_non_polygon_geometry" time="0.001" /><testcase classname="tests.test_post_rc_regional_official_vector" name="test_regional_product_registry_is_explicit_and_source_specific" time="0.001" /><testcase classname="tests.test_post_rc_regional_official_vector" name="test_urbis_land_cover_products_filter_only_documented_block_classes" time="0.005" /><testcase classname="tests.test_post_rc_regional_official_vector" name="test_spw_arcgis_paging_is_bounded_stable_and_clipped" time="0.011" /><testcase classname="tests.test_post_rc_regional_official_vector" name="test_spw_flood_hazard_uses_separate_governed_endpoint_and_persists_classification" time="0.008" /><testcase classname="tests.test_post_rc_regional_official_vector" name="test_spw_flood_hazard_can_be_disabled_independently" time="0.005" /><testcase classname="tests.test_post_rc_regional_official_vector" name="test_regional_products_require_the_persisted_authoritative_coverage_area" time="0.005" /><testcase classname="tests.test_post_rc_regional_official_vector" name="test_urbis_wfs_transforms_lambert72_and_persists_through_dataset_service" time="0.032" /><testcase classname="tests.test_qa_service" name="test_qa_compare_candidate_with_reference_returns_metrics" time="0.024" /><testcase classname="tests.test_qa_service" name="test_qa_compare_candidate_with_reference_returns_feature_level_evidence" time="0.033" /><testcase classname="tests.test_qa_service" name="test_dataset_reference_metadata_migration_declares_required_columns" time="0.002" /><testcase classname="tests.test_raster_operations_service" name="test_raster_preview_dependency_aware_when_rasterio_unavailable" time="0.005" /><testcase classname="tests.test_raster_operations_service" name="test_raster_stats_dependency_aware_when_numpy_unavailable" time="0.006" /><testcase classname="tests.test_raster_operations_service" name="test_raster_preview_returns_metadata_payload" time="0.007" /><testcase classname="tests.test_raster_operations_service" name="test_raster_reproject_rejects_invalid_crs" time="0.006" /><testcase classname="tests.test_raster_operations_service" name="test_raster_reproject_returns_persisted_derived_dataset" time="0.011" /><testcase classname="tests.test_raster_operations_service" name="test_raster_inspect_returns_payload" time="0.006" /><testcase classname="tests.test_raster_operations_service" name="test_raster_inspect_rejects_non_raster_dataset" time="0.007" /><testcase classname="tests.test_raster_operations_service" name="test_raster_tile_dependency_aware_when_rasterio_unavailable" time="0.006" /><testcase classname="tests.test_raster_operations_service" name="test_raster_tile_validation_rejects_bad_parameters" time="0.001" /><testcase classname="tests.test_raster_operations_service" name="test_raster_clip_rejects_non_raster_dataset" time="0.004" /><testcase classname="tests.test_raster_operations_service" name="test_raster_clip_rejects_missing_area" time="0.004" /><testcase classname="tests.test_raster_operations_service" name="test_raster_tile_returns_manifest_payload" time="0.032" /><testcase classname="tests.test_raster_operations_service" name="test_raster_clip_persists_derived_dataset" time="0.023" /><testcase classname="tests.test_raster_operations_service" name="test_raster_clip_rejects_dataset_without_crs" time="0.005" /><testcase classname="tests.test_raster_operations_service" name="test_run_job_sync_persists_job_output_dataset_for_raster_ops" time="0.002" /><testcase classname="tests.test_raster_operations_service" name="test_run_job_sync_records_raster_job_error" time="0.003" /><testcase classname="tests.test_raster_operations_service" name="test_raster_clip_rejects_empty_raster_clip" time="0.005" /><testcase classname="tests.test_raster_operations_service" name="test_raster_ndvi_rejects_invalid_band_index" time="0.007" /><testcase classname="tests.test_raster_operations_service" name="test_raster_ndvi_dependency_aware" time="0.003" /><testcase classname="tests.test_raster_operations_service" name="test_raster_ndbi_dependency_aware_when_numpy_missing" time="0.003" /><testcase classname="tests.test_raster_operations_service" name="test_raster_index_records_provenance_and_dtype" time="0.018" /><testcase classname="tests.test_raster_operations_service" name="test_run_job_sync_serializes_index_job_output_dataset_id" time="0.001" /><testcase classname="tests.test_raster_service" name="test_extract_raster_metadata_returns_dependency_aware_error" time="0.003" /><testcase classname="tests.test_raster_service" name="test_extract_raster_metadata_maps_basic_profile_fields" time="0.003" /><testcase classname="tests.test_rc10_data_operations" name="test_backup_guard_requires_recent_complete_sha256_storage_backup" time="0.093" /><testcase classname="tests.test_rc10_data_operations" name="test_backup_guard_rejects_stale_or_tampered_backup" time="0.098" /><testcase classname="tests.test_rc10_data_operations" name="test_storage_lifecycle_is_fail_closed_and_protects_release_evidence" time="0.005" /><testcase classname="tests.test_rc10_data_operations" name="test_storage_audit_only_selects_old_unreferenced_allowlisted_files" time="0.021" /><testcase classname="tests.test_rc10_data_operations" name="test_referenced_tile_manifest_protects_its_tiles" time="0.030" /><testcase classname="tests.test_rc10_data_operations" name="test_ordinary_json_export_is_not_treated_as_an_artifact_manifest" time="0.013" /><testcase classname="tests.test_rc10_data_operations" name="test_manifest_ids_dates_and_labels_are_not_treated_as_paths" time="0.038" /><testcase classname="tests.test_rc10_data_operations" name="test_disk_pressure_uses_absolute_headroom_for_large_arrays" time="0.007" /><testcase classname="tests.test_rc10_data_operations" name="test_source_family_report_covers_national_regional_and_maritime" time="0.009" /><testcase classname="tests.test_rc10_data_operations" name="test_national_and_maritime_sources_have_explicit_freshness_policies" time="0.001" /><testcase classname="tests.test_rc10_data_operations" name="test_cleanup_commands_require_backup_confirmation_and_read_only_mount" time="0.004" /><testcase classname="tests.test_rc11_release_package" name="test_release_version_is_consistent_across_runtime_packages" time="0.049" /><testcase classname="tests.test_rc11_release_package" name="test_release_image_carries_semantic_version_identity" time="0.002" /><testcase classname="tests.test_rc11_release_package" name="test_release_package_signature_and_checksums_fail_closed" time="0.908" /><testcase classname="tests.test_rc11_release_package" name="test_release_package_cli_requires_tagged_clean_revision" time="0.001" /><testcase classname="tests.test_rc4_national_coverage" name="test_coverage_catalog_uses_normalized_contracts_and_does_not_change_provider_registry" time="0.007" /><testcase classname="tests.test_rc4_national_coverage" name="test_national_and_maritime_reference_layers_are_selection_analyzable" time="0.001" /><testcase classname="tests.test_rc4_national_coverage" name="test_national_scope_operator_assigns_explicit_map_themes" time="0.004" /><testcase classname="tests.test_rc4_national_coverage" name="test_coverage_resolver_only_reports_operational_for_materialized_ready_dataset" time="0.005" /><testcase classname="tests.test_rc4_national_coverage" name="test_statbel_population_materialization_does_not_masquerade_as_admin_data" time="0.001" /><testcase classname="tests.test_rc4_national_coverage" name="test_bounded_api_materialization_only_covers_its_persisted_bbox" time="0.002" /><testcase classname="tests.test_rc4_national_coverage" name="test_bounded_partition_union_can_be_operational" time="0.002" /><testcase classname="tests.test_rc4_national_coverage" name="test_spw_bathymetry_materialization_is_source_specific" time="0.003" /><testcase classname="tests.test_rc4_national_coverage" name="test_vha_bathymetry_profiles_are_operational_only_inside_the_persisted_selection" time="0.002" /><testcase classname="tests.test_rc4_national_coverage" name="test_mixed_land_and_north_sea_selection_remains_split" time="0.002" /><testcase classname="tests.test_rc4_national_coverage" name="test_flemish_materialization_is_theme_specific" time="0.001" /><testcase classname="tests.test_rc4_national_coverage" name="test_outside_scope_and_unknown_theme_are_explicit" time="0.001" /><testcase classname="tests.test_rc4_national_coverage" name="test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox" time="0.006"><failure message="assert 'coverageSelectionAvailable' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_frontend_prefers_materialized_national_workspace_and_resolves_drawn_bbox() -&gt; None:
root = Path(__file__).parents[2]
focus = (root / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(encoding="utf-8")
workspace_hook = (root / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(encoding="utf-8")
coverage_hook = (root / "frontend" / "src" / "hooks" / "useCoverageResolver.ts").read_text(encoding="utf-8")
map_workspace = (root / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
assert "Belgium and North Sea Workbench" in focus
assert "nationalProject" in workspace_hook
assert "return nationalProject.id" in workspace_hook
assert "NATIONAL_WORKSPACE_REGION" in workspace_hook
assert "externalApi.resolveCoverage" in coverage_hook
assert "coverage.outside_supported_scope" in map_workspace
assert "coverageStatusLabel" in map_workspace
&gt; assert "coverageSelectionAvailable" in map_workspace
E assert 'coverageSelectionAvailable' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_rc4_national_coverage.py:432: AssertionError</failure></testcase><testcase classname="tests.test_rc4_national_scope_operator" name="test_marine_legal_scopes_are_derived_from_official_reporting_units" time="0.004" /><testcase classname="tests.test_rc4_national_scope_operator" name="test_marine_scope_derivation_fails_when_a_required_unit_is_missing" time="0.002" /><testcase classname="tests.test_rc4_national_scope_operator" name="test_area_geometry_normalization_drops_source_z_dimension" time="0.001" /><testcase classname="tests.test_rc4_national_scope_operator" name="test_archive_extraction_accepts_one_safe_geopackage_and_rejects_traversal" time="0.053" /><testcase classname="tests.test_rc4_national_scope_operator" name="test_wfs_fetch_is_allowlisted_paginated_and_complete" time="0.002" /><testcase classname="tests.test_rc4_national_scope_operator" name="test_operator_is_packaged_and_guarded_by_readiness" time="0.002" /><testcase classname="tests.test_rc5_release_deployment" name="test_build_identity_does_not_invalidate_dependency_layers" time="0.001" /><testcase classname="tests.test_rc5_release_deployment" name="test_release_deploy_preserves_immutable_and_previous_images" time="0.001" /><testcase classname="tests.test_rc5_release_deployment" name="test_release_and_container_replacement_are_serialized" time="0.001" /><testcase classname="tests.test_rc5_release_deployment" name="test_release_waits_for_large_postgis_volume_recovery" time="0.001" /><testcase classname="tests.test_rc5_release_deployment" name="test_runtime_configuration_is_validated_before_container_replacement" time="0.002"><failure message="ValueError: substring not found">def test_runtime_configuration_is_validated_before_container_replacement() -&gt; None:
run_script = (ROOT / "deploy" / "unraid" / "run-dockerman-container.sh").read_text(encoding="utf-8")
validation_index = run_script.index("validate_runtime_config")
&gt; replacement_index = run_script.index("docker compose down")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E ValueError: substring not found
backend\tests\test_rc5_release_deployment.py:65: ValueError</failure></testcase><testcase classname="tests.test_rc5_release_deployment" name="test_fresh_install_smoke_is_isolated_and_cleans_only_its_temp_path" time="0.001" /><testcase classname="tests.test_rc5_release_deployment" name="test_manual_rollback_reuses_persistent_paths_and_requires_existing_image" time="0.002" /><testcase classname="tests.test_rc5_release_deployment" name="test_readiness_checks_all_release_shell_entrypoints" time="0.001" /><testcase classname="tests.test_rc5_release_deployment" name="test_upgrade_smoke_restores_and_upgrades_only_an_isolated_database" time="0.001" /><testcase classname="tests.test_rc6_supply_chain" name="test_python_ci_lock_is_hashed_linux_311_and_excludes_ai" time="0.002" /><testcase classname="tests.test_rc6_supply_chain" name="test_lock_generator_uses_pinned_linux_runtime_and_verifies_policy" time="0.001" /><testcase classname="tests.test_rc6_supply_chain" name="test_ci_runs_complete_release_and_supply_chain_gates" time="0.001" /><testcase classname="tests.test_rc6_supply_chain" name="test_scanner_images_are_versioned_and_digest_pinned" time="0.001" /><testcase classname="tests.test_rc6_supply_chain" name="test_readiness_guards_lock_and_supply_chain_entrypoints" time="0.001" /><testcase classname="tests.test_rc6_supply_chain" name="test_python_audit_exceptions_are_timeboxed_and_full_evidence_is_kept" time="0.004" /><testcase classname="tests.test_rc6_supply_chain" name="test_release_image_uses_locked_non_ai_dependencies_and_npm_ci" time="0.001" /><testcase classname="tests.test_rc6_supply_chain" name="test_gosu_compatibility_wrapper_uses_exec_and_setpriv" time="0.002" /><testcase classname="tests.test_rc7_api_response_contracts" name="test_no_untyped_fastapi_response_models_remain" time="0.006" /><testcase classname="tests.test_rc7_api_response_contracts" name="test_every_json_success_response_has_a_concrete_canonical_schema" time="0.872" /><testcase classname="tests.test_rc8_release_journey_contract" name="test_release_golden_area_contract_covers_belgium_and_north_sea" time="0.003" /><testcase classname="tests.test_rc8_release_journey_contract" name="test_release_golden_area_geometries_are_bounded_and_fingerprintable" time="0.003" /><testcase classname="tests.test_rc8_release_journey_contract" name="test_rc8_runner_and_container_operator_are_release_wired" time="0.002" /><testcase classname="tests.test_rc9_ux_release_contract" name="test_rc9_ux_audit_is_wired_into_frontend_and_readiness" time="0.002" /><testcase classname="tests.test_rc9_ux_release_contract" name="test_rc9_loading_and_accessibility_states_are_explicit" time="0.006"><failure message="assert 'Beschikbaarheid controleren' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_rc9_loading_and_accessibility_states_are_explicit() -&gt; None:
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
map_workspace = (
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
).read_text(encoding="utf-8")
geo_map = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
encoding="utf-8"
)
assert "workspaceDataLoading" in app
assert 'role="status" aria-live="polite"' in app
assert "Databronnen worden gecontroleerd" in map_workspace
&gt; assert "Beschikbaarheid controleren" in map_workspace
E assert 'Beschikbaarheid controleren' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_rc9_ux_release_contract.py:33: AssertionError</failure></testcase><testcase classname="tests.test_rc9_ux_release_contract" name="test_rc9_performance_budgets_are_documented_and_visible" time="0.003" /><testcase classname="tests.test_rc_backup_restore_scripts" name="test_backup_is_atomic_read_only_and_checksum_bound" time="0.001" /><testcase classname="tests.test_rc_backup_restore_scripts" name="test_backup_verification_is_read_only" time="0.002" /><testcase classname="tests.test_rc_backup_restore_scripts" name="test_restore_smoke_is_forced_to_generated_isolated_database" time="0.002" /><testcase classname="tests.test_rc_backup_restore_scripts" name="test_release_safety_scripts_have_valid_bash_syntax" time="1.348" /><testcase classname="tests.test_rc_backup_restore_scripts" name="test_readiness_gate_checks_release_safety_scripts" time="0.001" /><testcase classname="tests.test_rc_backup_restore_scripts" name="test_password_rotation_never_prints_or_persists_generated_secret" time="0.001" /><testcase classname="tests.test_rc_detection_temporal_safety" name="test_historical_orthophoto_is_rejected_for_detection" time="0.001" /><testcase classname="tests.test_rc_detection_temporal_safety" name="test_historical_detection_qa_rejects_current_reference" time="0.001" /><testcase classname="tests.test_rc_detection_temporal_safety" name="test_historical_detection_qa_accepts_overlapping_reference_edition" time="0.001" /><testcase classname="tests.test_rc_detection_temporal_safety" name="test_current_source_with_unbounded_current_reference_remains_supported" time="0.001" /><testcase classname="tests.test_rc_detection_temporal_safety" name="test_detection_frontend_has_no_implicit_first_raster_fallback" time="0.004" /><testcase classname="tests.test_rc_release_evidence" name="test_release_evidence_manifest_is_secret_free_and_read_only" time="2.415" /><testcase classname="tests.test_rc_release_evidence" name="test_release_evidence_cli_writes_single_head_manifest" time="2.843" /><testcase classname="tests.test_rc_release_evidence" name="test_readiness_gate_compiles_release_evidence_command" time="0.001" /><testcase classname="tests.test_rc_runtime_observability" name="test_valid_request_id_is_returned" time="0.010" /><testcase classname="tests.test_rc_runtime_observability" name="test_unsafe_request_id_is_replaced" time="0.010" /><testcase classname="tests.test_rc_runtime_observability" name="test_runtime_report_is_read_only_by_default_and_requires_confirmation" time="0.001" /><testcase classname="tests.test_rc_runtime_observability" name="test_all_in_one_deploy_embeds_immutable_build_identity" time="0.002"><failure message="assert 'GEOINTEL_BUILD_SHA=&quot;$(git rev-parse HEAD)&quot;' in '#!/usr/bin/env bash\nset -euo pipefail\n\nROOT=&quot;$(cd &quot;$(dirname &quot;${BASH_SOURCE[0]}&quot;)/../..&quot; &amp;&amp; pwd)&quot;\ncd &quot;$ROOT&quot;\n\nG...ge.revision&quot;}} created={{index .Config.Labels &quot;org.opencontainers.image.created&quot;}}\' \\\n &quot;$GEOINTEL_RELEASE_IMAGE&quot;\n'">def test_all_in_one_deploy_embeds_immutable_build_identity() -&gt; None:
dockerfile = (ROOT / "deploy" / "unraid" / "Dockerfile.all-in-one").read_text(encoding="utf-8")
release_script = (ROOT / "deploy" / "unraid" / "deploy-release.sh").read_text(encoding="utf-8")
deploy_powershell = (ROOT / "scripts" / "deploy_tower.ps1").read_text(encoding="utf-8")
deploy_shell = (ROOT / "scripts" / "deploy_tower.sh").read_text(encoding="utf-8")
assert "ARG GEOINTEL_BUILD_SHA=unknown" in dockerfile
assert 'GEOINTEL_BUILD_SHA="${GEOINTEL_BUILD_SHA}"' in dockerfile
assert 'GEOINTEL_BUILD_TIME="${GEOINTEL_BUILD_TIME}"' in dockerfile
assert 'org.opencontainers.image.revision="${GEOINTEL_BUILD_SHA}"' in dockerfile
&gt; assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in release_script
E assert 'GEOINTEL_BUILD_SHA="$(git rev-parse HEAD)"' in '#!/usr/bin/env bash\nset -euo pipefail\n\nROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." &amp;&amp; pwd)"\ncd "$ROOT"\n\nG...ge.revision"}} created={{index .Config.Labels "org.opencontainers.image.created"}}\' \\\n "$GEOINTEL_RELEASE_IMAGE"\n'
backend\tests\test_rc_runtime_observability.py:47: AssertionError</failure></testcase><testcase classname="tests.test_readiness_gate" name="test_backend_keeps_starlette_on_the_supported_pre_httpx2_line" time="0.002" /><testcase classname="tests.test_readiness_gate" name="test_readiness_gate_treats_deprecation_warnings_as_errors" time="0.002" /><testcase classname="tests.test_readiness_gate" name="test_readiness_gate_runs_contract_smoke" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_readiness_gate_checks_demo_export_workflow_script_syntax" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_readiness_gate_runs_golden_qa_benchmark" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_readiness_gate_compiles_demo_cleanup_script" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_readiness_gate_checks_demo_cleanup_dry_run_script_syntax" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_demo_cleanup_dry_run_script_is_dry_run_only" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_readiness_gate_checks_workbench_screenshot_capture_syntax" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_workbench_screenshot_capture_is_artifact_based_and_non_mutating" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_readiness_gate_compiles_yolo_preflight_script" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_demo_export_workflow_script_verifies_export_endpoints" time="0.001" /><testcase classname="tests.test_readiness_gate" name="test_workbench_default_state_script_verifies_populated_demo_start_state" time="0.002" /><testcase classname="tests.test_readiness_gate" name="test_pass_end_check_excludes_vendor_and_build_outputs" time="0.001" /><testcase classname="tests.test_regional_yolo_dataset" name="test_select_paths_is_region_and_split_safe" time="0.001" /><testcase classname="tests.test_request_target_security" name="test_invalid_host_request_target_is_rejected_canonically" time="0.005" /><testcase classname="tests.test_request_target_security" name="test_urlencoded_form_body_is_rejected_before_starlette_form_parsing" time="0.005" /><testcase classname="tests.test_request_target_security" name="test_multipart_upload_contract_remains_available" time="0.005" /><testcase classname="tests.test_retile_yolo_dataset" name="test_tile_starts_cover_edges_with_overlap" time="0.001" /><testcase classname="tests.test_retile_yolo_dataset" name="test_tile_starts_reject_image_smaller_than_tile" time="0.001" /><testcase classname="tests.test_rotate_belgium_building_holdouts" name="test_rotated_corpus_version_is_explicit_and_canonical" time="0.001" /><testcase classname="tests.test_run_state_consistency" name="test_invalid_fixture_detections_mark_run_and_job_failed" time="0.005" /><testcase classname="tests.test_run_state_consistency" name="test_invalid_fixture_segmentations_mark_run_and_job_failed" time="0.005" /><testcase classname="tests.test_run_state_consistency" name="test_unexpected_error_in_sync_job_marks_job_failed" time="0.002" /><testcase classname="tests.test_run_state_consistency" name="test_app_error_in_sync_job_still_marks_job_failed" time="0.001" /><testcase classname="tests.test_runtime_reconciliation_service" name="test_reconciliation_terminalizes_only_running_work" time="0.006" /><testcase classname="tests.test_runtime_reconciliation_service" name="test_startup_reconciliation_is_enabled_only_in_all_in_one_runtime" time="0.001" /><testcase classname="tests.test_sam_roof_label_refinement" name="test_plausible_refinement_is_fail_closed" time="0.001" /><testcase classname="tests.test_sam_roof_label_refinement" name="test_yolo_round_trip_shape" time="0.001" /><testcase classname="tests.test_sam_roof_label_refinement" name="test_cli_exposes_explicit_fallback_policy" time="0.001" /><testcase classname="tests.test_schema_model_field_warnings" name="test_model_prefixed_api_fields_are_explicitly_supported" time="0.001" /><testcase classname="tests.test_segmentation_configured_models" name="test_segmentation_models_report_not_configured_when_disabled" time="0.007" /><testcase classname="tests.test_segmentation_configured_models" name="test_segmentation_models_report_dependency_unavailable" time="0.008" /><testcase classname="tests.test_segmentation_configured_models" name="test_segmentation_models_report_configured_with_local_weights" time="0.008" /><testcase classname="tests.test_segmentation_configured_models" name="test_segmentation_dependency_check_uses_real_imports_not_find_spec" time="0.001" /><testcase classname="tests.test_segmentation_configured_models" name="test_configured_segmentation_requires_tile_manifest" time="0.007" /><testcase classname="tests.test_segmentation_configured_models" name="test_configured_yolo_seg_run_persists_georeferenced_masks" time="0.022" /><testcase classname="tests.test_segmentation_configured_models" name="test_configured_sam_run_is_class_agnostic" time="0.022" /><testcase classname="tests.test_segmentation_configured_models" name="test_unconfigured_segmentation_run_fails_closed" time="0.008" /><testcase classname="tests.test_segmentation_configured_models" name="test_pixel_points_to_epsg4326_polygon_uses_tile_transform" time="0.001" /><testcase classname="tests.test_segmentation_configured_models" name="test_pixel_points_to_epsg4326_polygon_rejects_degenerate_input" time="0.001" /><testcase classname="tests.test_selection_partition_analysis" name="test_vector_partition_route_combines_one_governed_product" time="0.001" /><testcase classname="tests.test_selection_partition_analysis" name="test_vector_partition_request_has_a_bounded_fan_out" time="0.010" /><testcase classname="tests.test_selection_partition_analysis" name="test_vector_partition_route_rejects_mixed_source_products" time="0.001" /><testcase classname="tests.test_sprint100_segmentation_manifest_handoff" name="test_raster_tile_manifest_can_handoff_to_segmentation_lab" time="0.004" /><testcase classname="tests.test_sprint101_ai_handoff_interaction_smoke" name="test_ai_handoff_interaction_smoke_is_registered_and_clicks_both_handoffs" time="0.001" /><testcase classname="tests.test_sprint103_ai_lab_run_readiness" name="test_detection_lab_exposes_run_readiness_contract" time="0.001" /><testcase classname="tests.test_sprint103_ai_lab_run_readiness" name="test_segmentation_lab_exposes_run_readiness_contract" time="0.001" /><testcase classname="tests.test_sprint103_ai_lab_run_readiness" name="test_ai_lab_run_readiness_css_contract" time="0.002" /><testcase classname="tests.test_sprint104_ai_lab_action_guardrails" name="test_detection_lab_distinguishes_configured_model_from_ui_runnable_action" time="0.001" /><testcase classname="tests.test_sprint104_ai_lab_action_guardrails" name="test_segmentation_lab_distinguishes_configured_model_from_ui_runnable_action" time="0.001" /><testcase classname="tests.test_sprint104_ai_lab_action_guardrails" name="test_ai_lab_guardrail_styles_remain_compact" time="0.001" /><testcase classname="tests.test_sprint105_map_feature_extract" name="test_map_workspace_exposes_feature_extract_actions" time="0.002" /><testcase classname="tests.test_sprint105_map_feature_extract" name="test_geomap_highlights_selected_feature_layer" time="0.001" /><testcase classname="tests.test_sprint105_map_feature_extract" name="test_feature_extract_css_is_responsive_and_scannable" time="0.001" /><testcase classname="tests.test_sprint106_map_bbox_extract" name="test_vector_feature_service_extracts_bbox_geojson_from_persisted_rows" time="0.002" /><testcase classname="tests.test_sprint106_map_bbox_extract" name="test_vector_feature_service_rejects_invalid_bbox" time="0.001" /><testcase classname="tests.test_sprint106_map_bbox_extract" name="test_vector_select_route_is_project_scoped_and_enveloped" time="0.001" /><testcase classname="tests.test_sprint106_map_bbox_extract" name="test_vector_select_route_rejects_non_vector_dataset" time="0.001" /><testcase classname="tests.test_sprint106_map_bbox_extract" name="test_vector_select_route_uses_persisted_area_geometry_when_requested" time="0.002" /><testcase classname="tests.test_sprint106_map_bbox_extract" name="test_vector_select_route_uses_bbox_for_dataset_preclipped_to_selected_area" time="0.001" /><testcase classname="tests.test_sprint106_map_bbox_extract" name="test_vector_select_route_rejects_area_from_another_project" time="0.001" /><testcase classname="tests.test_sprint106_map_bbox_extract" name="test_frontend_exposes_map_bbox_selection_contracts" time="0.006"><failure message="assert 'analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_frontend_exposes_map_bbox_selection_contracts() -&gt; None:
api_client = (ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts").read_text(encoding="utf-8")
map_workspace = (ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx").read_text(encoding="utf-8")
geomap = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(encoding="utf-8")
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
extract_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapSelectionExtract.ts").read_text(encoding="utf-8")
theme_hook = (ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
assert "selectVectorFeatures" in api_client
assert "Area selection" in map_workspace
assert "Teken rechthoek" in map_workspace
assert "Objecten in gebied ophalen" in map_workspace
assert "Gebiedsdownload bewaren" in map_workspace
assert "bboxSelectionMode" in geomap
assert "selection-bbox" in geomap
assert "selection-result" in geomap
assert "useMapSelectionExtract" in app
assert "area_id: areaId" in extract_hook
assert "area_id: areaId" in theme_hook
&gt; assert "analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in map_workspace
E assert 'analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint106_map_bbox_extract.py:356: AssertionError</failure></testcase><testcase classname="tests.test_sprint107_map_selection_export" name="test_vector_selection_geojson_export_persists_handoff_artifact" time="0.015" /><testcase classname="tests.test_sprint107_map_selection_export" name="test_vector_selection_geojson_export_endpoint_returns_canonical_envelope" time="0.009" /><testcase classname="tests.test_sprint107_map_selection_export" name="test_vector_selection_export_uses_exact_area_scope_when_requested" time="0.004" /><testcase classname="tests.test_sprint107_map_selection_export" name="test_area_constrained_bbox_uses_intersection_and_disables_full_area_fast_path" time="0.004" /><testcase classname="tests.test_sprint107_map_selection_export" name="test_area_constrained_bbox_rejects_selection_outside_work_area" time="0.001" /><testcase classname="tests.test_sprint107_map_selection_export" name="test_frontend_exposes_map_selection_export_action" time="0.004" /><testcase classname="tests.test_sprint108_map_selection_derived_dataset" name="test_vector_selection_derive_persists_queryable_derived_dataset" time="0.015" /><testcase classname="tests.test_sprint108_map_selection_derived_dataset" name="test_vector_selection_derive_rejects_empty_selection" time="0.003" /><testcase classname="tests.test_sprint108_map_selection_derived_dataset" name="test_vector_selection_derive_endpoint_returns_canonical_dataset_envelope" time="0.009" /><testcase classname="tests.test_sprint108_map_selection_derived_dataset" name="test_frontend_exposes_map_selection_derive_action" time="0.003" /><testcase classname="tests.test_sprint109_map_selection_qa_shortcut" name="test_map_selection_qa_shortcut_uses_existing_qa_workflow_contract" time="0.002" /><testcase classname="tests.test_sprint109_map_selection_qa_shortcut" name="test_app_keeps_qa_api_calls_out_of_orchestration" time="0.001" /><testcase classname="tests.test_sprint110_map_qa_evidence_drilldown" name="test_map_qa_result_exposes_quality_check_evidence_contract" time="0.003" /><testcase classname="tests.test_sprint110_map_qa_evidence_drilldown" name="test_map_qa_evidence_keeps_backend_contract_unchanged" time="0.001" /><testcase classname="tests.test_sprint111_qa_feature_evidence" name="test_qa_feature_evidence_contract_is_documented_and_rendered" time="0.002" /><testcase classname="tests.test_sprint111_qa_feature_evidence" name="test_qa_services_persist_feature_evidence_without_new_migrations" time="0.002" /><testcase classname="tests.test_sprint112_qa_evidence_overlay" name="test_quality_check_evidence_geojson_resolves_persisted_vector_features" time="0.003" /><testcase classname="tests.test_sprint112_qa_evidence_overlay" name="test_quality_check_evidence_geojson_rejects_cross_project_access" time="0.001" /><testcase classname="tests.test_sprint112_qa_evidence_overlay" name="test_quality_check_evidence_geojson_api_uses_canonical_envelope" time="0.007" /><testcase classname="tests.test_sprint112_qa_evidence_overlay" name="test_frontend_quality_evidence_overlay_contract_is_wired" time="0.003" /><testcase classname="tests.test_sprint113_calm_workbench_layout" name="test_calm_workbench_layout_reduces_duplicate_navigation_density" time="0.001" /><testcase classname="tests.test_sprint113_calm_workbench_layout" name="test_calm_workbench_layout_keeps_mobile_safe_navigation" time="0.001" /><testcase classname="tests.test_sprint114_data_map_usability_layout" name="test_data_workspace_uses_compact_catalog_layout" time="0.001" /><testcase classname="tests.test_sprint114_data_map_usability_layout" name="test_map_workspace_prioritizes_map_before_dense_controls" time="0.001" /><testcase classname="tests.test_sprint115_quality_export_usability_layout" name="test_quality_workspace_uses_compact_evidence_review_layout" time="0.001" /><testcase classname="tests.test_sprint115_quality_export_usability_layout" name="test_export_workspace_uses_compact_handoff_layout" time="0.001" /><testcase classname="tests.test_sprint116_operational_gis_map_workflow" name="test_map_uses_road_basemap_with_attribution_and_env_override" time="0.001" /><testcase classname="tests.test_sprint116_operational_gis_map_workflow" name="test_map_workspace_can_select_persisted_database_layer_and_run_query" time="0.003" /><testcase classname="tests.test_sprint118_yolo_preflight_ui" name="test_detection_lab_surfaces_yolo_runtime_preflight" time="0.003" /><testcase classname="tests.test_sprint118_yolo_preflight_ui" name="test_detection_lab_surfaces_local_model_asset_selection" time="0.003" /><testcase classname="tests.test_sprint119_yolo_model_configuration" name="test_configure_yolo_model_reports_no_local_model" time="0.116" /><testcase classname="tests.test_sprint119_yolo_model_configuration" name="test_configure_yolo_model_refuses_ambiguous_model_selection" time="0.116" /><testcase classname="tests.test_sprint119_yolo_model_configuration" name="test_configure_yolo_model_dry_run_selects_single_model" time="0.115" /><testcase classname="tests.test_sprint119_yolo_model_configuration" name="test_configure_yolo_model_apply_updates_existing_env_file" time="0.138" /><testcase classname="tests.test_sprint120_model_asset_detection_workflow_smoke" name="test_model_asset_detection_workflow_smoke_is_registered_and_checks_configured_yolo_path" time="0.001" /><testcase classname="tests.test_sprint121_real_data_detection_qa_smoke" name="test_real_data_detection_qa_smoke_requires_operator_inputs_and_checks_full_chain" time="0.002" /><testcase classname="tests.test_sprint122_model_asset_activation_guardrails" name="test_detection_workflow_selects_only_the_active_runtime_model_asset_automatically" time="0.001" /><testcase classname="tests.test_sprint122_model_asset_activation_guardrails" name="test_detection_lab_explains_explicit_model_asset_and_threshold_selection" time="0.002" /><testcase classname="tests.test_sprint122_model_asset_activation_guardrails" name="test_detection_run_readiness_requires_explicit_asset_when_local_assets_exist" time="0.001" /><testcase classname="tests.test_sprint122_raster_upload_metadata_mapping" name="test_raster_upload_maps_metadata_bounds_resolution_and_bands" time="0.003" /><testcase classname="tests.test_sprint123_raster_detection_handoff_operational" name="test_raster_workflow_exposes_structured_tile_manifest_handoff" time="0.002" /><testcase classname="tests.test_sprint123_raster_detection_handoff_operational" name="test_raster_controls_show_manifest_details_and_ai_handoff_action" time="0.001" /><testcase classname="tests.test_sprint123_raster_detection_handoff_operational" name="test_detection_handoff_opens_ai_lab_preflights_manifest_and_keeps_asset_explicit" time="0.002" /><testcase classname="tests.test_sprint124_detection_calibration_sweep" name="test_detection_calibration_sweep_reuses_real_data_workflow_and_reports_qa_metrics" time="0.001" /><testcase classname="tests.test_sprint125_detection_calibration_evidence_bundle" name="test_detection_calibration_evidence_bundle_exports_persisted_qa_evidence" time="0.001" /><testcase classname="tests.test_sprint126_detection_quality_matrix" name="test_detection_quality_matrix_compares_models_tiles_and_thresholds" time="0.001" /><testcase classname="tests.test_sprint127_operator_sample_quality_matrix" name="test_prepare_operator_real_data_samples_fetches_documented_ortho_and_grb_pairs" time="0.001" /><testcase classname="tests.test_sprint127_operator_sample_quality_matrix" name="test_prepare_operator_real_data_samples_help_does_not_require_gis_dependencies" time="0.140" /><testcase classname="tests.test_sprint127_operator_sample_quality_matrix" name="test_multi_sample_detection_quality_matrix_runs_existing_matrix_for_each_sample" time="0.002" /><testcase classname="tests.test_sprint129_operator_yolo_training_dataset" name="test_operator_yolo_dataset_export_script_contract" time="0.002" /><testcase classname="tests.test_sprint129_operator_yolo_training_dataset" name="test_operator_yolo_dataset_export_help_does_not_require_gis_dependencies" time="0.116" /><testcase classname="tests.test_sprint129_operator_yolo_training_dataset" name="test_operator_yolo_train_smoke_script_contract" time="0.001" /><testcase classname="tests.test_sprint12_golden_qa_benchmark" name="test_golden_qa_expected_metrics_are_documented" time="0.003" /><testcase classname="tests.test_sprint12_golden_qa_benchmark" name="test_golden_qa_benchmark_manifest_covers_multiple_regression_scenarios" time="0.001" /><testcase classname="tests.test_sprint12_golden_qa_benchmark" name="test_golden_qa_benchmark_command_passes_all_scenarios_and_reports_persistence" time="2.032" /><testcase classname="tests.test_sprint12_golden_qa_benchmark" name="test_golden_qa_shell_wrapper_is_safe_and_documented" time="1.093" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_operator_yolo_tile_dataset_export_script_contract" time="0.002" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_operator_yolo_tile_dataset_export_help_does_not_require_gis_dependencies" time="0.242" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_default_validation_split_is_explicit_and_rejects_holdout_leakage" time="0.007" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_manifest_sample_selection_keeps_external_holdouts_out_of_targeted_dataset" time="0.005" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_train_only_shard_requires_explicit_opt_in" time="0.005" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_validation_coverage_reports_holdouts_without_retained_tiles" time="0.006" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_iter_tile_windows_covers_edges_without_duplicates" time="0.005" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_negative_tile_keep_is_deterministic_and_ratio_bound" time="0.005" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_labels_for_tile_can_drop_tiny_visible_box_fragments" time="0.005" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_background_negative_repeat_only_applies_to_training_background_tiles" time="0.005" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_background_category_is_derived_for_legacy_operator_manifests" time="0.004" /><testcase classname="tests.test_sprint130_operator_yolo_tile_dataset" name="test_export_can_skip_low_variance_negative_tiles" time="0.018" /><testcase classname="tests.test_sprint131_operator_sample_expansion" name="test_operator_sample_registry_includes_kempen_reference_and_background_candidates" time="0.005" /><testcase classname="tests.test_sprint131_operator_sample_expansion" name="test_operator_training_expansion_preserves_geographically_separate_holdouts" time="0.006" /><testcase classname="tests.test_sprint131_operator_sample_expansion" name="test_small_building_expansion_has_separate_training_and_validation_centers" time="0.005" /><testcase classname="tests.test_sprint131_operator_sample_expansion" name="test_operator_background_candidates_are_unique_enough_for_hard_negative_training" time="0.005" /><testcase classname="tests.test_sprint131_operator_sample_expansion" name="test_operator_sample_can_be_scaled_for_larger_training_aoi" time="0.008" /><testcase classname="tests.test_sprint131_operator_sample_expansion" name="test_background_candidate_can_write_empty_reference_geojson" time="0.030" /><testcase classname="tests.test_sprint131_operator_sample_expansion" name="test_fetch_reference_follows_grb_next_links_until_complete" time="0.029" /><testcase classname="tests.test_sprint131_operator_sample_expansion" name="test_reference_sample_still_rejects_empty_grb_response" time="0.008" /><testcase classname="tests.test_sprint132_operator_hard_negative_matrix" name="test_operator_hard_negative_matrix_scores_background_samples_without_qa" time="0.002" /><testcase classname="tests.test_sprint133_detection_threshold_calibration_ux" name="test_detection_lab_exposes_persisted_threshold_calibration_comparison" time="0.002" /><testcase classname="tests.test_sprint134_guided_detection_calibration_runner" name="test_detection_lab_has_guided_threshold_calibration_runner" time="0.002" /><testcase classname="tests.test_sprint135_calibration_evidence_handoff" name="test_guided_calibration_rows_link_to_existing_qa_evidence_map" time="0.002" /><testcase classname="tests.test_sprint136_calibration_summary_export_ui" name="test_guided_calibration_runner_exports_review_summary" time="0.002" /><testcase classname="tests.test_sprint137_browser_calibration_summary_evidence_script" name="test_evidence_bundle_script_accepts_browser_calibration_summary_export" time="0.002" /><testcase classname="tests.test_sprint138_calibration_evidence_bundle_smoke" name="test_browser_calibration_evidence_bundle_smoke_runs_with_mocked_api" time="1.141" /><testcase classname="tests.test_sprint139_multi_aoi_calibration_evidence_portfolio" name="test_multi_aoi_calibration_evidence_portfolio_assembles_existing_evidence" time="2.613" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_reports_disabled_without_loading_model" time="0.013" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_distinguishes_missing_dependencies_from_missing_model" time="0.018" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_validates_model_and_manifest_without_importing_yolo" time="0.035" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_marks_assumed_dependencies_in_runtime_details" time="0.030" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_can_explicitly_smoke_load_local_model" time="0.034" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_reports_explicit_model_load_failure" time="0.018" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_script_outputs_json" time="1.924" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_script_uses_environment_configuration" time="2.187" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_script_rejects_assumed_dependencies_for_model_load" time="2.679" /><testcase classname="tests.test_sprint13_yolo_preflight" name="test_yolo_preflight_api_returns_canonical_envelope" time="0.019" /><testcase classname="tests.test_sprint143_detection_model_promotion_report" name="test_detection_model_promotion_report_combines_positive_and_background_gates" time="0.317" /><testcase classname="tests.test_sprint143_detection_model_promotion_report" name="test_detection_model_promotion_report_uses_portfolio_and_tile_defaults" time="0.305" /><testcase classname="tests.test_sprint143_detection_model_promotion_report" name="test_detection_model_promotion_report_accepts_multi_sample_quality_summary" time="0.209" /><testcase classname="tests.test_sprint146_operator_yolo_dataset_quality_audit" name="test_operator_yolo_dataset_quality_audit_reports_dataset_risks" time="0.206" /><testcase classname="tests.test_sprint155_detection_operator_profiles" name="test_detection_operator_profiles_define_explicit_yolo_candidates_and_promoted_profile" time="0.002" /><testcase classname="tests.test_sprint155_detection_operator_profiles" name="test_detection_lab_surfaces_profiles_as_deliberate_operator_actions" time="0.001" /><testcase classname="tests.test_sprint155_detection_operator_profiles" name="test_detection_workflow_applies_profiles_without_selecting_the_first_arbitrary_asset" time="0.001" /><testcase classname="tests.test_sprint156_background_corpus_classification" name="test_background_samples_are_classified_by_actual_reference_density" time="0.004" /><testcase classname="tests.test_sprint156_background_corpus_classification" name="test_prepare_sample_manifest_records_background_category_from_cached_reference" time="0.018" /><testcase classname="tests.test_sprint156_background_corpus_classification" name="test_hard_negative_matrix_can_filter_background_categories" time="0.001" /><testcase classname="tests.test_sprint156_background_corpus_classification" name="test_yolo_tile_export_preserves_background_category_provenance" time="0.004" /><testcase classname="tests.test_sprint157_background_split_matrix_runner" name="test_split_report_builder_creates_strict_gate_and_context_review" time="0.042" /><testcase classname="tests.test_sprint157_background_split_matrix_runner" name="test_split_report_builder_rejects_wrong_summary_category" time="0.017" /><testcase classname="tests.test_sprint157_background_split_matrix_runner" name="test_split_matrix_runner_invokes_both_background_categories" time="0.001" /><testcase classname="tests.test_sprint157_background_split_matrix_runner" name="test_readiness_covers_split_matrix_runner" time="0.001" /><testcase classname="tests.test_sprint158_promotion_report_split_background" name="test_promotion_report_uses_split_pure_empty_as_gate_and_sparse_context_as_review" time="0.225" /><testcase classname="tests.test_sprint159_split_promotion_workflow" name="test_split_background_promotion_workflow_runs_split_then_split_aware_report" time="0.001" /><testcase classname="tests.test_sprint159_split_promotion_workflow" name="test_split_background_promotion_workflow_has_safe_preflight_mode" time="0.001" /><testcase classname="tests.test_sprint159_split_promotion_workflow" name="test_split_background_preflight_derives_missing_background_categories" time="0.898" /><testcase classname="tests.test_sprint159_split_promotion_workflow" name="test_readiness_checks_split_background_promotion_workflow_syntax" time="0.001" /><testcase classname="tests.test_sprint15_demo_workflow" name="test_demo_workflow_endpoint_returns_canonical_envelope" time="0.007" /><testcase classname="tests.test_sprint15_demo_workflow" name="test_demo_workflow_service_uses_explicit_golden_fixtures" time="0.002" /><testcase classname="tests.test_sprint15_demo_workflow" name="test_demo_workflow_service_supports_container_fixture_mount" time="0.001" /><testcase classname="tests.test_sprint15_demo_workflow" name="test_demo_workflow_prefers_complete_existing_demo_project" time="0.001" /><testcase classname="tests.test_sprint15_demo_workflow" name="test_explicit_demo_seed_reactivates_an_archived_fixture_project" time="0.001" /><testcase classname="tests.test_sprint161_widescreen_workbench" name="test_workbench_adds_widescreen_layout_contracts" time="0.001" /><testcase classname="tests.test_sprint161_widescreen_workbench" name="test_workbench_adds_ultrawide_map_priority_contracts" time="0.001" /><testcase classname="tests.test_sprint162_promoted_model_activation" name="test_promoted_yolo_activation_dry_run_validates_report_and_model" time="0.141" /><testcase classname="tests.test_sprint162_promoted_model_activation" name="test_promoted_yolo_activation_apply_updates_env_file" time="0.465" /><testcase classname="tests.test_sprint162_promoted_model_activation" name="test_promoted_yolo_activation_rejects_non_promoted_report" time="0.200" /><testcase classname="tests.test_sprint162_promoted_model_activation" name="test_readiness_gate_compiles_promoted_activation_script" time="0.001" /><testcase classname="tests.test_sprint167_operator_yolo_label_qa_contact_sheets" name="test_contact_sheet_selection_balances_source_samples_before_dense_repeats" time="0.054" /><testcase classname="tests.test_sprint167_operator_yolo_label_qa_contact_sheets" name="test_operator_yolo_label_qa_contact_sheets_render_visual_artifacts" time="0.478" /><testcase classname="tests.test_sprint169_long_context_name_readability" name="test_long_context_names_remain_compact_and_inspectable" time="0.002" /><testcase classname="tests.test_sprint16_quality_checks_dashboard" name="test_quality_check_service_lists_checks_with_metrics" time="0.003" /><testcase classname="tests.test_sprint16_quality_checks_dashboard" name="test_quality_checks_endpoint_returns_canonical_envelope" time="0.041" /><testcase classname="tests.test_sprint170_detection_false_negative_audit" name="test_fixed_threshold_portfolio_inputs_select_one_comparable_run_per_aoi" time="0.362" /><testcase classname="tests.test_sprint170_detection_false_negative_audit" name="test_false_negative_audit_finds_persistent_reference_misses" time="0.725" /><testcase classname="tests.test_sprint170_detection_false_negative_audit" name="test_false_negative_audit_rejects_mismatched_reference_populations" time="0.869" /><testcase classname="tests.test_sprint175_detection_review_hardening" name="test_detection_results_table_uses_bounded_local_pagination" time="0.002" /><testcase classname="tests.test_sprint175_detection_review_hardening" name="test_false_positive_audit_builds_reviewable_persisted_evidence" time="0.852" /><testcase classname="tests.test_sprint175_detection_review_hardening" name="test_false_positive_audit_rejects_declared_role_count_drift" time="0.732" /><testcase classname="tests.test_sprint176_detection_false_positive_visual_review" name="test_detection_quality_evidence_exposes_persisted_detection_provenance" time="0.003" /><testcase classname="tests.test_sprint176_detection_false_positive_visual_review" name="test_false_positive_visual_review_is_stratified_and_requires_manual_decisions" time="1.942" /><testcase classname="tests.test_sprint176_detection_false_positive_visual_review" name="test_false_positive_visual_review_rejects_tiles_outside_storage_root" time="0.793" /><testcase classname="tests.test_sprint177_mol_primary_focus" name="test_frontend_declares_national_scope_as_primary_operating_focus" time="0.002"><failure message="AssertionError: assert 'Atlas Workbench' in 'import {\n Activity,\n Bot,\n Database,\n Download,\n Map,\n ScanSearch,\n Settings,\n ShieldCheck,\n type L... )\n })}\n &lt;/div&gt;\n ))}\n &lt;/nav&gt;\n &lt;ItWorxSignature /&gt;\n &lt;/aside&gt;\n )\n}\n'">def test_frontend_declares_national_scope_as_primary_operating_focus() -&gt; None:
focus = (ROOT / "frontend" / "src" / "config" / "primaryFocus.ts").read_text(
encoding="utf-8"
)
project_hook = (ROOT / "frontend" / "src" / "hooks" / "useProjectWorkspace.ts").read_text(
encoding="utf-8"
)
map_source = (ROOT / "frontend" / "src" / "components" / "GeoMap.tsx").read_text(
encoding="utf-8"
)
navigation = (
ROOT
/ "frontend"
/ "src"
/ "components"
/ "shell"
/ "WorkbenchNavigation.tsx"
).read_text(encoding="utf-8")
assert "NATIONAL_WORKSPACE_PROJECT_NAME = 'Belgium and North Sea Workbench'" in focus
assert "NATIONAL_WORKSPACE_REGION = 'Belgie en Belgische Noordzee'" in focus
assert "NATIONAL_MAP_CENTER" in focus
assert "return nationalProject.id" in project_hook
assert "hasMappedAnalysisContext(data)" in project_hook
assert "dataset.dataset_type === 'raster'" in project_hook
assert "dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson'" in project_hook
assert "PRIMARY_FOCUS_AREA_NAME" not in project_hook
assert "PRIMARY_FOCUS_AREA_GEOJSON" not in project_hook
assert "center: NATIONAL_MAP_CENTER" in map_source
assert "zoom: NATIONAL_MAP_ZOOM" in map_source
assert "GeoIntel" in navigation
&gt; assert "Atlas Workbench" in navigation
E AssertionError: assert 'Atlas Workbench' in 'import {\n Activity,\n Bot,\n Database,\n Download,\n Map,\n ScanSearch,\n Settings,\n ShieldCheck,\n type L... )\n })}\n &lt;/div&gt;\n ))}\n &lt;/nav&gt;\n &lt;ItWorxSignature /&gt;\n &lt;/aside&gt;\n )\n}\n'
backend\tests\test_sprint177_mol_primary_focus.py:38: AssertionError</failure></testcase><testcase classname="tests.test_sprint177_mol_primary_focus" name="test_operator_workflows_put_mol_first_and_name_future_projects" time="0.001" /><testcase classname="tests.test_sprint177_mol_primary_focus" name="test_product_docs_record_national_scope_and_mol_regression_focus" time="0.013"><failure message="assert 'Belgium and the Belgian North Sea' in '# GeoIntel\n\n&lt;p align=&quot;center&quot;&gt;\n &lt;img src=&quot;frontend/public/geointel-icon.png&quot; width=&quot;92&quot; alt=&quot;GeoIntel logo&quot;&gt;\n&lt;/p...\n\nActieve mijlpaal: **v1.0.0 — Belgium and Belgian North Sea**.\n\nGeoIntel is een project van Jens / ITWorx.tech.\n'">def test_product_docs_record_national_scope_and_mol_regression_focus() -&gt; None:
readme = (ROOT / "README.md").read_text(encoding="utf-8")
vision = (ROOT / "docs" / "PRODUCT_VISION.md").read_text(encoding="utf-8")
&gt; assert "Belgium and the Belgian North Sea" in readme
E assert 'Belgium and the Belgian North Sea' in '# GeoIntel\n\n&lt;p align="center"&gt;\n &lt;img src="frontend/public/geointel-icon.png" width="92" alt="GeoIntel logo"&gt;\n&lt;/p...\n\nActieve mijlpaal: **v1.0.0 — Belgium and Belgian North Sea**.\n\nGeoIntel is een project van Jens / ITWorx.tech.\n'
backend\tests\test_sprint177_mol_primary_focus.py:62: AssertionError</failure></testcase><testcase classname="tests.test_sprint178_mol_operational_pack" name="test_mol_operational_registry_has_distinct_real_world_zones_and_holdouts" time="0.004" /><testcase classname="tests.test_sprint178_mol_operational_pack" name="test_mol_sample_metadata_is_persisted_in_operator_manifest_records" time="0.006" /><testcase classname="tests.test_sprint178_mol_operational_pack" name="test_real_data_matrix_propagates_project_region_and_persisted_area" time="0.001" /><testcase classname="tests.test_sprint178_mol_operational_pack" name="test_mol_operational_runner_uses_real_positive_qa_and_background_paths" time="0.001" /><testcase classname="tests.test_sprint179_detection_false_negative_visual_review" name="test_false_negative_visual_review_uses_persisted_manifest_and_requires_decisions" time="1.031" /><testcase classname="tests.test_sprint179_detection_false_negative_visual_review" name="test_false_negative_visual_review_rejects_manifest_outside_storage" time="0.937" /><testcase classname="tests.test_sprint17_export_foundation" name="test_dataset_geojson_export_persists_export_and_writes_artifact" time="0.021" /><testcase classname="tests.test_sprint17_export_foundation" name="test_dataset_geojson_export_rejects_raster_dataset" time="0.004" /><testcase classname="tests.test_sprint17_export_foundation" name="test_project_metadata_export_persists_json_summary" time="0.022" /><testcase classname="tests.test_sprint17_export_foundation" name="test_project_report_export_persists_html_artifact" time="0.024" /><testcase classname="tests.test_sprint17_export_foundation" name="test_export_content_reads_persisted_artifact" time="0.016" /><testcase classname="tests.test_sprint17_export_foundation" name="test_export_content_rejects_html_report_preview" time="0.004" /><testcase classname="tests.test_sprint17_export_foundation" name="test_export_download_path_rejects_missing_artifact" time="0.004" /><testcase classname="tests.test_sprint17_export_foundation" name="test_export_geojson_endpoint_returns_canonical_envelope" time="0.011" /><testcase classname="tests.test_sprint17_export_foundation" name="test_export_download_endpoint_returns_file_response" time="0.014" /><testcase classname="tests.test_sprint17_export_foundation" name="test_export_download_endpoint_returns_html_media_type" time="0.027" /><testcase classname="tests.test_sprint180_premium_workbench" name="test_workbench_uses_grouped_navigation_and_optional_inspector" time="0.002" /><testcase classname="tests.test_sprint180_premium_workbench" name="test_data_creation_forms_are_progressively_disclosed" time="0.003" /><testcase classname="tests.test_sprint180_premium_workbench" name="test_map_prioritizes_controls_map_and_collapsed_diagnostics" time="0.002" /><testcase classname="tests.test_sprint180_premium_workbench" name="test_ai_workspaces_prioritize_runs_and_collapse_registry_detail" time="0.002" /><testcase classname="tests.test_sprint180_premium_workbench" name="test_mobile_shell_uses_full_width_main_and_horizontal_navigation" time="0.001" /><testcase classname="tests.test_sprint181_mol_municipality_workspace" name="test_mol_provisioner_uses_official_identity_and_exact_boundary_clipping" time="0.003" /><testcase classname="tests.test_sprint181_mol_municipality_workspace" name="test_mol_provisioner_refuses_a_truncated_municipality_dataset" time="0.003" /><testcase classname="tests.test_sprint181_mol_municipality_workspace" name="test_mol_source_session_retries_only_safe_get_requests" time="0.002" /><testcase classname="tests.test_sprint181_mol_municipality_workspace" name="test_large_vector_persistence_flushes_once_without_per_feature_refresh" time="0.040" /><testcase classname="tests.test_sprint181_mol_municipality_workspace" name="test_municipality_workspace_remains_a_regression_fixture_without_frontend_priority" time="0.003" /><testcase classname="tests.test_sprint182_viewport_vector_delivery" name="test_vector_selection_contract_keeps_an_explicit_bounded_limit" time="0.001" /><testcase classname="tests.test_sprint182_viewport_vector_delivery" name="test_large_vector_delivery_uses_existing_postgis_bbox_contract" time="0.002" /><testcase classname="tests.test_sprint182_viewport_vector_delivery" name="test_map_reports_viewport_and_does_not_refit_each_slice" time="0.002" /><testcase classname="tests.test_sprint183_map_layer_source_mode" name="test_map_source_mode_keeps_database_layers_distinct_from_analysis_results" time="0.002" /><testcase classname="tests.test_sprint184_detection_qa_coverage" name="test_tile_coverage_transforms_projected_manifest_bounds_to_epsg4326" time="0.054" /><testcase classname="tests.test_sprint184_detection_qa_coverage" name="test_tile_coverage_rejects_manifest_for_different_dataset" time="0.001" /><testcase classname="tests.test_sprint184_detection_qa_coverage" name="test_coverage_filter_reports_outside_and_boundary_clipped_population" time="0.002" /><testcase classname="tests.test_sprint184_detection_qa_coverage" name="test_coverage_filter_preserves_prefiltered_database_population_count" time="0.002" /><testcase classname="tests.test_sprint184_detection_qa_coverage" name="test_iou_matching_keeps_exact_results_with_many_spatially_disjoint_references" time="0.005" /><testcase classname="tests.test_sprint185_frontend_toolchain_security" name="test_frontend_toolchain_stays_on_audited_vite_and_node_versions" time="0.003" /><testcase classname="tests.test_sprint185_mol_coverage_benchmark" name="test_mol_benchmark_accepts_coverage_safe_multi_zone_evidence" time="0.204" /><testcase classname="tests.test_sprint185_mol_coverage_benchmark" name="test_mol_benchmark_rejects_missing_coverage_zone_collapse_and_background_pressure" time="0.424" /><testcase classname="tests.test_sprint185_mol_coverage_benchmark" name="test_mol_benchmark_is_wired_into_existing_operator_pipeline" time="0.003" /><testcase classname="tests.test_sprint186_map_first_geographic_explorer" name="test_map_first_explorer_is_the_default_product_flow" time="0.005"><failure message="assert '&lt;h3&gt;Focus op de kaart &lt;small&gt;optioneel&lt;/small&gt;&lt;/h3&gt;' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_map_first_explorer_is_the_default_product_flow() -&gt; None:
app = read("frontend/src/App.tsx")
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
assert "useState&lt;WorkspaceKey&gt;('map')" in app
assert "Gebied analyseren" in workspace
&gt; assert "&lt;h3&gt;Focus op de kaart &lt;small&gt;optioneel&lt;/small&gt;&lt;/h3&gt;" in workspace
E assert '&lt;h3&gt;Focus op de kaart &lt;small&gt;optioneel&lt;/small&gt;&lt;/h3&gt;' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint186_map_first_geographic_explorer.py:19: AssertionError</failure></testcase><testcase classname="tests.test_sprint186_map_first_geographic_explorer" name="test_map_rectangle_drag_is_wired_to_automatic_analysis" time="0.005"><failure message="assert 'void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_map_rectangle_drag_is_wired_to_automatic_analysis() -&gt; None:
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
geomap = read("frontend/src/components/GeoMap.tsx")
styles = read("frontend/src/styles/app.css")
assert "onMapBboxPreview={handleMapBboxPreview}" in workspace
assert "onMapBboxSelect={handleMapBboxSelect}" in workspace
assert "void analyzeSelection(bbox, areaIdForSelection(bbox))" in workspace
assert "const areaIdForSelection" in workspace
assert "bbox &amp;&amp; selectedMapArea ? selectedMapArea.id : undefined" in workspace
&gt; assert "void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)" in workspace
E assert 'void analyzeSelection(selectedAreaBbox, selectedMapArea?.id)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint186_map_first_geographic_explorer.py:44: AssertionError</failure></testcase><testcase classname="tests.test_sprint186_map_first_geographic_explorer" name="test_dataset_detail_responses_cannot_overwrite_the_latest_map_layer" time="0.001" /><testcase classname="tests.test_sprint186_map_first_geographic_explorer" name="test_selection_contract_reports_total_intersections_separately_from_preview" time="0.002" /><testcase classname="tests.test_sprint186_map_first_geographic_explorer" name="test_official_mol_context_provisioner_uses_existing_dataset_flow" time="0.002" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_temporal_series_keeps_only_latest_snapshot_per_observation_date" time="0.001" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_temporal_migration_and_models_align" time="0.001" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_temporal_metadata_requires_an_explicit_series_and_observation_date" time="0.002" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_temporal_metadata_update_appends_provenance_version_and_is_idempotent" time="0.002" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_selection_area_aggregation_returns_hectares_without_loading_all_features" time="0.002" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_population_area_weighting_is_exact_for_full_features_and_estimated_for_partial_features" time="0.004" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_temporal_compare_returns_delta_and_canonical_change_payload" time="0.002" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_temporal_comparison_clips_cross_boundary_bbox_to_selected_area" time="0.002" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_unstable_temporal_identity_returns_clear_end_user_warning" time="0.001" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_governed_legacy_grb_snapshots_use_verified_official_feature_identity" time="0.003" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_governed_grb_object_history_fails_closed_for_unverified_identity" time="0.002" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_legacy_grb_identity_requires_complete_partition_evidence" time="0.001" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_temporal_frontend_and_official_operator_contracts_exist" time="0.004" /><testcase classname="tests.test_sprint187_temporal_map_foundation" name="test_tower_deploy_waits_for_startup_migration_before_live_smoke" time="0.001" /><testcase classname="tests.test_sprint188_official_landuse_timeseries" name="test_official_landuse_wcs_contract_is_categorical_and_deterministic" time="0.009" /><testcase classname="tests.test_sprint188_official_landuse_timeseries" name="test_official_landuse_polygonization_clips_and_preserves_provenance" time="0.199" /><testcase classname="tests.test_sprint188_official_landuse_timeseries" name="test_official_landuse_metadata_keeps_modern_series_separate" time="0.008" /><testcase classname="tests.test_sprint188_official_landuse_timeseries" name="test_official_landuse_operator_paginates_within_api_limit" time="0.007" /><testcase classname="tests.test_sprint188_official_landuse_timeseries" name="test_official_landuse_operator_is_packaged_and_readiness_checked" time="0.004" /><testcase classname="tests.test_sprint189_kempen_scope" name="test_kempen_scope_matches_official_28_municipality_policy_region" time="0.005" /><testcase classname="tests.test_sprint189_kempen_scope" name="test_scope_union_preserves_member_identity_and_policy_limitation" time="0.031" /><testcase classname="tests.test_sprint189_kempen_scope" name="test_scope_api_pagination_respects_canonical_limit" time="0.002" /><testcase classname="tests.test_sprint189_kempen_scope" name="test_kempen_scope_operator_is_packaged_and_exposed_in_map_flow" time="0.004" /><testcase classname="tests.test_sprint189_kempen_scope" name="test_project_switches_reset_scoped_state_and_prefer_the_regional_context" time="0.002" /><testcase classname="tests.test_sprint18_change_detection" name="test_change_detection_compares_persisted_vector_features" time="0.003" /><testcase classname="tests.test_sprint18_change_detection" name="test_change_detection_endpoint_returns_canonical_envelope" time="0.009" /><testcase classname="tests.test_sprint190_regional_grb_buildings" name="test_partition_assignment_is_deterministic_and_has_no_cross_member_duplicates" time="0.006" /><testcase classname="tests.test_sprint190_regional_grb_buildings" name="test_interior_buildings_skip_regional_owner_scan" time="0.003" /><testcase classname="tests.test_sprint190_regional_grb_buildings" name="test_building_partition_rejects_missing_official_source_identity" time="0.002" /><testcase classname="tests.test_sprint190_regional_grb_buildings" name="test_combined_artifact_streams_partitions_and_rejects_duplicate_source_ids" time="0.080" /><testcase classname="tests.test_sprint190_regional_grb_buildings" name="test_partition_persistence_batches_rows_and_guards_source_identity" time="0.014" /><testcase classname="tests.test_sprint190_regional_grb_buildings" name="test_storage_service_copies_large_artifacts_without_loading_them_as_upload_bytes" time="0.170" /><testcase classname="tests.test_sprint190_regional_grb_buildings" name="test_regional_operator_is_packaged_documented_and_uses_service_boundaries" time="0.003" /><testcase classname="tests.test_sprint191_regional_grb_context" name="test_layer_registry_matches_verified_official_grb_collections" time="0.013" /><testcase classname="tests.test_sprint191_regional_grb_context" name="test_layer_selection_accepts_space_and_comma_cli_forms" time="0.008" /><testcase classname="tests.test_sprint191_regional_grb_context" name="test_line_owner_uses_intersection_length_and_deterministic_tie_break" time="0.013" /><testcase classname="tests.test_sprint191_regional_grb_context" name="test_mixed_water_partition_preserves_dimensions_and_source_identity" time="0.009" /><testcase classname="tests.test_sprint191_regional_grb_context" name="test_context_partition_rejects_missing_official_source_identity" time="0.006" /><testcase classname="tests.test_sprint191_regional_grb_context" name="test_polygon_partition_assignment_does_not_duplicate_cross_boundary_parcel" time="0.009" /><testcase classname="tests.test_sprint191_regional_grb_context" name="test_combined_context_artifact_rejects_duplicate_source_identity" time="0.063" /><testcase classname="tests.test_sprint191_regional_grb_context" name="test_context_operator_is_packaged_and_uses_existing_service_boundary" time="0.002" /><testcase classname="tests.test_sprint192_regional_map_state" name="test_work_area_change_clears_stale_spatial_results_before_switching_area" time="0.002" /><testcase classname="tests.test_sprint192_regional_map_state" name="test_cancelled_selection_requests_cannot_restore_stale_results" time="0.001" /><testcase classname="tests.test_sprint192_regional_map_state" name="test_viewport_status_uses_end_user_map_language" time="0.002" /><testcase classname="tests.test_sprint193_end_user_workbench" name="test_national_workspace_is_automatic_and_map_has_one_scope_selector" time="0.003" /><testcase classname="tests.test_sprint193_end_user_workbench" name="test_primary_navigation_uses_end_user_language_and_keeps_management_secondary" time="0.001" /><testcase classname="tests.test_sprint193_end_user_workbench" name="test_technical_projects_and_metadata_are_progressively_disclosed" time="0.003" /><testcase classname="tests.test_sprint193_end_user_workbench" name="test_configured_yolo_and_active_asset_are_selected_without_hiding_limitations" time="0.002" /><testcase classname="tests.test_sprint193_end_user_workbench" name="test_visible_ai_and_quality_labels_are_end_user_facing" time="0.002" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_population_operator_filters_to_the_approved_scope" time="0.004" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_population_operator_resolves_the_persisted_scope_boundary" time="0.022" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_population_operator_resolves_checksum_verified_belgium_boundary" time="0.041" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_regional_coordinator_builds_explicit_population_and_landuse_commands" time="0.006" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_regional_forest_provenance_does_not_claim_one_municipality" time="0.005" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_regional_forest_partition_rasters_merge_without_resolution_loss" time="0.093" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_regional_timeseries_operator_is_packaged_and_release_checked" time="0.002" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_end_user_dataset_sources_are_human_readable" time="0.005" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_full_area_fast_path_requires_matching_area_and_clipped_operator_provenance" time="0.001" /><testcase classname="tests.test_sprint194_regional_timeseries" name="test_full_area_summary_uses_exact_stored_values_without_partial_intersection" time="0.002" /><testcase classname="tests.test_sprint195_guided_detection_workflow" name="test_guided_detection_reuses_canonical_raster_and_detection_apis" time="0.001" /><testcase classname="tests.test_sprint195_guided_detection_workflow" name="test_guided_detection_upload_uses_existing_dataset_persistence_boundary" time="0.001" /><testcase classname="tests.test_sprint195_guided_detection_workflow" name="test_detection_lab_hides_manifest_plumbing_and_exposes_map_first_result_flow" time="0.002" /><testcase classname="tests.test_sprint195_guided_detection_workflow" name="test_detection_qa_remains_persisted_and_primary_not_parallel" time="0.002" /><testcase classname="tests.test_sprint195_guided_detection_workflow" name="test_active_analysis_is_not_presented_as_the_underlying_source_dataset" time="0.002" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_request_is_bounded_and_uses_official_wms_contract" time="0.081" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_training_request_can_use_native_resolution_but_not_oversample_source" time="0.117" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_product_registry_exposes_only_governed_official_layers" time="0.005" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_regional_orthophoto_products_bind_provider_and_governed_scope[wallonia_latest-spw_orthophoto-0-wallonia]" time="0.253" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_regional_orthophoto_products_bind_provider_and_governed_scope[brussels_latest-urbis_orthophoto-Ortho-brussels]" time="0.217" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_request_rejects_unsafe_selection_sizes[64.0-ORTHOPHOTO_SELECTION_TOO_SMALL]" time="0.065" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_request_rejects_unsafe_selection_sizes[1200.0-ORTHOPHOTO_SELECTION_TOO_LARGE]" time="0.053" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_acquisition_persists_georeferenced_raster_and_provenance" time="0.152" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_acquisition_rejects_selection_outside_persisted_area" time="0.091" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_acquisition_reuses_fresh_exact_request_without_provider_call" time="0.112" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_provider_rejects_non_image_response" time="0.004" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_historical_orthophoto_persists_temporal_product_provenance" time="0.148" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_persisted_orthophoto_renders_browser_png" time="0.016" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_endpoint_returns_canonical_job_envelope" time="0.027" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_orthophoto_product_endpoint_returns_canonical_envelope" time="0.013" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_frontend_connects_map_selection_to_existing_detection_and_qa_flows" time="0.003" /><testcase classname="tests.test_sprint196_map_orthophoto_analysis" name="test_unraid_runtime_exposes_bounded_orthophoto_settings" time="0.001" /><testcase classname="tests.test_sprint197_accuracy_review_loop" name="test_detection_review_model_and_migration_are_aligned" time="0.001" /><testcase classname="tests.test_sprint197_accuracy_review_loop" name="test_detection_review_queue_persists_only_valid_operator_decisions" time="0.002" /><testcase classname="tests.test_sprint197_accuracy_review_loop" name="test_detection_review_endpoints_use_canonical_envelopes" time="0.016" /><testcase classname="tests.test_sprint197_accuracy_review_loop" name="test_map_detection_qa_uses_documented_footprint_threshold_and_honest_labels" time="0.003" /><testcase classname="tests.test_sprint198_detection_review_completion" name="test_false_negative_validator_exports_only_explicit_confirmed_misses" time="0.002" /><testcase classname="tests.test_sprint198_detection_review_completion" name="test_false_negative_validator_fails_closed_for_incomplete_or_invalid_reviews" time="0.002" /><testcase classname="tests.test_sprint198_detection_review_completion" name="test_readiness_compiles_false_negative_review_validator" time="0.001" /><testcase classname="tests.test_sprint198_detection_review_completion" name="test_map_explains_strict_and_diagnostic_detection_matching" time="0.001" /><testcase classname="tests.test_sprint199_reviewed_accuracy_expansion" name="test_reviewed_accuracy_expansion_is_training_only_and_holdout_separated" time="0.004" /><testcase classname="tests.test_sprint199_reviewed_accuracy_expansion" name="test_reviewed_accuracy_expansion_centers_are_unique" time="0.003" /><testcase classname="tests.test_sprint19_map_workbench" name="test_geomap_exposes_v1_layer_controls_and_feature_inspection_contract" time="0.001" /><testcase classname="tests.test_sprint19_map_workbench" name="test_app_wires_map_workbench_component" time="0.002" /><testcase classname="tests.test_sprint200_temporal_explorer_handoff" name="test_evolution_mode_falls_back_to_an_available_series" time="0.002" /><testcase classname="tests.test_sprint200_temporal_explorer_handoff" name="test_evolution_theme_catalog_distinguishes_history_from_current_only_data" time="0.003"><failure message="assert 'Boolean(dataset || onDemandProduct)' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_evolution_theme_catalog_distinguishes_history_from_current_only_data() -&gt; None:
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
assert "analysisMode === 'current'" in workspace
&gt; assert "Boolean(dataset || onDemandProduct)" in workspace
E assert 'Boolean(dataset || onDemandProduct)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint200_temporal_explorer_handoff.py:25: AssertionError</failure></testcase><testcase classname="tests.test_sprint200_temporal_explorer_handoff" name="test_regional_time_series_remain_real_persisted_sources" time="0.001" /><testcase classname="tests.test_sprint201_semantic_selection_metrics" name="test_building_selection_promotes_footprint_area_and_retains_object_count" time="0.001" /><testcase classname="tests.test_sprint201_semantic_selection_metrics" name="test_water_selection_reports_surface_length_and_honest_volume_limitation" time="0.002" /><testcase classname="tests.test_sprint201_semantic_selection_metrics" name="test_population_keeps_configured_metric_and_adds_sector_count" time="0.001" /><testcase classname="tests.test_sprint201_semantic_selection_metrics" name="test_station_measurement_uses_numeric_mean_without_area_extrapolation" time="0.001" /><testcase classname="tests.test_sprint201_semantic_selection_metrics" name="test_regional_historical_polygons_do_not_emit_irrelevant_line_metrics" time="0.002" /><testcase classname="tests.test_sprint201_semantic_selection_metrics" name="test_future_regional_imports_persist_semantic_aggregation_configuration" time="0.002" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_ollama_model_catalog_reports_only_installed_models" time="0.004" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_assistant_status_endpoint_uses_canonical_envelope" time="0.011" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_rejects_model_that_is_not_installed" time="0.004" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_recognizes_dutch_historical_questions[Hoe evolueerden bevolking en bosoppervlakte?]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_recognizes_dutch_historical_questions[Toon de historische ontwikkeling van water.]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_recognizes_dutch_historical_questions[Welke trend zien we sinds 2013?]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_limits_explicit_cross_domain_question_to_requested_themes" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_theme_selection_preserves_general_overviews[Hoe evolueerden bevolking en bosoppervlakte?-expected0]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_theme_selection_preserves_general_overviews[Toon wegen, waterlopen en overstromingen.-expected1]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_theme_selection_preserves_general_overviews[Welke bodemtypes en landbouwteelten komen voor?-expected2]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_theme_selection_preserves_general_overviews[Geef bodemdetails en perceeloppervlaktes voor Mol.-expected3]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_theme_selection_preserves_general_overviews[Vergelijk bevolkingsontwikkeling en voorzieningenniveau.-expected4]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_theme_selection_preserves_general_overviews[Vat de belangrijkste gebiedsmetingen samen.-None]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_theme_selection_preserves_general_overviews[Welke offici\xeble bronnen zijn beschikbaar?-None]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_discloses_estimated_population_values" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_never_labels_area_weighted_population_as_official_count" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_does_not_add_irrelevant_estimate_disclosure" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_rounds_prompt_values_by_semantic_unit[36782.6497-inwoners-36783]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_rounds_prompt_values_by_semantic_unit[3638.4167-ha-3638.42]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_rounds_prompt_values_by_semantic_unit[31.76431-%-31.76]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_rounds_prompt_values_by_semantic_unit[0.680612-score-0.6806]" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_omits_supporting_object_count_from_richer_model_context" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_keeps_object_count_when_it_is_the_only_metric" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_normalizes_model_markdown_for_plain_text_renderer" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_sends_grounded_context_without_thinking_trace" time="0.006" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_geo_assistant_rejects_truncated_ollama_answer" time="0.005" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_unraid_ollama_context_window_is_configurable" time="0.002" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_temporal_comparison_preserves_all_compatible_semantic_metrics" time="0.001" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_landuse_operator_exposes_more_honest_historical_themes" time="0.002" /><testcase classname="tests.test_sprint202_temporal_metrics_and_ollama" name="test_frontend_exposes_source_inventory_timeline_and_ai_window" time="0.004" /><testcase classname="tests.test_sprint203_waterinfo_history" name="test_waterinfo_station_discovery_filters_exact_area_and_uses_annual_group" time="0.004" /><testcase classname="tests.test_sprint203_waterinfo_history" name="test_waterinfo_annual_values_reject_invalid_sentinel_and_keep_real_zero" time="0.004" /><testcase classname="tests.test_sprint203_waterinfo_history" name="test_waterinfo_snapshot_and_series_keep_station_identity_and_honest_metric" time="0.004" /><testcase classname="tests.test_sprint203_waterinfo_history" name="test_waterinfo_operator_is_packaged_and_readiness_checked" time="0.002" /><testcase classname="tests.test_sprint203_waterinfo_history" name="test_frontend_loads_all_dataset_pages_after_temporal_import_expansion" time="0.001" /><testcase classname="tests.test_sprint203_waterinfo_history" name="test_source_inventory_remains_full_width_after_premium_desktop_rules" time="0.001" /><testcase classname="tests.test_sprint204_bwk_natura2000" name="test_official_bwk_contract_and_class_labels_are_fixed" time="0.054" /><testcase classname="tests.test_sprint204_bwk_natura2000" name="test_wfs_pagination_follows_server_next_links" time="0.054" /><testcase classname="tests.test_sprint204_bwk_natura2000" name="test_wfs_page_limit_without_next_link_uses_controlled_start_index_fallback" time="0.047" /><testcase classname="tests.test_sprint204_bwk_natura2000" name="test_feature_is_clipped_in_lambert72_and_keeps_bwk_habitat_provenance" time="0.047" /><testcase classname="tests.test_sprint204_bwk_natura2000" name="test_uncertain_habitat_status_is_not_presented_as_confirmed_habitat" time="0.040" /><testcase classname="tests.test_sprint204_bwk_natura2000" name="test_nature_value_summary_returns_separate_official_classes_and_habitat_metrics" time="0.046" /><testcase classname="tests.test_sprint204_bwk_natura2000" name="test_operator_is_packaged_readiness_checked_and_wired_to_map" time="0.002" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_only_definitive_2008_through_2025_archives_are_allowed" time="0.049" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_canonical_api_collection_reader_respects_200_item_limit_and_paginates" time="0.042" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_archive_requires_exactly_one_safe_geopackage" time="0.085" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_crop_code_list_preserves_year_specific_titles_and_reports_conflicts" time="0.052" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_persisted_first_import_group_keys_remain_query_compatible" time="0.001" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_features_are_exactly_clipped_in_lambert72_and_keep_source_fields" time="0.054" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_duplicate_annual_source_identity_fails_closed" time="0.050" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_agriculture_summary_returns_grouped_hectares_without_parcel_lineage_claim" time="0.058" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_operator_uses_canonical_upload_and_is_packaged_for_runtime" time="0.004" /><testcase classname="tests.test_sprint205_agricultural_parcel_history" name="test_upload_contract_is_annual_definitive_and_scope_specific" time="0.057" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_registry_is_governed_and_semantically_explicit" time="0.001" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_request_uses_bounded_official_wcs_scaling" time="0.089" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_request_rejects_unsafe_size_and_resolution" time="0.111" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_large_scope_is_bounded_into_mosaicable_wcs_tiles" time="0.147" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_mosaic_harmonizes_only_bounded_wcs_edge_grid_rounding" time="0.051" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_multipart_geotiff_is_extracted_and_invalid_response_fails_closed" time="0.008" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_fetch_sends_explicit_accept_header_required_by_official_wcs" time="0.008" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_acquisition_clips_validates_and_persists_via_dataset_service" time="0.214" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_terrain_analysis_returns_governed_elevation_relief_and_slope" time="0.282" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_partitioned_terrain_analysis_is_exact_across_municipality_boundaries" time="0.138" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_terrain_analysis_rejects_non_dhmv_raster" time="0.056" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_terrain_renderer_returns_browser_png" time="0.044" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_endpoints_use_canonical_envelopes" time="0.384" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_frontend_and_runtime_expose_dhmv_workflow" time="0.009" /><testcase classname="tests.test_sprint205_dhmv_terrain" name="test_dhmv_operator_is_packaged_and_release_checked" time="0.004" /><testcase classname="tests.test_sprint206_buildings_addresses_register" name="test_official_collection_pagination_retains_checksummed_pages" time="0.143" /><testcase classname="tests.test_sprint206_buildings_addresses_register" name="test_buildings_are_clipped_in_lambert72_and_keep_lifecycle_status" time="0.093" /><testcase classname="tests.test_sprint206_buildings_addresses_register" name="test_area_evidence_paths_are_isolated_per_municipality" time="0.100" /><testcase classname="tests.test_sprint206_buildings_addresses_register" name="test_official_unit_relation_and_exact_address_position_are_aggregated_without_labels" time="0.091" /><testcase classname="tests.test_sprint206_buildings_addresses_register" name="test_ambiguous_unit_position_is_reported_and_never_forced" time="0.115" /><testcase classname="tests.test_sprint206_buildings_addresses_register" name="test_grb_reconciliation_distinguishes_exact_and_unmatched_geometry" time="0.078" /><testcase classname="tests.test_sprint206_buildings_addresses_register" name="test_status_and_relation_metrics_use_filtered_server_owned_aggregations" time="0.117" /><testcase classname="tests.test_sprint206_buildings_addresses_register" name="test_filtered_feature_count_and_numeric_relations_validate_as_selection_summary" time="0.101" /><testcase classname="tests.test_sprint206_buildings_addresses_register" name="test_operator_is_canonical_packaged_and_mol_scoped_in_explorer" time="0.005" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_registry_is_complete_and_semantically_honest" time="0.002" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_request_is_bounded_and_rejects_arbitrary_products" time="0.124" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_tiles_stay_below_the_observed_vmm_coverage_limit" time="0.072" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_mosaic_harmonizes_only_bounded_wcs_edge_grid_rounding" time="0.035" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_xml_provider_error_is_exposed_without_losing_the_canonical_error" time="0.001" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_normalization_converts_centimetres_and_clips_zero_values" time="0.118" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_analysis_reports_scenario_metrics_without_claiming_waterbody_volume" time="0.084" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_partitioned_flood_analysis_is_exact_across_municipality_boundaries" time="0.106" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_renderer_returns_transparent_png" time="0.012" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_api_uses_canonical_envelopes" time="0.167" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_geo_assistant_receives_scenario_bound_flood_metrics" time="0.026" /><testcase classname="tests.test_sprint208_vmm_flood_hazard" name="test_flood_hazard_runtime_contract_is_packaged" time="0.005" /><testcase classname="tests.test_sprint209_regional_historical_landuse" name="test_member_boundaries_require_every_approved_municipality" time="0.037" /><testcase classname="tests.test_sprint209_regional_historical_landuse" name="test_partition_retains_exact_source_response_and_clips_to_municipality" time="0.056" /><testcase classname="tests.test_sprint209_regional_historical_landuse" name="test_regional_snapshot_assembles_unique_partition_features" time="0.058" /><testcase classname="tests.test_sprint209_regional_historical_landuse" name="test_upload_contract_is_regional_temporal_and_partition_audited" time="0.019" /><testcase classname="tests.test_sprint209_regional_historical_landuse" name="test_regional_historical_operator_is_packaged_and_release_checked" time="0.003" /><testcase classname="tests.test_sprint20_area_map_overlay" name="test_area_serializer_exposes_geojson_geometry_for_map_overlay" time="0.002" /><testcase classname="tests.test_sprint20_area_map_overlay" name="test_frontend_wires_selected_area_map_overlay_contract" time="0.004" /><testcase classname="tests.test_sprint210_regional_bwk_natura2000" name="test_partition_retains_gzipped_source_and_applies_member_context" time="0.106" /><testcase classname="tests.test_sprint210_regional_bwk_natura2000" name="test_snapshot_assembles_unique_partitions_and_metrics" time="0.051" /><testcase classname="tests.test_sprint210_regional_bwk_natura2000" name="test_upload_contract_is_regional_partitioned_and_canonical" time="0.008" /><testcase classname="tests.test_sprint210_regional_bwk_natura2000" name="test_regional_operator_is_packaged_release_checked_and_exact_area_is_preferred" time="0.003" /><testcase classname="tests.test_sprint210_regional_bwk_natura2000" name="test_regional_bwk_uses_only_canonical_preclipped_municipality_partitions" time="0.001" /><testcase classname="tests.test_sprint211_regional_flood_hazards" name="test_regional_flood_operator_resolves_products_and_members" time="0.004" /><testcase classname="tests.test_sprint211_regional_flood_hazards" name="test_regional_flood_operator_rejects_unknown_scope_inputs" time="0.003" /><testcase classname="tests.test_sprint211_regional_flood_hazards" name="test_regional_flood_operator_dry_run_uses_canonical_registry" time="0.004" /><testcase classname="tests.test_sprint211_regional_flood_hazards" name="test_regional_flood_operator_calls_acquisition_and_selection" time="0.003" /><testcase classname="tests.test_sprint211_regional_flood_hazards" name="test_regional_flood_operator_is_packaged" time="0.002" /><testcase classname="tests.test_sprint212_platform_source_portfolio" name="test_source_portfolio_covers_the_complete_platform" time="0.001" /><testcase classname="tests.test_sprint212_platform_source_portfolio" name="test_source_inventory_is_compact_honest_and_domain_driven" time="0.001" /><testcase classname="tests.test_sprint212_platform_source_portfolio" name="test_roadmap_prioritizes_cross_domain_profile_before_more_water_layers" time="0.001" /><testcase classname="tests.test_sprint212_platform_source_portfolio" name="test_portfolio_pass_does_not_add_provider_fetch_or_persistence_code" time="0.001" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_registry_contains_governed_policy_products_including_forest_and_agriculture" time="0.001" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_request_is_bounded_allowlisted_and_uses_native_wcs_resolution" time="0.078" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_complete_kempen_scope_fits_the_tiled_thematic_guardrails" time="0.084" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_coverage_scope_only_labels_named_municipality_areas_as_municipality" time="0.001" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_wcs_fetch_retries_an_incomplete_tile_without_accepting_partial_bytes" time="0.004" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_wcs_fetch_fails_closed_after_bounded_incomplete_tile_retries" time="0.005" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_binary_and_normalized_products_fail_closed_on_invalid_values" time="0.002" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_acquisition_clips_validates_and_delegates_persistence" time="0.136" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_binary_area_analysis_returns_hectares_and_share" time="0.127" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_population_analysis_sums_one_hectare_density_cells_without_claiming_current_counts" time="0.104" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_assistant_context_receives_persisted_thematic_metrics" time="0.104" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_assistant_context_skips_unrequested_expensive_themes" time="0.058" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_index_renderer_returns_browser_png" time="0.034" /><testcase classname="tests.test_sprint213_thematic_rasters" name="test_api_uses_canonical_envelopes" time="0.131" /><testcase classname="tests.test_sprint214_dov_soil_map" name="test_wfs_pagination_is_bounded_complete_and_deterministic" time="0.084" /><testcase classname="tests.test_sprint214_dov_soil_map" name="test_soil_feature_is_exactly_clipped_and_keeps_governed_properties" time="0.100" /><testcase classname="tests.test_sprint214_dov_soil_map" name="test_soil_map_uses_existing_semantic_selection_architecture" time="0.001" /><testcase classname="tests.test_sprint214_dov_soil_map" name="test_soil_operator_contract_has_no_direct_persistence_and_is_packaged" time="0.005" /><testcase classname="tests.test_sprint214_dov_soil_map" name="test_incomplete_wfs_pagination_fails_closed" time="0.091" /><testcase classname="tests.test_sprint217_regional_dov_soil_map" name="test_normalized_regional_features_keep_member_identity_and_unique_ids" time="0.116" /><testcase classname="tests.test_sprint217_regional_dov_soil_map" name="test_partition_retains_gzipped_source_and_is_checksum_reusable" time="0.075" /><testcase classname="tests.test_sprint217_regional_dov_soil_map" name="test_snapshot_assembles_all_partitions_with_governed_area_metrics" time="0.056" /><testcase classname="tests.test_sprint217_regional_dov_soil_map" name="test_upload_contract_is_regional_historical_and_canonical" time="0.013" /><testcase classname="tests.test_sprint217_regional_dov_soil_map" name="test_regional_operator_is_packaged_release_checked_and_keeps_exact_intersections" time="0.002" /><testcase classname="tests.test_sprint218_regional_dhmv" name="test_regional_dhmv_operator_resolves_products_and_members" time="0.006" /><testcase classname="tests.test_sprint218_regional_dhmv" name="test_regional_dhmv_operator_rejects_unknown_scope_inputs" time="0.004" /><testcase classname="tests.test_sprint218_regional_dhmv" name="test_regional_dhmv_operator_dry_run_uses_canonical_registry" time="0.006" /><testcase classname="tests.test_sprint218_regional_dhmv" name="test_regional_dhmv_operator_calls_acquisition_and_selection" time="0.008" /><testcase classname="tests.test_sprint218_regional_dhmv" name="test_regional_dhmv_operator_rejects_missing_water_limitations" time="0.008" /><testcase classname="tests.test_sprint218_regional_dhmv" name="test_regional_dhmv_operator_is_packaged" time="0.003" /><testcase classname="tests.test_sprint219_regional_raster_explorer" name="test_partitioned_raster_routes_are_canonical_and_documented" time="0.002" /><testcase classname="tests.test_sprint219_regional_raster_explorer" name="test_regional_map_uses_logical_partition_groups_and_exact_analysis" time="0.006"><failure message="assert 'de juiste gemeentelijke rasters worden automatisch gecombineerd' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_regional_map_uses_logical_partition_groups_and_exact_analysis() -&gt; None:
app = (ROOT / "frontend/src/App.tsx").read_text(encoding="utf-8")
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
api = (ROOT / "frontend/src/services/api/datasets.ts").read_text(encoding="utf-8")
assert "regionalScopeSelected" in workspace
assert "rasterPartitionsForDataset" in workspace
assert "imageOverlays={activeImageOverlays}" in workspace
&gt; assert "de juiste gemeentelijke rasters worden automatisch gecombineerd" in workspace
E assert 'de juiste gemeentelijke rasters worden automatisch gecombineerd' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint219_regional_raster_explorer.py:30: AssertionError</failure></testcase><testcase classname="tests.test_sprint219_regional_raster_explorer" name="test_maplibre_supports_multiple_persisted_raster_overlays" time="0.001" /><testcase classname="tests.test_sprint219_regional_raster_explorer" name="test_regional_analysis_does_not_create_an_authoritative_mosaic" time="0.001" /><testcase classname="tests.test_sprint21_demo_workflow_smoke" name="test_demo_workflow_browser_smoke_script_checks_connected_v1_state" time="0.001" /><testcase classname="tests.test_sprint21_demo_workflow_smoke" name="test_frontend_demo_action_loads_candidate_dataset_details_for_map_layer" time="0.005" /><testcase classname="tests.test_sprint221_source_freshness_audit" name="test_source_freshness_distinguishes_snapshot_annual_edition_and_local_sources" time="0.012" /><testcase classname="tests.test_sprint221_source_freshness_audit" name="test_source_freshness_flags_local_version_and_storage_integrity" time="0.006" /><testcase classname="tests.test_sprint221_source_freshness_audit" name="test_source_freshness_requires_dataset_version_and_marks_temporal_series" time="0.002" /><testcase classname="tests.test_sprint221_source_freshness_audit" name="test_rolling_orthophoto_prefers_explicit_current_snapshot_over_historical_observation" time="0.002" /><testcase classname="tests.test_sprint221_source_freshness_audit" name="test_orthophoto_freshness_prefers_governed_official_edition_over_rolling_marker" time="0.006" /><testcase classname="tests.test_sprint221_source_freshness_audit" name="test_spatial_partitions_do_not_become_a_false_historical_series" time="0.001" /><testcase classname="tests.test_sprint221_source_freshness_audit" name="test_source_freshness_route_returns_canonical_envelope" time="0.002" /><testcase classname="tests.test_sprint221_source_freshness_audit" name="test_source_freshness_operator_and_ui_contract_are_read_only" time="0.005" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_catalog_probe_reads_real_editions_and_compares_only_compatible_versions" time="0.039" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_catalog_probe_isolates_provider_failure" time="0.015" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_catalog_probe_rejects_metadata_redirect_outside_allowlist" time="0.016" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_catalog_probe_enforces_response_limit_without_reading_external_data" time="0.017" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_catalog_probe_revalidates_metadata_host_after_redirect" time="0.012" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_catalog_probe_cache_is_explicitly_bypassable" time="0.020" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_catalog_probe_can_be_disabled_without_network_access" time="0.006" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_catalog_probe_route_returns_canonical_envelope" time="0.007" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_catalog_probe_remains_explicit_and_never_imports_provider_data" time="0.003" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_alz_catalog_probe_rejects_release_page_redirect_outside_allowlist" time="0.012" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_alz_catalog_probe_rejects_untrusted_download_host" time="0.011" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_alz_catalog_probe_degrades_without_current_snapshot_but_keeps_definitive_evidence" time="0.010" /><testcase classname="tests.test_sprint222_source_catalog_probes" name="test_alz_catalog_probe_compares_latest_definitive_year_not_latest_import_order" time="0.010" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_refresh_plan_marks_all_older_immutable_snapshots_as_update_available" time="0.002" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_refresh_plan_status_matrix[rows0-catalog0-current]" time="0.002" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_refresh_plan_status_matrix[rows1-catalog1-not_loaded]" time="0.002" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_refresh_plan_status_matrix[rows2-catalog2-remote_unavailable]" time="0.001" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_refresh_plan_status_matrix[rows3-catalog3-review_required]" time="0.002" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_refresh_plan_rejects_an_unapproved_scope" time="0.001" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_refresh_plan_route_uses_the_canonical_envelope" time="0.001" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_operator_requires_exact_edition_and_plan_hash" time="0.004" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_operator_validates_every_staged_artifact_and_partition" time="0.062" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_operator_builds_only_allowlisted_local_subprocess_commands" time="0.006" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_refresh_api_and_frontend_remain_explicit_only" time="0.002" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_map_theme_ranking_prefers_newer_observation_over_feature_count" time="0.003" /><testcase classname="tests.test_sprint223_governed_grb_refresh" name="test_map_workspace_restores_theme_from_selected_dataset" time="0.003" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_parser_selects_latest_population_release_and_redegeo_variant" time="0.003" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_probe_compares_latest_local_year_not_latest_import_order" time="0.009" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_parser_rejects_untrusted_distribution_host" time="0.005" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_parser_requires_new_2025_txt_distribution" time="0.007" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_parser_rejects_conflicting_period_evidence" time="0.003" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_parser_rejects_duplicate_latest_release" time="0.004" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_parser_requires_cc_by_4_license" time="0.004" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_probe_revalidates_catalog_url_after_redirect" time="0.014" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_probe_rejects_noncanonical_configured_catalog_before_network" time="0.006" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_probe_uses_separate_bounded_catalog_limit" time="0.008" /><testcase classname="tests.test_sprint226_statbel_catalog_probe" name="test_statbel_probe_does_not_fetch_catalog_distributions" time="0.009" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_reconciles_spatial_and_unlocated_population" time="0.029" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_supports_the_complete_national_scope" time="0.007" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_accepts_real_archive_member_without_repeated_crs_token" time="0.016" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_national_preflight_rejects_an_unscoped_baseline" time="0.010" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_reports_bounded_topology_repairs" time="0.036" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_accepts_official_slash_geometry_date" time="0.018" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_population_contract_breaks[population_kwargs0-STATBEL_POPULATION_SCHEMA_MISMATCH]" time="0.008" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_population_contract_breaks[population_kwargs1-STATBEL_POPULATION_DUPLICATE_SECTOR]" time="0.007" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_population_contract_breaks[population_kwargs2-STATBEL_POPULATION_TOTAL_REJECTED]" time="0.007" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_population_contract_breaks[population_kwargs3-STATBEL_JOIN_GEOMETRY_MISSING]" time="0.008" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_population_contract_breaks[population_kwargs4-STATBEL_ARCHIVE_MEMBER_REJECTED]" time="0.008" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_geometry_contract_breaks[geometry_kwargs0-STATBEL_GEOMETRY_CRS_REJECTED]" time="0.008" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_geometry_contract_breaks[geometry_kwargs1-STATBEL_GEOMETRY_DATE_MISMATCH]" time="0.007" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_geometry_contract_breaks[geometry_kwargs2-STATBEL_GEOMETRY_DATE_MISMATCH]" time="0.007" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_geometry_contract_breaks[geometry_kwargs3-STATBEL_JOIN_MUNICIPALITY_MISMATCH]" time="0.009" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_rejects_excessive_population_change" time="0.030" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_operator_stages_raw_artifacts_manifest_and_accounted_snapshot" time="0.154" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_population_rows_no_longer_silently_skip_invalid_values" time="0.001" /><testcase classname="tests.test_sprint227_statbel_population_preflight" name="test_preflight_is_packaged_and_release_checked" time="0.002" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_future_release_config_is_strict_and_previous_snapshot_is_discovered" time="0.006" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_population_workspace_pagination_reads_every_dataset" time="0.002" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_population_archive_download_is_bounded_before_streaming" time="0.001" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_catalog_decision_orders_remote_and_local_editions[2026-2025-update_available]" time="0.004" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_catalog_decision_orders_remote_and_local_editions[2025-2025-current]" time="0.003" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_catalog_decision_orders_remote_and_local_editions[2026-None-not_loaded]" time="0.004" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_catalog_decision_orders_remote_and_local_editions[2025-2026-blocked_remote_older]" time="0.004" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_operator_commands_separate_staging_from_apply" time="0.005" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_staged_plan_and_review_require_exact_hashes" time="0.127" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_tampered_source_or_review_is_rejected" time="0.159" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_catalog_drift_and_outside_evidence_path_are_rejected" time="0.005" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_apply_flow_requires_approved_review_and_writes_evidence" time="0.105" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_current_release_cannot_be_staged" time="0.005" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_plan_action_is_read_only_for_current_release" time="0.004" /><testcase classname="tests.test_sprint228_statbel_release_management" name="test_release_manager_is_packaged_and_release_checked" time="0.001" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_future_release_config_accepts_only_one_exact_official_edition" time="0.001" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_future_archive_requires_one_selected_year" time="0.001" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_agriculture_workspace_pagination_is_complete_and_total_consistent" time="0.006" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_archive_download_rejects_oversize_before_streaming" time="0.005" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_archive_rejects_extracted_size_over_limit" time="0.018" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_catalog_decision_orders_only_definitive_editions[2026-v3-2025-definitive-update_available]" time="0.004" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_catalog_decision_orders_only_definitive_editions[2025-v3-2025-definitive-current]" time="0.004" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_catalog_decision_orders_only_definitive_editions[2026-v3-None-not_loaded]" time="0.004" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_catalog_decision_orders_only_definitive_editions[2025-v3-2026-definitive-blocked_remote_older]" time="0.004" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_catalog_decision_keeps_provisional_snapshot_non_importable" time="0.003" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_stage_and_apply_commands_are_separate_and_local_only" time="0.005" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_staged_plan_binds_source_schema_codelist_scope_and_baseline" time="0.090" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_modified_staged_bytes_invalidate_plan" time="0.063" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_plan_and_review_paths_must_remain_governed" time="0.007" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_review_requires_named_approval_and_exact_plan_hash" time="0.031" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_review_tampering_and_catalog_drift_fail_closed" time="0.093" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_catalog_check_timestamp_does_not_create_false_drift" time="0.004" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_current_edition_cannot_stage_or_write_evidence" time="0.005" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_full_apply_requires_review_and_verifies_final_dataset" time="0.091" /><testcase classname="tests.test_sprint229_alz_release_management" name="test_manager_is_packaged_and_never_writes_vector_features_directly" time="0.002" /><testcase classname="tests.test_sprint22_workbench_status_strip" name="test_frontend_wires_v1_workbench_status_strip" time="0.003" /><testcase classname="tests.test_sprint22_workbench_status_strip" name="test_workbench_status_strip_summarizes_existing_v1_loop_only" time="0.001" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_live_contract_shape_blocks_non_comparable_legacy_local_version" time="0.048" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_release_ordering_requires_comparable_official_editions[None-2025.04-not_loaded-True]" time="0.043" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_release_ordering_requires_comparable_official_editions[2025.04-2025.04-current-False]" time="0.058" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_release_ordering_requires_comparable_official_editions[2024.01-2025.04-update_available-True]" time="0.039" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_release_ordering_requires_comparable_official_editions[2026.01-2025.04-blocked_remote_older-False]" time="0.042" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_flight_year_must_match_remote_release_year" time="0.061" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_capabilities_hash_drift_fails_closed" time="0.001" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_flight_day_capability_requirements_fail_closed[\n &lt;WMS_Capabilities version=&quot;1.3.0&quot; xmlns=&quot;http://www.opengis.net/wms&quot;\n xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;\n &lt;Capability&gt;\n &lt;Request&gt;&lt;GetFeatureInfo&gt;&lt;Format&gt;application/geo+json&lt;/Format&gt;&lt;/GetFeatureInfo&gt;&lt;/Request&gt;\n &lt;Layer&gt;\n &lt;CRS&gt;EPSG:31370&lt;/CRS&gt;\n &lt;BoundingBox CRS=&quot;EPSG:31370&quot; minx=&quot;22000&quot; miny=&quot;150000&quot; maxx=&quot;259000&quot; maxy=&quot;245000&quot; /&gt;\n &lt;Layer queryable=&quot;0&quot;&gt;&lt;Name&gt;Ortho&lt;/Name&gt;&lt;MetadataURL&gt;&lt;OnlineResource xlink:href=&quot;https://metadata.vlaanderen.be/srv/dut/csw?request=GetRecordById&amp;amp;service=CSW&amp;amp;id=f5304d6d-0dd4-43fd-a726-427af31e8d61&quot; /&gt;&lt;/MetadataURL&gt;&lt;/Layer&gt;\n &lt;Layer queryable=&quot;0&quot;&gt;&lt;Name&gt;Vliegdagcontour&lt;/Name&gt;&lt;MetadataURL&gt;&lt;OnlineResource xlink:href=&quot;https://metadata.vlaanderen.be/srv/dut/csw?request=GetRecordById&amp;amp;service=CSW&amp;amp;id=f5304d6d-0dd4-43fd-a726-427af31e8d61&quot; /&gt;&lt;/MetadataURL&gt;&lt;/Layer&gt;\n &lt;/Layer&gt;\n &lt;/Capability&gt;\n &lt;/WMS_Capabilities&gt;\n -not queryable]" time="0.001" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_flight_day_capability_requirements_fail_closed[\n &lt;WMS_Capabilities version=&quot;1.3.0&quot; xmlns=&quot;http://www.opengis.net/wms&quot;\n xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;\n &lt;Capability&gt;\n &lt;Request&gt;&lt;GetFeatureInfo&gt;&lt;Format&gt;text/plain&lt;/Format&gt;&lt;/GetFeatureInfo&gt;&lt;/Request&gt;\n &lt;Layer&gt;\n &lt;CRS&gt;EPSG:31370&lt;/CRS&gt;\n &lt;BoundingBox CRS=&quot;EPSG:31370&quot; minx=&quot;22000&quot; miny=&quot;150000&quot; maxx=&quot;259000&quot; maxy=&quot;245000&quot; /&gt;\n &lt;Layer queryable=&quot;0&quot;&gt;&lt;Name&gt;Ortho&lt;/Name&gt;&lt;MetadataURL&gt;&lt;OnlineResource xlink:href=&quot;https://metadata.vlaanderen.be/srv/dut/csw?request=GetRecordById&amp;amp;service=CSW&amp;amp;id=f5304d6d-0dd4-43fd-a726-427af31e8d61&quot; /&gt;&lt;/MetadataURL&gt;&lt;/Layer&gt;\n &lt;Layer queryable=&quot;1&quot;&gt;&lt;Name&gt;Vliegdagcontour&lt;/Name&gt;&lt;MetadataURL&gt;&lt;OnlineResource xlink:href=&quot;https://metadata.vlaanderen.be/srv/dut/csw?request=GetRecordById&amp;amp;service=CSW&amp;amp;id=f5304d6d-0dd4-43fd-a726-427af31e8d61&quot; /&gt;&lt;/MetadataURL&gt;&lt;/Layer&gt;\n &lt;/Layer&gt;\n &lt;/Capability&gt;\n &lt;/WMS_Capabilities&gt;\n -does not advertise GeoJSON]" time="0.001" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_missing_flight_day_coverage_fails_closed" time="0.041" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_coverage_domain_identity_and_resolution_fail_closed[\n &lt;wcs:CoverageDescriptions xmlns:wcs=&quot;http://www.opengis.net/wcs/2.0&quot;\n xmlns:gml=&quot;http://www.opengis.net/gml/3.2&quot; xmlns:gmlcov=&quot;http://www.opengis.net/gmlcov/1.0&quot;\n xmlns:swe=&quot;http://www.opengis.net/swe/2.0&quot;&gt;\n &lt;wcs:CoverageDescription&gt;\n &lt;gml:boundedBy&gt;&lt;gml:Envelope srsName=&quot;http://www.opengis.net/def/crs/EPSG/0/31370&quot;&gt;\n &lt;gml:lowerCorner&gt;21375 152250&lt;/gml:lowerCorner&gt;&lt;gml:upperCorner&gt;259500 244875&lt;/gml:upperCorner&gt;\n &lt;/gml:Envelope&gt;&lt;/gml:boundedBy&gt;\n &lt;wcs:CoverageId&gt;Other&lt;/wcs:CoverageId&gt;\n &lt;gml:domainSet&gt;&lt;gml:RectifiedGrid dimension=&quot;2&quot;&gt;\n &lt;gml:offsetVector&gt;0.15 0&lt;/gml:offsetVector&gt;&lt;gml:offsetVector&gt;0 -0.15&lt;/gml:offsetVector&gt;\n &lt;/gml:RectifiedGrid&gt;&lt;/gml:domainSet&gt;\n &lt;gmlcov:rangeType&gt;&lt;swe:DataRecord&gt;\n &lt;swe:field name=&quot;Band_1&quot;/&gt;&lt;swe:field name=&quot;Band_2&quot;/&gt;&lt;swe:field name=&quot;Band_3&quot;/&gt;\n &lt;/swe:DataRecord&gt;&lt;/gmlcov:rangeType&gt;\n &lt;wcs:ServiceParameters&gt;&lt;wcs:CoverageSubtype&gt;RectifiedGridCoverage&lt;/wcs:CoverageSubtype&gt;\n &lt;wcs:nativeFormat&gt;image/tiff&lt;/wcs:nativeFormat&gt;&lt;/wcs:ServiceParameters&gt;\n &lt;/wcs:CoverageDescription&gt;\n &lt;/wcs:CoverageDescriptions&gt;\n ]" time="0.001" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_coverage_domain_identity_and_resolution_fail_closed[\n &lt;wcs:CoverageDescriptions xmlns:wcs=&quot;http://www.opengis.net/wcs/2.0&quot;\n xmlns:gml=&quot;http://www.opengis.net/gml/3.2&quot; xmlns:gmlcov=&quot;http://www.opengis.net/gmlcov/1.0&quot;\n xmlns:swe=&quot;http://www.opengis.net/swe/2.0&quot;&gt;\n &lt;wcs:CoverageDescription&gt;\n &lt;gml:boundedBy&gt;&lt;gml:Envelope srsName=&quot;http://www.opengis.net/def/crs/EPSG/0/31370&quot;&gt;\n &lt;gml:lowerCorner&gt;21375 152250&lt;/gml:lowerCorner&gt;&lt;gml:upperCorner&gt;259500 244875&lt;/gml:upperCorner&gt;\n &lt;/gml:Envelope&gt;&lt;/gml:boundedBy&gt;\n &lt;wcs:CoverageId&gt;Ortho&lt;/wcs:CoverageId&gt;\n &lt;gml:domainSet&gt;&lt;gml:RectifiedGrid dimension=&quot;2&quot;&gt;\n &lt;gml:offsetVector&gt;0.25 0&lt;/gml:offsetVector&gt;&lt;gml:offsetVector&gt;0 -0.25&lt;/gml:offsetVector&gt;\n &lt;/gml:RectifiedGrid&gt;&lt;/gml:domainSet&gt;\n &lt;gmlcov:rangeType&gt;&lt;swe:DataRecord&gt;\n &lt;swe:field name=&quot;Band_1&quot;/&gt;&lt;swe:field name=&quot;Band_2&quot;/&gt;&lt;swe:field name=&quot;Band_3&quot;/&gt;\n &lt;/swe:DataRecord&gt;&lt;/gmlcov:rangeType&gt;\n &lt;wcs:ServiceParameters&gt;&lt;wcs:CoverageSubtype&gt;RectifiedGridCoverage&lt;/wcs:CoverageSubtype&gt;\n &lt;wcs:nativeFormat&gt;image/tiff&lt;/wcs:nativeFormat&gt;&lt;/wcs:ServiceParameters&gt;\n &lt;/wcs:CoverageDescription&gt;\n &lt;/wcs:CoverageDescriptions&gt;\n ]" time="0.001" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_product_variant_and_catalog_comparison_are_bound" time="0.001" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_only_exact_official_wms_url_is_allowed" time="0.001" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_bbox_matches_acquisition_bounds_and_grid_is_bounded" time="0.064" /><testcase classname="tests.test_sprint230_orthophoto_release_preflight" name="test_operator_preflight_is_read_only_packaged_and_readiness_checked" time="0.001" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_orthophoto_catalog_prefers_latest_official_edition_over_rolling_marker" time="0.001" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_stage_requires_exact_official_or_explicit_legacy_baseline_confirmation" time="0.003" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_stage_fetches_one_allowlisted_map_and_writes_reviewable_rgb_evidence" time="0.082" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_getmap_redirect_and_response_limits_fail_closed" time="0.008" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_plan_and_artifact_tampering_are_rejected" time="0.100" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_review_requires_named_approval_exact_plan_and_unchanged_preflight" time="0.100" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_approved_upload_uses_canonical_dataset_route_and_complete_provenance" time="0.122" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_apply_target_must_be_loopback_api" time="0.001" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_official_flight_dates_are_persisted_without_inventing_a_catalog_date" time="0.002" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_applied_evidence_is_immutable_on_idempotent_retry" time="0.125" /><testcase classname="tests.test_sprint231_orthophoto_release_management" name="test_release_manager_is_packaged_and_compiled_by_readiness" time="0.002" /><testcase classname="tests.test_sprint232_v1_completion_flow" name="test_theme_overview_names_the_metric_instead_of_showing_a_bare_value" time="0.003" /><testcase classname="tests.test_sprint232_v1_completion_flow" name="test_current_and_historical_results_are_downloadable" time="0.002" /><testcase classname="tests.test_sprint232_v1_completion_flow" name="test_completed_analysis_hands_off_to_ai_and_downloads_responsively" time="0.003" /><testcase classname="tests.test_sprint233_operational_completion" name="test_map_result_export_request_requires_a_complete_target" time="0.001" /><testcase classname="tests.test_sprint233_operational_completion" name="test_current_vector_map_result_uses_authoritative_selection_export" time="0.001" /><testcase classname="tests.test_sprint233_operational_completion" name="test_partitioned_vector_map_result_uses_governed_partition_export" time="0.003" /><testcase classname="tests.test_sprint233_operational_completion" name="test_raster_map_result_is_recomputed_and_persisted" time="0.029" /><testcase classname="tests.test_sprint233_operational_completion" name="test_evolution_map_result_is_recomputed_and_persisted" time="0.031" /><testcase classname="tests.test_sprint233_operational_completion" name="test_map_result_export_endpoint_uses_canonical_envelope" time="0.030" /><testcase classname="tests.test_sprint233_operational_completion" name="test_frontend_persists_map_result_before_opening_downloads" time="0.004" /><testcase classname="tests.test_sprint233_operational_completion" name="test_project_list_supports_exact_canonical_workspace_lookup" time="0.020" /><testcase classname="tests.test_sprint233_operational_completion" name="test_frontend_fetches_canonical_workspace_outside_default_project_page" time="0.006" /><testcase classname="tests.test_sprint233_operational_completion" name="test_theme_failures_name_the_source_and_reason" time="0.003" /><testcase classname="tests.test_sprint233_operational_completion" name="test_workspace_navigation_resets_the_actual_scroll_container" time="0.002" /><testcase classname="tests.test_sprint233_operational_completion" name="test_quality_scores_have_plain_language_interpretation" time="0.002" /><testcase classname="tests.test_sprint233_operational_completion" name="test_map_and_detection_workspaces_avoid_page_length_driven_layouts" time="0.002" /><testcase classname="tests.test_sprint233_operational_completion" name="test_detection_lab_only_receives_operational_imagery_rasters" time="0.002" /><testcase classname="tests.test_sprint233_operational_completion" name="test_download_workspace_surfaces_map_results_in_plain_dutch" time="0.002" /><testcase classname="tests.test_sprint234_project_lifecycle_cleanup" name="test_project_list_defaults_to_active_and_can_request_archived" time="0.016" /><testcase classname="tests.test_sprint234_project_lifecycle_cleanup" name="test_project_update_schema_allows_only_active_or_archived" time="0.001" /><testcase classname="tests.test_sprint234_project_lifecycle_cleanup" name="test_project_update_returns_404_when_project_is_missing" time="0.001" /><testcase classname="tests.test_sprint234_project_lifecycle_cleanup" name="test_cleanup_allowlist_preserves_real_workspaces" time="0.005" /><testcase classname="tests.test_sprint234_project_lifecycle_cleanup" name="test_cleanup_plan_selects_active_allowlisted_projects_only" time="0.004" /><testcase classname="tests.test_sprint234_project_lifecycle_cleanup" name="test_cleanup_script_is_packaged_and_readiness_checked" time="0.002" /><testcase classname="tests.test_sprint234_project_lifecycle_cleanup" name="test_cleanup_script_can_start_as_a_direct_operator_command" time="2.337" /><testcase classname="tests.test_sprint234_project_lifecycle_cleanup" name="test_frontend_lifecycle_and_component_boundaries_are_wired" time="0.004" /><testcase classname="tests.test_sprint235_bathymetry_profiles" name="test_bathymetry_source_registry_is_honest_and_nationally_extensible" time="0.007" /><testcase classname="tests.test_sprint235_bathymetry_profiles" name="test_bathymetry_normalization_exactly_clips_area_and_preserves_evidence" time="0.012" /><testcase classname="tests.test_sprint235_bathymetry_profiles" name="test_bathymetry_acquisition_persists_reference_dataset_through_dataset_service" time="0.010" /><testcase classname="tests.test_sprint235_bathymetry_profiles" name="test_bathymetry_acquisition_rejects_unbounded_feature_volume" time="0.008" /><testcase classname="tests.test_sprint235_bathymetry_profiles" name="test_bathymetry_source_api_uses_canonical_envelope" time="0.017" /><testcase classname="tests.test_sprint235_bathymetry_profiles" name="test_bathymetry_acquisition_route_stays_inside_existing_job_envelope" time="0.025" /><testcase classname="tests.test_sprint235_bathymetry_profiles" name="test_bathymetry_contract_and_expansion_roadmap_are_documented" time="0.004" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_mdk_probe_parses_capabilities_without_enabling_acquisition" time="0.006" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_mdk_probe_reports_tls_failure_and_never_uses_insecure_fallback" time="0.015" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_mdk_readiness_api_uses_canonical_envelope" time="0.032" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_partition_finalization_requires_complete_area_accounting_and_updates_versions" time="0.003" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_partition_selection_uses_latest_complete_manifest_without_duplicates" time="0.001" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_partition_selection_route_uses_exact_municipality_and_canonical_envelope" time="0.061" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_flanders_scope_discovery_uses_complete_unique_vrbg_inventory" time="0.004" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_expansion_scripts_are_packaged_and_readiness_checked" time="0.007" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_frontend_exhaustively_pages_regional_area_inventory" time="0.002" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_frontend_bounds_large_area_and_dataset_catalogs" time="0.002" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_frontend_labels_flanders_scope_without_kempen_mislabeling" time="0.001" /><testcase classname="tests.test_sprint236_bathymetry_expansion" name="test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope" time="0.054"><failure message="assert 'datasetAvailabilityLabel(dataset, partitions)' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_frontend_uses_partitioned_bathymetry_selection_for_regional_scope() -&gt; None:
app = (ROOT / "frontend" / "src" / "App.tsx").read_text(encoding="utf-8")
index = (ROOT / "frontend" / "index.html").read_text(encoding="utf-8")
focus = (
ROOT / "frontend" / "src" / "config" / "primaryFocus.ts"
).read_text(encoding="utf-8")
map_workspace = (
ROOT / "frontend" / "src" / "components" / "map" / "MapWorkspace.tsx"
).read_text(encoding="utf-8")
theme_hook = (
ROOT / "frontend" / "src" / "hooks" / "useMapThemeSelectionInsights.ts"
).read_text(encoding="utf-8")
dataset_api = (
ROOT / "frontend" / "src" / "services" / "api" / "datasets.ts"
).read_text(encoding="utf-8")
assert "isPartitionedBathymetry" in map_workspace
assert "regionalPartitionedThemeActive" in map_workspace
&gt; assert "datasetAvailabilityLabel(dataset, partitions)" in map_workspace
E assert 'datasetAvailabilityLabel(dataset, partitions)' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint236_bathymetry_expansion.py:478: AssertionError</failure></testcase><testcase classname="tests.test_sprint237_flanders_thematic_on_demand" name="test_flanders_workspace_exposes_governed_thematic_products_on_demand" time="0.007"><failure message="assert &quot;'Automatisch'&quot; in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_flanders_workspace_exposes_governed_thematic_products_on_demand() -&gt; None:
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
product_hook = read("frontend/src/hooks/useOfficialMapProducts.ts")
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
api = read("frontend/src/services/api/datasets.ts")
assert "activeScopeProject?.name === FLANDERS_WORKSPACE_PROJECT_NAME" in workspace
assert "new Map&lt;DataThemeId, OnDemandMapProduct&gt;" in workspace
&gt; assert "'Automatisch'" in workspace
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint237_flanders_thematic_on_demand.py:19: AssertionError</failure></testcase><testcase classname="tests.test_sprint237_flanders_thematic_on_demand" name="test_selection_reads_and_bounded_acquires_all_relevant_themes" time="0.006"><failure message="assert 'for (const theme of [activeTheme])' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_selection_reads_and_bounded_acquires_all_relevant_themes() -&gt; None:
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
app = read("frontend/src/App.tsx")
selection_hook = read("frontend/src/hooks/useMapThemeSelectionInsights.ts")
&gt; assert "for (const theme of [activeTheme])" in workspace
E assert 'for (const theme of [activeTheme])' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint237_flanders_thematic_on_demand.py:37: AssertionError</failure></testcase><testcase classname="tests.test_sprint237_flanders_thematic_on_demand" name="test_regional_on_demand_sources_require_a_bounded_drawn_selection" time="0.010"><failure message="assert 'regionalRasterThemeActive || regionalOnDemandThemeActive' in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_regional_on_demand_sources_require_a_bounded_drawn_selection() -&gt; None:
workspace = read("frontend/src/components/map/MapWorkspace.tsx")
assert "regionalOnDemandThemeActive" in workspace
&gt; assert "regionalRasterThemeActive || regionalOnDemandThemeActive" in workspace
E assert 'regionalRasterThemeActive || regionalOnDemandThemeActive' in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint237_flanders_thematic_on_demand.py:56: AssertionError</failure></testcase><testcase classname="tests.test_sprint237_flanders_thematic_on_demand" name="test_frontend_does_not_contact_external_map_services_directly" time="0.101" /><testcase classname="tests.test_sprint238_flanders_raster_catalogs" name="test_official_map_catalog_hook_loads_all_governed_registries" time="0.001" /><testcase classname="tests.test_sprint238_flanders_raster_catalogs" name="test_map_selection_can_acquire_dhmv_and_flood_hazard_products" time="0.002" /><testcase classname="tests.test_sprint238_flanders_raster_catalogs" name="test_default_flood_hazard_product_exists_in_the_governed_registry" time="0.001" /><testcase classname="tests.test_sprint239_bounded_grb_acquisition" name="test_grb_registry_exposes_four_governed_products" time="0.001" /><testcase classname="tests.test_sprint239_bounded_grb_acquisition" name="test_grb_fetch_follows_pagination_clips_geometry_and_preserves_official_identity" time="0.008" /><testcase classname="tests.test_sprint239_bounded_grb_acquisition" name="test_grb_fetch_rejects_untrusted_pagination_and_unbounded_feature_volume" time="0.012" /><testcase classname="tests.test_sprint239_bounded_grb_acquisition" name="test_grb_acquisition_rejects_large_scope_before_network_access" time="0.036" /><testcase classname="tests.test_sprint239_bounded_grb_acquisition" name="test_grb_acquisition_persists_via_dataset_service_with_selection_metrics" time="0.039" /><testcase classname="tests.test_sprint239_bounded_grb_acquisition" name="test_grb_routes_use_canonical_envelopes_and_existing_job_contract" time="0.028" /><testcase classname="tests.test_sprint239_bounded_grb_acquisition" name="test_system_capabilities_reports_bounded_grb_integration" time="2.195" /><testcase classname="tests.test_sprint239_bounded_grb_acquisition" name="test_grb_frontend_and_contracts_use_only_the_governed_backend_path" time="0.004"><failure message="assert &quot;'Automatisch'&quot; in &quot;import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n&quot;">def test_grb_frontend_and_contracts_use_only_the_governed_backend_path() -&gt; None:
selection_hook = (ROOT / "frontend/src/hooks/useMapThemeSelectionInsights.ts").read_text(encoding="utf-8")
catalog_hook = (ROOT / "frontend/src/hooks/useOfficialMapProducts.ts").read_text(encoding="utf-8")
workspace = (ROOT / "frontend/src/components/map/MapWorkspace.tsx").read_text(encoding="utf-8")
contracts = (ROOT / "docs/API_CONTRACTS.md").read_text(encoding="utf-8")
assert "datasetsApi.acquireGrb" in selection_hook
assert "datasetsApi.listGrbProducts" in catalog_hook
assert "officialMapProducts.grb" in workspace
assert "result[product.key] = null" in workspace
assert ": onDemandThemeActive\n ? null\n : mapFeatureCollection" in workspace
assert "onSetContextLayerLabel" in workspace
&gt; assert "'Automatisch'" in workspace
E assert "'Automatisch'" in "import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent } from 'react'\nimport { BoxSelect, Ch...ijken.&lt;/p&gt;\n )}\n &lt;/div&gt;\n &lt;/div&gt;\n &lt;/details&gt;\n &lt;/div&gt;\n &lt;/section&gt;\n )\n}\n"
backend\tests\test_sprint239_bounded_grb_acquisition.py:394: AssertionError</failure></testcase><testcase classname="tests.test_sprint240_official_flemish_themes" name="test_product_registries_expose_honest_forest_agriculture_nature_and_soil" time="0.001" /><testcase classname="tests.test_sprint240_official_flemish_themes" name="test_land_use_classes_are_converted_to_binary_masks_without_nodata_cast_warning" time="0.069" /><testcase classname="tests.test_sprint240_official_flemish_themes" name="test_bwk_wfs_pagination_clips_geometry_and_preserves_semantics" time="0.009" /><testcase classname="tests.test_sprint240_official_flemish_themes" name="test_bwk_rejects_a_non_https_configured_endpoint_before_network_access" time="0.008" /><testcase classname="tests.test_sprint240_official_flemish_themes" name="test_dov_wfs_uses_stable_complete_pagination_and_historical_fields" time="0.012" /><testcase classname="tests.test_sprint240_official_flemish_themes" name="test_nature_acquisition_persists_only_through_dataset_service" time="0.009" /><testcase classname="tests.test_sprint240_official_flemish_themes" name="test_official_vector_routes_and_frontend_use_canonical_backend_path" time="0.027" /><testcase classname="tests.test_sprint241_spw_bathymetry_raster" name="test_bathymetry_analysis_returns_real_bed_elevation_and_surface_metrics" time="0.069" /><testcase classname="tests.test_sprint241_spw_bathymetry_raster" name="test_bathymetry_analysis_fails_closed_for_metadata_size_and_empty_cells" time="0.092" /><testcase classname="tests.test_sprint241_spw_bathymetry_raster" name="test_bathymetry_image_and_route_use_persisted_raster_and_canonical_envelope" time="0.105" /><testcase classname="tests.test_sprint241_spw_bathymetry_raster" name="test_operator_validates_pinned_archive_and_rejects_unsafe_members" time="0.056" /><testcase classname="tests.test_sprint241_spw_bathymetry_raster" name="test_operator_crops_zip_member_to_valid_cog" time="0.252" /><testcase classname="tests.test_sprint241_spw_bathymetry_raster" name="test_operator_is_api_only_and_does_not_claim_depth_or_volume" time="0.001" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_partition_plan_covers_aoi_without_overlapping_area" time="0.004" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_partition_plan_intersects_irregular_aoi_exactly" time="0.003" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_partition_plan_fails_before_unbounded_fanout" time="0.001" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_executor_retries_only_transient_provider_failures" time="0.001" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_provider_budget_is_automatic_and_override_can_only_be_stricter" time="0.015" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_raster_provider_budget_never_exceeds_decoded_pixel_limit[dhmv-12000000-5.0]" time="0.005" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_raster_provider_budget_never_exceeds_decoded_pixel_limit[flood_hazard-12000000-5.0]" time="0.006" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_raster_provider_budget_never_exceeds_decoded_pixel_limit[spw_terrain-12000000-5.0]" time="0.005" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_raster_provider_budget_never_exceeds_decoded_pixel_limit[thematic_raster-30000000-10.0]" time="0.006" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_raster_provider_budget_never_exceeds_decoded_pixel_limit[walous-36000000-10.0]" time="0.007" /><testcase classname="tests.test_sprint242_aoi_orchestration" name="test_migration_and_api_are_registered" time="0.002" /><testcase classname="tests.test_sprint242_municipality_activation" name="test_municipality_service_matches_all_official_names_and_nis" time="0.002" /><testcase classname="tests.test_sprint242_municipality_activation" name="test_municipality_search_uses_authoritative_catalog" time="0.227" /><testcase classname="tests.test_sprint242_municipality_activation" name="test_municipality_activation_returns_persisted_area" time="0.209" /><testcase classname="tests.test_sprint24_cleanup_demo_artifacts" name="test_cleanup_candidate_selection_keeps_newest_exports" time="0.008" /><testcase classname="tests.test_sprint24_cleanup_demo_artifacts" name="test_cleanup_candidate_selection_rejects_negative_keep_latest" time="0.005" /><testcase classname="tests.test_sprint24_cleanup_demo_artifacts" name="test_cleanup_can_filter_candidates_by_export_type" time="0.004" /><testcase classname="tests.test_sprint24_cleanup_demo_artifacts" name="test_cleanup_path_safety_requires_storage_root_containment" time="0.012" /><testcase classname="tests.test_sprint24_cleanup_demo_artifacts" name="test_cleanup_script_defaults_to_explicit_demo_project" time="0.004" /><testcase classname="tests.test_sprint24_cleanup_demo_artifacts" name="test_cleanup_script_accepts_max_delete_and_repeated_export_type" time="0.005" /><testcase classname="tests.test_sprint24_cleanup_demo_artifacts" name="test_cleanup_script_reports_dry_run_candidates_separately" time="0.002" /><testcase classname="tests.test_sprint26_frontend_workflow_hooks" name="test_app_uses_detection_and_segmentation_workflow_hooks" time="0.001" /><testcase classname="tests.test_sprint26_frontend_workflow_hooks" name="test_detection_workflow_hook_owns_detection_api_calls" time="0.001" /><testcase classname="tests.test_sprint26_frontend_workflow_hooks" name="test_segmentation_workflow_hook_owns_segmentation_api_calls" time="0.001" /><testcase classname="tests.test_sprint26_frontend_workflow_hooks" name="test_app_still_wires_detection_and_segmentation_panels" time="0.001" /><testcase classname="tests.test_sprint27_frontend_workflow_hooks" name="test_app_uses_export_and_quality_workflow_hooks" time="0.001" /><testcase classname="tests.test_sprint27_frontend_workflow_hooks" name="test_export_workflow_hook_owns_export_api_calls" time="0.001" /><testcase classname="tests.test_sprint27_frontend_workflow_hooks" name="test_quality_workflow_hook_owns_quality_api_calls" time="0.001" /><testcase classname="tests.test_sprint27_frontend_workflow_hooks" name="test_app_still_wires_quality_results_and_export_center" time="0.001" /><testcase classname="tests.test_sprint28_dataset_workflow_hook" name="test_app_uses_dataset_workflow_hook" time="0.001" /><testcase classname="tests.test_sprint28_dataset_workflow_hook" name="test_dataset_workflow_hook_owns_dataset_api_calls" time="0.001" /><testcase classname="tests.test_sprint28_dataset_workflow_hook" name="test_app_still_wires_dataset_ui_callbacks" time="0.002" /><testcase classname="tests.test_sprint29_dataset_components" name="test_app_uses_dataset_presentational_components" time="0.002" /><testcase classname="tests.test_sprint29_dataset_components" name="test_dataset_panel_owns_upload_and_list_markup" time="0.001" /><testcase classname="tests.test_sprint29_dataset_components" name="test_dataset_detail_panel_composes_raster_and_vector_controls" time="0.001" /><testcase classname="tests.test_sprint30_workbench_components" name="test_app_uses_quality_and_map_presentational_components" time="0.001" /><testcase classname="tests.test_sprint30_workbench_components" name="test_map_workspace_lives_in_task_based_workbench_shell" time="0.001" /><testcase classname="tests.test_sprint30_workbench_components" name="test_quality_results_panel_owns_persisted_quality_check_markup" time="0.001" /><testcase classname="tests.test_sprint30_workbench_components" name="test_map_workspace_owns_map_controls_and_feature_inspector_markup" time="0.005" /><testcase classname="tests.test_sprint31_unraid_template" name="test_unraid_template_documents_editable_runtime_settings" time="0.001" /><testcase classname="tests.test_sprint31_unraid_template" name="test_unraid_env_template_matches_single_container_compose_variables" time="0.001" /><testcase classname="tests.test_sprint31_unraid_template" name="test_unraid_template_exposes_every_operator_owned_runtime_setting" time="0.002" /><testcase classname="tests.test_sprint31_unraid_template" name="test_unraid_readme_explains_port_changes_and_safe_cleanup" time="0.002" /><testcase classname="tests.test_sprint31_unraid_template" name="test_unraid_all_in_one_runtime_starts_embedded_postgis_backend_and_nginx" time="0.002" /><testcase classname="tests.test_sprint31_unraid_template" name="test_tower_deploy_uses_single_container_unraid_compose" time="0.001" /><testcase classname="tests.test_sprint31_unraid_template" name="test_tower_deploy_build_uses_remote_env_ai_setting_by_default" time="0.001" /><testcase classname="tests.test_sprint31_unraid_template" name="test_powershell_tower_deploy_streams_remote_script_to_bash" time="0.001" /><testcase classname="tests.test_sprint31_unraid_template" name="test_live_migration_smoke_supports_dockerman_native_container" time="0.001" /><testcase classname="tests.test_sprint31_unraid_template" name="test_frontend_and_unraid_icon_assets_are_present" time="0.016" /><testcase classname="tests.test_sprint39_frontend_orchestration_hooks" name="test_app_uses_shared_orchestration_hooks" time="0.001" /><testcase classname="tests.test_sprint39_frontend_orchestration_hooks" name="test_app_entrypoint_has_clean_encoding_and_react_imports" time="0.001"><failure message="assert 3 == 1&#10; + where 3 = &lt;built-in method count of str object at 0x000001FED98D8C30&gt;('useEffect(')&#10; + where &lt;built-in method count of str object at 0x000001FED98D8C30&gt; = &quot;import { useEffect, useMemo, useRef, useState } from 'react'\nimport { CircleAlert, LogOut, ShieldCheck, UserRound } ...ator' : 'open')}\n loggingOut={loggingOut}\n onLogout={handleLogout}\n /&gt;\n )\n}\n\nexport default App\n&quot;.count">def test_app_entrypoint_has_clean_encoding_and_react_imports() -&gt; None:
app_path = ROOT / "frontend" / "src" / "App.tsx"
app_bytes = app_path.read_bytes()
app = app_path.read_text(encoding="utf-8")
assert not app_bytes.startswith(b"\xef\xbb\xbf")
assert "import { useEffect, useMemo, useRef, useState } from 'react'" in app
assert "FormEvent" not in app
&gt; assert app.count("useEffect(") == 1
E assert 3 == 1
E + where 3 = &lt;built-in method count of str object at 0x000001FED98D8C30&gt;('useEffect(')
E + where &lt;built-in method count of str object at 0x000001FED98D8C30&gt; = "import { useEffect, useMemo, useRef, useState } from 'react'\nimport { CircleAlert, LogOut, ShieldCheck, UserRound } ...ator' : 'open')}\n loggingOut={loggingOut}\n onLogout={handleLogout}\n /&gt;\n )\n}\n\nexport default App\n".count
backend\tests\test_sprint39_frontend_orchestration_hooks.py:40: AssertionError</failure></testcase><testcase classname="tests.test_sprint39_frontend_orchestration_hooks" name="test_demo_workflow_hook_owns_demo_api_and_cross_module_selection" time="0.001" /><testcase classname="tests.test_sprint39_frontend_orchestration_hooks" name="test_workbench_bootstrap_hook_owns_entrypoint_effects" time="0.001" /><testcase classname="tests.test_sprint39_frontend_orchestration_hooks" name="test_project_workspace_hook_owns_project_area_dataset_loading" time="0.001" /><testcase classname="tests.test_sprint39_frontend_orchestration_hooks" name="test_provider_capabilities_hook_owns_provider_api_calls" time="0.001" /><testcase classname="tests.test_sprint39_frontend_orchestration_hooks" name="test_change_detection_hook_owns_change_detection_api_calls" time="0.001" /><testcase classname="tests.test_sprint39_frontend_orchestration_hooks" name="test_map_workspace_state_hook_owns_derived_map_state" time="0.001" /><testcase classname="tests.test_sprint39_frontend_orchestration_hooks" name="test_area_selection_fallbacks_live_with_owning_hooks" time="0.001" /><testcase classname="tests.test_sprint47_workbench_interaction_smoke" name="test_workbench_components_expose_stable_interaction_test_ids" time="0.003" /><testcase classname="tests.test_sprint47_workbench_interaction_smoke" name="test_readiness_gate_checks_workbench_interaction_smoke_script_syntax" time="0.001" /><testcase classname="tests.test_sprint47_workbench_interaction_smoke" name="test_workbench_interaction_script_verifies_core_control_backing_state" time="0.001" /><testcase classname="tests.test_sprint48_api_contract_audit" name="test_readiness_gate_runs_api_contract_audit" time="0.001" /><testcase classname="tests.test_sprint48_api_contract_audit" name="test_api_contract_audit_checks_openapi_against_docs" time="0.001" /><testcase classname="tests.test_sprint48_api_contract_audit" name="test_api_contract_docs_include_current_implemented_route_surface" time="0.001" /><testcase classname="tests.test_sprint49_workbench_shell_refactor" name="test_app_uses_task_based_workbench_shell" time="0.002" /><testcase classname="tests.test_sprint49_workbench_shell_refactor" name="test_workbench_shell_css_provides_navigation_main_and_inspector_regions" time="0.002" /><testcase classname="tests.test_sprint50_workspace_usability_polish" name="test_data_workspace_panels_use_operator_friendly_cards_and_forms" time="0.002" /><testcase classname="tests.test_sprint50_workspace_usability_polish" name="test_map_and_ai_workspaces_use_task_blocks_not_raw_stacks" time="0.003" /><testcase classname="tests.test_sprint51_quality_export_polish" name="test_quality_panel_uses_workbench_summary_and_cards" time="0.001" /><testcase classname="tests.test_sprint51_quality_export_polish" name="test_export_center_uses_artifact_actions_and_cards" time="0.002" /><testcase classname="tests.test_sprint52_workbench_inspector_tabs" name="test_app_wires_tabbed_workbench_inspector" time="0.001" /><testcase classname="tests.test_sprint52_workbench_inspector_tabs" name="test_workbench_inspector_exposes_context_dataset_quality_and_ai_tabs" time="0.001" /><testcase classname="tests.test_sprint52_workbench_inspector_tabs" name="test_dataset_detail_props_remain_exported_for_inspector_reuse" time="0.001" /><testcase classname="tests.test_sprint53_selection_ergonomics" name="test_dataset_panel_exposes_map_and_export_quick_actions" time="0.001" /><testcase classname="tests.test_sprint53_selection_ergonomics" name="test_data_workspace_keeps_catalog_wide_enough_for_populated_state" time="0.001" /><testcase classname="tests.test_sprint53_selection_ergonomics" name="test_shell_preserves_workspace_width_on_standard_desktop_viewports" time="0.003" /><testcase classname="tests.test_sprint53_selection_ergonomics" name="test_app_wires_dataset_quick_actions_to_existing_workspaces" time="0.001" /><testcase classname="tests.test_sprint53_selection_ergonomics" name="test_inspector_exposes_navigation_actions_without_api_calls" time="0.001" /><testcase classname="tests.test_sprint62_frontend_visual_polish" name="test_frontend_shell_has_atlas_workbench_contracts" time="0.002" /><testcase classname="tests.test_sprint62_frontend_visual_polish" name="test_primary_panels_use_empty_state_components" time="0.002" /><testcase classname="tests.test_sprint63_map_overlay_ergonomics" name="test_map_workspace_exposes_layer_provenance_and_feature_summary" time="0.005" /><testcase classname="tests.test_sprint63_map_overlay_ergonomics" name="test_map_workspace_has_clear_empty_result_layer_guidance" time="0.002" /><testcase classname="tests.test_sprint64_export_handoff_polish" name="test_export_center_surfaces_handoff_readiness_context" time="0.001" /><testcase classname="tests.test_sprint64_export_handoff_polish" name="test_export_handoff_polish_has_responsive_styles" time="0.001" /><testcase classname="tests.test_sprint65_project_report_polish" name="test_project_report_html_uses_handoff_layout_and_print_styles" time="0.001" /><testcase classname="tests.test_sprint65_project_report_polish" name="test_project_report_html_escapes_table_values_in_polished_layout" time="0.001" /><testcase classname="tests.test_sprint66_live_workspace_smoke_polish" name="test_export_handoff_cards_use_width_aware_grid" time="0.001" /><testcase classname="tests.test_sprint66_live_workspace_smoke_polish" name="test_live_workspace_smoke_artifacts_are_documented" time="0.009" /><testcase classname="tests.test_sprint67_map_empty_state_quick_actions" name="test_map_empty_state_surfaces_ready_vector_dataset_actions" time="0.003" /><testcase classname="tests.test_sprint67_map_empty_state_quick_actions" name="test_app_passes_available_vector_datasets_to_map_workspace" time="0.001" /><testcase classname="tests.test_sprint67_map_empty_state_quick_actions" name="test_map_empty_action_grid_has_responsive_styles" time="0.001" /><testcase classname="tests.test_sprint68_dataset_catalog_density" name="test_dataset_panel_surfaces_role_summary_and_badges" time="0.002" /><testcase classname="tests.test_sprint68_dataset_catalog_density" name="test_dataset_cards_expose_scan_friendly_source_and_crs_context" time="0.002" /><testcase classname="tests.test_sprint68_dataset_catalog_density" name="test_dataset_catalog_density_styles_are_responsive" time="0.001" /><testcase classname="tests.test_sprint69_dataset_action_polish" name="test_dataset_panel_explains_recommended_actions" time="0.001" /><testcase classname="tests.test_sprint69_dataset_action_polish" name="test_dataset_buttons_have_scan_friendly_action_copy" time="0.002" /><testcase classname="tests.test_sprint69_dataset_action_polish" name="test_dataset_action_styles_keep_buttons_dense_and_responsive" time="0.001" /><testcase classname="tests.test_sprint70_quality_handoff_polish" name="test_quality_panel_accepts_dataset_context_without_fetching" time="0.001" /><testcase classname="tests.test_sprint70_quality_handoff_polish" name="test_quality_panel_surfaces_candidate_reference_handoff_summary" time="0.001" /><testcase classname="tests.test_sprint70_quality_handoff_polish" name="test_app_passes_quality_dataset_context" time="0.001" /><testcase classname="tests.test_sprint70_quality_handoff_polish" name="test_quality_handoff_styles_are_responsive" time="0.001" /><testcase classname="tests.test_sprint71_quality_metric_polish" name="test_quality_panel_promotes_core_metrics_before_raw_metric_list" time="0.001" /><testcase classname="tests.test_sprint71_quality_metric_polish" name="test_quality_panel_renders_metric_evidence_cards_and_raw_metrics" time="0.001" /><testcase classname="tests.test_sprint71_quality_metric_polish" name="test_quality_metric_styles_are_dense_and_responsive" time="0.002" /><testcase classname="tests.test_sprint72_mobile_overflow_hardening" name="test_mobile_overflow_hardening_css_contracts" time="0.001" /><testcase classname="tests.test_sprint72_mobile_overflow_hardening" name="test_long_identifier_wrapping_contracts" time="0.001" /><testcase classname="tests.test_sprint73_quality_result_filtering" name="test_quality_panel_adds_result_filters_and_density_limit" time="0.001" /><testcase classname="tests.test_sprint73_quality_result_filtering" name="test_quality_filter_styles_reuse_dense_history_patterns" time="0.001" /><testcase classname="tests.test_sprint74_data_map_mobile_polish" name="test_data_and_map_mobile_polish_css_contracts" time="0.001" /><testcase classname="tests.test_sprint74_data_map_mobile_polish" name="test_data_and_map_components_keep_existing_workflow_markup" time="0.002" /><testcase classname="tests.test_sprint75_ai_labs_mobile_polish" name="test_ai_labs_mobile_density_css_contracts" time="0.001" /><testcase classname="tests.test_sprint75_ai_labs_mobile_polish" name="test_detection_and_segmentation_keep_ai_lab_workflow_markup" time="0.002" /><testcase classname="tests.test_sprint76_export_system_mobile_polish" name="test_export_and_system_mobile_density_css_contracts" time="0.002" /><testcase classname="tests.test_sprint76_export_system_mobile_polish" name="test_export_and_provider_components_keep_workflow_markup" time="0.002" /><testcase classname="tests.test_sprint77_inspector_mobile_polish" name="test_inspector_mobile_density_css_contracts" time="0.001" /><testcase classname="tests.test_sprint77_inspector_mobile_polish" name="test_inspector_components_keep_mobile_tool_markup" time="0.002" /><testcase classname="tests.test_sprint78_export_preview_readability" name="test_export_preview_readability_css_contracts" time="0.001" /><testcase classname="tests.test_sprint78_export_preview_readability" name="test_export_preview_component_exposes_summary_and_scroll_shell" time="0.001" /><testcase classname="tests.test_sprint79_accessibility_focus_polish" name="test_global_focus_visible_contracts_are_defined" time="0.001" /><testcase classname="tests.test_sprint79_accessibility_focus_polish" name="test_primary_navigation_has_keyboard_labels" time="0.001" /><testcase classname="tests.test_sprint79_accessibility_focus_polish" name="test_inspector_tabs_are_bound_to_tab_panels" time="0.001" /><testcase classname="tests.test_sprint7a_persistence_foundation" name="test_vector_feature_service_persists_geojson_features_with_properties" time="0.001" /><testcase classname="tests.test_sprint7a_persistence_foundation" name="test_vector_feature_service_normalizes_source_z_coordinates_to_canonical_2d" time="0.001" /><testcase classname="tests.test_sprint7a_persistence_foundation" name="test_dataset_upload_persists_vector_features" time="0.014" /><testcase classname="tests.test_sprint7a_persistence_foundation" name="test_dataset_upload_rolls_back_dataset_and_file_when_vector_indexing_fails" time="0.007" /><testcase classname="tests.test_sprint7a_persistence_foundation" name="test_quality_service_persists_quality_check_and_metrics" time="0.001" /><testcase classname="tests.test_sprint7a_persistence_foundation" name="test_dataset_role_validation_accepts_only_source_derived_reference" time="0.001" /><testcase classname="tests.test_sprint7a_persistence_foundation" name="test_provider_capabilities_expose_sprint7a_contract" time="0.001" /><testcase classname="tests.test_sprint7a_persistence_foundation" name="test_sprint7a_migration_declares_foundation_tables_and_indexes" time="0.001" /><testcase classname="tests.test_sprint7a_persistence_foundation" name="test_qa_route_persists_quality_check_domain_record" time="0.001" /><testcase classname="tests.test_sprint7b_provider_registry" name="test_provider_registry_lists_sprint7b_providers" time="0.001" /><testcase classname="tests.test_sprint7b_provider_registry" name="test_provider_capabilities_include_required_metadata" time="0.001" /><testcase classname="tests.test_sprint7b_provider_registry" name="test_provider_to_dataset_mapping_is_enforced" time="0.001" /><testcase classname="tests.test_sprint7b_provider_registry" name="test_grb_import_contract_requires_bounded_request_and_osm_remains_not_configured" time="0.000" /><testcase classname="tests.test_sprint7b_provider_registry" name="test_manual_fixture_import_contract_points_to_existing_flows" time="0.000" /><testcase classname="tests.test_sprint7b_provider_registry" name="test_provider_api_envelopes_and_invalid_provider" time="0.023" /><testcase classname="tests.test_sprint7b_provider_registry" name="test_provider_import_api_points_grb_to_governed_bounded_endpoint" time="0.007" /><testcase classname="tests.test_sprint7b_provider_registry" name="test_live_migration_smoke_script_exists" time="0.001" /><testcase classname="tests.test_sprint80_operation_form_readability" name="test_dataset_operation_form_css_contracts" time="0.001" /><testcase classname="tests.test_sprint80_operation_form_readability" name="test_raster_controls_expose_readable_operation_groups" time="0.001" /><testcase classname="tests.test_sprint80_operation_form_readability" name="test_vector_controls_expose_readable_operation_groups" time="0.001" /><testcase classname="tests.test_sprint81_result_state_polish" name="test_result_state_css_contracts" time="0.001" /><testcase classname="tests.test_sprint81_result_state_polish" name="test_quality_and_export_panels_use_result_state_blocks" time="0.001" /><testcase classname="tests.test_sprint81_result_state_polish" name="test_ai_labs_use_result_state_blocks" time="0.001" /><testcase classname="tests.test_sprint82_shell_density_polish" name="test_workbench_shell_has_skip_link_and_main_focus_target" time="0.001" /><testcase classname="tests.test_sprint82_shell_density_polish" name="test_mobile_shell_density_contracts_are_defined" time="0.001" /><testcase classname="tests.test_sprint82_shell_density_polish" name="test_small_screen_navigation_keeps_labels_readable" time="0.001" /><testcase classname="tests.test_sprint83_workspace_panel_hierarchy" name="test_overview_uses_named_hierarchy_regions" time="0.001" /><testcase classname="tests.test_sprint83_workspace_panel_hierarchy" name="test_status_strip_has_compact_section_surface_contracts" time="0.001" /><testcase classname="tests.test_sprint83_workspace_panel_hierarchy" name="test_overview_action_callout_is_visually_secondary" time="0.001" /><testcase classname="tests.test_sprint84_data_workspace_density" name="test_project_and_area_panels_expose_selected_summary_regions" time="0.001" /><testcase classname="tests.test_sprint84_data_workspace_density" name="test_dataset_panel_separates_selected_upload_and_catalog_regions" time="0.001" /><testcase classname="tests.test_sprint84_data_workspace_density" name="test_data_workspace_density_css_contracts" time="0.001" /><testcase classname="tests.test_sprint85_map_workspace_density" name="test_map_workspace_exposes_structured_surfaces" time="0.002" /><testcase classname="tests.test_sprint85_map_workspace_density" name="test_map_workspace_summary_uses_current_layer_and_selection_state" time="0.002" /><testcase classname="tests.test_sprint85_map_workspace_density" name="test_map_workspace_density_css_contracts" time="0.001" /><testcase classname="tests.test_sprint85_map_workspace_density" name="test_map_workspace_mobile_controls_remain_compact" time="0.001" /><testcase classname="tests.test_sprint86_quality_workspace_density" name="test_quality_results_panel_exposes_structured_surfaces" time="0.001" /><testcase classname="tests.test_sprint86_quality_workspace_density" name="test_quality_results_panel_preserves_existing_refresh_filter_and_history_state" time="0.001" /><testcase classname="tests.test_sprint86_quality_workspace_density" name="test_quality_workspace_density_css_contracts" time="0.001" /><testcase classname="tests.test_sprint87_change_detection_density" name="test_change_detection_panel_exposes_structured_surfaces" time="0.001" /><testcase classname="tests.test_sprint87_change_detection_density" name="test_change_detection_panel_preserves_existing_compare_controls" time="0.001" /><testcase classname="tests.test_sprint87_change_detection_density" name="test_change_detection_density_css_contracts" time="0.001" /><testcase classname="tests.test_sprint88_ai_lab_density" name="test_detection_lab_exposes_structured_surfaces" time="0.001" /><testcase classname="tests.test_sprint88_ai_lab_density" name="test_segmentation_lab_exposes_structured_surfaces" time="0.001" /><testcase classname="tests.test_sprint88_ai_lab_density" name="test_ai_lab_preserves_existing_detection_and_segmentation_controls" time="0.002" /><testcase classname="tests.test_sprint88_ai_lab_density" name="test_ai_lab_density_css_contracts" time="0.001" /><testcase classname="tests.test_sprint89_export_system_density" name="test_export_center_exposes_final_handoff_surfaces" time="0.001" /><testcase classname="tests.test_sprint89_export_system_density" name="test_provider_panel_exposes_final_system_surfaces" time="0.001" /><testcase classname="tests.test_sprint89_export_system_density" name="test_export_system_preserves_existing_workflow_controls" time="0.002" /><testcase classname="tests.test_sprint89_export_system_density" name="test_export_system_density_css_contracts" time="0.001" /><testcase classname="tests.test_sprint8_detection_foundation" name="test_model_registry_returns_detection_placeholders" time="0.006" /><testcase classname="tests.test_sprint8_detection_foundation" name="test_unavailable_detector_creates_failed_run_and_job_without_detections" time="0.006" /><testcase classname="tests.test_sprint8_detection_foundation" name="test_non_raster_dataset_request_is_rejected" time="0.006" /><testcase classname="tests.test_sprint8_detection_foundation" name="test_historical_raster_marked_unsupported_is_rejected_before_run_creation" time="0.004" /><testcase classname="tests.test_sprint8_detection_foundation" name="test_fixture_detector_persists_detections_only_with_explicit_fixture_mode" time="0.010" /><testcase classname="tests.test_sprint8_detection_foundation" name="test_detection_models_api_uses_envelope" time="0.010" /><testcase classname="tests.test_sprint8_detection_foundation" name="test_sprint8_migration_declares_detection_foundation" time="0.001" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_configured_model_reports_not_configured_when_disabled" time="0.007" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_configured_model_reports_dependency_unavailable" time="0.008" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_configured_model_reports_configured_with_local_model_and_dependencies" time="0.008" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_dependency_check_uses_real_imports_not_find_spec" time="0.001" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_runtime_fails_closed_when_cuda_is_required_but_unavailable" time="0.008" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_runtime_rejects_cpu_device_when_cuda_is_required" time="0.008" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_validation_scope_requires_persisted_validated_area" time="0.009" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_validation_scope_accepts_bound_mol_area" time="0.009" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_run_requires_tile_manifest_path" time="0.009" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_run_rejects_manifest_over_tile_limit" time="0.034" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_run_rejects_missing_tile_manifest_file" time="0.011" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_run_rejects_invalid_tile_manifest_json" time="0.022" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_pixel_bbox_to_epsg4326_polygon_from_gdal_transform" time="0.001" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_run_persists_mocked_georeferenced_detections" time="0.024" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_class_filter_is_case_insensitive_and_persists_canonical_class" time="0.024" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_run_suppresses_cross_tile_duplicate_detections" time="0.024" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_adapter_converts_single_band_tiles_to_rgb_before_prediction" time="0.209" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_adapter_uses_configured_max_detections" time="0.018" /><testcase classname="tests.test_sprint8b_yolo_foundation" name="test_yolo_adapter_wraps_prediction_runtime_errors" time="0.016" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_geojson_feature_collection_shape" time="0.001" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_list_filters_by_dataset_class_and_confidence" time="0.004" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_detail_returns_one_detection" time="0.001" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_models_api_envelope_still_canonical" time="0.012" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_geojson_api_uses_canonical_envelope" time="0.008" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_qa_persists_quality_check_and_metrics" time="0.007" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_qa_rejects_non_overlapping_historical_reference_editions" time="0.001" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_qa_no_match_case_persists_zero_scores" time="0.006" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_configured_yolo_qa_requires_persisted_tile_manifest_provenance" time="0.005" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_qa_excludes_references_outside_persisted_tile_coverage" time="0.022" /><testcase classname="tests.test_sprint8c_detection_visualization_qa" name="test_detection_qa_reports_box_to_footprint_diagnostic_without_changing_strict_metrics" time="0.021" /><testcase classname="tests.test_sprint90_workflow_guidance" name="test_overview_exposes_end_to_end_workflow_guidance" time="0.001" /><testcase classname="tests.test_sprint90_workflow_guidance" name="test_workflow_guidance_routes_to_existing_workspaces" time="0.001" /><testcase classname="tests.test_sprint90_workflow_guidance" name="test_workflow_guidance_has_responsive_contracts" time="0.001" /><testcase classname="tests.test_sprint90_workflow_guidance" name="test_workflow_guidance_complete_state_and_map_copy_are_precise" time="0.001" /><testcase classname="tests.test_sprint90_workflow_guidance" name="test_workflow_guidance_map_and_export_steps_reuse_dataset_context" time="0.001" /><testcase classname="tests.test_sprint93_export_handoff_completion" name="test_export_center_groups_latest_handoff_artifacts_by_type" time="0.001" /><testcase classname="tests.test_sprint93_export_handoff_completion" name="test_export_center_latest_artifact_cards_keep_existing_actions" time="0.001" /><testcase classname="tests.test_sprint93_export_handoff_completion" name="test_export_center_latest_artifact_styles_are_responsive" time="0.001" /><testcase classname="tests.test_sprint94_quality_drilldown" name="test_quality_results_panel_exposes_selected_check_drilldown" time="0.001" /><testcase classname="tests.test_sprint94_quality_drilldown" name="test_quality_results_panel_surfaces_false_positive_negative_evidence" time="0.001" /><testcase classname="tests.test_sprint94_quality_drilldown" name="test_quality_drilldown_styles_are_responsive" time="0.001" /><testcase classname="tests.test_sprint95_raster_pipeline_hardening" name="test_raster_controls_expose_pipeline_readiness_and_handoff" time="0.001" /><testcase classname="tests.test_sprint95_raster_pipeline_hardening" name="test_raster_pipeline_readiness_css_contracts" time="0.001" /><testcase classname="tests.test_sprint96_useful_default_context" name="test_dataset_workflow_selects_useful_default_dataset_after_project_load" time="0.001" /><testcase classname="tests.test_sprint96_useful_default_context" name="test_ai_labs_explain_missing_raster_input_before_disabled_runs" time="0.001" /><testcase classname="tests.test_sprint97_demo_raster_fixture" name="test_demo_workflow_contract_includes_raster_fixture_dataset" time="0.001" /><testcase classname="tests.test_sprint97_demo_raster_fixture" name="test_demo_workflow_frontend_uses_raster_fixture_for_ai_labs" time="0.002" /><testcase classname="tests.test_sprint98_raster_workflow_smoke" name="test_demo_raster_workflow_smoke_is_registered_and_checks_core_raster_path" time="0.001" /><testcase classname="tests.test_sprint99_raster_ui_handoff" name="test_raster_tile_manifest_is_visible_and_can_handoff_to_detection_lab" time="0.003" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_model_registry_returns_segmentation_states" time="0.004" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_unavailable_segmentation_model_creates_failed_run_without_segmentations" time="0.004" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_fixture_segmenter_requires_explicit_mode_and_persists_segmentations" time="0.009" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_non_raster_dataset_request_is_rejected" time="0.004" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_invalid_empty_fixture_geometry_is_rejected" time="0.005" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_segmentation_geojson_feature_collection_shape_and_provenance" time="0.003" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_segmentation_qa_persists_quality_check_and_metrics" time="0.002" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_segmentation_qa_no_match_case_persists_zero_scores" time="0.002" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_segmentation_models_api_uses_envelope" time="0.016" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_segmentation_geojson_api_uses_canonical_envelope" time="0.016" /><testcase classname="tests.test_sprint9_segmentation_foundation" name="test_sprint9_migration_declares_segmentation_foundation" time="0.003" /><testcase classname="tests.test_spw_terrain_service" name="test_spw_terrain_registry_reports_real_source_state" time="0.074" /><testcase classname="tests.test_spw_terrain_service" name="test_spw_terrain_acquisition_persists_bounded_dng_raster_and_provenance" time="0.093" /><testcase classname="tests.test_spw_terrain_service" name="test_terrain_analysis_preserves_spw_vertical_datum_and_limitations" time="0.081" /><testcase classname="tests.test_spw_terrain_service" name="test_spw_terrain_routes_use_canonical_envelopes" time="0.023" /><testcase classname="tests.test_storage_service" name="test_persist_dataset_file_records_metadata" time="0.018" /><testcase classname="tests.test_training_loop_supervisor" name="test_loop_status_is_fail_closed_and_recognises_completion" time="0.025" /><testcase classname="tests.test_training_loop_supervisor" name="test_process_detection_requires_exact_marker" time="0.001" /><testcase classname="tests.test_training_loop_supervisor" name="test_write_state_creates_output_directory_atomically" time="0.046" /><testcase classname="tests.test_vector_operations_service" name="test_vector_inspect_extracts_feature_count_and_bbox" time="0.024" /><testcase classname="tests.test_vector_operations_service" name="test_vector_bbox_and_stats_share_summary" time="0.016" /><testcase classname="tests.test_vector_operations_service" name="test_vector_intersect_creates_derived_dataset" time="0.024" /><testcase classname="tests.test_vector_operations_service" name="test_vector_operations_reject_invalid_geometry" time="0.015" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_registry_reports_real_provisioning_state" time="0.024" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_provisioner_accepts_official_non_contiguous_class_codes" time="0.033" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_2018_registry_and_provisioner_accept_official_stacked_classes" time="0.052" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_2018_acquisition_normalizes_stacked_classes_with_explicit_provenance" time="0.064" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_acquisition_reads_real_classes_and_persists_provenance" time="0.097" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_acquisition_accepts_official_signed_int8_nodata" time="0.075" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_analysis_returns_semantic_area_metrics" time="0.081" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_render_png_uses_governed_class_colours" time="0.030" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_temporal_comparison_reuses_persisted_raster_metrics" time="0.002" /><testcase classname="tests.test_walous_land_cover_service" name="test_walous_api_routes_use_canonical_envelopes" time="0.053" /><testcase classname="tests.test_yolo_training_supervisor" name="test_training_active_requires_yolo_train_and_exact_marker" time="0.001" /><testcase classname="tests.test_yolo_training_supervisor" name="test_container_running_fails_closed_on_inspect_error" time="0.001" /><testcase classname="tests.test_yolo_training_supervisor" name="test_completion_command_requires_non_empty_string_list" time="0.021" /><testcase classname="tests.test_yolo_training_supervisor" name="test_completion_command_preserves_exact_argv_without_shell_parsing" time="0.034" /></testsuite></testsuites>