mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-24 08:31:54 +00:00
* Fixes horrible CI times (#71295) ## About The Pull Request Ok so like, I was using an assoc list in the unit test to map turfs to their tracked area parent. This was foolish because unless the test fails we will be doing this for EVERY TURF IN THE GAME. Assoc lists are red black tress, so insert time, more then just the list expansion cost, also just scales with the amount of keys, since we need to binary search them all to ensure we don't already exist. This is really slow, and was costing us like actually 300 seconds or something. I've switched to storing this information in just the turf. It should bring this down to like 6 seconds instead of 6 minutes. Remember, assoc lists are dumb for high scales kids * Fixes horrible CI times Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
30 lines
1.2 KiB
Plaintext
30 lines
1.2 KiB
Plaintext
/// Verifies that an area's perception of their "turfs" is correct, and no other area overlaps with them
|
|
/// Quite slow, but needed
|
|
/datum/unit_test/area_contents
|
|
priority = TEST_LONGER
|
|
|
|
/datum/unit_test/area_contents/Run()
|
|
// First, we check that there are no entries in more then one area
|
|
// That or duplicate entries
|
|
for(var/area/space in GLOB.areas)
|
|
for(var/turf/position as anything in space.get_contained_turfs())
|
|
if(!isturf(position))
|
|
TEST_FAIL("Found a [position.type] in [space.type]'s turf listing")
|
|
|
|
if(position.in_contents_of)
|
|
var/area/existing = position.in_contents_of
|
|
if(existing == space)
|
|
TEST_FAIL("Found a duplicate turf [position.type] inside [space.type]'s turf listing")
|
|
else
|
|
TEST_FAIL("Found a shared turf [position.type] between [space.type] and [existing.type]'s turf listings")
|
|
|
|
var/area/dream_spot = position.loc
|
|
if(dream_spot != space)
|
|
TEST_FAIL("Found a turf [position.type] which is IN [dream_spot.type], but is registered as being in [space.type]")
|
|
|
|
position.in_contents_of = space
|
|
|
|
for(var/turf/position in ALL_TURFS())
|
|
if(!position.in_contents_of)
|
|
TEST_FAIL("Found a turf [position.type] inside [position.loc.type] that is NOT stored in any area's turf listing")
|