private string Format(Statistics statistics, TimeUnit timeUnit) { if (statistics == null) return "NA"; var value = calc(statistics); return isTimeColumn ? value.ToTimeStr(timeUnit) : value.ToStr(); }
private void CheckConvertOneWay(double value1, TimeUnit unit1, double value2, TimeUnit unit2) { var convertedValue2 = TimeUnit.Convert(value1, unit1, unit2); output.WriteLine($"Expected: {value1} {unit1.Name} = {value2} {unit2.Name}"); output.WriteLine($"Actual: {value1} {unit1.Name} = {convertedValue2} {unit2.Name}"); output.WriteLine(""); Assert.Equal(value2, convertedValue2, 4); }
public static string ToTimeStr(this Statistics s, TimeUnit unit = null) { if (s == null) return NullSummaryMessage; if (unit == null) unit = TimeUnit.GetBestTimeUnit(s.Mean); var builder = new StringBuilder(); var errorPercent = (s.StandardError / s.Mean * 100).ToStr(); builder.AppendLine($"Mean = {s.Mean.ToTimeStr(unit)}, StdError = {s.StandardError.ToTimeStr(unit)} ({errorPercent}%); N = {s.N}, StdDev = {s.StandardDeviation.ToTimeStr(unit)}"); builder.AppendLine($"Min = {s.Min.ToTimeStr(unit)}, Q1 = {s.Q1.ToTimeStr(unit)}, Median = {s.Median.ToTimeStr(unit)}, Q3 = {s.Q3.ToTimeStr(unit)}, Max = {s.Max.ToTimeStr(unit)}"); builder.AppendLine($"IQR = {s.InterquartileRange.ToTimeStr(unit)}, LowerFence = {s.LowerFence.ToTimeStr(unit)}, UpperFence = {s.UpperFence.ToTimeStr(unit)}"); builder.AppendLine($"ConfidenceInterval = {s.ConfidenceInterval.ToTimeStr(unit)}"); return builder.ToString(); }
public string ToTimeStr(TimeUnit unit = null, bool showLevel = true) => $"[{Lower.ToTimeStr(unit)}; {Upper.ToTimeStr(unit)}] (CI {Level.ToPercent()}%)";
public static double GetResolution(this IClock clock, TimeUnit timeUnit = null) { return TimeUnit.Convert(1.0 / clock.Frequency, TimeUnit.Second, timeUnit ?? TimeUnit.Nanoseconds); }
public TimeInterval(double value, TimeUnit unit) : this(value * unit.NanosecondAmount) { }
public string ToTimeStr(TimeUnit unit = null, bool showLevel = true) => $"[.95: {P95.ToTimeStr(unit)}] (0: {P0.ToTimeStr(unit)}]; .5: {P50.ToTimeStr(unit)}; 1: {P100.ToTimeStr(unit)})";
public static double GetResolution(TimeUnit timeUnit = null) => BestClock.GetResolution(timeUnit);
private void CheckConvertTwoWay(double value1, TimeUnit unit1, double value2, TimeUnit unit2) { CheckConvertOneWay(value1, unit1, value2, unit2); CheckConvertOneWay(value2, unit2, value1, unit1); }
private void CheckGetBestTimeUnit(TimeUnit timeUnit, params double[] values) { output.WriteLine($"Best TimeUnit for ({string.Join(";", values)})ns is {timeUnit.Description}"); Assert.Equal(timeUnit.Name, TimeUnit.GetBestTimeUnit(values).Name); }
public static double Convert(double value, TimeUnit from, TimeUnit to) => value * @from.NanosecondAmount / (to ?? GetBestTimeUnit(value)).NanosecondAmount;