public void CreateAcceleration() { #region UsageAcceleration // Extension method for the acceleration base unit (m/s^2). var mps2 = 4.MetersPerSecondSquared(); // Extension method with a unit selector for selecting any unit. var kmph2 = 5.ToAcceleration(x => x.Kilo.Meters / x.Square.Hours); // Same as above, but as a direct call to the constructor. var miphps = new Acceleration(6, x => x.Miles / x.Hours / x.Seconds); // Constructor, which accepts any IUnit (Primarily used by serialization). var mmps2 = new Acceleration( 7, UnitSystem.GetUnitFrom("mm/s²", ParseSettings.DefaultInvariantCulture).Value); this.output.WriteLine(mps2); this.output.WriteLine(kmph2); this.output.WriteLine(miphps); this.output.WriteLine(mmps2); // 4 [m/s²] // 5 [km/h²] // 6 [mi/h/s] // 7 [mm/s²] #endregion }
public void Acceleration_Multiplication_Then_ResultShouldBeExpected(double lhs, double rhs, double expected) { var testee = new Acceleration(lhs, x => x.Kilo.Meters / x.Hours / x.Hours); var time = new Time(rhs, x => x.Hours); var result = testee * time; result.Should().Be(expected, "km/h"); }
public void Acceleration_ToUnit_When_UnitsAreDifferent_Then_ResultShouldBeAsExpected( double acceleration, double expected) { var testee = new Acceleration(acceleration, selector => selector.Miles / selector.Hours / selector.Seconds); var result = testee.ToUnit(selector => selector.Meters / selector.Seconds / selector.Seconds); result.Should().BeApproximately(expected, "m/s²", TestHelper.DefaultAssertPrecision); }
Acceleration_ToUnit_When_ConvertingFromMeterPerSecondPerSecondToMilePerHourPerSecond_Then_ResultShouldBeAsExpected (double acceleration, double expected) { var testee = new Acceleration( acceleration, selector => selector.Meters / selector.Seconds / selector.Seconds); var result = testee.ToUnit(selector => selector.Miles / selector.Hours / selector.Seconds); result.Should().BeApproximately(expected, "mi/h/s", TestHelper.DefaultAssertPrecision); }