public void EvaluateStoredTasks_TwoTasks_TenIteration()
{
// Arrange
var shark = new BenchShark { EnableUnoptimizedEvaluations = true };
const string name1 = "Foo";
const string name2 = "Bar";
// Act
shark.AddTask(name1, TaskToEvaluate1);
shark.AddTask(name2, TaskToEvaluate2);
var allResults = shark.EvaluateStoredTasks(10);
// Assert collection
Assert.AreEqual(2, allResults.Evaluations.Count());
Assert.AreNotEqual(allResults.FastestEvaluations, allResults.SlowestEvaluations);
// Assert evaluation
Assert.AreEqual(name1, allResults.Evaluations.ElementAt(0).Name);
Assert.AreEqual(name2, allResults.Evaluations.ElementAt(1).Name);
foreach (var result in allResults.Evaluations)
{
Assert.IsTrue(result.AverageElapsedTicks < result.TotalElapsedTicks);
Assert.IsTrue(result.AverageExecutionTime < result.TotalExecutionTime);
Assert.AreEqual(10, result.IterationsCount);
Assert.IsTrue(result.WorstExecutionTime > result.BestExecutionTime);
Assert.IsTrue(result.WorstElapsedTicks > result.BestElapsedTicks);
}
}