summaryrefslogtreecommitdiffstats
path: root/vendor/proptest/src/arbitrary/_core/num.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/proptest/src/arbitrary/_core/num.rs')
-rw-r--r--vendor/proptest/src/arbitrary/_core/num.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/vendor/proptest/src/arbitrary/_core/num.rs b/vendor/proptest/src/arbitrary/_core/num.rs
new file mode 100644
index 000000000..f2988ecf0
--- /dev/null
+++ b/vendor/proptest/src/arbitrary/_core/num.rs
@@ -0,0 +1,55 @@
+//-
+// Copyright 2017, 2018 The proptest developers
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+//! Arbitrary implementations for `std::num`.
+
+use core::num::*;
+
+use crate::strategy::*;
+
+arbitrary!(ParseFloatError; "".parse::<f32>().unwrap_err());
+arbitrary!(ParseIntError; "".parse::<u32>().unwrap_err());
+
+#[cfg(feature = "unstable")]
+arbitrary!(TryFromIntError; {
+ use core::convert::TryFrom;
+ u8::try_from(-1).unwrap_err()
+});
+
+wrap_ctor!(Wrapping, Wrapping);
+
+arbitrary!(FpCategory,
+ TupleUnion<(WA<Just<Self>>, WA<Just<Self>>, WA<Just<Self>>,
+ WA<Just<Self>>, WA<Just<Self>>)>;
+ {
+ use core::num::FpCategory::*;
+ prop_oneof![
+ Just(Nan),
+ Just(Infinite),
+ Just(Zero),
+ Just(Subnormal),
+ Just(Normal),
+ ]
+ }
+);
+
+#[cfg(test)]
+mod test {
+ no_panic_test!(
+ parse_float_error => ParseFloatError,
+ parse_int_error => ParseIntError,
+ wrapping => Wrapping<u8>,
+ fp_category => FpCategory
+ );
+
+ #[cfg(feature = "unstable")]
+ no_panic_test!(
+ try_from_int_error => TryFromIntError
+ );
+}