bugfix: add a wrapped generator which filters on markers

- the wrapped generator makes sures that we do not get start and end
  markers to be the same.

- change the iteration cycle, if the number of the blocks are exactly
  divisble by the limit

- change up tests to include ddt, to test both scenarios. i.e when
  number of blocks is exactly divisble by limit, and when it isnt.