Fuzzer

class dsviper.Fuzzer(definitions, seed=None)

Bases: object

Generates random values against a set of definitions.

Sizes of generated collections are configurable - map, set, vector, xarray, string, blob. Used to exercise codecs and round-trips.

blob_id() → ValueBlobId | None

Return the ValueBlobId every generated blob will carry, or None if each gets its own.

blob_size() → int

Return the size of a generated blob, in bytes.

fuzz(type: Type) → Value

Generate and return a random value from the type.

map_size() → int

Return how many entries a generated map holds.

seed() → int

Return the seed used by the fuzzer.

set_blob_id(blob_id: ValueBlobId | None = None) → None

Make every generated blob carry blob_id, or give each its own when it is None.

set_blob_size(value: int) → None

Generate blobs of value bytes from now on.

set_map_size(value: int) → None

Generate maps of value entries from now on.

set_set_size(value: int) → None

Generate sets of value elements from now on.

set_size() → int

Return how many elements a generated set holds.

Not a setter - set_set_size is.

set_string_size(value: int) → None

Generate strings of value characters from now on.

set_vector_size(value: int) → None

Generate vectors of value elements from now on.

set_xarray_size(value: int) → None

Generate xarrays of value elements from now on.

string_size() → int

Return the size of a generated string, in characters.

types() → list[Type]

Return the list of types.

vector_size() → int

Return the size of the generated vector.

xarray_size() → int

Return the size of the generated xarray.