private FilterMetric(BoolSelectorDelegate <T> selector, MetricsTemplate <T> template) { _selector = selector ?? throw new ArgumentNullException(nameof(selector)); _template = template ?? throw new ArgumentNullException(nameof(template)); _metric = _template.Create(); }
public SubMetric(SubSelectorDelegate <TSub, TBase> selector, BoolSelectorDelegate <TBase, TSub> filter, MetricsTemplate <TSub> template) { _selector = selector ?? throw new ArgumentNullException(nameof(selector)); _filter = filter ?? throw new ArgumentNullException(nameof(filter)); _template = template ?? throw new ArgumentNullException(nameof(template)); _metric = _template.Create(); }
public ValuesMetric(BoolSelectorDelegate <T> filterSelector, ValuesSelectorDelegate <T> selector) { _filterSelector = filterSelector ?? throw new ArgumentNullException(nameof(filterSelector)); _selector = selector ?? throw new ArgumentNullException(nameof(selector)); ColumnNames = new string[0]; Values = new object[0]; _done = false; }
public ValueMetric(BoolSelectorDelegate <T> filterSelector, string name, ObjectSelectorDelegate <T> selector) : base(filterSelector, data => new[] { new Val(name, selector(data)) }) { }
public ValueMetric(BoolSelectorDelegate <T> filterSelector, ValSelectorDelegate <T> valueSelector) : base(filterSelector, data => new[] { valueSelector(data) }) { }
public CountMetric(BoolSelectorDelegate <T> canCountSelector, string name = "Count") { _canCountSelector = canCountSelector; ColumnNames = new[] { name }; }
public RatioMetric(string name, BoolSelectorDelegate <T> include, double multiplier = 1.0) { _name = name ?? throw new ArgumentNullException(nameof(name)); _selector = include ?? throw new ArgumentNullException(nameof(include)); _multiplier = multiplier; }
public RatioMetric(BoolSelectorDelegate <T> include, double multiplier = 1.0) : this("Ratio", include, multiplier) { }
/// <summary> /// Select only subset of rows which will be used to aggregate with provided metrics. /// </summary> /// <param name="selector">Return true for the data which should be aggregated</param> /// <param name="metrics">Metrics to be used for filtered aggregation</param> public FilterMetric(BoolSelectorDelegate <T> selector, params IMetric <T>[] metrics) : this(selector, new MetricsTemplate <T>(metrics)) { }
public SubMetric(SubSelectorDelegate <TSub, TBase> selector, BoolSelectorDelegate <TBase, TSub> filter, params IMetric <TSub>[] metrics) : this(selector, filter, new MetricsTemplate <TSub>(metrics)) { }