examplesWithoutValidation property

  1. @override
Iterable<String> examplesWithoutValidation
override

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);
    }
  }
}