pub struct SampledBitSetStrategy<T: BitSetLike> { /* private fields */ }
Expand description

Generates bit sets with a particular number of bits set.

Specifically, this strategy is given both a size range and a bit range. To produce a new value, it selects a size, then uniformly selects that many bits from within the bit range.

Shrinking happens as with BitSetStrategy.

Implementations§

source§

impl<T: BitSetLike> SampledBitSetStrategy<T>

source

pub fn new(size: impl Into<SizeRange>, bits: impl Into<SizeRange>) -> Self

Create a strategy which generates values where bits within the bounds given by bits may be set. The number of bits that are set is chosen to be in the range given by size.

Due to the generics, the functions in the typed submodules are usually preferable to calling this directly.

Panics

Panics if size includes a value that is greater than the number of bits in bits.

Trait Implementations§

source§

impl<T: Clone + BitSetLike> Clone for SampledBitSetStrategy<T>

source§

fn clone(&self) -> SampledBitSetStrategy<T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug + BitSetLike> Debug for SampledBitSetStrategy<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: BitSetLike> Strategy for SampledBitSetStrategy<T>

§

type Tree = BitSetValueTree<T>

The value tree generated by this Strategy.
§

type Value = T

The type of value used by functions under test generated by this Strategy. Read more
source§

fn new_tree(&self, runner: &mut TestRunner) -> NewTree<Self>

Generate a new value tree from the given runner. Read more
source§

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
source§

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
source§

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
source§

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
source§

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
source§

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
source§

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
source§

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
source§

fn prop_union(self, other: Self) -> Union<Self>
where Self: Sized,

Returns a strategy which picks uniformly from self and other. Read more
source§

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
source§

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
source§

fn no_shrink(self) -> NoShrink<Self>
where Self: Sized,

Wraps this strategy to prevent values from being subject to shrinking. Read more

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for SampledBitSetStrategy<T>
where T: RefUnwindSafe,

§

impl<T> Send for SampledBitSetStrategy<T>
where T: Send,

§

impl<T> Sync for SampledBitSetStrategy<T>
where T: Sync,

§

impl<T> Unpin for SampledBitSetStrategy<T>
where T: Unpin,

§

impl<T> UnwindSafe for SampledBitSetStrategy<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V