Struct TestRunner  
pub struct TestRunner {
    config: Config,
    successes: u32,
    local_rejects: u32,
    global_rejects: u32,
    rng: TestRng,
    flat_map_regens: Arc<AtomicUsize>,
    local_reject_detail: BTreeMap<Reason, u32>,
    global_reject_detail: BTreeMap<Reason, u32>,
}Expand description
State used when running a proptest test.
Fields§
§config: Config§successes: u32§local_rejects: u32§global_rejects: u32§rng: TestRng§flat_map_regens: Arc<AtomicUsize>§local_reject_detail: BTreeMap<Reason, u32>§global_reject_detail: BTreeMap<Reason, u32>Implementations§
§impl TestRunner
 
impl TestRunner
pub fn new(config: Config) -> TestRunner
pub fn new(config: Config) -> TestRunner
Create a fresh TestRunner with the given configuration.
The runner will use an RNG with a generated seed and the default algorithm.
In no_std environments, every TestRunner will use the same
hard-coded seed. This seed is not contractually guaranteed and may be
changed between releases without notice.
pub fn deterministic() -> TestRunner
pub fn deterministic() -> TestRunner
Create a fresh TestRunner with the standard deterministic RNG.
This is sugar for the following:
let config = Config::default();
let algorithm = config.rng_algorithm;
TestRunner::new_with_rng(
    config,
    TestRng::deterministic_rng(algorithm));Refer to TestRng::deterministic_rng() for more information on the
properties of the RNG used here.
pub fn new_with_rng(config: Config, rng: TestRng) -> TestRunner
pub fn new_with_rng(config: Config, rng: TestRng) -> TestRunner
Create a fresh TestRunner with the given configuration and RNG.
pub fn new_rng(&mut self) -> TestRng
pub fn new_rng(&mut self) -> TestRng
Create a new, independent but deterministic RNG from the RNG in this runner.
pub fn bytes_used(&self) -> Vec<u8> ⓘ
pub fn bytes_used(&self) -> Vec<u8> ⓘ
Dumps the bytes obtained from the RNG so far (only works if the RNG is
set to Recorder).
§Panics
Panics if the RNG does not capture generated data.
pub fn run<S>(
    &mut self,
    strategy: &S,
    test: impl Fn(<S as Strategy>::Value) -> Result<(), TestCaseError>,
) -> Result<(), TestError<<S as Strategy>::Value>>where
    S: Strategy,
pub fn run<S>(
    &mut self,
    strategy: &S,
    test: impl Fn(<S as Strategy>::Value) -> Result<(), TestCaseError>,
) -> Result<(), TestError<<S as Strategy>::Value>>where
    S: Strategy,
Run test cases against f, choosing inputs via strategy.
If any failure cases occur, try to find a minimal failure case and
report that. If invoking f panics, the panic is turned into a
TestCaseError::Fail.
If failure persistence is enabled, all persisted failing cases are tested first. If a later non-persisted case fails, its seed is persisted before returning failure.
Returns success or failure indicating why the test as a whole failed.
pub fn run_one<V>(
    &mut self,
    case: V,
    test: impl Fn(<V as ValueTree>::Value) -> Result<(), TestCaseError>,
) -> Result<bool, TestError<<V as ValueTree>::Value>>where
    V: ValueTree,
pub fn run_one<V>(
    &mut self,
    case: V,
    test: impl Fn(<V as ValueTree>::Value) -> Result<(), TestCaseError>,
) -> Result<bool, TestError<<V as ValueTree>::Value>>where
    V: ValueTree,
Run one specific test case against this runner.
If the test fails, finds the minimal failing test case. If the test does not fail, returns whether it succeeded or was filtered out.
This does not honour the fork config, and will not be able to
terminate the run if it runs for longer than timeout. However, if the
test function returns but took longer than timeout, the test case
will fail.
pub fn reject_local(&mut self, whence: impl Into<Reason>) -> Result<(), Reason>
pub fn reject_local(&mut self, whence: impl Into<Reason>) -> Result<(), Reason>
Update the state to account for a local rejection from whence, and
return Ok if the caller should keep going or Err to abort.
pub fn flat_map_regen(&self) -> bool
pub fn flat_map_regen(&self) -> bool
Increment the counter of flat map regenerations and return whether it is still under the configured limit.
Trait Implementations§
§impl Clone for TestRunner
 
impl Clone for TestRunner
§fn clone(&self) -> TestRunner
 
fn clone(&self) -> TestRunner
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for TestRunner
 
impl Debug for TestRunner
§impl Default for TestRunner
Equivalent to: TestRunner::new(Config::default()).
 
impl Default for TestRunner
Equivalent to: TestRunner::new(Config::default()).
§fn default() -> TestRunner
 
fn default() -> TestRunner
Auto Trait Implementations§
impl Freeze for TestRunner
impl !RefUnwindSafe for TestRunner
impl Send for TestRunner
impl Sync for TestRunner
impl Unpin for TestRunner
impl !UnwindSafe for TestRunner
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<D> OwoColorize for D
 
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
    C: Color,
 
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
    C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
    C: Color,
 
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
    C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
 
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
 
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
 
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
 
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
 
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
 
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
 
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
 
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
 
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
 
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
 
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
 
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
 
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
 
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
 
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
 
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
 
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
 
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
 
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
 
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
 
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
 
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
 
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
 
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
 
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
    Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
    &self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
 
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
    &self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
 
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
 
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
 
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Source§impl<Response, Error> ResponseResult<Response, Error> for Response
 
impl<Response, Error> ResponseResult<Response, Error> for Response
Source§fn into_result(self) -> Result<Response, Error>
 
fn into_result(self) -> Result<Response, Error>
Result that can be sent as a response.