{
	"all_pass": true,
	"artifact": "tilemap_to_navigation_grid",
	"cases": [
		{
			"claim": "AStarGrid2D accepts a negative Rect2i region origin, keeps negative point IDs, persists set_point_solid() at the negative origin, and returns a path using native negative coordinates.",
			"expected_path": [
				"Vector2i(-3, -3)",
				"Vector2i(-2, -3)",
				"Vector2i(-1, -3)",
				"Vector2i(0, -3)",
				"Vector2i(1, -3)",
				"Vector2i(2, -3)",
				"Vector2i(3, -3)",
				"Vector2i(4, -3)"
			],
			"failures": [],
			"goal": "Vector2i(4, -3)",
			"id": "astargrid2d_negative_origin_region_native_point_ids",
			"pass": true,
			"path": [
				"Vector2i(-3, -3)",
				"Vector2i(-2, -3)",
				"Vector2i(-1, -3)",
				"Vector2i(0, -3)",
				"Vector2i(1, -3)",
				"Vector2i(2, -3)",
				"Vector2i(3, -3)",
				"Vector2i(4, -3)"
			],
			"path_length": 8,
			"point_write_count": 1,
			"point_write_error": "",
			"region_after_update": "Rect2i(-4, -3, 18, 12)",
			"region_assigned": "Rect2i(-4, -3, 18, 12)",
			"shape_update_count": 1,
			"solid_point": "Vector2i(-4, -3)",
			"solid_point_in_bounds": true,
			"solid_point_is_solid": true,
			"start": "Vector2i(-3, -3)"
		},
		{
			"bridge_solid": false,
			"failures": [],
			"id": "custom_data_walkability_expected_solids",
			"pass": true,
			"path_length": 16,
			"point_write_count": 216,
			"shape_update_count": 1,
			"solid_cells": 189,
			"used_rect": "Rect2i(-4, -3, 18, 12)",
			"walkable_cells": 27,
			"water_solid": true
		},
		{
			"bridge_solid": true,
			"failures": [],
			"id": "physics_layer_walkability_expected_solids",
			"pass": true,
			"path_length": 16,
			"point_write_count": 216,
			"shape_update_count": 1,
			"solid_cells": 189,
			"used_rect": "Rect2i(-4, -3, 18, 12)",
			"walkable_cells": 27,
			"water_solid": false
		},
		{
			"debug_bridge": {
				"custom_data_solid": false,
				"physics_layer_solid": true
			},
			"failures": [],
			"id": "modes_disagree_on_water_or_bridge",
			"pass": true,
			"water": {
				"custom_data_solid": true,
				"physics_layer_solid": false
			}
		},
		{
			"failures": [],
			"goal": "Vector2i(12, -2)",
			"id": "negative_used_rect_offset_correct_path",
			"pass": true,
			"path": [
				"Vector2i(-3, -2)",
				"Vector2i(-2, -2)",
				"Vector2i(-1, -2)",
				"Vector2i(0, -2)",
				"Vector2i(1, -2)",
				"Vector2i(2, -1)",
				"Vector2i(3, -1)",
				"Vector2i(4, -2)",
				"Vector2i(5, -2)",
				"Vector2i(6, -2)",
				"Vector2i(7, -2)",
				"Vector2i(8, -2)",
				"Vector2i(9, -2)",
				"Vector2i(10, -2)",
				"Vector2i(11, -2)",
				"Vector2i(12, -2)"
			],
			"path_length": 16,
			"region": "Rect2i(-4, -3, 18, 12)",
			"start": "Vector2i(-3, -2)"
		},
		{
			"failures": [],
			"id": "negative_used_rect_offset_ignored_path_fails_or_misaligns",
			"native_goal_in_bounds": false,
			"native_start_in_bounds": false,
			"pass": true,
			"path_length": 0,
			"region": "Rect2i(0, 0, 18, 12)",
			"skipped_cells": 90
		},
		{
			"after_solid": true,
			"before_solid": false,
			"failures": [],
			"id": "set_point_solid_without_second_update",
			"pass": true,
			"path_length_after_toggle": 16,
			"shape_update_count": 1,
			"toggled_cell": "Vector2i(1, -2)"
		},
		{
			"failures": [],
			"id": "empty_cells_solid_policy",
			"pass": true,
			"sample_empty_cell": "Vector2i(0, 0)",
			"sample_empty_cell_solid": true,
			"solid_cells": 189,
			"walkable_cells": 27
		},
		{
			"failures": [],
			"id": "empty_cells_walkable_policy",
			"pass": true,
			"sample_empty_cell": "Vector2i(0, 0)",
			"sample_empty_cell_solid": false,
			"solid_cells": 57,
			"walkable_cells": 159
		}
	],
	"generated_utc": "2026-06-26T23:38:59",
	"godot_version": "4.7-stable (official)",
	"measurement_scope": "Correctness proof for TileMapLayer-derived AStarGrid2D setup. This is not a pathfinding performance benchmark.",
	"os_name": "Windows",
	"processor_name": "AMD Ryzen 5 2600X Six-Core Processor"
}