From f4d0139ba1e8f2f94711df851e02b4ca6c1a3762 Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Tue, 23 Feb 2021 14:51:05 +0100 Subject: [PATCH] tests: add failing arithmetic test --- src/parser/tests.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/parser/tests.rs b/src/parser/tests.rs index d485171..b7831d1 100644 --- a/src/parser/tests.rs +++ b/src/parser/tests.rs @@ -798,3 +798,33 @@ fn test_struct_initialization() { let tree = parse(tokens, Some(raw.to_string()), "".into()); assert!(tree.is_ok()); } + +#[test] +#[ignore] +fn test_arithmetic() { + // These should pass + let raw = "fn main() {1*1}"; + let tree = parse(tokenize(raw), Some(raw.to_string()), raw.into()); + assert!(tree.is_ok()); + + let raw = "fn main() {2+3*4}"; + let tree = parse(tokenize(raw), Some(raw.to_string()), raw.into()); + assert!(tree.is_ok()); + + let raw = "fn main() {(2+2)*3}"; // TODO: Fix! + let tree = parse(tokenize(raw), Some(raw.to_string()), raw.into()); + assert!(tree.is_ok()); + + // These should fail + let raw = "fn main() {(22+)+1}"; + let tree = parse(tokenize(raw), Some(raw.to_string()), raw.into()); + assert!(tree.is_err()); + + let raw = "fn main() {1++1}"; + let tree = parse(tokenize(raw), Some(raw.to_string()), raw.into()); + assert!(tree.is_err()); + + let raw = "fn main() {3)+1}"; + let tree = parse(tokenize(raw), Some(raw.to_string()), raw.into()); + assert!(tree.is_err()); +}