Exemplo n.º 1
0
        public void PrepareGoldenCrossWithEmptyInputThrowsException()
        {
            // Arrange
            var target = new GoldenCross();

            // Act
            target.Prepare(new List <Candle>());
        }
Exemplo n.º 2
0
        public void PrepareGoldenCrossWithNullInputThrowsException()
        {
            // Arrange
            var target = new GoldenCross();

            // Act
            target.Prepare(null);
        }
Exemplo n.º 3
0
        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)));
        }
Exemplo n.º 4
0
        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)));
        }