Skip to main content

Module arbitrary_util

Module arbitrary_util 

Source
Expand description

Arbitrary helpers for types that don’t natively implement Arbitrary or that need bounded generation to avoid extreme values.

Functions§

arbitrary_f64
Generates an arbitrary f64 from an f32 (bounded range).
arbitrary_i64
Generates an arbitrary i64 from an i32 (bounded range).
arbitrary_indexmap
Generates an arbitrary IndexMap<K, V> where both K and V implement Arbitrary.
arbitrary_isize
Generates an arbitrary isize from an i16 (bounded range).
arbitrary_json_value
Generates an arbitrary serde_json::Value. Nesting requires a “go deep” bool to be true (geometric distribution), so compound structures are exponentially rare. Collection sizes also use bool-per-element.
arbitrary_option_f64
Generates an arbitrary Option<f64> (bounded range).
arbitrary_option_i64
Generates an arbitrary Option<i64> (bounded range).
arbitrary_option_indexmap_string_i64
Generates an arbitrary Option<IndexMap<String, i64>>.
arbitrary_option_indexmap_string_option_string
Generates an arbitrary Option<IndexMap<String, Option<String>>>.
arbitrary_option_isize
Generates an arbitrary Option<isize> (bounded range).
arbitrary_option_rust_decimal
Generates an arbitrary Option<rust_decimal::Decimal>.
arbitrary_option_u64
Generates an arbitrary Option<u64> (bounded range).
arbitrary_option_usize
Generates an arbitrary Option<usize> (bounded range).
arbitrary_option_vec_i64
Generates an arbitrary Option<Vec<i64>> (bounded range).
arbitrary_rust_decimal
Generates an arbitrary rust_decimal::Decimal from an f32, scaled down by 10^13. f32::MAX is ~3.4e38, so every finite sample lands at ≤ ~3.4e25 — a hard ceiling ~2,300× below Decimal::MAX (~7.9e28), leaving ample headroom for the chunk-push suites that sum ~20 of these through Usage::push (Decimal::AddAssign panics on overflow). Inf/NaN samples stay non-finite after division and fall back to zero via unwrap_or_default.
arbitrary_u64
Generates an arbitrary u64 from a u32 (bounded range).
arbitrary_usize
Generates an arbitrary usize from a u16 (bounded range).
arbitrary_vec_i64
Generates an arbitrary Vec<i64> (bounded range).
arbitrary_vec_rust_decimal
Generates an arbitrary Vec<rust_decimal::Decimal>.
arbitrary_vec_u64
Generates an arbitrary Vec<u64> with bounded elements.
arbitrary_vec_vec_rust_decimal
Generates an arbitrary Vec<Vec<rust_decimal::Decimal>>.