Пример #1
0
        public void GetValidAngleOfAttack_VariousAerodynamicsData_ReturnsExpectedValue(AerodynamicsData data,
                                                                                       Angle expectedAngle)
        {
            // Call
            Angle angleOfAttack = AerodynamicsDataTestHelper.GetValidAngleOfAttack(data);

            // Assert
            Assert.AreEqual(expectedAngle, angleOfAttack);
        }
Пример #2
0
        public void GetValidAngleOfAttack_AerodynamicsDataNull_ThrowsArgumentNullException()
        {
            // Call
            TestDelegate call = () => AerodynamicsDataTestHelper.GetValidAngleOfAttack(null);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(call);

            Assert.AreEqual("data", exception.ParamName);
        }
Пример #3
0
        public static void Calculate_Always_ReturnsExpectedZeroPitchRate()
        {
            // Setup
            var          random        = new Random(21);
            AircraftData aircraftData  = AircraftDataTestFactory.CreateRandomAircraftData();
            Angle        angleOfAttack = AerodynamicsDataTestHelper.GetValidAngleOfAttack(aircraftData.AerodynamicsData);
            var          aircraftState = new AircraftState(angleOfAttack,
                                                           new Angle(),
                                                           random.NextDouble(),
                                                           random.NextDouble(),
                                                           random.NextDouble());

            var calculator = new AbortedTakeOffDynamicsCalculator(aircraftData, random.NextDouble(), random.NextDouble());

            // Call
            AircraftAccelerations accelerations = calculator.Calculate(aircraftState);

            // Assert
            Assert.Zero(accelerations.PitchRate.Radians);
        }
Пример #4
0
        public static void Calculate_Always_SendsCorrectInput()
        {
            // Setup
            var random = new Random(21);

            AircraftData aircraftData  = AircraftDataTestFactory.CreateRandomAircraftData();
            var          calculator    = new TestTakeOffDynamicsCalculator(aircraftData, random.NextDouble(), random.NextDouble());
            Angle        angleOfAttack = AerodynamicsDataTestHelper.GetValidAngleOfAttack(aircraftData.AerodynamicsData);

            var state = new AircraftState(angleOfAttack,
                                          new Angle(),
                                          random.NextDouble(),
                                          random.NextDouble(),
                                          random.NextDouble());

            // Call
            calculator.Calculate(state);

            // Assert
            Assert.AreSame(state, calculator.CalculateDragInput);
        }
Пример #5
0
        public void Create_WithCalculation_ReturnsExpectedAircraftData()
        {
            // Setup
            var random       = new Random(21);
            var aircraftData = new AircraftData
            {
                WingSurfaceArea         = random.NextDouble(),
                AspectRatio             = random.NextDouble(),
                OswaldFactor            = random.NextDouble(),
                MaximumLiftCoefficient  = random.NextDouble(),
                LiftCoefficientGradient = random.NextDouble(),
                ZeroLiftAngleOfAttack   = random.NextAngle(),
                RestDragCoefficient     = random.NextDouble(),
                RestDragCoefficientWithEngineFailure = random.NextDouble()
            };

            // Call
            KernelAerodynamicsData data = AerodynamicsDataFactory.Create(aircraftData);

            // Assert
            AerodynamicsDataTestHelper.AssertAerodynamicsData(aircraftData, data);
        }
Пример #6
0
        public static void Calculate_WithAircraftStateAlways_ReturnsExpectedClimbRate()
        {
            // Setup
            var          random        = new Random(21);
            AircraftData aircraftData  = AircraftDataTestFactory.CreateRandomAircraftData();
            Angle        angleOfAttack = AerodynamicsDataTestHelper.GetValidAngleOfAttack(aircraftData.AerodynamicsData);

            var aircraftState = new AircraftState(angleOfAttack,
                                                  new Angle(),
                                                  random.NextDouble(),
                                                  random.NextDouble(),
                                                  random.NextDouble());

            var calculator = new TestTakeOffDynamicsCalculator(aircraftData, random.NextDouble(), random.NextDouble());

            // Call
            AircraftAccelerations accelerations = calculator.Calculate(aircraftState);

            // Assert
            double expectedClimbRate = aircraftState.TrueAirspeed * Math.Sin(aircraftState.FlightPathAngle.Radians);

            Assert.AreEqual(expectedClimbRate, accelerations.ClimbRate, tolerance);
        }
Пример #7
0
            public static void Calculate_WithAirspeedLowerThanThreshold_ReturnsExpectedZeroRate()
            {
                // Setup
                var          random        = new Random(21);
                AircraftData aircraftData  = AircraftDataTestFactory.CreateRandomAircraftData();
                Angle        angleOfAttack = AerodynamicsDataTestHelper.GetValidAngleOfAttack(aircraftData.AerodynamicsData);

                var aircraftState = new AircraftState(angleOfAttack,
                                                      new Angle(),
                                                      random.NextDouble(),
                                                      random.NextDouble(),
                                                      random.NextDouble());

                // Precondition
                Assert.IsTrue(aircraftState.TrueAirspeed < 1);

                var calculator = new TestTakeOffDynamicsCalculator(aircraftData, random.NextDouble(), random.NextDouble());

                // Call
                AircraftAccelerations accelerations = calculator.Calculate(aircraftState);

                // Assert
                Assert.Zero(accelerations.FlightPathRate.Degrees);
            }