示例#1
0
        public void HasLengthHigherDimensionTest()
        {
            Assert.IsTrue(LengthChecker.HasLength <double>(
                              JaggedArray.Create <double[][]>(8, 9),
                              8, 9));

            Assert.IsTrue(LengthChecker.HasLength <double>(
                              JaggedArray.Create <double[][][]>(3, 4, 5),
                              3, 4, 5));
        }
示例#2
0
        public BoeingPerfTable GetItem(XDocument doc)
        {
            var    root           = doc.Root;
            var    para           = root.Element("Parameters");
            bool   lenUnitIsMeter = para.GetString("LengthUnit") == "M";
            double wtRefKg        = para.GetDouble("WeightRef");
            double wtStepKg       = para.GetDouble("WeightStep");

            var brks          = para.Element("Brakes");
            var brkSettingDry = brks.GetString("Dry").Split(';');
            var brkSettingWet = brks.GetString("Wet").Split(';');
            var reversers     = para.GetString("Reversers").Split(';');

            var data       = root.Elements("Data").ToArray();
            int flapsCount = data.Length;

            string[] flaps = new string[flapsCount];

            var tableDry = JaggedArray.Create <double[][][]>
                               (flapsCount, brkSettingDry.Length, ColumnCount);

            var tableWet = JaggedArray.Create <double[][][][]>
                               (flapsCount, SurfaceCondCount, brkSettingWet.Length, ColumnCount);

            for (int i = 0; i < flapsCount; i++)
            {
                flaps[i] = data[i].Element("Flaps").Value;
                ReadTableDry(tableDry, i, data[i].GetString("Dry"));

                ReadTableWet(tableWet, i, 0, data[i].GetString("Good"));
                ReadTableWet(tableWet, i, 1, data[i].GetString("Medium"));
                ReadTableWet(tableWet, i, 2, data[i].GetString("Poor"));
            }

            if (lenUnitIsMeter == false)
            {
                tableDry.Multiply(FtMeterRatio);
                tableWet.Multiply(FtMeterRatio);
            }

            return(new BoeingPerfTable(
                       wtRefKg,
                       wtStepKg,
                       brkSettingDry,
                       brkSettingWet,
                       flaps,
                       reversers,
                       new TableDry(tableDry),
                       new TableWet(tableWet)));
        }