using System.Globalization;
namespace TravelEar.Core;
///
/// The Offset caption the Helper's window shows (REQ-OFFSET-MEASURE, docs/DESIGN.md
/// "Offset"): the rolling 10 s average from as
/// "TravelEar offset: N ms", or "measuring" until there is one. Pure and culture-invariant.
///
public static class OffsetCaption
{
public const string Prefix = "TravelEar offset: ";
// [impl->REQ-OFFSET-MEASURE]
/// "TravelEar offset: N ms" for a finite, non-negative average; "TravelEar offset: measuring" otherwise (NaN before the first average).
public static string Format(double averageMs)
{
if (double.IsNaN(averageMs) || double.IsInfinity(averageMs) || averageMs < 0)
return Prefix + "measuring";
return Prefix + averageMs.ToString("F0", CultureInfo.InvariantCulture) + " ms";
}
}