| #[libm_macros::function_enum(BaseName)] |
| #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] |
| pub enum Identifier {} |
| |
| #[libm_macros::base_name_enum] |
| #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] |
| pub enum BaseName {} |
| |
| #[test] |
| fn as_str() { |
| assert_eq!(Identifier::Sin.as_str(), "sin"); |
| assert_eq!(Identifier::Sinf.as_str(), "sinf"); |
| } |
| |
| #[test] |
| fn from_str() { |
| assert_eq!(Identifier::from_str("sin").unwrap(), Identifier::Sin); |
| assert_eq!(Identifier::from_str("sinf").unwrap(), Identifier::Sinf); |
| } |
| |
| #[test] |
| fn basename() { |
| assert_eq!(Identifier::Sin.base_name(), BaseName::Sin); |
| assert_eq!(Identifier::Sinf.base_name(), BaseName::Sin); |
| } |
| |
| #[test] |
| fn math_op() { |
| assert_eq!(Identifier::Sin.math_op().float_ty, FloatTy::F64); |
| assert_eq!(Identifier::Sinf.math_op().float_ty, FloatTy::F32); |
| } |
| |
| // Replicate the structure that we have in `libm-test` |
| mod op { |
| include!("../../libm-macros/src/shared.rs"); |
| } |
| |
| use op::FloatTy; |