Remove tickrate dependence from power tests (#14326)
This commit is contained in:
@@ -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(() =>
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user