Add term parsing test

This commit is contained in:
Patrick Lühne 2020-03-04 22:49:46 +01:00
parent 5b98e8a29c
commit 385c878597
Signed by: patrick
GPG Key ID: 05F3611E97A70ABF
1 changed files with 15 additions and 8 deletions

View File

@ -560,15 +560,22 @@ mod tests
}*/ }*/
#[test] #[test]
fn parse_term_precedence_2() fn parse_term()
{ {
assert_eq!( let (rest, e1) = term("1 ** 2 ** 3 ** 4 ** 5, rest", &Declarations::new()).unwrap();
crate::parse::terms::term_precedence_2("1 ** 2 ** 3 ** 4 ** 5", &Declarations::new()), assert_eq!(rest, ", rest");
Ok(("", Term::exponentiate(Box::new(Term::integer(1)), assert_eq!(format!("{}", e1), "1 ** 2 ** 3 ** 4 ** 5");
Box::new(Term::exponentiate(Box::new(Term::integer(2)),
Box::new(Term::exponentiate(Box::new(Term::integer(3)), let (rest, e2) = term("1 ** (2 ** (3 ** (4 ** 5))), rest", &Declarations::new()).unwrap();
Box::new(Term::exponentiate(Box::new(Term::integer(4)), assert_eq!(rest, ", rest");
Box::new(Term::integer(5)))))))))))); assert_eq!(format!("{}", e2), "1 ** 2 ** 3 ** 4 ** 5");
let (rest, e3) = term("(((1 ** 2) ** 3) ** 4) ** 5, rest", &Declarations::new()).unwrap();
assert_eq!(rest, ", rest");
assert_eq!(format!("{}", e3), "(((1 ** 2) ** 3) ** 4) ** 5");
assert_eq!(e1, e2);
assert_ne!(e1, e3);
} }
#[test] #[test]