# Core Language Tests This directory contains tests for the fundamental features of the rawk language. ## Test Files ### `test_suite.rawk` - Comprehensive Test Suite The main test suite that covers all core language features: - Basic function definitions and calls - Multi-line functions - Nested function calls - Function calls within function bodies - Edge cases and error conditions - Boolean assertions - Array operations - Conditional expressions - Complex expressions **Run with:** ```bash awk -f ../../rawk.awk test_suite.rawk | awk -f - ``` ### `test_basic.rawk` - Basic Functions Tests basic single-line function definitions and calls: - Addition, multiplication, string concatenation - Function call replacement with internal names **Run with:** ```bash awk -f ../../rawk.awk test_basic.rawk | awk -f - ``` ### `test_multiline.rawk` - Multi-line Functions Tests multi-line function definitions: - Complex function bodies with multiple statements - Return statements - Array processing within functions **Run with:** ```bash awk -f ../../rawk.awk test_multiline.rawk | awk -f - ``` ### `test_edge_cases.rawk` - Edge Cases Tests edge cases and error conditions: - Functions with no arguments - Functions with many arguments - Complex expressions - String operations - Conditional expressions - Array access **Run with:** ```bash awk -f ../../rawk.awk test_edge_cases.rawk | awk -f - ``` ### `test_recursive.rawk` - Recursive Functions Tests recursive function support: - Factorial function - Fibonacci function - Countdown function - Self-referential function calls **Run with:** ```bash awk -f ../../rawk.awk test_recursive.rawk | awk -f - ``` ### `test_array_fix.rawk` - Array Handling Tests array operations and utilities: - Basic array operations - Standard library array functions - Associative arrays - Array statistics **Run with:** ```bash awk -f ../../rawk.awk test_array_fix.rawk | awk -f - ``` ### `test_failure.rawk` - Assertion Failures Demonstrates the assertion system: - Shows how failing tests are reported - Tests error message formatting - Validates test framework functionality **Run with:** ```bash awk -f ../../rawk.awk test_failure.rawk | awk -f - 2>&1 ``` ## Expected Results All tests should pass with clear output showing: - ✓ Test results with descriptions - 🎉 Success messages - Proper error reporting for failures The comprehensive test suite should show: ``` === Test Summary === Total tests: 15 Passed: 15 Failed: 0 🎉 All tests passed! ```