()
| 464 | |
| 465 | #[test] |
| 466 | fn test_case_sensitivity_functions() { |
| 467 | let fixture = TestFixture::new().expect("Failed to create test fixture"); |
| 468 | // Setup fresh graph for this test to avoid interference |
| 469 | fixture |
| 470 | .setup_graph("test_case_sensitivity_functions") |
| 471 | .expect("Failed to setup graph"); |
| 472 | // Re-insert simple data since we have a fresh graph |
| 473 | fixture |
| 474 | .insert_simple_data() |
| 475 | .expect("Failed to insert simple data"); |
| 476 | |
| 477 | // Test case sensitivity - BNF specifies lowercase for some functions |
| 478 | let case_tests = vec![ |
| 479 | ("count()", "COUNT()"), // BNF: "count" vs implementation: "COUNT" |
| 480 | ("sum([1,2])", "SUM([1,2])"), |
| 481 | ("avg([1,2])", "AVG([1,2])"), |
| 482 | ("min([1,2])", "MIN([1,2])"), |
| 483 | ("max([1,2])", "MAX([1,2])"), |
| 484 | ]; |
| 485 | |
| 486 | for (lowercase, uppercase) in case_tests { |
| 487 | let query_lower = format!("RETURN {} as result", lowercase); |
| 488 | let query_upper = format!("RETURN {} as result", uppercase); |
| 489 | |
| 490 | let lower_result = fixture.query(&query_lower); |
| 491 | let upper_result = fixture.query(&query_upper); |
| 492 | |
| 493 | match (lower_result.is_ok(), upper_result.is_ok()) { |
| 494 | (true, true) => {} |
| 495 | (true, false) => {} |
| 496 | (false, true) => {} |
| 497 | (false, false) => {} |
| 498 | } |
| 499 | } |
| 500 | } |
| 501 | |
| 502 | // ============================================================================== |
| 503 | // FUNCTION PLANNING TESTS |
nothing calls this directly
no test coverage detected