Files
VOREStation/code/game/objects/unit_testing.dm
T
Selis f4bf017921 Unit Test rework & Master/Ticker update (#17912)
* Unit Test rework & Master/Ticker update

* Fixes and working unit testing

* Fixes

* Test fixes and FA update

* Fixed runtimes

* Radio subsystem

* move that glob wherever later

* ident

* CIBUILDING compile option

* Fixed runtimes

* Some changes to the workflow

* CI Split

* More split

* Pathing

* Linters and Annotators

* ci dir fix

* Missing undef fixed

* Enable grep checks

* More test conversions

* More split

* Correct file

* Removes unneeded inputs

* oop

* More dependency changes

* More conversions

* Conversion fixes

* Fixes

* Some assert fixes

* Corrects start gate

* Converted some README.dms to README.mds

* Removes duplicate proc

* Removes unused defines

* Example configs

* fix dll access viol by double calling

* Post-rebase fixes

* Cleans up names global list

* Undef restart counter

* More code/game/ cleanup

* Statpanel update

* Skybox

* add

* Fix ticker

* Roundend fix

* Persistence dependency update

* Reordering

* Reordering

* Reordering

* Initstage fix

* .

* .

* Reorder

* Reorder

* Circle

* Mobs

* Air

* Test fix

* CI Script Fix

* Configs

* More ticker stuff

* This is now in 'reboot world'

* Restart world announcements

* no glob in PreInit

* to define

* Update

* Removed old include

* Make this file normal again

* moved

* test

* shared unit testing objects

* Updates batched_spritesheets and universal_icon

* .

* job data debug

* rm that

* init order

* show us

* .

* i wonder

* .

* .

* urg

* do we not have a job ID?

* .

* rm sleep for now

* updated rust-g linux binaries

* binaries update 2

* binaries update 3

* testing something

* change that

* test something

* .

* .

* .

* locavar

* test

* move that

* .

* debug

* don't run this test

* strack trace it

* cleaner

* .

* .

* cras again

* also comment this out

* return to official rust g

* Update robot_icons.dm

* monitor the generation

* .

---------

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2025-08-10 01:37:23 +02:00

39 lines
1.3 KiB
Plaintext

/// Code (OBJECTS) in here gets used by the unit tests, but also regular code to test specific things.
/// But because unit_tests are rather late in the loading order, we have to put objects that get shared in here.
/// Else OpenDream gets very angry.
// Used to test distillations without hacking the other machinery's code up
/obj/distilling_tester
icon = 'icons/obj/weapons.dmi'
icon_state = "cartridge"
var/datum/gas_mixture/GM = new()
var/current_temp = 0
/obj/distilling_tester/Initialize(mapload)
create_reagents(5000,/datum/reagents/distilling)
. = ..()
/obj/distilling_tester/return_air()
return GM
/obj/distilling_tester/proc/test_distilling(var/decl/chemical_reaction/distilling/D, var/temp_prog)
qdel_swap(GM,new())
if(D.require_xgm_gas)
GM.gas[D.require_xgm_gas] = 100
else
if(D.rejects_xgm_gas == GAS_N2)
GM.gas[GAS_O2] = 100
else
GM.gas[GAS_N2] = 100
if(D.minimum_xgm_pressure)
GM.temperature = (D.minimum_xgm_pressure * CELL_VOLUME) / (GM.gas[D.require_xgm_gas] * R_IDEAL_GAS_EQUATION)
// Try this 10 times, We need to know if something is blocking at multiple temps.
// If it passes unit test, it might still be awful to make though, gotta find the right gas mix!
current_temp = LERP( D.temp_range[1], D.temp_range[2], temp_prog)
reagents.handle_reactions()
/obj/distilling_tester/Destroy(force, ...)
qdel_null(GM)
. = ..()