Example #1
0
        public void AddRange_WhenTwoValueAddedWithTheSameValue_LastSmaValueIsTheSameAsOriginalValue()
        {
            var sma = new Sma(10);
            sma.AddRange(new[] { 10m, 10m });

            sma.Values.LastOrDefault().ShouldBeEquivalentTo(10m);
        }
Example #2
0
        public void AddRange_OnlyTakesElementsInThePeriodForCalculation()
        {
            var sma = new Sma(2);
            sma.AddRange(new[] { 0, 10m, 10m });

            sma.Values.LastOrDefault().Should().Be(10m);
            sma.Values.FirstOrDefault().Should().Be(0);
        }
Example #3
0
        public void AddRange_WhenTwoValueAddedWithDifferentValue_LastSmaValueIsTheAverage()
        {
            var sma = new Sma(10);
            sma.AddRange(new[] { 0, 10m });

            sma.Values.LastOrDefault().Should().Be(5m);
            sma.Values.FirstOrDefault().Should().Be(0);
        }
Example #4
0
        public void AddRange_OnlyStoresNbOfElementsDefinedInmaxBuffer()
        {
            var sma = new Sma(2);
            var elements = Enumerable.Range(1, 10000).Select(x => (decimal)x);
            sma.AddRange(elements);

            sma.Values.Count().Should().Be(5000);
        }