private void ValidateOtherResults(LandingReport report) { var brkList = perfTable.BrakesAvailable(para.SurfaceCondition); for (int i = 0; i < brkList.Length; i++) { if (i == para.BrakeIndex) { report.AddOtherResult(); } else { double disReq = RoundToInt(calc.DistanceRequiredMeter(i)); double disRemain = para.RwyLengthMeter - disReq; if (disRemain >= 0.0) { report.AddOtherResult(brkList[i], RoundToInt(disReq), RoundToInt(disRemain)); } else { return; } } } }
/// <exception cref="RunwayTooShortException"></exception> public LandingReport GetReport() { var report = new LandingReport(); //compute the user input ValidateMainResult(report); //compute all possible brake settings ValidateOtherResults(report); return(report); }
private void AssertMainResult(LandingReport report, LandingParameters para, BoeingPerfTable table) { var entry = report.SelectedBrks; var calc = new LandingCalculator(table, para); string brake = table.BrakesAvailable(para.SurfaceCondition)[para.BrakeIndex]; double rwyRequired = calc.DistanceRequiredMeter(); Assert.IsTrue(entry.BrkSetting == brake); Assert.AreEqual(rwyRequired, entry.ActualDisMeter, 0.5); double disRemain = para.RwyLengthMeter - rwyRequired; Assert.AreEqual(disRemain, entry.DisRemainMeter, 0.5); }
private void ValidateMainResult(LandingReport report) { var brkList = perfTable.BrakesAvailable(para.SurfaceCondition); double disReqMeter = calc.DistanceRequiredMeter(); double disRemainMeter = para.RwyLengthMeter - disReqMeter; if (disRemainMeter >= 0) { report.SetSelectedBrakesResult( brkList[para.BrakeIndex], RoundToInt(disReqMeter), RoundToInt(disRemainMeter)); } else { throw new RunwayTooShortException(); } }
private void AssertOtherResult(LandingReport report, LandingParameters para, BoeingPerfTable table) { var calc = new LandingCalculator(table, para); foreach (var i in report.AllSettings) { int brakeIndex = Array.FindIndex( table.BrakesAvailable(para.SurfaceCondition), x => x == i.BrkSetting); PropertySetter.Set(para, "BrakeIndex", brakeIndex); double rwyRequired = calc.DistanceRequiredMeter(); Assert.AreEqual(rwyRequired, i.ActualDisMeter, 0.5); double disRemain = para.RwyLengthMeter - rwyRequired; Assert.AreEqual(disRemain, i.DisRemainMeter, 0.5); } }