examplesWithoutValidation property
Interesting examples of instances (may be valid or invalid).
Use examples to get valid examples.
Use examplesThatAreInvalid to get invalid examples.
Implementation
@override
Iterable<String> get examplesWithoutValidation sync* {
final minLengthInUtf8 = lengthInUtf8?.min;
final maxLengthInUtf8 = lengthInUtf8?.max;
final minLengthInUtf16 = lengthInUtf16?.min;
final maxLengthInUtf16 = lengthInUtf16?.max;
final utf8Lengths = <int>[
1,
minLengthInUtf8 ?? 0 - 1,
maxLengthInUtf8 ?? 0 - 1,
minLengthInUtf8 ?? 0,
maxLengthInUtf8 ?? 0,
2 * (minLengthInUtf16 ?? 0),
2 * (maxLengthInUtf16 ?? 0),
2 * (minLengthInUtf16 ?? 0) + 1,
2 * (maxLengthInUtf16 ?? 0) + 1,
].where((element) => element >= 1).toSet().toList()
..sort();
final characters = [
'a', // One byte in UTF-8
'£', // Two bytes in UTF-8
'€', // Three bytes in UTF-8
'𐍈', // Four bytes in UTF-8
'😃', // Emoji
' ',
'\n',
];
for (var utf8Length in utf8Lengths) {
for (var character in characters) {
yield (character * utf8Length);
}
}
}