BenchSharkTests.AnonymousEvaluation.EvaluateTask_TenIterations_WithIterationEvent C# (CSharp) Method

EvaluateTask_TenIterations_WithIterationEvent() private method

private EvaluateTask_TenIterations_WithIterationEvent ( ) : void
return void
        public void EvaluateTask_TenIterations_WithIterationEvent()
        {
            // Arrange
            var shark = new BenchShark {EnableUnoptimizedEvaluations = true};
            var counter = 0;
            var passed = false;

            shark.IterationCompleted += (sender, args) =>
            {
                // Assert the current iteration
                Assert.IsTrue(args.CurrentIteration.ElapsedTicks > args.CurrentIteration.ExecutionTime.TotalMilliseconds);

                // Assert the current evaluation
                Assert.AreEqual(++counter, args.CurrentEvaluation.IterationsCount);
                Assert.AreEqual(null, args.CurrentEvaluation.Name);
                // The following is true when more than one iteration is performed
                if (args.CurrentEvaluation.IterationsCount > 1)
                {
                    Assert.IsTrue(args.CurrentEvaluation.AverageElapsedTicks < args.CurrentEvaluation.TotalElapsedTicks);
                    Assert.IsTrue(args.CurrentEvaluation.AverageExecutionTime < args.CurrentEvaluation.TotalExecutionTime);
                    Assert.IsTrue(args.CurrentEvaluation.WorstExecutionTime > args.CurrentEvaluation.BestExecutionTime);
                    Assert.IsTrue(args.CurrentEvaluation.WorstElapsedTicks > args.CurrentEvaluation.BestElapsedTicks);
                    passed = true;
                }
            };

            // Act
            var result = shark.EvaluateTask(TaskToEvaluate, 10);

            // Assert
            Assert.AreEqual(10, result.IterationsCount);
            Assert.IsTrue(passed);
        }