Capture current source, content data, tests, asset licenses, and original-specification traceability. Original implementation remains incomplete. The accepted matching UI generation passed 154 suites and 12,253 checks, with eight rendered staff-contract screens reviewed. Latest native Windows and full-original acceptance remain outstanding.
59 lines
4.1 KiB
GDScript
59 lines
4.1 KiB
GDScript
extends SceneTree
|
|
const Preview = preload("res://scripts/construction/facility_resize_preview.gd")
|
|
var checks := 0
|
|
var failures := 0
|
|
func expect(ok: bool, message: String) -> void:
|
|
checks += 1
|
|
if not ok: failures += 1; push_error(message)
|
|
func _initialize() -> void:
|
|
var world := WorldService.new()
|
|
world.reset({&"min_x":-10,&"max_x":10,&"min_y":-5,&"max_y":10})
|
|
var origin := Vector3i(0,0,0)
|
|
var cells := world.cells_for_footprint(origin,Vector2i(3,2))
|
|
world.occupy(&"room",cells)
|
|
world.set_support(origin,0,true)
|
|
var item := {&"instance_id":&"room",&"definition_id":&"premium_room",&"origin":origin,&"rotation":0,&"occupied_cells":cells}
|
|
var before := world.create_snapshot()
|
|
var report := Preview.inspect(world,item,2)
|
|
expect(report[&"geometry_ok"] and report[&"target_cells"].size()==4 and report[&"added"].size()==1 and report[&"removed"].size()==3, "premium room preview changes 3x2 into 4x1")
|
|
expect(not report[&"ready_to_apply"] and not report[&"remaining_gates"].is_empty(), "geometry success never bypasses route save or job migration")
|
|
expect(world.create_snapshot()==before, "successful preview does not mutate live world")
|
|
world.occupy(&"neighbor",[Vector3i(3,0,0)])
|
|
before=world.create_snapshot();report=Preview.inspect(world,item,2)
|
|
expect(not report[&"geometry_ok"] and report[&"errors"][0][&"code"]==&"OVERLAP", "expansion detects an occupied new cell")
|
|
expect(world.create_snapshot()==before, "rejected preview preserves ownership and revisions")
|
|
world.release(&"neighbor")
|
|
world.occupy(&"upper",[Vector3i(2,2,0)])
|
|
report=Preview.inspect(world,item,2)
|
|
expect(not report[&"geometry_ok"] and &"upper" in report[&"affected_entities"], "shrink detects loss of support for upper facility")
|
|
var bad:=item.duplicate(true);bad[&"occupied_cells"][0]=Vector3i(9,9,0)
|
|
expect(not Preview.inspect(world,bad,2)[&"geometry_ok"], "source ownership cannot be guessed from current definition")
|
|
bad=item.duplicate(true);bad[&"occupied_cells"][1]=bad[&"occupied_cells"][0]
|
|
expect(not Preview.inspect(world,bad,2)[&"geometry_ok"], "duplicate saved cells reject")
|
|
bad=item.duplicate(true);bad[&"instance_id"]=42
|
|
expect(not Preview.inspect(world,bad,2)[&"geometry_ok"], "malformed saved identifiers reject without conversion errors")
|
|
bad=item.duplicate(true);bad[&"rotation"]=45
|
|
expect(not Preview.inspect(world,bad,2)[&"geometry_ok"], "invalid rotation rejects")
|
|
world.release(&"upper");world.release(&"room")
|
|
origin=Vector3i(0,0,1);cells=world.cells_for_footprint(origin,Vector2i(2,4))
|
|
world.occupy(&"dorm",cells);world.set_support(origin,0,true)
|
|
item={&"instance_id":&"dorm",&"definition_id":&"staff_dormitory",&"origin":origin,&"rotation":90,&"occupied_cells":cells}
|
|
report=Preview.inspect(world,item,1)
|
|
expect(report[&"geometry_ok"] and report[&"target_cells"]==[Vector3i(0,0,1),Vector3i(0,1,1)], "rotated dorm shrinks on correct layer and axis")
|
|
world.release(&"dorm")
|
|
origin=Vector3i(7,-3,0);cells=world.cells_for_footprint(origin,Vector2i(3,2))
|
|
world.occupy(&"market",cells);world.set_support(origin,0,true)
|
|
for cell: Vector3i in cells: world.set_excavated(cell,true)
|
|
item={&"instance_id":&"market",&"definition_id":&"black_market",&"origin":origin,&"rotation":0,&"occupied_cells":cells}
|
|
before=world.create_snapshot();report=Preview.inspect(world,item,2)
|
|
expect(not report[&"geometry_ok"] and world.create_snapshot()==before, "market cannot expand into unexcavated underground space")
|
|
world.set_excavated(Vector3i(10,-3,0),true);world.set_excavated(Vector3i(10,-2,0),true)
|
|
report=Preview.inspect(world,item,2)
|
|
expect(report[&"geometry_ok"] and report[&"target_cells"].size()==8 and report[&"added"].size()==2, "excavated market expands to original four-by-two footprint")
|
|
world.release(&"market")
|
|
origin=Vector3i(8,-3,0);cells=world.cells_for_footprint(origin,Vector2i(3,2))
|
|
world.occupy(&"edge",cells);world.set_support(origin,0,true)
|
|
item={&"instance_id":&"edge",&"definition_id":&"black_market",&"origin":origin,&"rotation":0,&"occupied_cells":cells}
|
|
expect(not Preview.inspect(world,item,2)[&"geometry_ok"], "market expansion cannot leave map bounds")
|
|
print("Facility resize preview: %d checks, %d failures" % [checks,failures]);quit(failures)
|