test(parser): add implicit multiplication tests

added tests:
- implicit multiplication between a number + variable
- implicit multiplication between two paren groups
This commit is contained in:
ozzy committed 2026-09-28 08:20:32 -05:00
1 parent ddbddb4036
commit 0ce0d65e51
1 file changed
+45
+45
View File
@@ -116,3 +116,48 @@ fn test_parser_negative_exponent() {
let result = parser::from(tokens).parse(); let result = parser::from(tokens).parse();
assert_eq!(result, expected); assert_eq!(result, expected);
} }
#[test]
fn test_parser_implicit_multiply() {
let tokens = vec![Token::Number(dec!(5)), Token::Identifier("x".to_owned())];
let expected = Expression::Operation(
Operator::Multiply,
Box::new(Expression::Number(dec!(5))),
Box::new(Expression::Variable("x".to_owned())),
);
let result = parser::from(tokens).parse();
assert_eq!(result, expected);
}
#[test]
fn test_parser_implicit_multiply_group() {
let tokens = vec![
Token::OpenParen,
Token::Number(dec!(5)),
Token::Operator(Operator::Add),
Token::Number(dec!(5)),
Token::CloseParen,
Token::OpenParen,
Token::Number(dec!(10)),
Token::Operator(Operator::Add),
Token::Number(dec!(10)),
Token::CloseParen,
];
let expected = Expression::Operation(
Operator::Multiply,
Box::new(Expression::Operation(
Operator::Add,
Box::new(Expression::Number(dec!(5))),
Box::new(Expression::Number(dec!(5))),
)),
Box::new(Expression::Operation(
Operator::Add,
Box::new(Expression::Number(dec!(10))),
Box::new(Expression::Number(dec!(10))),
)),
);
let result = parser::from(tokens).parse();
assert_eq!(result, expected);
}