public void CandlestickArrayNull_throwsArgumentNullException()
            {
                var calculator = new Lib.RSICalculator(MIN_SAMPLES);

                Lib.Candlestick[] expected = null;
                Assert.Throws <ArgumentNullException>(testCode: () => { calculator.CalculateInitialValue(expected); });
            }
            public void NumberOfSamplesGreaterOrEquals10_propertyNumberOfSamplesGetsSet()
            {
                var expected   = 10;
                var calculator = new Lib.RSICalculator(expected);

                Assert.Equal(expected, calculator.NumberOfSamples);
            }
            public void PreviousRSIPassedWithCandlestick_RSIGetsCalculated()
            {
                var expected   = new Lib.RSIValue(0.5430M, 0.5771M, 4);
                var calculator = new Lib.RSICalculator(MIN_SAMPLES);
                var actual     = calculator.CalculateNextValue(new Lib.RSIValue(0.5848M, 0.5446M, 4), new Lib.Candlestick(2M, 1M));

                Assert.Equal(expected, actual);
            }
            public void DataArraySet_RSIValueGetsCalculated()
            {
                var expected    = new Lib.RSIValue(0.5848M, 0.5446M, 4);
                var differences = new decimal[] {
                    1.0000M, -0.6875M, 0.5000M, -2.0000M, -0.6875M,
                    0.3750M, 1.1250M, 2.0625M, -0.2500M, -0.5625M,
                    -2.4375M, 1.7500M, 1.3750M, -1.0000M
                };
                var calculator = new Lib.RSICalculator(14);
                var actual     = calculator.CalculateInitialValue(differences);

                Assert.Equal(expected, actual);
            }
            public void CandlesticksSet_RSIValueGetsCalculated()
            {
                var expected     = new Lib.RSIValue(0.5848M, 0.5446M, 4);
                var candlesticks = new Lib.Candlestick[] {
                    new Lib.Candlestick(10M, 11M), new Lib.Candlestick(11M, 10.3125M), new Lib.Candlestick(10.3125M, 10.8125M),
                    new Lib.Candlestick(10.8125M, 8.8125M), new Lib.Candlestick(8.8125M, 8.125M), new Lib.Candlestick(8.125M, 8.5M),
                    new Lib.Candlestick(8.5M, 9.625M), new Lib.Candlestick(9.625M, 11.6875M), new Lib.Candlestick(11.6875M, 11.4375M),
                    new Lib.Candlestick(11.4375M, 10.875M), new Lib.Candlestick(10.875M, 8.4375M), new Lib.Candlestick(8.4375M, 10.1875M),
                    new Lib.Candlestick(10.1875M, 11.5625M), new Lib.Candlestick(11.5625M, 10.5625M)
                };
                var calculator = new Lib.RSICalculator(14);
                var actual     = calculator.CalculateInitialValue(candlesticks);

                Assert.Equal(expected, actual);
            }
            public void CandlestickHasLessSamplesThanSpecified_throwsArgumentException()
            {
                var calculator = new Lib.RSICalculator(MIN_SAMPLES);

                Assert.Throws <ArgumentException>(testCode: () => { calculator.CalculateInitialValue(new Lib.Candlestick[] {}); });
            }
 public void PreviousRSIPassedNoCandlestick_throwsArgumentNullException() =>
 Assert.Throws <ArgumentNullException>(testCode: () => {
     var calculator = new Lib.RSICalculator(MIN_SAMPLES);
     calculator.CalculateNextValue(new Lib.RSIValue(0.5848M, 0.5446M, 4), null);
 });
 public void PreviousRSINotPassedWtihCandlestick_throwsArgumentNullException() =>
 Assert.Throws <ArgumentNullException>(testCode: () => {
     var calculator = new Lib.RSICalculator(MIN_SAMPLES);
     calculator.CalculateNextValue(null, null);
 });