49 lines
1.1 KiB
Rust
49 lines
1.1 KiB
Rust
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::<Operation>() {
|
|
Err(ParseOperationError::Number(_)) => {}
|
|
_ => panic!("'3.14aaa' should raise a ParseOperationError::Number error"),
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
pub fn parse_bad_operation() {
|
|
match "blabla".parse::<Operation>() {
|
|
Err(ParseOperationError::UnknownOperation) => {}
|
|
_ => panic!("'blabla' should raise a ParseOperationError::UnknownOperation error"),
|
|
}
|
|
}
|