windjammer 0.48.0

A simple language inspired by Go, Ruby, and Elixir that transpiles to Rust - 80% of Rust's power with 20% of the complexity
Documentation
// Example 32: Testing Framework
// Demonstrates testing utilities and assertions

use std::testing

// Function to test
fn add(a: int, b: int) -> int {
    a + b
}

fn divide(a: int, b: int) -> Result<int, string> {
    if b == 0 {
        Result::Err("division by zero")
    } else {
        Result::Ok(a / b)
    }
}

fn find_user(id: int) -> Option<string> {
    if id == 1 {
        Option::Some("Alice")
    } else {
        Option::None
    }
}

fn test_basic_assertions() {
    println!("=== Basic Assertions ===")
    
    // Simple boolean assertions
    assert(true)
    assert(2 + 2 == 4)
    println!("✓ Basic assertions passed")
}

fn test_equality() {
    println!("\n=== Equality Assertions ===")
    
    let result = add(5, 3)
    assert_eq(result, 8)
    
    let name = "Alice"
    assert_eq(name, "Alice")
    
    // Inequality
    assert_ne(5, 10)
    
    println!("✓ Equality assertions passed")
}

fn test_option_results() {
    println!("\n=== Option and Result Assertions ===")
    
    // Test Some
    let user = find_user(1)
    let name = assert_some(user)
    assert_eq(name, "Alice")
    
    // Test None
    let no_user = find_user(999)
    assert_none(no_user)
    
    // Test Ok
    let result = divide(10, 2)
    let value = assert_ok(result)
    assert_eq(value, 5)
    
    // Test Err
    let error_result = divide(10, 0)
    let error_msg = assert_err(error_result)
    assert_eq(error_msg, "division by zero")
    
    println!("✓ Option/Result assertions passed")
}

fn test_comparisons() {
    println!("\n=== Comparison Assertions ===")
    
    let x = 10
    let y = 5
    
    assert_gt(x, y)  // x > y
    assert_lt(y, x)  // y < x
    assert_ge(x, 10) // x >= 10
    assert_le(y, 5)  // y <= 5
    
    println!("✓ Comparison assertions passed")
}

fn test_float_comparison() {
    println!("\n=== Float Comparison ===")
    
    let pi = 3.14159
    let approx_pi = 3.14
    
    // Approximately equal within epsilon
    assert_approx_eq(pi, approx_pi, 0.01)
    
    println!("✓ Float comparison passed")
}

fn main() {
    println!("Running Windjammer Test Suite\n")
    
    test_basic_assertions()
    test_equality()
    test_option_results()
    test_comparisons()
    test_float_comparison()
    
    println!("\n✅ All tests passed!")
    println!("Total: 5 test functions")
}