Remove tickrate dependence from power tests (#14326)
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Content.Server.NodeContainer;
|
using Content.Server.NodeContainer;
|
||||||
using Content.Server.NodeContainer.Nodes;
|
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.
|
// Exact values can/will be off by a tick, add tolerance for that.
|
||||||
var tickRate = (float) gameTiming.TickPeriod.TotalSeconds;
|
var tickPeriod = (float) gameTiming.TickPeriod.TotalSeconds;
|
||||||
var tickDev = 400 * tickRate * 1.1f;
|
var tickDev = 400 * tickPeriod * 1.1f;
|
||||||
|
|
||||||
server.RunTicks(1);
|
server.RunTicks(1);
|
||||||
|
|
||||||
@@ -322,7 +323,9 @@ namespace Content.IntegrationTests.Tests.Power
|
|||||||
Assert.That(consumer.ReceivedPower, Is.EqualTo(100).Within(0.1));
|
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(() =>
|
await server.WaitAssertion(() =>
|
||||||
{
|
{
|
||||||
@@ -332,7 +335,11 @@ namespace Content.IntegrationTests.Tests.Power
|
|||||||
Assert.That(consumer.ReceivedPower, Is.EqualTo(200).Within(tickDev));
|
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(() =>
|
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.
|
// Exact values can/will be off by a tick, add tolerance for that.
|
||||||
var tickRate = (float) gameTiming.TickPeriod.TotalSeconds;
|
var tickPeriod = (float) gameTiming.TickPeriod.TotalSeconds;
|
||||||
var tickDev = 400 * tickRate * 1.1f;
|
var tickDev = 400 * tickPeriod * 1.1f;
|
||||||
|
|
||||||
server.RunTicks(1);
|
server.RunTicks(1);
|
||||||
|
|
||||||
@@ -399,7 +406,9 @@ namespace Content.IntegrationTests.Tests.Power
|
|||||||
Assert.That(consumer.ReceivedPower, Is.EqualTo(100).Within(0.1));
|
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(() =>
|
await server.WaitAssertion(() =>
|
||||||
{
|
{
|
||||||
@@ -413,7 +422,9 @@ namespace Content.IntegrationTests.Tests.Power
|
|||||||
Assert.That(battery.CurrentCharge, Is.EqualTo(startingCharge - spentExpected).Within(tickDev));
|
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(() =>
|
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});
|
await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings{NoClient = true, ExtraPrototypes = Prototypes});
|
||||||
var server = pairTracker.Pair.Server;
|
var server = pairTracker.Pair.Server;
|
||||||
var mapManager = server.ResolveDependency<IMapManager>();
|
var mapManager = server.ResolveDependency<IMapManager>();
|
||||||
|
var gameTiming = server.ResolveDependency<IGameTiming>();
|
||||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||||
PowerSupplierComponent supplier = default!;
|
PowerSupplierComponent supplier = default!;
|
||||||
BatteryComponent battery = default!;
|
BatteryComponent battery = default!;
|
||||||
@@ -554,7 +566,9 @@ namespace Content.IntegrationTests.Tests.Power
|
|||||||
netBattery.Efficiency = 0.5f;
|
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(() =>
|
await server.WaitAssertion(() =>
|
||||||
{
|
{
|
||||||
@@ -617,11 +631,11 @@ namespace Content.IntegrationTests.Tests.Power
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Run some ticks so everything is stable.
|
// 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.
|
// Exact values can/will be off by a tick, add tolerance for that.
|
||||||
var tickRate = (float) gameTiming.TickPeriod.TotalSeconds;
|
var tickPeriod = (float) gameTiming.TickPeriod.TotalSeconds;
|
||||||
var tickDev = 400 * tickRate * 1.1f;
|
var tickDev = 400 * tickPeriod * 1.1f;
|
||||||
|
|
||||||
await server.WaitAssertion(() =>
|
await server.WaitAssertion(() =>
|
||||||
{
|
{
|
||||||
@@ -692,11 +706,11 @@ namespace Content.IntegrationTests.Tests.Power
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Run some ticks so everything is stable.
|
// 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.
|
// Exact values can/will be off by a tick, add tolerance for that.
|
||||||
var tickRate = (float) gameTiming.TickPeriod.TotalSeconds;
|
var tickPeriod = (float) gameTiming.TickPeriod.TotalSeconds;
|
||||||
var tickDev = 400 * tickRate * 1.1f;
|
var tickDev = 400 * tickPeriod * 1.1f;
|
||||||
|
|
||||||
await server.WaitAssertion(() =>
|
await server.WaitAssertion(() =>
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user