public void TestCorrectResultsMotionWithResistanceRight()
        {
            ProjectileMotionWithResistance motionRight = new ProjectileMotionWithResistance(
                new ProjectileMotionWithResistanceSettings(
                    new ProjectileMotionWithResistanceQuantities(V,
                                                                 new ElevationAngle(ElevationAngle.ElevationAngleTypes.Right),
                                                                 H, G, M, Ρ, A, C, Utilities.UnitsOfResults)
                    )
            {
                PointsForTrajectory = UsePoints
            }
                );

            Utilities.AlmostSame(motionRight.GetLength(), new Length(0, UnitLength.Basic));
            Utilities.AlmostSame(motionRight.GetMaxDistance(), new Length(motionRight.GetMaxHeight().GetBasicVal() - H.GetBasicVal(), UnitLength.Basic));
            Utilities.AlmostSame(motionRight.GetMaxDistance(), motionRight.Trajectory.GetInitialPoint().GetDistanceFromPoint(motionRight.Trajectory.GetHighestPoint()));
            Utilities.AlmostSame(motionRight.Trajectory.GetArcLength(), new Length(2 * motionRight.GetMaxHeight().GetBasicVal() - H.GetBasicVal(), UnitLength.Basic));
            Utilities.AlmostSame(motionRight.Trajectory.GetAreaUnderArc(), new Area(0, UnitArea.Basic));
            Utilities.AlmostSame(motionRight.Trajectory.GetHighestPoint().Y, motionRight.GetMaxHeight());
            Utilities.AlmostSame(motionRight.Trajectory.GetFarthestPoint().Y, motionRight.Trajectory.GetHighestPoint().Y);
            Utilities.AlmostSame(motionRight.Trajectory.GetFarthestPoint().X, motionRight.Trajectory.GetHighestPoint().X);
            Utilities.AlmostSame(motionRight.Trajectory.GetInitialPoint().X, motionRight.Trajectory.GetFinalPoint().X);
            Utilities.AlmostSame(motionRight.Trajectory.GetInitialPoint().Y, new Length(motionRight.Trajectory.GetFinalPoint().Y.GetBasicVal() + H.GetBasicVal(), UnitLength.Basic));

            Utilities.AlmostSame(Utilities.GetTrajectoryLengthIteratively(motionRight), motionRight.Trajectory.GetArcLength());
            Utilities.AlmostSame(Utilities.GetAreaUnderTrajectoryIteratively(motionRight), motionRight.Trajectory.GetAreaUnderArc());
            Utilities.AlmostSame(Utilities.GetMaxHeightIteratively(motionRight), motionRight.GetMaxHeight());
            Utilities.AlmostSame(Utilities.GetMaxDistanceIteratively(motionRight), motionRight.GetMaxDistance());
        }
        public void TestCorrectResultsMotionWithResistanceHorizontal()
        {
            ProjectileMotionWithResistance motionHorizontal = new ProjectileMotionWithResistance(
                new ProjectileMotionWithResistanceSettings(
                    new ProjectileMotionWithResistanceQuantities(V,
                                                                 new ElevationAngle(ElevationAngle.ElevationAngleTypes.Horizontal),
                                                                 H, G, M, Ρ, A, C, Utilities.UnitsOfResults)
                    )
            {
                PointsForTrajectory = UsePoints
            }
                );

            Utilities.AlmostSame(motionHorizontal.GetTimeHighest(), new Time(0, UnitTime.Basic));
            Utilities.AlmostSame(motionHorizontal.GetTimeHighest(), motionHorizontal.Trajectory.GetInitialPoint().T);
            Utilities.AlmostSame(motionHorizontal.GetMaxDistance(), motionHorizontal.Trajectory.GetInitialPoint().GetDistanceFromPoint(motionHorizontal.Trajectory.GetFinalPoint()));
            Utilities.AlmostSame(motionHorizontal.Trajectory.GetHighestPoint().Y, motionHorizontal.GetMaxHeight());
            Utilities.AlmostSame(motionHorizontal.Trajectory.GetFarthestPoint().Y, motionHorizontal.Trajectory.GetFinalPoint().Y);
            Utilities.AlmostSame(motionHorizontal.Trajectory.GetFarthestPoint().X, motionHorizontal.Trajectory.GetFinalPoint().X);
            Utilities.AlmostSame(motionHorizontal.Trajectory.GetInitialPoint().X, motionHorizontal.Trajectory.GetHighestPoint().X);
            Utilities.AlmostSame(motionHorizontal.Trajectory.GetInitialPoint().Y, motionHorizontal.Trajectory.GetHighestPoint().Y);

            Utilities.AlmostSame(Utilities.GetTrajectoryLengthIteratively(motionHorizontal), motionHorizontal.Trajectory.GetArcLength());
            Utilities.AlmostSame(Utilities.GetAreaUnderTrajectoryIteratively(motionHorizontal), motionHorizontal.Trajectory.GetAreaUnderArc());
            Utilities.AlmostSame(Utilities.GetMaxHeightIteratively(motionHorizontal), motionHorizontal.GetMaxHeight());
            Utilities.AlmostSame(Utilities.GetMaxDistanceIteratively(motionHorizontal), motionHorizontal.GetMaxDistance());
        }
        public void TestCorrectResultsMotionWithResistanceHigh()
        {
            ProjectileMotionWithResistance motion = new ProjectileMotionWithResistance(
                new ProjectileMotionWithResistanceSettings(
                    new ProjectileMotionWithResistanceQuantities(V, new ElevationAngle(82, UnitAngle.Degree), H, G, M, Ρ, A, C, Utilities.UnitsOfResults)
                    )
            {
                PointsForTrajectory = UsePoints
            }
                );

            Utilities.AlmostSame(Utilities.GetTrajectoryLengthIteratively(motion), motion.Trajectory.GetArcLength());
            Utilities.AlmostSame(Utilities.GetAreaUnderTrajectoryIteratively(motion), motion.Trajectory.GetAreaUnderArc());
            Utilities.AlmostSame(Utilities.GetMaxHeightIteratively(motion), motion.GetMaxHeight());
            Utilities.AlmostSame(Utilities.GetMaxDistanceIteratively(motion), motion.GetMaxDistance());

            Assert.IsTrue(motion.GetMaxDistance() > motion.Trajectory.GetFinalPoint().GetDistanceFromPoint(motion.Trajectory.GetInitialPoint()));
            Assert.IsTrue(motion.GetTimeFarthest() > motion.GetTimeHighest());
            Assert.IsTrue(motion.Trajectory.GetFarthestPoint().Y < motion.Trajectory.GetHighestPoint().Y);
        }
        public void TestCorrectResultsMotionWithResistanceLow()
        {
            ProjectileMotionWithResistance motion = new ProjectileMotionWithResistance(
                new ProjectileMotionWithResistanceSettings(
                    new ProjectileMotionWithResistanceQuantities(V, Α, H, G, M, Ρ, A, C, Utilities.UnitsOfResults)
                    )
            {
                PointsForTrajectory = UsePoints
            }
                );

            Utilities.AlmostSame(motion.GetDur(), Dur);
            Utilities.AlmostSame(motion.GetLength(), Len);
            Utilities.AlmostSame(motion.GetMaxHeight(), MaxH);
            Utilities.AlmostSame(motion.GetMaxDistance(), MaxDist);
            Utilities.AlmostSame(motion.Trajectory.GetAreaUnderArc(), AreaUnderArc);
            Utilities.AlmostSame(motion.Trajectory.GetArcLength(), ArcLength);
        }