public void FailureRateToMTBFString(double failureRate, TestFlightUtil.MTBFUnits units, bool shortForm, int maximum, out string output) { if (sb == null) { sb = new StringBuilder(256); } sb.Length = 0; var currentUnit = (int)TestFlightUtil.MTBFUnits.SECONDS; var mtbf = FailureRateToMTBF(failureRate, (TestFlightUtil.MTBFUnits)currentUnit); while (mtbf > maximum) { currentUnit++; mtbf = FailureRateToMTBF(failureRate, (TestFlightUtil.MTBFUnits)currentUnit); if ((TestFlightUtil.MTBFUnits)currentUnit == TestFlightUtil.MTBFUnits.INVALID) { break; } } if (shortForm) { output = sb.AppendFormat("{0:F2}{1}", mtbf, UnitStringForMTBFUnitShort((TestFlightUtil.MTBFUnits)currentUnit)).ToString(); } else { output = sb.AppendFormat("{0:F2}{1}", mtbf, UnitStringForMTBFUnit((TestFlightUtil.MTBFUnits)currentUnit)).ToString(); } }
// Simply converts the failure rate to a MTBF number, without any string formatting public double FailureRateToMTBF(double failureRate, TestFlightUtil.MTBFUnits units) { failureRate = Math.Max(failureRate, TestFlightUtil.MIN_FAILURE_RATE); double mtbfSeconds = 1.0f / failureRate; switch (units) { case TestFlightUtil.MTBFUnits.SECONDS: return(mtbfSeconds); case TestFlightUtil.MTBFUnits.MINUTES: return(mtbfSeconds / 60); case TestFlightUtil.MTBFUnits.HOURS: return(mtbfSeconds / 60 / 60); case TestFlightUtil.MTBFUnits.DAYS: return(mtbfSeconds / 60 / 60 / 24); case TestFlightUtil.MTBFUnits.YEARS: return(mtbfSeconds / 60 / 60 / 24 / 365); default: return(mtbfSeconds); } }
internal static string UnitStringForMTBFUnitShort(TestFlightUtil.MTBFUnits units) { switch (units) { case TestFlightUtil.MTBFUnits.SECONDS: return("s"); case TestFlightUtil.MTBFUnits.MINUTES: return("m"); case TestFlightUtil.MTBFUnits.HOURS: return("h"); case TestFlightUtil.MTBFUnits.DAYS: return("d"); case TestFlightUtil.MTBFUnits.YEARS: return("y"); default: return("-"); } }
internal static string UnitStringForMTBFUnit(TestFlightUtil.MTBFUnits units) { switch (units) { case TestFlightUtil.MTBFUnits.SECONDS: return("seconds"); case TestFlightUtil.MTBFUnits.MINUTES: return("minutes"); case TestFlightUtil.MTBFUnits.HOURS: return("hours"); case TestFlightUtil.MTBFUnits.DAYS: return("days"); case TestFlightUtil.MTBFUnits.YEARS: return("years"); default: return("invalid"); } }
public string FailureRateToMTBFString(double failureRate, TestFlightUtil.MTBFUnits units, bool shortForm, int maximum) { var currentUnit = (int)TestFlightUtil.MTBFUnits.SECONDS; var mtbf = FailureRateToMTBF(failureRate, (TestFlightUtil.MTBFUnits)currentUnit); while (mtbf > maximum) { currentUnit++; mtbf = FailureRateToMTBF(failureRate, (TestFlightUtil.MTBFUnits)currentUnit); if ((TestFlightUtil.MTBFUnits)currentUnit == TestFlightUtil.MTBFUnits.INVALID) { break; } } if (shortForm) { return(string.Format("{0:F2}{1}", mtbf, UnitStringForMTBFUnit((TestFlightUtil.MTBFUnits)currentUnit)[0])); } else { return(string.Format("{0:F2} {1}", mtbf, UnitStringForMTBFUnit((TestFlightUtil.MTBFUnits)currentUnit))); } }
// Short version of MTBFString uses a single letter to denote (s)econds, (m)inutes, (h)ours, (d)ays, (y)ears // The returned string will be of the format "12.00s" or "0.20d" public String FailureRateToMTBFString(double failureRate, TestFlightUtil.MTBFUnits units, bool shortForm) { return(FailureRateToMTBFString(failureRate, units, shortForm, int.MaxValue)); }
public String FailureRateToMTBFString(double failureRate, TestFlightUtil.MTBFUnits units, int maximum) { return(FailureRateToMTBFString(failureRate, units, false, maximum)); }
// simply converts the failure rate into a MTBF string. Convenience method // Returned string will be of the format "123 units" // units should be one of: // seconds, hours, days, years, public String FailureRateToMTBFString(double failureRate, TestFlightUtil.MTBFUnits units) { return(FailureRateToMTBFString(failureRate, units, false, int.MaxValue)); }
// Simply converts the failure rate to a MTBF number, without any string formatting public double FailureRateToMTBF(double failureRate, TestFlightUtil.MTBFUnits units) { return(TestFlightUtil.FailureRateToMTBF(failureRate, units)); }
public void FailureRateToMTBFString(double failureRate, TestFlightUtil.MTBFUnits units, bool shortForm, int maximum, out string output) { TestFlightUtil.FailureRateToMTBFString(failureRate, units, shortForm, maximum, out output); }
public string FailureRateToMTBFString(double failureRate, TestFlightUtil.MTBFUnits units, bool shortForm, int maximum) { return(TestFlightUtil.FailureRateToMTBFString(failureRate, units, shortForm, maximum)); }