Tool for learning sort order of columns
예제 #1
0
        /// <summary>
        /// Builds results into object having collumn names array  2d array data grid
        /// </summary>
        public HistogramResults BuildResults()
        {
            if (_row == null)
                throw new InvalidOperationException("LoadTest wasn't performed with this HistogramAggregator");

            OrderLearner orderLearner = new OrderLearner();
            _row.ForEach(i => orderLearner.Learn(i.Value.ColumnNames));

            string[] columnNames = _dimensions
                .Select(d => d.DimensionName)
                .Concat(orderLearner.LearnedOrder)
                .Except(_ignoredColumnNames)
                .ToArray();

            object[][] resultValues = new object[_row.Count][];

            int rowIndex = 0;
            foreach (KeyValuePair<DimensionValues, IMetric> pair in _row)
            {
                resultValues[rowIndex] = new object[columnNames.Length];

                DimensionValues dimensions = pair.Key;
                IMetric metrics = pair.Value;

                for (int i = 0; i < dimensions.Values.Count; i++)
                {
                    resultValues[rowIndex][i] = dimensions.Values[i];
                }

                for (int i = 0; i < metrics.ColumnNames.Length; i++)
                {
                    int columnIndex = Array.FindIndex(columnNames, s => s == metrics.ColumnNames[i]);

                    if(columnIndex != -1)
                        resultValues[rowIndex][columnIndex] = metrics.Values[i];
                }

                rowIndex++;
            }

            ReplaceNames(columnNames, _columnNameAliases);

            return new HistogramResults(columnNames, resultValues);
        }
예제 #2
0
 public ResultsMapper(OrderLearner orderLearner)
 {
     if (orderLearner == null) throw new ArgumentNullException(nameof(orderLearner));
     _orderLearner = orderLearner;
 }