diff options
Diffstat (limited to 'js/scripting-lang/scratch_tests/test_enhanced_case_verification.txt')
-rw-r--r-- | js/scripting-lang/scratch_tests/test_enhanced_case_verification.txt | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/js/scripting-lang/scratch_tests/test_enhanced_case_verification.txt b/js/scripting-lang/scratch_tests/test_enhanced_case_verification.txt deleted file mode 100644 index 011a433..0000000 --- a/js/scripting-lang/scratch_tests/test_enhanced_case_verification.txt +++ /dev/null @@ -1,229 +0,0 @@ -/* Enhanced Case Statement Verification Tests */ -/* Testing core assumptions for FizzBuzz and tuple-like pattern matching */ - -/* ===== TEST 1: AUTO-INDEXED TABLE CREATION ===== */ -..out "=== TEST 1: AUTO-INDEXED TABLE CREATION ==="; - -/* Test basic auto-indexed table */ -basic_table : {1, 2, 3}; -..out "Basic table:"; -..out basic_table; - -/* Test auto-indexed table with expressions */ -expr_table : {5 % 3, 5 % 5, 5 % 2}; -..out "Expression table (5 % 3, 5 % 5, 5 % 2):"; -..out expr_table; - -/* Test with FizzBuzz-style expressions */ -n : 15; -fizzbuzz_expr : {n % 3, n % 5}; -..out "FizzBuzz expressions for n=15:"; -..out fizzbuzz_expr; - -/* ===== TEST 2: MAP WITH TABLE TRANSFORMATION ===== */ -..out "=== TEST 2: MAP WITH TABLE TRANSFORMATION ==="; - -/* Test map with equals 0 */ -test_map : map @(equals 0) {15 % 3, 15 % 5}; -..out "Map equals 0 on {15 % 3, 15 % 5}:"; -..out test_map; - -/* Test with different numbers */ -test_map_3 : map @(equals 0) {3 % 3, 3 % 5}; -..out "Map equals 0 on {3 % 3, 3 % 5}:"; -..out test_map_3; - -test_map_5 : map @(equals 0) {5 % 3, 5 % 5}; -..out "Map equals 0 on {5 % 3, 5 % 5}:"; -..out test_map_5; - -test_map_7 : map @(equals 0) {7 % 3, 7 % 5}; -..out "Map equals 0 on {7 % 3, 7 % 5}:"; -..out test_map_7; - -/* ===== TEST 3: TABLE PATTERN MATCHING ===== */ -..out "=== TEST 3: TABLE PATTERN MATCHING ==="; - -/* Test simple table pattern matching */ -simple_table : {1: true, 2: false}; -simple_result : when simple_table is - {1: true, 2: true} then "both true" - {1: true, 2: false} then "first true" - {1: false, 2: true} then "second true" - {1: false, 2: false} then "both false"; -..out "Simple table pattern matching:"; -..out simple_result; - -/* Test with actual FizzBuzz-style data */ -fizzbuzz_data : {1: true, 2: true}; -fizzbuzz_result : when fizzbuzz_data is - {1: true, 2: true} then "FizzBuzz" - {1: true, 2: false} then "Fizz" - {1: false, 2: true} then "Buzz" - {1: false, 2: false} then "neither"; -..out "FizzBuzz-style pattern matching:"; -..out fizzbuzz_result; - -/* Test with different combinations */ -fizz_data : {1: true, 2: false}; -fizz_result : when fizz_data is - {1: true, 2: true} then "FizzBuzz" - {1: true, 2: false} then "Fizz" - {1: false, 2: true} then "Buzz" - {1: false, 2: false} then "neither"; -..out "Fizz pattern matching:"; -..out fizz_result; - -/* ===== TEST 4: INTEGRATED FIZZBUZZ TEST ===== */ -..out "=== TEST 4: INTEGRATED FIZZBUZZ TEST ==="; - -/* Create the divisibility function */ -divisibility : n -> map @(equals 0) {n % 3, n % 5}; - -/* Test the function with different inputs */ -div_15 : divisibility 15; -div_3 : divisibility 3; -div_5 : divisibility 5; -div_7 : divisibility 7; - -..out "Divisibility results:"; -..out "15: " + div_15; -..out "3: " + div_3; -..out "5: " + div_5; -..out "7: " + div_7; - -/* Test the complete FizzBuzz function */ -fizzbuzz : n -> - when divisibility n is - {1: true, 2: true} then "FizzBuzz" - {1: true, 2: false} then "Fizz" - {1: false, 2: true} then "Buzz" - {1: false, 2: false} then n; - -/* Test FizzBuzz with various inputs */ -..out "FizzBuzz results:"; -..out "fizzbuzz 15: " + fizzbuzz 15; -..out "fizzbuzz 3: " + fizzbuzz 3; -..out "fizzbuzz 5: " + fizzbuzz 5; -..out "fizzbuzz 7: " + fizzbuzz 7; -..out "fizzbuzz 0: " + fizzbuzz 0; -..out "fizzbuzz 1: " + fizzbuzz 1; - -/* ===== TEST 5: ALTERNATIVE APPROACHES ===== */ -..out "=== TEST 5: ALTERNATIVE APPROACHES ==="; - -/* Option A: Multiple value patterns */ -fizzbuzz_option_a : n -> - when (equals (n % 3) 0) (equals (n % 5) 0) is - true true then "FizzBuzz" - true false then "Fizz" - false true then "Buzz" - false false then n; - -..out "Option A (multiple value patterns):"; -..out "fizzbuzz_option_a 15: " + fizzbuzz_option_a 15; -..out "fizzbuzz_option_a 3: " + fizzbuzz_option_a 3; -..out "fizzbuzz_option_a 5: " + fizzbuzz_option_a 5; -..out "fizzbuzz_option_a 7: " + fizzbuzz_option_a 7; - -/* Option B: Predicate functions with nested when */ -is_fizzbuzz : n -> apply @logicalAnd (equals (n % 3) 0) (equals (n % 5) 0); -is_fizz : n -> equals (n % 3) 0; -is_buzz : n -> equals (n % 5) 0; - -fizzbuzz_option_b : n -> - when is_fizzbuzz n is - true then "FizzBuzz" - _ then when is_fizz n is - true then "Fizz" - _ then when is_buzz n is - true then "Buzz" - _ then n; - -..out "Option B (predicate functions):"; -..out "fizzbuzz_option_b 15: " + fizzbuzz_option_b 15; -..out "fizzbuzz_option_b 3: " + fizzbuzz_option_b 3; -..out "fizzbuzz_option_b 5: " + fizzbuzz_option_b 5; -..out "fizzbuzz_option_b 7: " + fizzbuzz_option_b 7; - -/* ===== TEST 6: EDGE CASES AND ERROR CONDITIONS ===== */ -..out "=== TEST 6: EDGE CASES AND ERROR CONDITIONS ==="; - -/* Test with negative numbers */ -..out "Negative numbers:"; -..out "fizzbuzz -3: " + fizzbuzz -3; -..out "fizzbuzz -5: " + fizzbuzz -5; -..out "fizzbuzz -15: " + fizzbuzz -15; - -/* Test with large numbers */ -..out "Large numbers:"; -..out "fizzbuzz 30: " + fizzbuzz 30; -..out "fizzbuzz 45: " + fizzbuzz 45; -..out "fizzbuzz 60: " + fizzbuzz 60; - -/* ===== TEST 7: PERFORMANCE AND COMPLEXITY ===== */ -..out "=== TEST 7: PERFORMANCE AND COMPLEXITY ==="; - -/* Test with a range of numbers */ -test_range : 1; -test_result : fizzbuzz test_range; -..out "Range test (1-20):"; -..out "1: " + test_result; - -test_range : 2; -test_result : fizzbuzz test_range; -..out "2: " + test_result; - -test_range : 3; -test_result : fizzbuzz test_range; -..out "3: " + test_result; - -test_range : 4; -test_result : fizzbuzz test_range; -..out "4: " + test_result; - -test_range : 5; -test_result : fizzbuzz test_range; -..out "5: " + test_result; - -test_range : 6; -test_result : fizzbuzz test_range; -..out "6: " + test_result; - -test_range : 7; -test_result : fizzbuzz test_range; -..out "7: " + test_result; - -test_range : 8; -test_result : fizzbuzz test_range; -..out "8: " + test_result; - -test_range : 9; -test_result : fizzbuzz test_range; -..out "9: " + test_result; - -test_range : 10; -test_result : fizzbuzz test_range; -..out "10: " + test_result; - -test_range : 11; -test_result : fizzbuzz test_range; -..out "11: " + test_result; - -test_range : 12; -test_result : fizzbuzz test_range; -..out "12: " + test_result; - -test_range : 13; -test_result : fizzbuzz test_range; -..out "13: " + test_result; - -test_range : 14; -test_result : fizzbuzz test_range; -..out "14: " + test_result; - -test_range : 15; -test_result : fizzbuzz test_range; -..out "15: " + test_result; - -..out "=== VERIFICATION COMPLETE ==="; \ No newline at end of file |