Items array data generation incomplete
I'm finding that sometimes items
contains uninitialized values.
I think the initialisation code has a probability of not filling every member of the items
array:
auto itemsCursor = 0ul;
for(size_t i = 0ul; i < db.ordersCardinality; i++) {
auto v = lcg();
int numberOfItemsPerOrderVariation = ((v & 2)>>1) + (v & 1) - 1;
size_t numberOfItemsPerOrder =
averageNumberOfItemsPerOrder + numberOfItemsPerOrderVariation; // fix this
for(size_t j = 0; (j < numberOfItemsPerOrder) && (itemsCursor < db.itemsCardinality); j++) {
// ...
itemsCursor++;
}
}
e.g. if ordersCardinality
is 256 and itemsCardinality
is 1024, depending on how numberOfItemsPerOrder
varies itemsCursor
may not iterate completely through every element.