Bob/complexity_test.bob

49 lines
1.8 KiB
Plaintext

print("=== COMPLEXITY TEST ===");
// Test 1: Multiple statements in one eval
print("Test 1: Multiple statements");
var code1 = "var a = 1; var b = 2; print(\"a = \" + toString(a) + \", b = \" + toString(b));";
var result1 = eval(code1);
print("Test 1 passed");
// Test 2: Loop in eval
print("Test 2: Loop in eval");
var code2 = "for (var i = 0; i < 3; i = i + 1) { print(\"i = \" + toString(i)); }";
var result2 = eval(code2);
print("Test 2 passed");
// Test 3: Array operations in eval
print("Test 3: Array operations");
var code3 = "var arr = []; push(arr, 1); push(arr, 2); print(\"Array length: \" + toString(len(arr)));";
var result3 = eval(code3);
print("Test 3 passed");
// Test 4: String indexing in eval
print("Test 4: String indexing");
var code4 = "var str = \"Hello\"; print(\"First char: \" + str[0]);";
var result4 = eval(code4);
print("Test 4 passed");
// Test 5: Function definition and call in eval
print("Test 5: Function in eval");
var code5 = "func add(x, y) { return x + y; } var sum = add(5, 3); print(\"Sum: \" + toString(sum));";
var result5 = eval(code5);
print("Test 5 passed");
// Test 6: Write complex code to file and eval
print("Test 6: Complex file I/O");
var complexCode = "print(\"=== COMPLEX CODE ===\");\n";
complexCode = complexCode + "var testArray = [];\n";
complexCode = complexCode + "for (var i = 0; i < 5; i = i + 1) {\n";
complexCode = complexCode + " push(testArray, i * i);\n";
complexCode = complexCode + "}\n";
complexCode = complexCode + "print(\"Array: \" + toString(len(testArray)) + \" elements\");\n";
writeFile("complex_test.bob", complexCode);
var loadedComplex = readFile("complex_test.bob");
print("Generated code:");
print(loadedComplex);
var result6 = eval(loadedComplex);
print("Test 6 passed");
print("All complexity tests passed!");