public override Money Round(RoundingPolicy policy) { rounding = policy; var d = round(); return(new Money(Currency, d)); }
public void RoundTest() { var r = new RoundingPolicy(); var a = quantity4.Round(r); Assert.AreEqual(213.46, a.Amount); }
[TestMethod] public void RoundTest() { Func <double, RoundingStrategy, sbyte, byte, double, double> round = (x, strategy, percition, digits, step) => { var p = new RoundingPolicy(strategy, percition, digits, step); switch (p.Strategy) { case RoundingStrategy.RoundUp: return(Rounding.Up(x, p.Decimals)); case RoundingStrategy.RoundDown: return(Rounding.Down(x, p.Decimals)); case RoundingStrategy.RoundUpByStep: return(Rounding.UpByStep(x, p.Step)); case RoundingStrategy.RoundDownByStep: return(Rounding.DownByStep(x, p.Step)); case RoundingStrategy.RoundTowardsPositive: return(Rounding.TowardsPositive(x, p.Decimals)); case RoundingStrategy.RoundTowardsNegative: return(Rounding.TowardsNegative(x, p.Decimals)); default: return(Rounding.Off(x, p.Decimals, p.Digit)); } }; Assert.AreEqual(4.5, round(4.45, RoundingStrategy.RoundUp, 1, GetRandom.UInt8(), GetRandom.Double())); Assert.AreEqual(-4.45, round(-4.456, RoundingStrategy.RoundDown, 2, GetRandom.UInt8(), GetRandom.Double())); Assert.AreEqual(-4.5, round(-4.45, RoundingStrategy.RoundUpByStep, GetRandom.Int8(), GetRandom.UInt8(), 0.25)); Assert.AreEqual(4.25, round(4.45, RoundingStrategy.RoundDownByStep, GetRandom.Int8(), GetRandom.UInt8(), 0.25)); Assert.AreEqual(-4.5, round(-4.45, RoundingStrategy.RoundTowardsNegative, 1, GetRandom.UInt8(), GetRandom.Double())); Assert.AreEqual(4.46, round(4.456, RoundingStrategy.RoundTowardsPositive, 2, GetRandom.UInt8(), GetRandom.Double())); Assert.AreEqual(4.45, round(4.456, RoundingStrategy.Round, 2, 7, GetRandom.Double())); }
public void Weight_Serialize_PropertyNamesAsExpected() { // Arrange var roundingPolicy = new RoundingPolicy(); // Act var serializedObject = JsonConvert.SerializeObject(roundingPolicy); // Assert Assert.AreEqual(@"{ ""mode"": ""UP"", ""rule"": ""PER_ITEM"" }" .RemoveWhiteSpace(), serializedObject.RemoveWhiteSpace()); }
[TestMethod] public void RoundTest() { decimal test(decimal x, RoundingStrategy strategy, sbyte percition, byte digits, double step) { var p = new RoundingPolicy(strategy, percition, digits, step); var v = new Money(usd, x, dt1); return(v.Round(p).Amount); } Assert.AreEqual(4.5M, test(4.45M, RoundingStrategy.RoundUp, 1, GetRandom.UInt8(), GetRandom.Double())); Assert.AreEqual(-4.45M, test(-4.456M, RoundingStrategy.RoundDown, 2, GetRandom.UInt8(), GetRandom.Double())); Assert.AreEqual(-4.5M, test(-4.45M, RoundingStrategy.RoundUpByStep, GetRandom.Int8(), GetRandom.UInt8(), 0.25)); Assert.AreEqual(4.25M, test(4.45M, RoundingStrategy.RoundDownByStep, GetRandom.Int8(), GetRandom.UInt8(), 0.25)); Assert.AreEqual(-4.5M, test(-4.45M, RoundingStrategy.RoundTowardsNegative, 1, GetRandom.UInt8(), GetRandom.Double())); Assert.AreEqual(4.46M, test(4.456M, RoundingStrategy.RoundTowardsPositive, 2, GetRandom.UInt8(), GetRandom.Double())); Assert.AreEqual(4.45M, test(4.456M, RoundingStrategy.Round, 2, 7, GetRandom.Double())); }