Пример #1
0
        public void Integrate_Always_PerformsExpectedIntegration()
        {
            // Setup
            var                   random        = new Random(21);
            AircraftState         state         = CreateAircraftState();
            AircraftAccelerations accelerations = CreateAircraftAccelerations();
            double                timeStep      = random.NextDouble();

            // Call
            AircraftState resultingState = new EulerIntegrator().Integrate(state, accelerations, timeStep);

            // Assert
            Assert.AreEqual(ExpectedIntegratedValue(state.Height, accelerations.ClimbRate, timeStep),
                            resultingState.Height);
            Assert.AreEqual(ExpectedIntegratedValue(state.TrueAirspeed, accelerations.TrueAirSpeedRate, timeStep),
                            resultingState.TrueAirspeed);
            Assert.AreEqual(ExpectedIntegratedValue(state.Distance, state.TrueAirspeed, timeStep),
                            resultingState.Distance);
            Assert.AreEqual(ExpectedIntegratedValue(state.FlightPathAngle, accelerations.FlightPathRate, timeStep),
                            resultingState.FlightPathAngle);
            Assert.AreEqual(ExpectedIntegratedValue(state.PitchAngle, accelerations.PitchRate, timeStep),
                            resultingState.PitchAngle);
        }