예제 #1
0
        public void ValidateInvalidPowerTrades()
        {
            var powerTrades = new PowerTrades {
                Day = SummerDay, Trades = new[] { PowerTrade.Create(SummerDay.DateTime, 24), PowerTrade.Create(SummerDay.DateTime, 23) }
            };

            Assert.Throws <ArgumentException>(() => PositionReport.ValidateTrades(powerTrades));
        }
예제 #2
0
        public void BuildPositionOnePowerTrade()
        {
            var powerTrade = PowerTrade.Create(SummerDay.DateTime, 24);
            var trades     = new PowerTrades {
                Day = SummerDay, Trades = new[] { powerTrade }
            };
            var actual          = PositionReport.BuildPosition(trades);
            var expectedPeriods = powerTrade.Periods;

            Assert.That(actual.Day, Is.EqualTo(trades.Day));
            CollectionAssert.AreEqual(expectedPeriods, actual.Periods, new PowerPeriodComparer(0.0001));
        }
예제 #3
0
        public void ValidateValidPowerTrades()
        {
            var powerTrades = new PowerTrades {
                Day = SummerDay, Trades = Enumerable.Range(1, 2).Select(i => PowerTrade.Create(SummerDay.DateTime, 24)).ToArray()
            };
            var actual = PositionReport.ValidateTrades(powerTrades);

            Assert.That(actual.Day, Is.EqualTo(powerTrades.Day));
            for (var i = 0; i < powerTrades.Trades.Count(); i++)
            {
                CollectionAssert.AreEqual(actual.Trades[i].Periods, powerTrades.Trades[i].Periods, new PowerPeriodComparer(0.0001));
            }
        }
예제 #4
0
        public void BuildPositionMultiplePowerTrades()
        {
            var powerTrade = CreatePowerTrade(SummerDay, 24);
            var trades     = new PowerTrades {
                Day = SummerDay, Trades = new[] { powerTrade, powerTrade, powerTrade }
            };
            var actual          = PositionReport.BuildPosition(trades);
            var expectedPeriods = powerTrade.Periods.Select(p => new PowerPeriod {
                Period = p.Period, Volume = p.Volume * 3.0
            }).ToArray();

            Assert.That(actual.Day, Is.EqualTo(trades.Day));
            CollectionAssert.AreEqual(expectedPeriods, actual.Periods, new PowerPeriodComparer(0.0001));
        }