From 7aa96de6e99285867741dcbd9e81be3b517d4acc Mon Sep 17 00:00:00 2001 From: Zaafar Date: Sun, 21 Mar 2021 00:32:37 -0400 Subject: [PATCH] added function to reset stats. --- Coroutine/ActiveCoroutine.cs | 9 +++++++++ Tests/TimeBasedCoroutineTests.cs | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/Coroutine/ActiveCoroutine.cs b/Coroutine/ActiveCoroutine.cs index e6f8314..be39e40 100644 --- a/Coroutine/ActiveCoroutine.cs +++ b/Coroutine/ActiveCoroutine.cs @@ -81,6 +81,15 @@ namespace Coroutine { return true; } + /// + /// Reset statistics related to this coroutine. + /// + public void ResetStats() { + this.TotalMoveNextTime = TimeSpan.Zero; + this.MoveNextCount = 1; + this.MaxMoveNextTime = TimeSpan.Zero; + } + internal bool Tick(double deltaSeconds) { if (!this.WasCanceled && this.current.Tick(deltaSeconds)) this.MoveNext(); diff --git a/Tests/TimeBasedCoroutineTests.cs b/Tests/TimeBasedCoroutineTests.cs index a13eb55..e34f567 100644 --- a/Tests/TimeBasedCoroutineTests.cs +++ b/Tests/TimeBasedCoroutineTests.cs @@ -335,6 +335,10 @@ namespace Tests { var gTc = cr.MaxMoveNextTime.Milliseconds > expected2 - errorbar2; // 95% accuracy. var lTd = cr.MaxMoveNextTime.Milliseconds < expected2 + errorbar2; // 95% accuracy. Assert.IsTrue(gTc && lTd, $"Maximum Move Next Time {cr.MaxMoveNextTime.Milliseconds} is invalid."); + + cr.ResetStats(); + Assert.IsTrue(cr.AverageMoveNextTime.Milliseconds == 0, "Invalid Coroutine Statistics."); + Assert.IsTrue(cr.MaxMoveNextTime.Milliseconds == 0, "Invalid Coroutine Statistics."); } [Test]