Files
Bubberstation/code/modules/unit_tests/ntnetwork_tests.dm
nevimer 3bddc6c821 Missed Mirror: Remove NTNet from doors (saves 0.2s of init) -- Fixes windoors not wo (#18976)
* Remove NTNet from doors (saves 0.2s of init) -- Fixes windoors not working with remotes, and balloons them (#71735)

## About The Pull Request
Removes NTNet from doors. NTNet as a whole is getting excised, but this
was an enormous cost to initialize. Was only used for door remotes, so
just changes them to act on the door directly.

Windoors were supposed to be controllable, but were broken at some point
to always display an error message in chat.

Closes https://github.com/tgstation/dev-cycles-initiative/issues/3

## Changelog

🆑
fix: Door remotes now open windoors again.
qol: Door remotes now use balloon alerts for failures.
/🆑

(cherry picked from commit db2566f44d)

# Conflicts:
#	code/game/machinery/doors/airlock.dm

* Update airlock.dm

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-11 23:39:17 -08:00

98 lines
3.0 KiB
Plaintext

/datum/unit_test/ntnetwork
var/list/valid_network_names = list(
"SS13.ATMOS.SCRUBBERS.SM",
"DEEPSPACE.HYDRO.PLANT",
"SINDIE.STINKS.BUTT",
)
var/list/invalid_network_names = list(
".SS13.BOB",
"SS13.OHMAN.",
"SS13.HAS A SPACE",
)
var/list/valid_network_trees = list(
list(
"SS13",
"ATMOS",
"SCRUBBERS",
"SM",
),
list(
"DEEPSPACE",
"HYDRO",
"PLANT",
),
list(
"SINDIE",
"STINKS",
"BUTT",
),
)
var/list/network_roots = list(
__STATION_NETWORK_ROOT,
__CENTCOM_NETWORK_ROOT,
__SYNDICATE_NETWORK_ROOT,
__LIMBO_NETWORK_ROOT,
)
var/list/random_words_for_testing = list(
__NETWORK_TOOLS,
__NETWORK_CONTROL,
__NETWORK_STORAGE,
__NETWORK_CARGO,
__NETWORK_BOTS,
__NETWORK_COMPUTER,
__NETWORK_TABLETS,
)
var/number_of_names_to_test = 50
var/length_of_test_network = 5
/datum/unit_test/proc/mangle_word(word)
var/len = length(word)
var/space_pos = round(len/2)
word = copytext(word,1,space_pos) + " " + copytext(word,space_pos,len)
return word
/datum/unit_test/ntnetwork/Run()
// First check if name checks work
for(var/name in valid_network_names)
TEST_ASSERT(verify_network_name(name), "Network name ([name]) marked as invalid but supposed to valid")
for(var/name in invalid_network_names)
TEST_ASSERT(!verify_network_name(name), "Network name ([name]) marked as valid but supposed to be invalid")
// Next check if we can pack and unpack network names
for(var/i in 1 to valid_network_names.len)
var/name = valid_network_names[i]
var/list/name_list = SSnetworks.network_string_to_list(name)
TEST_ASSERT(compare_list(name_list, valid_network_trees[i]), "Network name ([name]) did not unpack into a proper list")
for(var/i in 1 to valid_network_trees.len)
var/list/name_list = valid_network_trees[i]
var/name = SSnetworks.network_list_to_string(name_list)
TEST_ASSERT_EQUAL(name, valid_network_names[i], "Network name ([name]) did not pack into a proper string")
// Ok, we know we can verify network names now, and that we can pack and unpack. Lets try making some random good names
var/list/generated_network_names = list()
var/test_string
for(var/i in 1 to number_of_names_to_test)
var/list/builder = list()
builder += pick(network_roots)
for(var/j in 1 to length_of_test_network)
builder += pick(random_words_for_testing)
test_string = SSnetworks.network_list_to_string(builder)
var/name_fix = simple_network_name_fix(test_string)
TEST_ASSERT_EQUAL(name_fix, test_string, "Network name ([test_string]) was not fixed correctly to ([name_fix])")
generated_network_names += name_fix // save for future
// test badly generated names
for(var/i in 1 to number_of_names_to_test)
var/list/builder = list()
builder += mangle_word(pick(network_roots))
for(var/j in 1 to length_of_test_network)
builder += mangle_word(pick(random_words_for_testing))
test_string = builder.Join(".")
var/name_fix = simple_network_name_fix(test_string)
TEST_ASSERT(verify_network_name(name_fix), "Network name ([test_string]) was not fixed correctly ([name_fix]) with bad name")