Refactoring : TestBenchFramework --> TBF ver. 2.18.789
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2015 Sensus Metering Systems
|
||||
///
|
||||
using System;
|
||||
|
||||
namespace TBF.UiBridge
|
||||
{
|
||||
public class TestProgressEventArgs : EventArgs
|
||||
{
|
||||
public string TestName;
|
||||
public int Part;
|
||||
public int Repeats;
|
||||
public int RepetitionNr;
|
||||
|
||||
public Config.Entities.Progress Phase;
|
||||
public int Progress; /// value in the range 0..100
|
||||
public float OveralProgress;
|
||||
|
||||
|
||||
#region Static and base constructor part
|
||||
|
||||
static int[] estimatedTime; /// Estimated time of each phase to calculate the progress [s]
|
||||
static int[] cumulativeSumsOfEstimates;
|
||||
static int currentPhaseStartTime;
|
||||
static Config.Entities.Progress currentPhase;
|
||||
|
||||
|
||||
static TestProgressEventArgs()
|
||||
{
|
||||
int[] estTime = new int[(int)Config.Entities.Progress.Count];
|
||||
for (int i = 0; i < estTime.Length; i++) estTime[i] = 10;
|
||||
cumulativeSumsOfEstimates = new int[(int)Config.Entities.Progress.Count];
|
||||
SetEstimatedTimes(estTime);
|
||||
|
||||
currentPhaseStartTime = BenchControl.StateMachine.Time;
|
||||
currentPhase = Config.Entities.Progress.JustStarted;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Set estimated time of each phase in [s] (see Config.Entities.Progress).
|
||||
/// </summary>
|
||||
/// <param name="estTime">Array: estimated time of each phase in [s]</param>
|
||||
public static void SetEstimatedTimes(int[] estTime)
|
||||
{
|
||||
if (estTime.Length != (int)Config.Entities.Progress.Count) return;
|
||||
estimatedTime = estTime;
|
||||
for (int i = 0; i < estTime.Length; i++)
|
||||
{
|
||||
cumulativeSumsOfEstimates[i] = (i > 0) ? cumulativeSumsOfEstimates[i - 1] : 0;
|
||||
cumulativeSumsOfEstimates[i] += estTime[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Base constructor which maintains currentPhase, currentPhaseStartTime
|
||||
/// and calculates 'Progress'.
|
||||
/// </summary>
|
||||
/// <param name="progress"></param>
|
||||
private TestProgressEventArgs(Config.Entities.Progress phase)
|
||||
{
|
||||
if (phase != currentPhase)
|
||||
{
|
||||
currentPhase = phase;
|
||||
currentPhaseStartTime = BenchControl.StateMachine.Time;
|
||||
}
|
||||
|
||||
Phase = phase;
|
||||
int phaseNr = (int)phase;
|
||||
|
||||
int currentPhaseTime = Math.Min(BenchControl.StateMachine.Time - currentPhaseStartTime, estimatedTime[phaseNr]);
|
||||
int currentTestTime = currentPhaseTime + ((phaseNr == 0) ? 0 : cumulativeSumsOfEstimates[phaseNr - 1]);
|
||||
|
||||
int add10pct = cumulativeSumsOfEstimates[(int)Config.Entities.Progress.Count - 1] / 9;
|
||||
|
||||
|
||||
Progress = 100 * (currentTestTime + add10pct)
|
||||
/ (cumulativeSumsOfEstimates[(int)Config.Entities.Progress.Count - 1] + add10pct);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public TestProgressEventArgs(Config.Entities.Test test, int repetitionNr, Config.Entities.Progress progress)
|
||||
: this(progress)
|
||||
{
|
||||
TestName = Results.Utils.GetTestName(test.Name, test.Repeats, repetitionNr);
|
||||
Part = test.Part;
|
||||
Repeats = test.Repeats;
|
||||
RepetitionNr = repetitionNr;
|
||||
}
|
||||
|
||||
|
||||
public TestProgressEventArgs(Config.Entities.Test test, Config.Entities.Progress progress)
|
||||
: this(test, 1, progress)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Used by iPearl communication dialog
|
||||
/// </summary>
|
||||
public TestProgressEventArgs(string testName, Config.Entities.Progress progress)
|
||||
: this(progress)
|
||||
{
|
||||
TestName = testName;
|
||||
Part = 0;
|
||||
Repeats = 1;
|
||||
RepetitionNr = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user