/* ==========================================
Basic Variable Declaration and Types
========================================== */
print("Testing Variables and Types:");
let a = 42;
let b = 3.14;
let s = "Hello";
let bool = true;
let n = null;
print("Type of a:", type(a)); /* Number */
print("Type of b:", type(b)); /* Float */
print("Type of s:", type(s)); /* String */
print("Type of bool:", type(bool)); /* Bool */
print("Type of n:", type(n)); /* Null */
/* ==========================================
Arithmetic Operations
========================================== */
print("\nTesting Arithmetic:");
print("42 + 8 =", 42 + 8); /* 50 */
print("42 - 8 =", 42 - 8); /* 34 */
print("42 * 8 =", 42 * 8); /* 336 */
print("42 / 8 =", 42 / 8); /* 5.25 */
print("42 % 8 =", 42 % 8); /* 2 */
/* Mixed number and float operations */
print("42 + 3.14 =", 42 + 3.14);
/* ==========================================
String Operations
========================================== */
print("\nTesting Strings:");
let str = "Hello";
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: " + 42);
/* ==========================================
Arrays
========================================== */
print("\nTesting Arrays:");
let arr = [1, 2, 3, 4, 5];
print("Original array:", arr);
print("Length:", arr.len());
print("Sum:", arr.sum());
/* Array methods */
arr.push(6);
print("After push:", arr);
arr.pop();
print("After pop:", arr);
arr.remove(0);
print("After remove(0):", arr);
/* Array map */
let doubled = arr.map((x) -> x * 2);
print("Doubled:", doubled);
/* Array with default param map */
let squared = arr.map((x=0) -> x * x);
print("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:");
fn greet(name="World", greeting="Hello") {
print(greeting + ", " + name + "!");
a ** a;
}
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 returning value */
fn 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 num = 42;
if (num > 50) {
print("Greater than 50");
} else if (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());
/* ==========================================
Input/Output
========================================== */
print("\nTesting I/O:");
print("Regular print");
print("Print with no newline", end="");
print(" (continued)");
/* Uncomment to test input:
let user_input = input("Enter something: ");
print("You entered:", user_input);
*/
print("\nAll tests completed!");