round method
One round: a batch, optional removals, tags, six queries.
Implementation
Future<void> round() async {
final round = _round++;
final batch = scenario.batch();
final referenceStored = await reference.writeEntries(batch);
final storeStored = await store.writeEntries(batch);
_compare('round $round, writeEntries', expected: _stored(referenceStored), actual: _stored(storeStored));
if (scenario.removeBefore() case final time?) {
await reference.removeBefore(time);
await store.removeBefore(time);
}
if (scenario.retainNewest() case final count?) {
await reference.retainNewest(count);
await store.retainNewest(count);
}
_compare('round $round, queryTags', expected: await reference.queryTags(), actual: await store.queryTags());
for (var i = 0; i < 6; i++) {
final query = scenario.query();
_compare(
'round $round, $query',
expected: _stored(await _allPages(reference, query, 'reference')),
actual: _stored(await _allPages(store, query, 'store')),
);
}
}