Пример #1
0
        private MeasurementResult DeterminePerformanceResult(SampleGroupResult sampleGroup, uint sigFig)
        {
            var measurementResult      = MeasurementResult.Neutral;
            var positiveThresholdValue = sampleGroup.BaselineValue + sampleGroup.BaselineValue * sampleGroup.Threshold;
            var negativeThresholdValue = sampleGroup.BaselineValue - sampleGroup.BaselineValue * sampleGroup.Threshold;

            if (sampleGroup.IncreaseIsBetter)
            {
                if (sampleGroup.AggregatedValue.TruncToSigFig(sigFig) < negativeThresholdValue.TruncToSigFig(sigFig))
                {
                    measurementResult = MeasurementResult.Regression;
                }
                if (sampleGroup.AggregatedValue.TruncToSigFig(sigFig) > positiveThresholdValue.TruncToSigFig(sigFig))
                {
                    measurementResult = MeasurementResult.Progression;
                }
            }
            else
            {
                if (sampleGroup.AggregatedValue.TruncToSigFig(sigFig) > positiveThresholdValue.TruncToSigFig(sigFig))
                {
                    measurementResult = MeasurementResult.Regression;
                }
                if (sampleGroup.AggregatedValue.TruncToSigFig(sigFig) < negativeThresholdValue.TruncToSigFig(sigFig))
                {
                    measurementResult = MeasurementResult.Progression;
                }
            }
            return(measurementResult);
        }
Пример #2
0
        public List <TestResult> GetTestResults(
            PerformanceTestRun performanceTestRun)
        {
            var mergedTestExecutions   = MergeTestExecutions(performanceTestRun);
            var performanceTestResults = new List <TestResult>();

            foreach (var testName in mergedTestExecutions.Keys)
            {
                var performanceTestResult = new TestResult
                {
                    TestName           = testName,
                    TestCategories     = performanceTestRun.Results.First(r => r.TestName == testName).TestCategories,
                    TestVersion        = performanceTestRun.Results.First(r => r.TestName == testName).TestVersion,
                    State              = (int)TestState.Success,
                    SampleGroupResults = new List <SampleGroupResult>()
                };
                foreach (var sampleGroup in mergedTestExecutions[testName])
                {
                    var sampleGroupResult = new SampleGroupResult
                    {
                        SampleGroupName  = sampleGroup.Definition.Name,
                        SampleUnit       = sampleGroup.Definition.SampleUnit.ToString(),
                        IncreaseIsBetter = sampleGroup.Definition.IncreaseIsBetter,
                        Threshold        = sampleGroup.Definition.Threshold,
                        AggregationType  = sampleGroup.Definition.AggregationType.ToString(),
                        Percentile       = sampleGroup.Definition.Percentile,
                        Min               = sampleGroup.Min,
                        Max               = sampleGroup.Max,
                        Median            = sampleGroup.Median,
                        Average           = sampleGroup.Average,
                        StandardDeviation = sampleGroup.StandardDeviation,
                        PercentileValue   = sampleGroup.PercentileValue,
                        Sum               = sampleGroup.Sum,
                        Zeroes            = sampleGroup.Zeroes,
                        SampleCount       = sampleGroup.SampleCount,
                        BaselineValue     = -1,
                        AggregatedValue   = GetAggregatedSampleValue(sampleGroup)
                    };

                    performanceTestResult.SampleGroupResults.Add(sampleGroupResult);
                }
                performanceTestResults.Add(performanceTestResult);
            }
            return(performanceTestResults);
        }