public void PrepareGoldenCrossWithEmptyInputThrowsException() { // Arrange var target = new GoldenCross(); // Act target.Prepare(new List <Candle>()); }
public void PrepareGoldenCrossWithNullInputThrowsException() { // Arrange var target = new GoldenCross(); // Act target.Prepare(null); }
public void PrepareGoldenCrossWithNoCrossoversReturnsListOfHolds() { // Arrange var target = new GoldenCross(); var list = Enumerable.Range(1, 250).Select(_ => new Candle { Close = _ }).ToList(); // Act var result = target.Prepare(list); // Assert Assert.IsTrue(result.All(_ => _.Equals(TradeAdvice.Hold))); }
public void PrepareGoldenCrossWithMultipleCrossoversReturnsExpectedPattern() { // Arrange var target = new GoldenCross(); var list = Enumerable.Range(1, 250). Select(_ => new Candle { Close = 2.0m * (decimal)Math.Sin(_) * (decimal)Math.Sin(_) }).ToList(); // Act var result = target.Prepare(list); // Assert Assert.AreEqual(250, result.Count()); Assert.AreEqual(218, result.Count(_ => _.Equals(TradeAdvice.Hold))); Assert.AreEqual(16, result.Count(_ => _.Equals(TradeAdvice.Sell))); Assert.AreEqual(16, result.Count(_ => _.Equals(TradeAdvice.Buy))); }