summaryrefslogtreecommitdiffstats
path: root/rust/vendor/enum_primitive/tests/tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/vendor/enum_primitive/tests/tests.rs')
-rw-r--r--rust/vendor/enum_primitive/tests/tests.rs235
1 files changed, 235 insertions, 0 deletions
diff --git a/rust/vendor/enum_primitive/tests/tests.rs b/rust/vendor/enum_primitive/tests/tests.rs
new file mode 100644
index 0000000..4cdc3b4
--- /dev/null
+++ b/rust/vendor/enum_primitive/tests/tests.rs
@@ -0,0 +1,235 @@
+#[macro_use] extern crate enum_primitive as ep;
+
+enum_from_primitive! {
+enum Unused {
+ A = 17,
+ B = 42
+}
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+enum Empty {
+}
+}
+
+#[test]
+fn empty() {
+ use ep::FromPrimitive;
+ assert_eq!(Empty::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+enum One {
+ A = 17
+}
+}
+
+#[test]
+fn one() {
+ use ep::FromPrimitive;
+ assert_eq!(One::from_isize(17), Some(One::A));
+ assert_eq!(One::from_isize(91), None);
+ assert_eq!(One::from_i8(17), Some(One::A));
+ assert_eq!(One::from_i8(91), None);
+ assert_eq!(One::from_i16(17), Some(One::A));
+ assert_eq!(One::from_i16(91), None);
+ assert_eq!(One::from_i32(17), Some(One::A));
+ assert_eq!(One::from_i32(91), None);
+ assert_eq!(One::from_i64(17), Some(One::A));
+ assert_eq!(One::from_i64(91), None);
+ assert_eq!(One::from_usize(17), Some(One::A));
+ assert_eq!(One::from_usize(91), None);
+ assert_eq!(One::from_u8(17), Some(One::A));
+ assert_eq!(One::from_u8(91), None);
+ assert_eq!(One::from_u16(17), Some(One::A));
+ assert_eq!(One::from_u16(91), None);
+ assert_eq!(One::from_u32(17), Some(One::A));
+ assert_eq!(One::from_u32(91), None);
+ assert_eq!(One::from_u64(17), Some(One::A));
+ assert_eq!(One::from_u64(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+enum OneComma {
+ A = 17,
+}
+}
+
+#[test]
+fn one_comma() {
+ use ep::FromPrimitive;
+ assert_eq!(OneComma::from_i32(17), Some(OneComma::A));
+ assert_eq!(OneComma::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+enum Two {
+ A = 17,
+ B = 42
+}
+}
+
+#[test]
+fn two() {
+ use ep::FromPrimitive;
+ assert_eq!(PubTwo::from_i32(17), Some(PubTwo::A));
+ assert_eq!(PubTwo::from_i32(42), Some(PubTwo::B));
+ assert_eq!(PubTwo::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+enum TwoComma {
+ A = 17,
+ B = 42,
+}
+}
+
+#[test]
+fn two_comma() {
+ use ep::FromPrimitive;
+ assert_eq!(TwoComma::from_i32(17), Some(TwoComma::A));
+ assert_eq!(TwoComma::from_i32(42), Some(TwoComma::B));
+ assert_eq!(TwoComma::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+pub enum PubEmpty {
+}
+}
+
+#[test]
+fn pub_empty() {
+ use ep::FromPrimitive;
+ assert_eq!(PubEmpty::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+pub enum PubOne {
+ A = 17
+}
+}
+
+#[test]
+fn pub_one() {
+ use ep::FromPrimitive;
+ assert_eq!(PubOne::from_i32(17), Some(PubOne::A));
+ assert_eq!(PubOne::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+pub enum PubOneComma {
+ A = 17,
+}
+}
+
+#[test]
+fn pub_one_comma() {
+ use ep::FromPrimitive;
+ assert_eq!(PubOneComma::from_i32(17), Some(PubOneComma::A));
+ assert_eq!(PubOneComma::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+pub enum PubTwo {
+ A = 17,
+ B = 42
+}
+}
+
+#[test]
+fn pub_two() {
+ use ep::FromPrimitive;
+ assert_eq!(PubTwo::from_i32(17), Some(PubTwo::A));
+ assert_eq!(PubTwo::from_i32(42), Some(PubTwo::B));
+ assert_eq!(PubTwo::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+pub enum PubTwoComma {
+ A = 17,
+ B = 42,
+}
+}
+
+#[test]
+fn pub_two_comma() {
+ use ep::FromPrimitive;
+ assert_eq!(PubTwoComma::from_i32(17), Some(PubTwoComma::A));
+ assert_eq!(PubTwoComma::from_i32(42), Some(PubTwoComma::B));
+ assert_eq!(PubTwoComma::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+enum Negative {
+ A = -17
+}
+}
+
+#[test]
+fn negative() {
+ use ep::FromPrimitive;
+ assert_eq!(Negative::from_isize(-17), Some(Negative::A));
+ assert_eq!(Negative::from_isize(-91), None);
+ assert_eq!(Negative::from_i8(-17), Some(Negative::A));
+ assert_eq!(Negative::from_i8(-91), None);
+ assert_eq!(Negative::from_i16(-17), Some(Negative::A));
+ assert_eq!(Negative::from_i16(-91), None);
+ assert_eq!(Negative::from_i32(-17), Some(Negative::A));
+ assert_eq!(Negative::from_i32(-91), None);
+ assert_eq!(Negative::from_i64(-17), Some(Negative::A));
+ assert_eq!(Negative::from_i64(-91), None);
+ assert_eq!(Negative::from_usize(!16), Some(Negative::A));
+ assert_eq!(Negative::from_usize(!90), None);
+ assert_eq!(Negative::from_u8(!16), None);
+ assert_eq!(Negative::from_u8(!90), None);
+ assert_eq!(Negative::from_u16(!16), None);
+ assert_eq!(Negative::from_u16(!90), None);
+ assert_eq!(Negative::from_u32(!16), None);
+ assert_eq!(Negative::from_u32(!90), None);
+ assert_eq!(Negative::from_u64(!16), Some(Negative::A));
+ assert_eq!(Negative::from_u64(!90), None);
+}
+
+#[test]
+fn in_local_mod() {
+ mod local_mod {
+ enum_from_primitive! {
+ #[derive(Debug, PartialEq)]
+ pub enum InLocalMod {
+ A = 17,
+ B = 42,
+ }
+ }
+ }
+
+ use ep::FromPrimitive;
+ assert_eq!(local_mod::InLocalMod::from_i32(17), Some(local_mod::InLocalMod::A));
+ assert_eq!(local_mod::InLocalMod::from_i32(42), Some(local_mod::InLocalMod::B));
+ assert_eq!(local_mod::InLocalMod::from_i32(91), None);
+}
+
+enum_from_primitive! {
+#[derive(Debug, PartialEq)]
+#[doc = "Documented"]
+pub enum Documented {
+ A = 17
+}
+}
+
+#[test]
+fn documented() {
+ use ep::FromPrimitive;
+ assert_eq!(Documented::from_i32(17), Some(Documented::A));
+ assert_eq!(Documented::from_i32(91), None);
+}