diff options
Diffstat (limited to 'js/scripting-lang/baba-yaga-c/tests/22_parser_limitations.txt')
-rw-r--r-- | js/scripting-lang/baba-yaga-c/tests/22_parser_limitations.txt | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/js/scripting-lang/baba-yaga-c/tests/22_parser_limitations.txt b/js/scripting-lang/baba-yaga-c/tests/22_parser_limitations.txt deleted file mode 100644 index 6d267b8..0000000 --- a/js/scripting-lang/baba-yaga-c/tests/22_parser_limitations.txt +++ /dev/null @@ -1,115 +0,0 @@ -/* Unit Test: Parser Limitations for Enhanced Case Statements */ -/* Tests: Multi-value patterns with expressions, table access, function calls */ - -/* ======================================== */ -/* MAIN BLOCKER: Multi-value patterns with expressions */ -/* ======================================== */ - -/* Test 1: Basic multi-value with expressions in parentheses */ -test_multi_expr : x y -> - when (x % 2) (y % 2) is - 0 0 then "both even" - 0 1 then "x even, y odd" - 1 0 then "x odd, y even" - 1 1 then "both odd"; - -/* Test 2: FizzBuzz-style multi-value patterns */ -fizzbuzz_test : n -> - when (n % 3) (n % 5) is - 0 0 then "FizzBuzz" - 0 _ then "Fizz" - _ 0 then "Buzz" - _ _ then n; - -/* Test 3: Complex expressions in multi-value patterns */ -complex_multi : x y -> - when ((x + 1) % 2) ((y - 1) % 2) is - 0 0 then "both transformed even" - 0 1 then "x transformed even, y transformed odd" - 1 0 then "x transformed odd, y transformed even" - 1 1 then "both transformed odd"; - -/* Test 4: Function calls in multi-value patterns */ -is_even : n -> n % 2 = 0; -is_positive : n -> n > 0; - -test_func_multi : x y -> - when (is_even x) (is_positive y) is - true true then "x even and y positive" - true false then "x even and y not positive" - false true then "x odd and y positive" - false false then "x odd and y not positive"; - -/* ======================================== */ -/* SECONDARY LIMITATIONS: Table access and function calls */ -/* ======================================== */ - -/* Test 5: Table access in when expressions */ -user : {role: "admin", level: 5}; -test_table_access : u -> - when u.role is - "admin" then "admin user" - "user" then "regular user" - _ then "unknown role"; - -/* Test 6: Function calls in when expressions */ -test_func_call : n -> - when (is_even n) is - true then "even number" - false then "odd number"; - -/* Test 7: Complex function calls in when expressions */ -complex_func : n -> (n % 3 = 0) and (n % 5 = 0); -test_complex_func : n -> - when (complex_func n) is - true then "divisible by both 3 and 5" - false then "not divisible by both"; - -/* ======================================== */ -/* CONTROL TESTS: Should work with current parser */ -/* ======================================== */ - -/* Test 8: Simple value matching (control) */ -test_simple : n -> - when n is - 0 then "zero" - 1 then "one" - _ then "other"; - -/* Test 9: Single complex expressions with parentheses (control) */ -test_single_expr : n -> - when (n % 3) is - 0 then "divisible by 3" - _ then "not divisible by 3"; - -/* Test 10: Multiple simple values (control) */ -test_multi_simple : x y -> - when x y is - 0 0 then "both zero" - 0 _ then "x zero" - _ 0 then "y zero" - _ _ then "neither zero"; - -/* ======================================== */ -/* TEST EXECUTION */ -/* ======================================== */ - -/* Execute tests that should work */ -result1 : test_simple 5; -result2 : test_single_expr 15; -result3 : test_multi_simple 0 5; - -/* These should fail with current parser */ -result4 : test_multi_expr 4 6; /* Should return "both even" */ -result5 : fizzbuzz_test 15; /* Should return "FizzBuzz" */ -result6 : test_table_access user; /* Should return "admin user" */ -result7 : test_func_call 4; /* Should return "even number" */ - -/* Output results */ -..out result1; -..out result2; -..out result3; -..out result4; -..out result5; -..out result6; -..out result7; \ No newline at end of file |