/// <summary> /// Groups results by test execution time in provided [aggregationTimeInterval] time periods /// </summary> /// <param name="aggregationTimeInterval">Time interval to group results by</param> public TimeHistogramResultsAggregator(TimeSpan aggregationTimeInterval) { _histogramResultsAggregator = new HistogramResultsAggregator(result => GroupByCalculatorFunction(result)) { AggregationTimePeriod = aggregationTimeInterval }; }
/// <summary> /// Groups results by provided aggregation function (which will receive key used by TimeAggregation) /// And it gives full ability to postprocess GroupByKey before returning it. /// </summary> /// <param name="aggregationTimeInterval">Time interval to group results by</param> /// <param name="groupByKeyCalculatorFunction">GroupBy function Func<TestContextResult, TimeAggregationSlotTicks, GroupByKey></param> public TimeHistogramResultsAggregator(TimeSpan aggregationTimeInterval, Func <IResult, long, object> groupByKeyCalculatorFunction) { Func <IResult, object> groupByFunction = result => groupByKeyCalculatorFunction(result, GroupByCalculatorFunction(result)); _histogramResultsAggregator = new HistogramResultsAggregator(groupByFunction) { AggregationTimePeriod = aggregationTimeInterval }; }
/// <summary> /// Groups results by provided aggregation function (which will receive key used by TimeAggregation) /// And it gives full ability to postprocess GroupByKey before returning it. /// </summary> /// <param name="aggregationTimeInterval">Time interval to group results by</param> /// <param name="groupByKeyCalculatorFunction">GroupBy function Func<TestContextResult, TimeAggregationSlotTicks, GroupByKey></param> public TimeHistogramResultsAggregator(TimeSpan aggregationTimeInterval, Func<IResult, long, object> groupByKeyCalculatorFunction) { Func<IResult, object> groupByFunction = result => groupByKeyCalculatorFunction(result, GroupByCalculatorFunction(result)); _histogramResultsAggregator = new HistogramResultsAggregator(groupByFunction) { AggregationTimePeriod = aggregationTimeInterval }; }
/// <summary> /// Groups results by test execution time and secondary aggregation function /// </summary> /// <param name="aggregationTimeInterval">Time interval to group results by</param> /// <param name="subGroupByKeyCalculatorFunction">Secondary aggregation function</param> public TimeHistogramResultsAggregator(TimeSpan aggregationTimeInterval, Func <IResult, string> subGroupByKeyCalculatorFunction) { Func <IResult, object> groupByFunction = result => string.Concat(GroupByCalculatorFunction(result).ToString(), " ", subGroupByKeyCalculatorFunction(result)); _histogramResultsAggregator = new HistogramResultsAggregator(groupByFunction) { AggregationTimePeriod = aggregationTimeInterval }; }
/// <summary> /// Groups results by test execution time and secondary aggregation function /// </summary> /// <param name="aggregationTimeInterval">Time interval to group results by</param> /// <param name="subGroupByKeyCalculatorFunction">Secondary aggregation function</param> public TimeHistogramResultsAggregator(TimeSpan aggregationTimeInterval, Func<IResult, string> subGroupByKeyCalculatorFunction) { Func<IResult, object> groupByFunction = result => string.Concat(GroupByCalculatorFunction(result).ToString(), " ", subGroupByKeyCalculatorFunction(result)); _histogramResultsAggregator = new HistogramResultsAggregator(groupByFunction) { AggregationTimePeriod = aggregationTimeInterval }; }