Remove tickrate dependence from power tests (#14326)

This commit is contained in:
Leon Friedrich
2023-03-01 15:58:05 +13:00
committed by GitHub
parent e9fd16f8f6
commit b4bfbbcbe8

View File

@@ -1,4 +1,5 @@
#nullable enable
using System;
using System.Threading.Tasks;
using Content.Server.NodeContainer;
using Content.Server.NodeContainer.Nodes;
@@ -310,8 +311,8 @@ namespace Content.IntegrationTests.Tests.Power
});
// Exact values can/will be off by a tick, add tolerance for that.
var tickRate = (float) gameTiming.TickPeriod.TotalSeconds;
var tickDev = 400 * tickRate * 1.1f;
var tickPeriod = (float) gameTiming.TickPeriod.TotalSeconds;
var tickDev = 400 * tickPeriod * 1.1f;
server.RunTicks(1);
@@ -322,7 +323,9 @@ namespace Content.IntegrationTests.Tests.Power
Assert.That(consumer.ReceivedPower, Is.EqualTo(100).Within(0.1));
});
server.RunTicks(14);
// run for 0.25 seconds (minus the previous tick)
var ticks = (int) Math.Round(0.25 * gameTiming.TickRate) - 1;
server.RunTicks(ticks);
await server.WaitAssertion(() =>
{
@@ -332,7 +335,11 @@ namespace Content.IntegrationTests.Tests.Power
Assert.That(consumer.ReceivedPower, Is.EqualTo(200).Within(tickDev));
});
server.RunTicks(45);
// run for 0.75 seconds
ticks = (int) Math.Round(0.75 * gameTiming.TickRate);
server.RunTicks(ticks);
await server.WaitAssertion(() =>
{
@@ -387,8 +394,8 @@ namespace Content.IntegrationTests.Tests.Power
});
// Exact values can/will be off by a tick, add tolerance for that.
var tickRate = (float) gameTiming.TickPeriod.TotalSeconds;
var tickDev = 400 * tickRate * 1.1f;
var tickPeriod = (float) gameTiming.TickPeriod.TotalSeconds;
var tickDev = 400 * tickPeriod * 1.1f;
server.RunTicks(1);
@@ -399,7 +406,9 @@ namespace Content.IntegrationTests.Tests.Power
Assert.That(consumer.ReceivedPower, Is.EqualTo(100).Within(0.1));
});
server.RunTicks(14);
// run for 0.25 seconds (minus the previous tick)
var ticks = (int) Math.Round(0.25 * gameTiming.TickRate) - 1;
server.RunTicks(ticks);
await server.WaitAssertion(() =>
{
@@ -413,7 +422,9 @@ namespace Content.IntegrationTests.Tests.Power
Assert.That(battery.CurrentCharge, Is.EqualTo(startingCharge - spentExpected).Within(tickDev));
});
server.RunTicks(45);
// run for 0.75 seconds
ticks = (int) Math.Round(0.75 * gameTiming.TickRate);
server.RunTicks(ticks);
await server.WaitAssertion(() =>
{
@@ -524,6 +535,7 @@ namespace Content.IntegrationTests.Tests.Power
await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes});
var server = pairTracker.Pair.Server;
var mapManager = server.ResolveDependency<IMapManager>();
var gameTiming = server.ResolveDependency<IGameTiming>();
var entityManager = server.ResolveDependency<IEntityManager>();
PowerSupplierComponent supplier = default!;
BatteryComponent battery = default!;
@@ -554,7 +566,9 @@ namespace Content.IntegrationTests.Tests.Power
netBattery.Efficiency = 0.5f;
});
server.RunTicks(30); // 60 TPS, 0.5 seconds
// run for 0.5 seconds
var ticks = (int) Math.Round(0.5 * gameTiming.TickRate);
server.RunTicks(ticks);
await server.WaitAssertion(() =>
{
@@ -617,11 +631,11 @@ namespace Content.IntegrationTests.Tests.Power
});
// Run some ticks so everything is stable.
server.RunTicks(60);
server.RunTicks(gameTiming.TickRate);
// Exact values can/will be off by a tick, add tolerance for that.
var tickRate = (float) gameTiming.TickPeriod.TotalSeconds;
var tickDev = 400 * tickRate * 1.1f;
var tickPeriod = (float) gameTiming.TickPeriod.TotalSeconds;
var tickDev = 400 * tickPeriod * 1.1f;
await server.WaitAssertion(() =>
{
@@ -692,11 +706,11 @@ namespace Content.IntegrationTests.Tests.Power
});
// Run some ticks so everything is stable.
server.RunTicks(60);
server.RunTicks(gameTiming.TickRate);
// Exact values can/will be off by a tick, add tolerance for that.
var tickRate = (float) gameTiming.TickPeriod.TotalSeconds;
var tickDev = 400 * tickRate * 1.1f;
var tickPeriod = (float) gameTiming.TickPeriod.TotalSeconds;
var tickDev = 400 * tickPeriod * 1.1f;
await server.WaitAssertion(() =>
{