public void DistanceRequiredTest() { string text = new TestData().AllText; var doc = XDocument.Parse(text); var table = new PerfDataLoader().GetItem(doc); var para = new LandingParameters( 55000.0, 0.0, 1000.0, -10.0, -1.0, 15.0, 1013.25, 5.0, ReverserOption.NoRev, SurfaceCondition.Good, 0, 0); var dis = new LandingCalculator(table, para) .DistanceRequiredMeter(); double expectedDistance = 1200.0 + 85.0 + 30.0 + 205.0 + 30.0 + 1.98 / 10.0 * 30.0 + 100.0 * 0.5 + 145.0; Assert.AreEqual(expectedDistance, dis, 1E-7); }
public void WhenRwyIsTooShortShouldThrowException() { string text = new TestData().AllText; var doc = XDocument.Parse(text); var table = new PerfDataLoader().GetItem(doc); var para = new LandingParameters( 55000.0, 0.0, // Too short runway 1000.0, -10.0, -1.0, 15.0, 1013.0, 5.0, ReverserOption.NoRev, SurfaceCondition.Good, 0, 0); Assert.Throws <RunwayTooShortException>(() => { new LandingReportGenerator(table, para).GetReport(); }); }
public void GetReportTest() { string text = new TestData().AllText; var doc = XDocument.Parse(text); var table = new PerfDataLoader().GetItem(doc); var para = new LandingParameters( 55000.0, 3000.0, 1000.0, -10.0, -1.0, 15.0, 1013.0, 5.0, ReverserOption.NoRev, SurfaceCondition.Good, 0, 0); var report = new LandingReportGenerator(table, para).GetReport(); AssertMainResult(report, para, table); AssertOtherResult(report, para, table); }
public LandingReport GetReport(LandingParameters p) { return(Calculator.LandingReport(new CalculatorData() { Parameters = p, Table = (AirbusPerfTable)controllerData.PerfTable.Item })); }
public MainViewModel(IAudioService audioService) { _audioService = audioService; ActiveLandingParameters = new LandingParameters(); Altitude = ActiveLandingParameters.Altitude; Velocity = ActiveLandingParameters.Velocity; Fuel = ActiveLandingParameters.Fuel; Thrust = ActiveLandingParameters.Thrust; FuelRemaining = Constants.StartingFuel; IsActive = false; }
public MainViewModel(MainPage activityPage) { ActivityPage = activityPage; ActiveLandingParameters = new LandingParameters(); Altitude = ActiveLandingParameters.Altitude; Velocity = ActiveLandingParameters.Velocity; Fuel = ActiveLandingParameters.Fuel; Thrust = ActiveLandingParameters.Thrust; FuelRemaining = CoreConstants.StartingFuel; IsActive = false; }
public async void ResetLanding() { Helpers.AudioHelper.ToggleEngine(); await Task.Delay(500); ActiveLandingParameters = new LandingParameters(); Altitude = 5000.0; Velocity = 0.0; Fuel = 1000.0; FuelRemaining = 1000.0; Thrust = 0.0; DescentRate = 0.0; Throttle = 0.0; }
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); }
// Returns whether continue to calculate. private bool CheckWeight(LandingParameters para) { if (para.WeightKG > ac.MaxTOWtKg || para.WeightKG < ac.OewKg) { var result = parentControl.ShowDialog( "Landing weight is not within valid range. Continue to calculate?", MsgBoxIcon.Warning, "", DefaultButton.Button2, "Yes", "No"); return(result == MsgBoxResult.Button1); } return(true); }
// Returns whether continue to calculate. private bool CheckWeight(LandingParameters para) { var ac = aircrafts.Find(regComboBox.Text).Config; if (para.WeightKG > ac.MaxTOWtKg || para.WeightKG < ac.OewKg) { var result = this.ShowDialog( "Landing weight is not within valid range. Continue to calculate?", MsgBoxIcon.Warning, "", DefaultButton.Button2, "Yes", "No"); return(result == MsgBoxResult.Button1); } return(true); }
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); } }
public LandingReport GetReport(LandingParameters p) { var item = (BoeingPerfTable)controllerData.PerfTable.Item; return(new LandingReportGenerator(item, p).GetReport()); }