generate method
Generates _n unique items from the generator _generator
Implementation
@override
List<T> generate() {
final Set<T> uniqueItems = {};
int tempSeed = _seed;
int counter = 0;
while (uniqueItems.length < _n) {
_generator.seed(tempSeed % SeedGenerator.maxSeed);
final item = _generator.generate();
// Returns false if the item is already inside the set
if (uniqueItems.add(item)) {
counter = 0;
} else {
counter++;
}
if (counter == _maxTries) {
throw GeneratorException(
"Unique generator could not generate $_n unique values from generator ${_generator.runtimeType}, "
"probably due to lack of unique values.",
);
}
tempSeed = (tempSeed * tempSeed) + 1;
counter += 1;
}
return uniqueItems.toList();
}