randomExample method

  1. @override
Map<K, V> 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
Map<K, V> randomExample({RandomExampleContext? context}) {
  context ??= RandomExampleContext();
  if (context.minimizeNewInstances) {
    return <K, V>{};
  }
  context.nonPrimitivesCount++;
  context.depth++;
  final length = context.random.nextInt(4);
  final result = <K, V>{};
  for (var i = 0; i < length; i++) {
    final key = keyKind.randomExample(context: context);
    final value = valueKind.randomExample(context: context);
    result[key] = value;
  }
  context.depth--;
  return result;
}