public LinearRegressionInputData GetValues(
     CircularBuffer<MarketDataPair> data,
     int fromIndex)
 {
     List<MarketDataPair> rangeData = data.PeekRange(fromIndex);
     return GetLinearRegressionData(rangeData);
 }
        public void CircularBufferGetPutSkipTest()
        {
            {
                CircularBuffer<int> buffer = new CircularBuffer<int>(3, true);
                buffer.Put(1);
                buffer.Put(2);
                buffer.Put(3);
                buffer.Put(4);

                int get1 = buffer.Get();
                int get2 = buffer.Get();

                Assert.AreEqual(get1, 2);
                Assert.AreEqual(get2, 3);
            }
            {
                CircularBuffer<int> buffer = new CircularBuffer<int>(3, true);
                buffer.Put(1);
                buffer.Put(2);
                buffer.Put(3);
                buffer.Put(4);
                buffer.Put(5);

                int get1 = buffer.Peek(); // 3
                int get2 = buffer.Peek(0); // 3
                int get3 = buffer.Peek(1); // 4
                int get4 = buffer.Peek(2); // 5

                Assert.AreEqual(get1, 3);
                Assert.AreEqual(get2, 3);
                Assert.AreEqual(get3, 4);
                Assert.AreEqual(get4, 5);

                List<int> getRange = buffer.PeekRange(0);
                Assert.AreEqual(getRange.Count, 3);
                Assert.AreEqual(getRange[0], 3);
                Assert.AreEqual(getRange[1], 4);
                Assert.AreEqual(getRange[2], 5);
            }
        }