All files / range/src rangeIterator.ts

100% Statements 7/7
100% Branches 0/0
100% Functions 3/3
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13    1x 1x 1x   1x 3x 3x        
import { Range } from "./range";
 
export const rangeIterator = <T>(next: (value: T) => T) => {
  return function* (range: Range<T>): IterableIterator<T> {
    let value = range.from;
 
    do {
      yield value;
      value = next(value);
    } while (range.contains(value));
  };
};