use subject_source::string::parse::*; use subject_source::vec::compute::*; #[test] pub fn parse_add() { assert_eq!("+".parse(), Ok(Operation::Binary(Binary::Add))); } #[test] pub fn parse_sub() { assert_eq!("-".parse(), Ok(Operation::Binary(Binary::Sub))); } #[test] pub fn parse_mul() { assert_eq!("*".parse(), Ok(Operation::Binary(Binary::Mul))); } #[test] pub fn parse_div() { assert_eq!("/".parse(), Ok(Operation::Binary(Binary::Div))); } #[test] pub fn parse_number() { assert_eq!("3.14".parse(), Ok(Operation::Push(3.14))); } #[test] pub fn parse_number_negative() { assert_eq!("-3.14".parse(), Ok(Operation::Push(-3.14))); } #[test] pub fn parse_bad_number() { match "3.14aaa".parse::() { Err(ParseOperationError::Number(_)) => {} _ => panic!("'3.14aaa' should raise a ParseOperationError::Number error"), } } #[test] pub fn parse_bad_operation() { match "blabla".parse::() { Err(ParseOperationError::UnknownOperation) => {} _ => panic!("'blabla' should raise a ParseOperationError::UnknownOperation error"), } }