## Tests for the Phase-4 generation overlays in the Atlas viewer (#960, D-225). ## Referencing AtlasViewer forces both it and AtlasMarkerOverlay to compile, so ## this also guards against parse errors in the overlay rendering code. class_name TestAtlasOverlays extends GdUnitTestSuite func test_generation_overlays_registered() -> void: var ids: Array = [] for d: Dictionary in AtlasViewer.OVERLAY_DEFS: ids.append(d["id"]) assert_that(ids).contains( ["gen_l1_rivers", "gen_l1_basins", "gen_l1_attractors", "gen_district"] ) ## T-1046: the district/morphology grid round-trips through the viewer and the ## protocol decode surfaces it; referencing AtlasMarkerOverlay compiles the draw. func test_district_grid_round_trips() -> void: var v: AtlasViewer = auto_free(AtlasViewer.new()) assert_that(v.get_generation_district_grid()).is_null() var grid := { "cols": 2, "rows": 1, "morphology": PackedByteArray([8, 14]), "elev_q": PackedByteArray([10, 90]), } v.set_generation_district_grid(grid) assert_that(v.get_generation_district_grid()).is_equal(grid) # The decoded response dict carries the district_grid key (protocol.gd, T-1046). var decoded: Variant = Protocol.atlas_response_from_raw( {"body_id": "GJ1c", "status": "Ready", "district_grid": grid} ) assert_that((decoded as Dictionary).get("district_grid")).is_equal(grid) func test_generation_data_round_trips() -> void: var v: AtlasViewer = auto_free(AtlasViewer.new()) assert_that(v.get_generation_layer1()).is_null() var mock := { "body_id": "GJ1c", "river_network": {"river_cells": [], "confluences": [], "mouths": []}, "drainage_basins": [], "attractors": [], } v.set_generation_layer1(mock) assert_that(v.get_generation_layer1()).is_equal(mock) func test_implant_pending_start_stop() -> void: var p: ImplantPending = auto_free(ImplantPending.new()) p.start("GENERATING LAYER 1") assert_bool(p.visible).is_true() p.stop() assert_bool(p.visible).is_false()