2023-07-05 21:54:25 -07:00
using System.Linq ;
2021-06-19 13:25:05 +02:00
using Content.Server.Atmos.EntitySystems ;
2020-08-10 20:17:18 +02:00
using Content.Shared.Atmos ;
2025-05-23 15:46:41 +02:00
using Content.Shared.Atmos.Prototypes ;
2020-08-10 20:17:18 +02:00
2025-05-23 15:46:41 +02:00
namespace Content.IntegrationTests.Tests.Atmos ;
[TestOf(typeof(Atmospherics))]
public sealed class ConstantsTest
2025-06-10 11:33:34 +03:00
{ / *
2025-05-23 15:46:41 +02:00
[Test]
public async Task TotalGasesTest ( )
2020-08-10 20:17:18 +02:00
{
2025-05-23 15:46:41 +02:00
await using var pair = await PoolManager . GetServerClient ( ) ;
var server = pair . Server ;
var entityManager = server . EntMan ;
var protoManager = server . ProtoMan ;
await server . WaitPost ( ( ) = >
2020-08-10 20:17:18 +02:00
{
2025-05-23 15:46:41 +02:00
var atmosSystem = entityManager . System < AtmosphereSystem > ( ) ;
2020-08-25 16:14:26 +02:00
2025-05-23 15:46:41 +02:00
Assert . Multiple ( ( ) = >
2020-08-10 20:17:18 +02:00
{
2025-05-23 15:46:41 +02:00
// adding new gases needs a few changes in the code, so make sure this is done everywhere
var gasProtos = protoManager . EnumeratePrototypes < GasPrototype > ( ) . ToList ( ) ;
2020-08-25 16:53:59 +02:00
2025-05-23 15:46:41 +02:00
// number of gas prototypes
Assert . That ( gasProtos , Has . Count . EqualTo ( Atmospherics . TotalNumberOfGases ) ,
$"Number of GasPrototypes is not equal to TotalNumberOfGases." ) ;
// number of gas prototypes used in the atmos system
Assert . That ( atmosSystem . Gases . Count ( ) , Is . EqualTo ( Atmospherics . TotalNumberOfGases ) ,
$"AtmosSystem.Gases is not equal to TotalNumberOfGases." ) ;
// enum mapping gases to their Id
Assert . That ( Enum . GetValues < Gas > ( ) , Has . Length . EqualTo ( Atmospherics . TotalNumberOfGases ) ,
$"Gas enum size is not equal to TotalNumberOfGases." ) ;
// localized abbreviations for UI purposes
Assert . That ( Atmospherics . GasAbbreviations , Has . Count . EqualTo ( Atmospherics . TotalNumberOfGases ) ,
$"GasAbbreviations size is not equal to TotalNumberOfGases." ) ;
// the ID for each gas has to be a number from 0 to TotalNumberOfGases-1
foreach ( var gas in gasProtos )
2023-07-05 21:54:25 -07:00
{
2025-05-23 15:46:41 +02:00
var validInteger = int . TryParse ( gas . ID , out var number ) ;
Assert . That ( validInteger , Is . True , $"GasPrototype {gas.ID} has an invalid ID. It has to be an integer between 0 and TotalNumberOfGases - 1." ) ;
Assert . That ( number , Is . InRange ( 0 , Atmospherics . TotalNumberOfGases - 1 ) , $"GasPrototype {gas.ID} has an invalid ID. It has to be an integer between 0 and TotalNumberOfGases - 1." ) ;
}
2020-08-10 20:17:18 +02:00
} ) ;
2025-05-23 15:46:41 +02:00
} ) ;
await pair . CleanReturnAsync ( ) ;
2025-06-10 11:33:34 +03:00
} * /
2020-08-10 20:17:18 +02:00
}
2025-05-23 15:46:41 +02:00