public function testRandomlyPicksLengthAndCharacters()
{
$size = 10;
$generator = new StringGenerator();
$lengths = [];
$usedChars = [];
for ($i = 0; $i < 1000; $i++) {
$value = $generator($size, $this->rand)->unbox();
$length = strlen($value);
$this->assertLessThanOrEqual(10, $length);
$lengths = $this->accumulateLengths($lengths, $length);
$usedChars = $this->accumulateUsedChars($usedChars, $value);
}
$this->assertSame(11, count($lengths));
// only readable characters
$this->assertEquals(126 - 32, count($usedChars));
}