示例#1
0
        public void TestRandomTradeLineWithSteadyHistory()
        {
            var testResult = TradeLine.RandomTradeLineWithSteadyHistory(250M.ToPecuniam(), new TimeSpan(30, 0, 0, 0),
                                                                        DateTime.Today.AddYears(-1));

            Assert.IsNotNull(testResult);
            var testResultAverage = testResult.AveragePerDueFrequency();

            Console.WriteLine(testResultAverage);
            var testResultDiff = System.Math.Abs(250M - testResultAverage.Amount);

            Assert.IsTrue(testResultDiff < 1M);
            Console.WriteLine(testResult.Balance.FirstTransaction);
            Console.WriteLine(testResult.Balance.LastTransaction);
        }
示例#2
0
        public void TestGetCurrent()
        {
            var testSubject = new TradeLine(DateTime.UtcNow.AddDays(-370));
            var testBalance = testSubject.Balance;

            var today = DateTime.Today;

            testBalance.AddNegativeValue(today.AddDays(-360), new Pecuniam(-450.0M));
            testBalance.AddNegativeValue(today.AddDays(-120), new Pecuniam(-458.0M));
            testBalance.AddNegativeValue(today.AddDays(-150), new Pecuniam(-457.0M));
            testBalance.AddNegativeValue(today.AddDays(-240), new Pecuniam(-454.0M));
            testBalance.AddNegativeValue(today.AddDays(-300), new Pecuniam(-452.0M));
            testBalance.AddNegativeValue(today.AddDays(-270), new Pecuniam(-453.0M));
            testBalance.AddNegativeValue(today.AddDays(-180), new Pecuniam(-456.0M));
            testBalance.AddNegativeValue(today.AddDays(-210), new Pecuniam(-455.0M));
            testBalance.AddNegativeValue(today.AddDays(-330), new Pecuniam(-451.0M));

            //charges
            testBalance.AddPositiveValue(today.AddDays(-365), new Pecuniam(8000.0M));
            testBalance.AddPositiveValue(today.AddDays(-350), new Pecuniam(164.4M));
            testBalance.AddPositiveValue(today.AddDays(-198), new Pecuniam(165.4M));
            testBalance.AddPositiveValue(today.AddDays(-24), new Pecuniam(166.4M));
            testBalance.AddPositiveValue(today.AddDays(-74), new Pecuniam(167.4M));
            testBalance.AddPositiveValue(today.AddDays(-88), new Pecuniam(168.4M));
            testBalance.AddPositiveValue(today.AddDays(-92), new Pecuniam(169.4M));
            testBalance.AddPositiveValue(today.AddDays(-121), new Pecuniam(170.4M));
            testBalance.AddPositiveValue(today.AddDays(-180), new Pecuniam(171.4M));
            testBalance.AddPositiveValue(today.AddDays(-142), new Pecuniam(172.4M));
            testBalance.AddPositiveValue(today.AddDays(-155), new Pecuniam(173.4M));

            testBalance.AddNegativeValue(today.AddDays(-30), new Pecuniam(-461.0M));
            testBalance.AddNegativeValue(today.AddDays(-90), new Pecuniam(-459.0M));
            testBalance.AddNegativeValue(today.AddDays(-60), new Pecuniam(-460.0M));

            var current = testBalance.GetCurrent(DateTime.Today, 0.0f);

            Assert.AreEqual(4223.0M, current.Amount);

            current = testBalance.GetCurrent(DateTime.Today, 1.5f);
            Assert.AreEqual(25704.93M, current.Amount);
        }
示例#3
0
        public void TestAveragePerPeriod()
        {
            var dt          = DateTime.Today;
            var testSubject = new TradeLine(DateTime.UtcNow.AddDays(-180));

            testSubject.DueFrequency = new TimeSpan(30, 0, 0, 0);
            for (var i = -180; i < 0; i += 30)
            {
                var pastDt = dt.AddDays(i);
                for (var j = 0; j < 3; j++)
                {
                    //should get average around 28 per 30 days
                    testSubject.AddPositiveValue(pastDt.AddDays(j), new Pecuniam(27 + j));
                }
            }

            var testResult = testSubject.AveragePerDueFrequency();

            Console.WriteLine(testResult);

            Assert.AreEqual(28M.ToPecuniam(), testResult);
        }
 public void InitialLine()
 {
     var line = new TradeLine("");
 }