/* ==========================================
Variables and Types
========================================== */
print("\nTesting Variables and Types:");
let num = 42;
let float = 3.14;
let str = "Hello";
let bool = true;
let null_val = null;
print("Type of num:", type(num));
print("Type of float:", type(float));
print("Type of str:", type(str));
print("Type of bool:", type(bool));
print("Type of null:", type(null_val));
/* ==========================================
Arithmetic Operations
========================================== */
print("\nTesting Arithmetic:");
print(num, "+", 8, "=", num + 8);
print(num, "-", 8, "=", num - 8);
print(num, "*", 8, "=", num * 8);
print(num, "/", 8, "=", num / 8);
print(num, "%", 8, "=", num % 8);
print(num, "+", float, "=", num + float);
/* ==========================================
String Operations
========================================== */
print("\nTesting Strings:");
print("String methods:");
print("Length:", str.len());
print("Uppercase:", str.to_upper());
print("Lowercase:", str.to_lower());
print("Character at 1:", str.char_at(1));
print("String + Number:", "Answer: " + num.to_string());
/* ==========================================
Array Operations (Immutable)
========================================== */
print("\nTesting Arrays:");
let arr = [1, 2, 3, 4, 5];
print("Original array:", arr);
print("Length:", arr.len());
print("Sum:", arr.sum());
/* Test array immutability */
let arr_push = arr.push(6);
print("Original array after push:", arr);
print("New array from push:", arr_push);
let arr_pop = arr.pop();
print("Original array after pop:", arr);
print("New array from pop:", arr_pop);
let arr_remove = arr.remove(2);
print("Original array after remove:", arr);
print("New array from remove:", arr_remove);
/* Test array map */
let doubled = arr.map((x) -> x * 2);
print("Original array after map:", arr);
print("New array from map (doubled):", doubled);
let squared = arr.map((x) -> x * x);
print("New array from map (squared):", squared);
/* ==========================================
HashMaps
========================================== */
print("\nTesting HashMaps:");
let map = {"name": "John", "age": 30};
print("Original map:", map);
print("Length:", map.len());
print("Get name:", map.get("name"));
let new_map = map.set("city", "New York");
print("After set:", new_map);
/* ==========================================
Functions with Default Parameters
========================================== */
print("\nTesting Functions:");
let greet = (name="World", greeting="Hello") -> {
print(greeting + ", " + name + "!");
};
greet(); /* Hello, World! */
greet("Alice"); /* Hello, Alice! */
greet("Bob", "Hi"); /* Hi, Bob! */
greet(greeting="Hola"); /* Hola, World! */
greet(name="Charlie", greeting="Hey"); /* Hey, Charlie! */
/* Function with named parameters */
let power = (x, n=2) -> {
return Math.pow(x, n);
};
print("2^3 =", power(2, 3)); /* 8 */
print("3^2 =", power(3)); /* 9 (using default) */
print("4^2 =", power(x=4)); /* 16 (using named arg) */
/* ==========================================
Control Flow
========================================== */
print("\nTesting Control Flow:");
/* If-else */
let test_num = 42;
if (test_num > 50) {
print("Greater than 50");
} else if (test_num > 40) {
print("Greater than 40");
} else {
print("Less than or equal to 40");
}
/* While loop with continue and break */
print("While loop with continue/break:");
let i = 0;
while (i < 5) {
i++;
if (i == 2) {
continue;
}
if (i == 4) {
break;
}
print("i =", i);
}
/* For loop */
print("For loop:");
for (let i = 0; i < 3; i++) {
print("i =", i);
}
/* ==========================================
Built-in Modules
========================================== */
print("\nTesting Modules:");
/* Math module */
print("PI =", Math.pi);
print("2^3 =", Math.pow(2, 3));
/* Time module */
print("Current time (s):", Time.now());
print("Current time (ms):", Time.now_ms());
/* Random module */
print("\nTesting Random Module:");
print("Random int (1-100):", Random.int(1, 100));
print("Random float:", Random.float());
print("Random bool (50%):", Random.bool(0.5));
let test_arr = [1, 2, 3, 4, 5];
print("Original array:", test_arr);
let shuffled = Random.shuffle(test_arr);
print("Shuffled array:", shuffled);
/* ==========================================
Monte Carlo Pi Estimation
========================================== */
print("\nEstimating Pi:");
let points = 10000;
let inside = 0;
for (let i = 0; i < points; i++) {
let x = Random.float();
let y = Random.float();
if (x * x + y * y <= 1.0) {
inside++;
}
}
let pi = 4.0 * inside / points;
print("Estimated Pi:", pi);
print("\nAll tests completed!");