Ejemplo n.º 1
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
            }
        }