public ICoverageState Consume(CircularArray <double>[] buffers, int startBufferIdx, long sampleIdx, Action <long, long> segmentFound)
        {
            var isComplete = CoverageStateMachine.IsCompleteAtIndex(sampleIdx, buffers, startBufferIdx);

            if (isComplete)
            {
                return(m_stateFactory.Extend(sampleIdx));
            }

            return(this);
        }
        public ICoverageState Consume(CircularArray <double>[] buffers, int startBufferIdx, long sampleIdx, Action <long, long> segmentFound)
        {
            var complete = CoverageStateMachine.IsCompleteAtIndex(sampleIdx, buffers, startBufferIdx);

            if (complete)
            {
                m_endIdx = sampleIdx;
                return(this);
            }

            return(Done(segmentFound));
        }