77 lines
2.0 KiB
Plaintext
77 lines
2.0 KiB
Plaintext
|
|
// Phase 166: JsonParserBox 単体テスト - Array parsing
|
||
|
|
// Goal: Validate JsonParserBox can parse simple JSON arrays through JoinIR
|
||
|
|
|
||
|
|
using "tools/hako_shared/json_parser.hako" with JsonParserBox
|
||
|
|
|
||
|
|
static box Main {
|
||
|
|
main(args) {
|
||
|
|
print("=== JsonParserBox Array Parsing Tests ===")
|
||
|
|
|
||
|
|
// Test 1: Simple array with numbers
|
||
|
|
print("Test 1: Simple number array [1, 2, 3]")
|
||
|
|
local json1 = "[1, 2, 3]"
|
||
|
|
local result1 = JsonParserBox.parse(json1)
|
||
|
|
if result1 == null {
|
||
|
|
print(" FAIL: parse returned null")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
// Check if it's an ArrayBox by calling size()
|
||
|
|
local size1 = result1.size()
|
||
|
|
if size1 == 3 {
|
||
|
|
print(" PASS: array has 3 elements")
|
||
|
|
local elem0 = result1.get(0)
|
||
|
|
if elem0 == 1 {
|
||
|
|
print(" PASS: first element is 1")
|
||
|
|
} else {
|
||
|
|
print(" FAIL: first element should be 1")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
print(" FAIL: array should have 3 elements")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
|
||
|
|
// Test 2: Array with strings
|
||
|
|
print("Test 2: String array [\"hello\", \"world\"]")
|
||
|
|
local json2 = "[\"hello\", \"world\"]"
|
||
|
|
local result2 = JsonParserBox.parse(json2)
|
||
|
|
if result2 == null {
|
||
|
|
print(" FAIL: parse returned null")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
local size2 = result2.size()
|
||
|
|
if size2 == 2 {
|
||
|
|
print(" PASS: array has 2 elements")
|
||
|
|
local elem0 = result2.get(0)
|
||
|
|
if elem0 == "hello" {
|
||
|
|
print(" PASS: first element is 'hello'")
|
||
|
|
} else {
|
||
|
|
print(" FAIL: first element should be 'hello'")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
print(" FAIL: array should have 2 elements")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
|
||
|
|
// Test 3: Empty array
|
||
|
|
print("Test 3: Empty array []")
|
||
|
|
local json3 = "[]"
|
||
|
|
local result3 = JsonParserBox.parse(json3)
|
||
|
|
if result3 == null {
|
||
|
|
print(" FAIL: parse returned null")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
local size3 = result3.size()
|
||
|
|
if size3 == 0 {
|
||
|
|
print(" PASS: array is empty")
|
||
|
|
} else {
|
||
|
|
print(" FAIL: array should be empty")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
|
||
|
|
print("=== All Array Tests PASSED ===")
|
||
|
|
return 0
|
||
|
|
}
|
||
|
|
}
|