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); }
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 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); } }