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
POSITIVE | 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
sourceimpl BitOrAssign<Any> for Any
impl BitOrAssign<Any> for Any
sourcefn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
Performs the |=
operation. Read more
sourceimpl Strategy for Any
impl Strategy for Any
type Tree = BinarySearch
type Tree = BinarySearch
The value tree generated by this Strategy
.
type Value = f64
type Value = f64
The type of value used by functions under test generated by this Strategy. Read more
sourcefn new_tree(&self, runner: &mut TestRunner) -> NewTree<Self>
fn new_tree(&self, runner: &mut TestRunner) -> NewTree<Self>
Generate a new value tree from the given runner. Read more
sourcefn prop_map<O: Debug, F: Fn(Self::Value) -> O>(self, fun: F) -> Map<Self, F> where
Self: Sized,
fn prop_map<O: Debug, F: Fn(Self::Value) -> O>(self, fun: F) -> Map<Self, F> where
Self: Sized,
Returns a strategy which produces values transformed by the function
fun
. Read more
sourcefn prop_map_into<O: Debug>(self) -> MapInto<Self, O> where
Self: Sized,
Self::Value: Into<O>,
fn prop_map_into<O: Debug>(self) -> MapInto<Self, O> where
Self: Sized,
Self::Value: Into<O>,
Returns a strategy which produces values of type O
by transforming
Self
with Into<O>
. Read more
sourcefn prop_perturb<O: Debug, F: Fn(Self::Value, TestRng) -> O>(
self,
fun: F
) -> Perturb<Self, F> where
Self: Sized,
fn prop_perturb<O: Debug, F: Fn(Self::Value, TestRng) -> O>(
self,
fun: F
) -> Perturb<Self, F> where
Self: Sized,
Returns a strategy which produces values transformed by the function
fun
, which is additionally given a random number generator. Read more
sourcefn prop_flat_map<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> Flatten<Map<Self, F>> where
Self: Sized,
fn prop_flat_map<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> Flatten<Map<Self, F>> where
Self: Sized,
Maps values produced by this strategy into new strategies and picks values from those strategies. Read more
sourcefn prop_ind_flat_map<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> IndFlatten<Map<Self, F>> where
Self: Sized,
fn prop_ind_flat_map<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> IndFlatten<Map<Self, F>> where
Self: Sized,
Maps values produced by this strategy into new strategies and picks values from those strategies while considering the new strategies to be independent. Read more
sourcefn prop_ind_flat_map2<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> IndFlattenMap<Self, F> where
Self: Sized,
fn prop_ind_flat_map2<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> IndFlattenMap<Self, F> where
Self: Sized,
Similar to 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 more
sourcefn prop_filter<R: Into<Reason>, F: Fn(&Self::Value) -> bool>(
self,
whence: R,
fun: F
) -> Filter<Self, F> where
Self: Sized,
fn prop_filter<R: Into<Reason>, F: Fn(&Self::Value) -> bool>(
self,
whence: R,
fun: F
) -> Filter<Self, F> where
Self: Sized,
Returns a strategy which only produces values accepted by fun
. Read more
sourcefn prop_filter_map<F: Fn(Self::Value) -> Option<O>, O: Debug>(
self,
whence: impl Into<Reason>,
fun: F
) -> FilterMap<Self, F> where
Self: Sized,
fn prop_filter_map<F: Fn(Self::Value) -> Option<O>, O: Debug>(
self,
whence: impl Into<Reason>,
fun: F
) -> FilterMap<Self, F> where
Self: Sized,
Returns a strategy which only produces transformed values where fun
returns Some(value)
and rejects those where fun
returns None
. Read more
sourcefn prop_union(self, other: Self) -> Union<Self> where
Self: Sized,
fn prop_union(self, other: Self) -> Union<Self> where
Self: Sized,
Returns a strategy which picks uniformly from self
and other
. Read more
sourcefn prop_recursive<R: Strategy<Value = Self::Value> + 'static, F: Fn(BoxedStrategy<Self::Value>) -> R>(
self,
depth: u32,
desired_size: u32,
expected_branch_size: u32,
recurse: F
) -> Recursive<Self::Value, F> where
Self: Sized + 'static,
fn prop_recursive<R: Strategy<Value = Self::Value> + 'static, F: Fn(BoxedStrategy<Self::Value>) -> R>(
self,
depth: u32,
desired_size: u32,
expected_branch_size: u32,
recurse: F
) -> Recursive<Self::Value, F> where
Self: Sized + 'static,
Generate a recursive structure with self
items as leaves. Read more
sourcefn prop_shuffle(self) -> Shuffle<Self> where
Self: Sized,
Self::Value: Shuffleable,
fn prop_shuffle(self) -> Shuffle<Self> where
Self: Sized,
Self::Value: Shuffleable,
Shuffle the contents of the values produced by this strategy. Read more
sourcefn boxed(self) -> BoxedStrategy<Self::Value> where
Self: Sized + 'static,
fn boxed(self) -> BoxedStrategy<Self::Value> where
Self: Sized + 'static,
Erases the type of this Strategy
so it can be passed around as a
simple trait object. Read more
impl Copy for Any
Auto Trait Implementations
impl RefUnwindSafe for Any
impl Send for Any
impl Sync for Any
impl Unpin for Any
impl UnwindSafe for Any
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more