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);
 }
示例#11
0
 public static double Convert(double value, TimeUnit from, TimeUnit to) => value * @from.NanosecondAmount / (to ?? GetBestTimeUnit(value)).NanosecondAmount;