public void TestRounding() { Assert.AreEqual(3.00, RoundingHelper.Round(3.249)); Assert.AreEqual(3.50, RoundingHelper.Round(3.25)); Assert.AreEqual(3.50, RoundingHelper.Round(3.6)); Assert.AreEqual(4.00, RoundingHelper.Round(3.75)); }
public void FloorShouldReturnCorrectResult_AlwaysDown() { var result = RoundingHelper.Round(26.75, 0.1, RoundingHelper.Direction.AlwaysDown); Assert.AreEqual(26.7, result); result = RoundingHelper.Round(26.75, 0.5, RoundingHelper.Direction.AlwaysDown); Assert.AreEqual(26.5, result); result = RoundingHelper.Round(26.75, 1, RoundingHelper.Direction.AlwaysDown); Assert.AreEqual(26, result); result = RoundingHelper.Round(26.75, 10, RoundingHelper.Direction.AlwaysDown); Assert.AreEqual(20, result); result = RoundingHelper.Round(26.75, 0, RoundingHelper.Direction.AlwaysDown); Assert.AreEqual(0, result); result = RoundingHelper.Round(-26.25, -0.5, RoundingHelper.Direction.AlwaysDown); Assert.AreEqual(-26.5, result); result = RoundingHelper.Round(-26.75, 1, RoundingHelper.Direction.AlwaysDown); Assert.AreEqual(-27, result); result = RoundingHelper.Round(-26.75, -1, RoundingHelper.Direction.AlwaysDown); Assert.AreEqual(-27, result); result = RoundingHelper.Round(-26.75, 5, RoundingHelper.Direction.AlwaysDown); Assert.AreEqual(-30, result); }
public void FloorShouldReturnCorrectResult_Down() { var result = RoundingHelper.Round(26.75, 0.1, RoundingHelper.Direction.Down); Assert.AreEqual(26.7, result); result = RoundingHelper.Round(26.75, 0.5, RoundingHelper.Direction.Down); Assert.AreEqual(26.5, result); result = RoundingHelper.Round(26.75, 1, RoundingHelper.Direction.Down); Assert.AreEqual(26, result); result = RoundingHelper.Round(26.75, 10, RoundingHelper.Direction.Down); Assert.AreEqual(20, result); result = RoundingHelper.Round(26.75, 20, RoundingHelper.Direction.Down); Assert.AreEqual(20, result); result = RoundingHelper.Round(-26.75, -0.1, RoundingHelper.Direction.Down); Assert.AreEqual(-26.7, result); result = RoundingHelper.Round(-26.75, -1, RoundingHelper.Direction.Down); Assert.AreEqual(-26, result); result = RoundingHelper.Round(-26.75, -5, RoundingHelper.Direction.Down); Assert.AreEqual(-25, result); result = RoundingHelper.Round(555, 1000, RoundingHelper.Direction.Down); Assert.AreEqual(0, result); result = RoundingHelper.Round(-555, -1000, RoundingHelper.Direction.Down); Assert.AreEqual(0, result); }
public void CeilingShouldReturnCorrectResult() { var result = RoundingHelper.Round(22.25, 0.1, RoundingHelper.Direction.Up); Assert.AreEqual(22.3, result); result = RoundingHelper.Round(22.25, 0.5, RoundingHelper.Direction.Up); Assert.AreEqual(22.5, result); result = RoundingHelper.Round(22.25, 1, RoundingHelper.Direction.Up); Assert.AreEqual(23, result); result = RoundingHelper.Round(22.25, 10, RoundingHelper.Direction.Up); Assert.AreEqual(30, result); result = RoundingHelper.Round(22.25, 20, RoundingHelper.Direction.Up); Assert.AreEqual(40, result); result = RoundingHelper.Round(-22.25, -0.1, RoundingHelper.Direction.Up); Assert.AreEqual(-22.3, result); result = RoundingHelper.Round(-22.25, -1, RoundingHelper.Direction.Up); Assert.AreEqual(-23, result); result = RoundingHelper.Round(-22.25, -5, RoundingHelper.Direction.Up); Assert.AreEqual(-25, result); result = RoundingHelper.Round(555, 1000, RoundingHelper.Direction.Up); Assert.AreEqual(1000, result); result = RoundingHelper.Round(-555, -1000, RoundingHelper.Direction.Up); Assert.AreEqual(-1000, result); }
public void CeilingShouldReturnCorrectResult_AlwaysUp() { var result = RoundingHelper.Round(22.25, 0.1, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(22.3, result); result = RoundingHelper.Round(22.25, 0.5, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(22.5, result); result = RoundingHelper.Round(22.25, -0.5, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(22.5, result); result = RoundingHelper.Round(22.25, 1, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(23, result); result = RoundingHelper.Round(22.25, 10, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(30, result); result = RoundingHelper.Round(22.25, 0, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(0, result); result = RoundingHelper.Round(-22.25, -0.5, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(-22, result); result = RoundingHelper.Round(-22.25, 1, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(-22, result); result = RoundingHelper.Round(-22.25, -1, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(-22, result); result = RoundingHelper.Round(-22.25, 5, RoundingHelper.Direction.AlwaysUp); Assert.AreEqual(-20, result); }
public void RoundingsTest(decimal value, decimal rounded) { //arrange & act var result = RoundingHelper.Round(value, 2); //assert Assert.Equal(rounded, result); }
/// <summary> /// Generates ticks for given range and preferred ticks count. /// </summary> /// <param name="range">The range.</param> /// <param name="ticksCount">The ticks count.</param> /// <returns></returns> public ITicksInfo <int> GetTicks(Range <int> range, int ticksCount) { double start = range.Min; double finish = range.Max; double delta = finish - start; int log = (int)Math.Round(Math.Log10(delta)); double newStart = RoundingHelper.Round(start, log); double newFinish = RoundingHelper.Round(finish, log); if (newStart == newFinish) { log--; newStart = RoundingHelper.Round(start, log); newFinish = RoundingHelper.Round(finish, log); } // calculating step between ticks double unroundedStep = (newFinish - newStart) / ticksCount; int stepLog = log; // trying to round step int step = (int)RoundingHelper.Round(unroundedStep, stepLog); if (step == 0) { stepLog--; step = (int)RoundingHelper.Round(unroundedStep, stepLog); if (step == 0) { // step will not be rounded if attempts to be rounded to zero. step = (int)unroundedStep; } } if (step < minStep) { step = minStep; } if (step > maxStep) { step = maxStep; } if (step <= 0) { step = 1; } int[] ticks = CreateTicks(start, finish, step); TicksInfo <int> res = new TicksInfo <int> { Info = log, Ticks = ticks }; return(res); }
protected override bool IsValid(PropertyValidatorContext context) { decimal value; if (decimal.TryParse(context.PropertyValue.ToString(), out value)) { return(RoundingHelper.Round(value, RoundingType.Rounding001) < _maxValue); } return(false); }
public void Round3Test() { //arrange var value = 169.56585m; //act var roundedValue = RoundingHelper.Round(value, 2); //assert Assert.Equal(169.57m, roundedValue); }
public void NearestRoundingTest() { var result = RoundingHelper.Round(22.24, 0.1, RoundingHelper.Direction.Nearest); Assert.AreEqual(22.2, result); result = RoundingHelper.Round(22.25, 0.1, RoundingHelper.Direction.Nearest); Assert.AreEqual(22.3, result); result = RoundingHelper.Round(22.26, 0.1, RoundingHelper.Direction.Nearest); Assert.AreEqual(22.3, result); result = RoundingHelper.Round(-22.25, -0.1, RoundingHelper.Direction.Nearest); Assert.AreEqual(-22.3, result); result = RoundingHelper.Round(-22.24, -0.1, RoundingHelper.Direction.Nearest); Assert.AreEqual(-22.2, result); result = RoundingHelper.Round(333.8, 1, RoundingHelper.Direction.Nearest); Assert.AreEqual(334, result); result = RoundingHelper.Round(333.3, 1, RoundingHelper.Direction.Nearest); Assert.AreEqual(333, result); result = RoundingHelper.Round(333.3, 2, RoundingHelper.Direction.Nearest); Assert.AreEqual(334, result); result = RoundingHelper.Round(555.3, 400, RoundingHelper.Direction.Nearest); Assert.AreEqual(400, result); result = RoundingHelper.Round(555, 1000, RoundingHelper.Direction.Nearest); Assert.AreEqual(1000, result); result = RoundingHelper.Round(-555.7, -1, RoundingHelper.Direction.Nearest); Assert.AreEqual(-556, result); result = RoundingHelper.Round(-555.4, -1, RoundingHelper.Direction.Nearest); Assert.AreEqual(-555, result); result = RoundingHelper.Round(-1555, -1000, RoundingHelper.Direction.Nearest); Assert.AreEqual(-2000, result); }
public static void UpdateFloatingRateDefinition(FloatingRateDefinition floatingRateDefinition, FloatingRateCalculation floatingRateCalculation, DayCountFraction dayCountFraction, CalculationPeriod calculationPeriod, IRateCurve forecastCurve) { var rateObservation = new RateObservation(); if (floatingRateDefinition.rateObservation != null) { if (floatingRateDefinition.rateObservation[0].adjustedFixingDateSpecified) { rateObservation.adjustedFixingDate = floatingRateDefinition.rateObservation[0].adjustedFixingDate; rateObservation.adjustedFixingDateSpecified = true; } } floatingRateDefinition.rateObservation = new[] { rateObservation }; rateObservation.forecastRate = GetForecastRate(calculationPeriod, forecastCurve, dayCountFraction); rateObservation.forecastRateSpecified = true; Decimal finalRate = rateObservation.forecastRate; // If spread specified - add it to the final rate. // if (floatingRateDefinition.spreadSpecified) { finalRate += floatingRateDefinition.spread; } // Apply rounding (if it's been specified) // if (null != floatingRateCalculation.finalRateRounding) { Rounding finalRateRounding = floatingRateCalculation.finalRateRounding; floatingRateDefinition.calculatedRate = RoundingHelper.Round(finalRate, finalRateRounding); } else { floatingRateDefinition.calculatedRate = finalRate; } floatingRateDefinition.calculatedRateSpecified = true; }