pub struct Any(_);
Expand description
Strategies which produce floating-point values from particular
classes. See the various Any
-typed constants in this module.
Note that this usage is fairly advanced and primarily useful to
implementors of algorithms that need to handle wild values in a
particular way. For testing things like graphics processing or game
physics, simply using ranges (e.g., -1.0..2.0
) will often be more
practical.
Any
can be OR’ed to combine multiple classes. For example,
POSITIVE | INFINITE
will generate arbitrary positive, non-NaN
floats, including positive infinity (but not negative infinity, of
course).
If neither POSITIVE
nor NEGATIVE
has been OR’ed into an Any
but a type to be generated requires a sign, POSITIVE
is assumed.
If no classes are OR’ed into an Any
(i.e., only POSITIVE
and/or
NEGATIVE
are given), NORMAL
is assumed.
The various float classes are assigned fixed weights for generation which are believed to be reasonable for most applications. Roughly:
-
If
POSITIE | NEGATIVE
, the sign is evenly distributed between both options. -
Classes are weighted as follows, in descending order:
NORMAL
>ZERO
>SUBNORMAL
>INFINITE
>QUIET_NAN
=SIGNALING_NAN
.
Trait Implementations§
source§impl BitOrAssign<Any> for Any
impl BitOrAssign<Any> for Any
source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|=
operation. Read moresource§impl Strategy for Any
impl Strategy for Any
§type Value = BinarySearch
type Value = BinarySearch
Strategy
. Read moresource§fn new_value(&self, runner: &mut TestRunner) -> NewTree<Self>
fn new_value(&self, runner: &mut TestRunner) -> NewTree<Self>
source§fn prop_map<O: Debug, F: Fn(ValueFor<Self>) -> O>(self, fun: F) -> Map<Self, F>where
Self: Sized,
fn prop_map<O: Debug, F: Fn(ValueFor<Self>) -> O>(self, fun: F) -> Map<Self, F>where
Self: Sized,
fun
. Read moresource§fn prop_map_into<O: Debug>(self) -> MapInto<Self, O>where
Self: Sized,
ValueFor<Self>: Into<O>,
fn prop_map_into<O: Debug>(self) -> MapInto<Self, O>where
Self: Sized,
ValueFor<Self>: Into<O>,
source§fn prop_perturb<O: Debug, F: Fn(ValueFor<Self>, XorShiftRng) -> O>(
self,
fun: F
) -> Perturb<Self, F>where
Self: Sized,
fn prop_perturb<O: Debug, F: Fn(ValueFor<Self>, XorShiftRng) -> O>(
self,
fun: F
) -> Perturb<Self, F>where
Self: Sized,
fun
, which is additionally given a random number generator. Read moresource§fn prop_flat_map<S: Strategy, F: Fn(ValueFor<Self>) -> S>(
self,
fun: F
) -> Flatten<Map<Self, F>>where
Self: Sized,
fn prop_flat_map<S: Strategy, F: Fn(ValueFor<Self>) -> S>(
self,
fun: F
) -> Flatten<Map<Self, F>>where
Self: Sized,
source§fn prop_ind_flat_map<S: Strategy, F: Fn(ValueFor<Self>) -> S>(
self,
fun: F
) -> IndFlatten<Map<Self, F>>where
Self: Sized,
fn prop_ind_flat_map<S: Strategy, F: Fn(ValueFor<Self>) -> S>(
self,
fun: F
) -> IndFlatten<Map<Self, F>>where
Self: Sized,
source§fn prop_ind_flat_map2<S: Strategy, F: Fn(ValueFor<Self>) -> S>(
self,
fun: F
) -> IndFlattenMap<Self, F>where
Self: Sized,
fn prop_ind_flat_map2<S: Strategy, F: Fn(ValueFor<Self>) -> S>(
self,
fun: F
) -> IndFlattenMap<Self, F>where
Self: Sized,
prop_ind_flat_map()
, but produces 2-tuples with the input
generated from self
in slot 0 and the derived strategy in slot 1. Read moresource§fn prop_filter<R: Into<Reason>, F: Fn(&ValueFor<Self>) -> bool>(
self,
whence: R,
fun: F
) -> Filter<Self, F>where
Self: Sized,
fn prop_filter<R: Into<Reason>, F: Fn(&ValueFor<Self>) -> bool>(
self,
whence: R,
fun: F
) -> Filter<Self, F>where
Self: Sized,
fun
. Read moresource§fn prop_union(self, other: Self) -> Union<Self>where
Self: Sized,
fn prop_union(self, other: Self) -> Union<Self>where
Self: Sized,
source§fn prop_recursive<R, F>(
self,
depth: u32,
desired_size: u32,
expected_branch_size: u32,
recurse: F
) -> Recursive<ValueFor<Self>, F>where
Self: Sized + 'static,
F: Fn(BoxedStrategy<ValueFor<Self>>) -> R,
R: Strategy + 'static,
R::Value: ValueTree<Value = ValueFor<Self>>,
fn prop_recursive<R, F>(
self,
depth: u32,
desired_size: u32,
expected_branch_size: u32,
recurse: F
) -> Recursive<ValueFor<Self>, F>where
Self: Sized + 'static,
F: Fn(BoxedStrategy<ValueFor<Self>>) -> R,
R: Strategy + 'static,
R::Value: ValueTree<Value = ValueFor<Self>>,
self
items as leaves. Read moresource§fn boxed(self) -> BoxedStrategy<ValueFor<Self>>where
Self: Sized + 'static,
fn boxed(self) -> BoxedStrategy<ValueFor<Self>>where
Self: Sized + 'static,
Strategy
so it can be passed around as a
simple trait object. Read more