From 385c878597aa38284bd899c105514e908171d092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20L=C3=BChne?= Date: Wed, 4 Mar 2020 22:49:46 +0100 Subject: [PATCH] Add term parsing test --- src/parse/terms.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/parse/terms.rs b/src/parse/terms.rs index f2cc1ba..ed3bdee 100644 --- a/src/parse/terms.rs +++ b/src/parse/terms.rs @@ -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]