proptest::bits

Struct BitSetStrategy

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

Generates values as a set of bits between the two bounds.

Values are generated by uniformly setting individual bits to 0 or 1 between the bounds. Shrinking iteratively clears bits.

Implementations§

source§

impl<T: BitSetLike> BitSetStrategy<T>

source

pub fn new(min: usize, max: usize) -> Self

Create a strategy which generates values where bits between min (inclusive) and max (exclusive) may be set.

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

source

pub fn masked(mask: T) -> Self

Create a strategy which generates values where any bits set (and only those bits) in mask may be set.

Trait Implementations§

source§

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

source§

fn clone(&self) -> BitSetStrategy<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 BitSetStrategy<T>

source§

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

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

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

source§

type Tree = BitSetValueTree<T>

The value tree generated by this Strategy.
source§

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

impl<T: Copy + BitSetLike> Copy for BitSetStrategy<T>

Auto Trait Implementations§

§

impl<T> Freeze for BitSetStrategy<T>
where T: Freeze,

§

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

§

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

§

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

§

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

§

impl<T> UnwindSafe for BitSetStrategy<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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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,

source§

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>,

source§

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>,

source§

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

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

source§

fn vzip(self) -> V