/// <summary>
 /// Constructor
 /// </summary>
 /// <param name="time"></param>
 /// <param name="weight"></param>
 /// <param name="distance"></param>
 /// <param name="velocity"></param>
 /// <param name="mach"></param>
 /// <param name="drop"></param>
 /// <param name="windage"></param>
 public TrajectoryPoint(TimeSpan time, Measurement <WeightUnit> weight, Measurement <DistanceUnit> distance,
                        Measurement <VelocityUnit> velocity, double mach, Measurement <DistanceUnit> drop,
                        Measurement <DistanceUnit> windage)
     : this(time, distance, velocity, mach, drop, windage,
            MeasurementMath.KineticEnergy(weight, velocity),
            BallisticMath.OptimalGameWeight(weight, velocity))
 {
 }
        public void KineticEnergy(double m, WeightUnit wu, double v, VelocityUnit vu, double e, EnergyUnit eu)
        {
            var r = MeasurementMath.KineticEnergy(new Measurement <WeightUnit>(m, wu), new Measurement <VelocityUnit>(v, vu));

            r.In(eu).Should().BeApproximately(e, 1e-6);
        }