Files
hakorune/local_tests/test_pack_transparency.hako

57 lines
1.4 KiB
Plaintext
Raw Normal View History

# 🔥 Phase 8.8: pack透明化システム テスト
# ユーザーは`pack`を一切意識せず、`from BuiltinBox()`で自動動作
print("=== pack透明化システム テスト開始 ===")
# テストA: ユーザー定義Box基本動作 (birth優先)
box Life {
init { name, energy }
birth(lifeName) {
me.name = lifeName
me.energy = 100
}
introduce() {
return "私の名前は " + me.name + " です。"
}
}
local alice = new Life("Alice")
print("A. " + alice.introduce())
# テストB: ビルトインBox継承明示的pack使用
box EnhancedString from StringBox {
init { prefix }
pack(content) {
from StringBox.pack(content) # 明示的pack
me.prefix = ">>> "
}
override toString() {
return me.prefix + from StringBox.toString()
}
}
local enhanced = new EnhancedString("Hello")
print("B. " + enhanced.toString())
# テストC: 透明化システム動作 - 最重要テスト
box SimpleString from StringBox {
init { prefix }
birth(content, prefixStr) {
from StringBox(content) # ← 透明化内部的にpack呼び出し
me.prefix = prefixStr
}
override toString() {
return me.prefix + from StringBox.toString()
}
}
local simple = new SimpleString("World", "<<< ")
print("C. " + simple.toString())
print("=== pack透明化システム テスト完了 ===")