// find first marker stamp
marker := nextmarker(initial_stamp)
// make sure there's no missing marker between the onset and the first marker
if (marker - initial_stamp) > FifteenMinutes then
error
endif
// test starting at first marker
test(marker, marker DIV FifteenMinutes)
// recursively test for each marker by counting units of FifteenMinutes
// stops either with error or EndOfList
function test(marker, expected_quotient)
assert(marker MOD FifteenMinutes == 0)
if (marker DIV FifteenMinutes) != expected_quotient then
error
endif
test(nextmarker(marker, expected_quotient + 1))
endfunc