示例#1
0
        public override Money Round(RoundingPolicy policy)
        {
            rounding = policy;
            var d = round();

            return(new Money(Currency, d));
        }
示例#2
0
        public void RoundTest()
        {
            var r = new RoundingPolicy();
            var a = quantity4.Round(r);

            Assert.AreEqual(213.46, a.Amount);
        }
示例#3
0
        [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());
        }
示例#5
0
        [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()));
        }