randomExample method

  1. @override
Set<T> randomExample({
  1. RandomExampleContext? context,
})
override

Generates a random example.

Subclasses may return examples from some specific distribution. For example, Int64Kind returns random numbers near 0.

If you want to generate a list of examples, you can use randomExampleList.

Example

import 'package:kind/kind.dart';

final kind = StringKind();
final loremIpsumExample = kind.randomExample();

Implementation

@override
Set<T> randomExample({RandomExampleContext? context}) {
  context ??= RandomExampleContext();
  final random = context.random;
  final minLength = this.minLength;
  var maxLength = this.maxLength ?? (minLength + 2);
  if (context.minimizeNewInstances) {
    maxLength = minLength;
  }
  context.nonPrimitivesCount++;
  context.depth++;
  final length = minLength + random.nextInt(maxLength + 1 - minLength);
  final result = <T>{};
  for (var i = 0; i < length; i++) {
    result.add(itemsKind.randomExample(context: context));
  }
  context.depth--;
  return result;
}