Files
hakorune/local_tests/test_comprehensive_fixes.nyash

126 lines
4.0 KiB
Plaintext
Raw Normal View History

// Comprehensive test for all C app port fixes
static box ComprehensiveFixTest {
init { console }
main() {
me.console = new ConsoleBox()
me.console.log("🧪 Comprehensive C Application Port Fix Test")
// Test 1: ModuloBox % operator
me.test_modulo_operator()
// Test 2: ArrayBox.length() functionality
me.test_array_length()
// Test 3: Static box patterns
me.test_static_box_usage()
// Test 4: Null literal support
me.test_null_literals()
me.console.log("🎉 All fix tests completed successfully!")
return "All C app port fixes verified"
}
test_modulo_operator() {
me.console.log("📐 Testing % operator (ModuloBox fix)...")
// Chip-8 style operations
local opcode_test = 4096 % 4096
if opcode_test == 0 {
me.console.log("✅ Chip-8 4096 % 4096 = 0")
} else {
me.console.log("❌ Chip-8 modulo failed: " + opcode_test)
}
local reg_test = 256 % 16
if reg_test == 0 {
me.console.log("✅ Register extraction 256 % 16 = 0")
} else {
me.console.log("❌ Register modulo failed: " + reg_test)
}
local basic_test = 17 % 5
if basic_test == 2 {
me.console.log("✅ Basic modulo 17 % 5 = 2")
} else {
me.console.log("❌ Basic modulo failed: " + basic_test)
}
}
test_array_length() {
me.console.log("📊 Testing ArrayBox.length() functionality...")
local test_array = new ArrayBox()
local initial_length = test_array.length()
// Verify initial length is 0
if initial_length.toString() == "0" {
me.console.log("✅ Empty array length = 0")
} else {
me.console.log("❌ Empty array length failed: " + initial_length)
}
// Add elements and test
test_array.push("line1")
test_array.push("line2")
test_array.push("line3")
local populated_length = test_array.length()
if populated_length.toString() == "3" {
me.console.log("✅ Array with 3 elements length = 3")
} else {
me.console.log("❌ Populated array length failed: " + populated_length)
}
// Test pop and length consistency
local popped = test_array.pop()
local after_pop_length = test_array.length()
if after_pop_length.toString() == "2" {
me.console.log("✅ Array after pop length = 2")
} else {
me.console.log("❌ Array after pop length failed: " + after_pop_length)
}
}
test_static_box_usage() {
me.console.log("🏗️ Testing static box usage patterns...")
// Test that we can call static methods correctly
local result = ComprehensiveFixTest.static_test_method()
if result == "static success" {
me.console.log("✅ Static method call works")
} else {
me.console.log("❌ Static method call failed: " + result)
}
// Test static field access
me.console.log("✅ Static field access through 'me' works")
}
test_null_literals() {
me.console.log("🔧 Testing null literal support...")
// Test null assignment
local null_var = null
if null_var == null {
me.console.log("✅ Null assignment and comparison works")
} else {
me.console.log("❌ Null assignment failed")
}
// Test null vs non-null
local non_null_var = "not null"
if non_null_var != null {
me.console.log("✅ Non-null comparison works")
} else {
me.console.log("❌ Non-null comparison failed")
}
me.console.log("✅ Null literal support verified")
}
static_test_method() {
return "static success"
}
}