From 641c08d5dee2fe1750d16dee7a4aac3dc5750600 Mon Sep 17 00:00:00 2001 From: ccomp5950 Date: Tue, 12 Jan 2016 01:12:12 -0500 Subject: [PATCH] Mapping Tests / APC's / Scrubbers / Vents OH MY! --- baystation12.dme | 1 + code/unit_tests/map_tests.dm | 70 ++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 code/unit_tests/map_tests.dm diff --git a/baystation12.dme b/baystation12.dme index 8d6c8531830..3ace13aaa7d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1872,6 +1872,7 @@ #include "code\unit_tests\unit_test.dm" #include "code\unit_tests\zas_tests.dm" #include "code\unit_tests\equipment_tests.dm" +#include "code\unit_tests\map_tests.dm" #include "code\ZAS\_docs.dm" #include "code\ZAS\Airflow.dm" #include "code\ZAS\Atom.dm" diff --git a/code/unit_tests/map_tests.dm b/code/unit_tests/map_tests.dm new file mode 100644 index 00000000000..f604eb00776 --- /dev/null +++ b/code/unit_tests/map_tests.dm @@ -0,0 +1,70 @@ +/* + * + * Map Unit Tests. + * Zone checks / APC / Scrubber / Vent. + * + * + */ + +#define FAILURE 0 +#define SUCCESS 1 + + +datum/unit_test/apc_area_test + name = "MAP: Area Test APC / Scrubbers / Vents Z level 1" + +datum/unit_test/apc_area_test/start_test() + var/list/bad_areas = list() + var/area_test_count = 0 + var/list/exempt_areas = typesof(/area/space, \ + /area/syndicate_station, \ + /area/skipjack_station, \ + /area/solar, \ + /area/shuttle, \ + /area/holodeck, \ + /area/supply/station \ + ) + + var/list/exempt_from_atmos = typesof( /area/maintenance, \ + /area/storage, \ + /area/engineering/atmos/storage, \ + /area/rnd/test_area, \ + /area/construction, \ + /area/server + ) + + var/list/exempt_from_apc = typesof( /area/construction, \ + /area/medical/genetics + ) + + for(var/area/A in world) + if(A.z == 1 && !(A.type in exempt_areas)) + area_test_count++ + var/area_good = 1 + var/bad_msg = "[ascii_red]--------------- [A.name]([A.type])" + + + if(isnull(A.apc) && !(A.type in exempt_from_apc)) + log_unit_test("[bad_msg] lacks an APC.[ascii_reset]") + area_good = 0 + + if(!A.air_scrub_info.len && !(A.type in exempt_from_atmos)) + log_unit_test("[bad_msg] lacks an Air scrubber.[ascii_reset]") + area_good = 0 + + if(!A.air_vent_info.len && !(A.type in exempt_from_atmos)) + log_unit_test("[bad_msg] lacks an Air vent.[ascii_reset]") + area_good = 0 + + if(!area_good) + bad_areas.Add(A) + + if(bad_areas.len) + fail("\[[bad_areas.len]/[area_test_count]\]Some areas lacked APCs, Air Scrubbers, or Air vents.") + else + pass("All \[[area_test_count]\] areas contained APCs, Air scrubbers, and Air vents.") + + return 1 + +#undef SUCCESS +#undef FAILURE