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]
fn parse_term_precedence_2()
fn parse_term()
{
assert_eq!(
crate::parse::terms::term_precedence_2("1 ** 2 ** 3 ** 4 ** 5", &Declarations::new()),
Ok(("", Term::exponentiate(Box::new(Term::integer(1)),
Box::new(Term::exponentiate(Box::new(Term::integer(2)),
Box::new(Term::exponentiate(Box::new(Term::integer(3)),
Box::new(Term::exponentiate(Box::new(Term::integer(4)),
Box::new(Term::integer(5))))))))))));
let (rest, e1) = term("1 ** 2 ** 3 ** 4 ** 5, rest", &Declarations::new()).unwrap();
assert_eq!(rest, ", rest");
assert_eq!(format!("{}", e1), "1 ** 2 ** 3 ** 4 ** 5");
let (rest, e2) = term("1 ** (2 ** (3 ** (4 ** 5))), rest", &Declarations::new()).unwrap();
assert_eq!(rest, ", rest");
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]