]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Remove tickrate dependence from power tests (#14326)
authorLeon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Wed, 1 Mar 2023 02:58:05 +0000 (15:58 +1300)
committerGitHub <noreply@github.com>
Wed, 1 Mar 2023 02:58:05 +0000 (13:58 +1100)
Content.IntegrationTests/Tests/Power/PowerTest.cs

index ad883d954f4fe6632ba19365de1d9c474800455f..569e279ef4051d99a52b014e0a11b5a066e4eb06 100644 (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(() =>
             {