diff --git a/src/formula/parser.rs b/src/formula/parser.rs index 3e27fdd..4390780 100644 --- a/src/formula/parser.rs +++ b/src/formula/parser.rs @@ -464,15 +464,15 @@ mod tests { #[test] fn parse_simple_subtraction() { - let f = parse_formula("Profit = Revenue - Cost", "Measure").unwrap(); + let f = parse_formula("Profit = Revenue - Cost", "Foo").unwrap(); assert_eq!(f.target, "Profit"); - assert_eq!(f.target_category, "Measure"); + assert_eq!(f.target_category, "Foo"); assert!(matches!(f.expr, Expr::BinOp(BinOp::Sub, _, _))); } #[test] fn parse_where_clause() { - let f = parse_formula("EastRev = Revenue WHERE Region = \"East\"", "Measure").unwrap(); + let f = parse_formula("EastRev = Revenue WHERE Region = \"East\"", "Foo").unwrap(); assert_eq!(f.target, "EastRev"); let filter = f.filter.as_ref().unwrap(); assert_eq!(filter.category, "Region"); @@ -481,25 +481,25 @@ mod tests { #[test] fn parse_sum_aggregation() { - let f = parse_formula("Total = SUM(Revenue)", "Measure").unwrap(); + let f = parse_formula("Total = SUM(Revenue)", "Foo").unwrap(); assert!(matches!(f.expr, Expr::Agg(AggFunc::Sum, _, _))); } #[test] fn parse_avg_aggregation() { - let f = parse_formula("Avg = AVG(Revenue)", "Measure").unwrap(); + let f = parse_formula("Avg = AVG(Revenue)", "Foo").unwrap(); assert!(matches!(f.expr, Expr::Agg(AggFunc::Avg, _, _))); } #[test] fn parse_if_expression() { - let f = parse_formula("Capped = IF(Revenue > 1000, 1000, Revenue)", "Measure").unwrap(); + let f = parse_formula("Capped = IF(Revenue > 1000, 1000, Revenue)", "Foo").unwrap(); assert!(matches!(f.expr, Expr::If(_, _, _))); } #[test] fn parse_numeric_literal() { - let f = parse_formula("Fixed = 42", "Measure").unwrap(); + let f = parse_formula("Fixed = 42", "Foo").unwrap(); assert!(matches!(f.expr, Expr::Number(n) if (n - 42.0).abs() < 1e-10)); } @@ -517,19 +517,19 @@ mod tests { #[test] fn parse_min_aggregation() { - let f = parse_formula("Lo = MIN(Revenue)", "Measure").unwrap(); + let f = parse_formula("Lo = MIN(Revenue)", "Foo").unwrap(); assert!(matches!(f.expr, Expr::Agg(AggFunc::Min, _, _))); } #[test] fn parse_max_aggregation() { - let f = parse_formula("Hi = MAX(Revenue)", "Measure").unwrap(); + let f = parse_formula("Hi = MAX(Revenue)", "Foo").unwrap(); assert!(matches!(f.expr, Expr::Agg(AggFunc::Max, _, _))); } #[test] fn parse_count_aggregation() { - let f = parse_formula("N = COUNT(Revenue)", "Measure").unwrap(); + let f = parse_formula("N = COUNT(Revenue)", "Foo").unwrap(); assert!(matches!(f.expr, Expr::Agg(AggFunc::Count, _, _))); } @@ -539,7 +539,7 @@ mod tests { fn parse_sum_with_top_level_where_works() { let f = parse_formula( "EastTotal = SUM(Revenue) WHERE Region = \"East\"", - "Measure", + "Foo", ) .unwrap(); assert!(matches!(f.expr, Expr::Agg(AggFunc::Sum, _, _))); @@ -554,7 +554,7 @@ mod tests { fn parse_sum_with_inline_where_filter() { let f = parse_formula( "EastTotal = SUM(Revenue WHERE Region = \"East\")", - "Measure", + "Foo", ) .unwrap(); if let Expr::Agg(AggFunc::Sum, inner, Some(filter)) = &f.expr { @@ -592,7 +592,7 @@ mod tests { #[test] fn parse_where_with_quoted_string_inside_expression() { // WHERE inside a formula string with quotes - let f = parse_formula("X = Revenue WHERE Region = \"West Coast\"", "Measure").unwrap(); + let f = parse_formula("X = Revenue WHERE Region = \"West Coast\"", "Foo").unwrap(); let filter = f.filter.as_ref().unwrap(); assert_eq!(filter.item, "West Coast"); } @@ -609,7 +609,7 @@ mod tests { #[test] fn parse_unary_minus() { - let f = parse_formula("Neg = -Revenue", "Measure").unwrap(); + let f = parse_formula("Neg = -Revenue", "Foo").unwrap(); assert!(matches!(f.expr, Expr::UnaryMinus(_))); } @@ -617,13 +617,13 @@ mod tests { #[test] fn parse_multiplication() { - let f = parse_formula("Double = Revenue * 2", "Measure").unwrap(); + let f = parse_formula("Double = Revenue * 2", "Foo").unwrap(); assert!(matches!(f.expr, Expr::BinOp(BinOp::Mul, _, _))); } #[test] fn parse_division() { - let f = parse_formula("Half = Revenue / 2", "Measure").unwrap(); + let f = parse_formula("Half = Revenue / 2", "Foo").unwrap(); assert!(matches!(f.expr, Expr::BinOp(BinOp::Div, _, _))); } @@ -701,7 +701,7 @@ mod tests { #[test] fn parse_multi_word_identifier() { - let f = parse_formula("Total Revenue = Base Revenue + Bonus", "Measure").unwrap(); + let f = parse_formula("Total Revenue = Base Revenue + Bonus", "Foo").unwrap(); assert_eq!(f.target, "Total Revenue"); } @@ -710,7 +710,7 @@ mod tests { #[test] fn split_where_ignores_where_inside_quotes() { // WHERE inside quotes should not be treated as a keyword - let f = parse_formula("X = Revenue WHERE Region = \"WHERE\"", "Measure").unwrap(); + let f = parse_formula("X = Revenue WHERE Region = \"WHERE\"", "Foo").unwrap(); let filter = f.filter.as_ref().unwrap(); assert_eq!(filter.item, "WHERE"); } @@ -719,7 +719,7 @@ mod tests { #[test] fn pipe_quoted_identifier_in_expression() { - let f = parse_formula("|Total Revenue| = |Base Revenue| + Bonus", "Measure").unwrap(); + let f = parse_formula("|Total Revenue| = |Base Revenue| + Bonus", "Foo").unwrap(); assert_eq!(f.target, "|Total Revenue|"); if let Expr::BinOp(BinOp::Add, lhs, rhs) = &f.expr { assert!(matches!(**lhs, Expr::Ref(ref s) if s == "Base Revenue")); @@ -765,7 +765,7 @@ mod tests { #[test] fn pipe_quoted_in_where_filter_value() { - let f = parse_formula("X = Revenue WHERE Region = |East Coast|", "Measure").unwrap(); + let f = parse_formula("X = Revenue WHERE Region = |East Coast|", "Foo").unwrap(); let filter = f.filter.as_ref().unwrap(); assert_eq!(filter.item, "East Coast"); } @@ -774,7 +774,7 @@ mod tests { fn pipe_quoted_in_inline_where() { let f = parse_formula( "X = SUM(Revenue WHERE |Region Name| = |East Coast|)", - "Measure", + "Foo", ) .unwrap(); if let Expr::Agg(AggFunc::Sum, _, Some(filter)) = &f.expr {