public void GetInvestmentCandidates_RateOfGrowthInsufficient_ReturnsNothing() { var stock = new Stock { Id = "STK.PLC", Name = "STOCK PLC", Description = "The Test Stock Price" }; var history = new StockPriceHistory { Stock = stock, Prices = new Dictionary<Period, Price>() }; var currentDate = DateTime.UtcNow.AddMinutes(10); var lastPeriodEnd = DateTime.Parse(currentDate.ToString("dd MMMM yyyy HH:00:00")); history.Prices.Add(new Period { Id = 1, To = lastPeriodEnd.AddHours(-6) }, new Price { Mid = 25.23m }); history.Prices.Add(new Period { Id = 2, To = lastPeriodEnd.AddHours(-5) }, new Price { Mid = 26.23m }); history.Prices.Add(new Period { Id = 3, To = lastPeriodEnd.AddHours(-4) }, new Price { Mid = 28.23m }); history.Prices.Add(new Period { Id = 4, To = lastPeriodEnd.AddHours(-3) }, new Price { Mid = 30.23m }); history.Prices.Add(new Period { Id = 5, To = lastPeriodEnd.AddHours(-2) }, new Price { Mid = 30.25m }); history.Prices.Add(new Period { Id = 6, To = lastPeriodEnd.AddHours(-1) }, new Price { Mid = 31.50m }); history.Prices.Add(new Period { Id = 7, To = lastPeriodEnd.AddHours(0) }, new Price { Mid = 35.40m }); var stockPriceProvider = new Mock<IStockHistoryDataProvider>(); stockPriceProvider.Setup(x => x.GetStockHistory(stock, 5)).Returns(history); var filter = new MinimumRateOfChangeStockFilter(stockPriceProvider.Object, 5, 35m, 35m); var results = filter.GetInvestmentCandidates(new Stock[] { stock }); Assert.AreEqual(0, results.Count()); }
public void GetInvestmentCandidates_NotEnoughtPeriods_ReturnsNothing() { var stock = new Stock { Id = "STK.PLC", Name = "STOCK PLC", Description = "The Test Stock Price" }; var history = new StockPriceHistory { Stock = stock, Prices = new Dictionary<Period, Price>() }; var currentDate = DateTime.UtcNow.AddMinutes(10); var lastPeriodEnd = DateTime.Parse(currentDate.ToString("dd MMMM yyyy HH:00:00")); history.Prices.Add(new Period { Id = 5, To = lastPeriodEnd.AddHours(-2) }, new Price { Mid = 27.25m }); history.Prices.Add(new Period { Id = 6, To = lastPeriodEnd.AddHours(-1) }, new Price { Mid = 18.50m }); history.Prices.Add(new Period { Id = 7, To = lastPeriodEnd.AddHours(0) }, new Price { Mid = 13.40m }); var stockPriceProvider = new Mock<IStockHistoryDataProvider>(); stockPriceProvider.Setup(x => x.GetStockHistory(stock, 5)).Returns(history); var filter = new ConsistentChangeStockFilter(stockPriceProvider.Object, 5); var results = filter.GetInvestmentCandidates(new Stock[] { stock }); Assert.AreEqual(0, results.Count()); }