## 🎯 実装内容 - ArrayBoxにNyashBoxトレイト完全実装 - Arc<Mutex>による内部可変性実現(MapBoxと同じパターン) - 全メソッド実装: push/pop/get/set/length/indexOf/contains/join/clear/remove - 包括的なテストスイート作成 ## 🔧 技術的改善 - GitHub Copilot作成の基本構造をNyash対応に拡張 - execute_array_methodを&self参照に修正 - collection_methods.rsとの統合完了 ## ✅ テスト結果 - 全機能正常動作確認 - 異なる型の要素混在可能(Everything is Box哲学) - インデックス範囲外アクセスでNullBox返却 ## 📝 残課題 - BufferBox, ResultBox, FileBox等は基本構造のみ(未実装) - RegexBoxはNyashBoxトレイト実装済みだがregex依存関係未追加 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
74 lines
2.1 KiB
Plaintext
74 lines
2.1 KiB
Plaintext
// ArrayBox実装テスト
|
||
print("=== ArrayBox実装テスト ===")
|
||
|
||
// 1. ArrayBoxの作成
|
||
print("\n1. ArrayBoxの作成:")
|
||
local arr
|
||
arr = new ArrayBox()
|
||
print("ArrayBox created: " + arr.toString())
|
||
// print("Type: " + arr.type_name()) // type_nameはArrayBoxのメソッドではない
|
||
print("Initial length: " + arr.length())
|
||
|
||
// 2. 要素の追加(push)
|
||
print("\n2. 要素の追加:")
|
||
arr.push("Apple")
|
||
arr.push("Banana")
|
||
arr.push("Cherry")
|
||
arr.push(42)
|
||
arr.push(true)
|
||
print("After push: " + arr.toString())
|
||
print("Length: " + arr.length())
|
||
|
||
// 3. 要素の取得(get)
|
||
print("\n3. 要素の取得:")
|
||
print("arr.get(0) = " + arr.get(0))
|
||
print("arr.get(1) = " + arr.get(1))
|
||
print("arr.get(3) = " + arr.get(3))
|
||
print("arr.get(10) = " + arr.get(10)) // 範囲外
|
||
|
||
// 4. 要素の削除(pop)
|
||
print("\n4. 要素の削除:")
|
||
local popped
|
||
popped = arr.pop()
|
||
print("Popped: " + popped)
|
||
print("After pop: " + arr.toString())
|
||
print("Length: " + arr.length())
|
||
|
||
// 5. インデックス検索(indexOf)
|
||
print("\n5. インデックス検索:")
|
||
print("indexOf('Apple') = " + arr.indexOf("Apple"))
|
||
print("indexOf('Banana') = " + arr.indexOf("Banana"))
|
||
print("indexOf('NotExist') = " + arr.indexOf("NotExist"))
|
||
|
||
// 6. 要素の確認(contains)
|
||
print("\n6. 要素の確認:")
|
||
print("contains('Apple') = " + arr.contains("Apple"))
|
||
print("contains(42) = " + arr.contains(42))
|
||
print("contains('NotExist') = " + arr.contains("NotExist"))
|
||
|
||
// 7. 文字列結合(join)
|
||
print("\n7. 文字列結合:")
|
||
print("join(', ') = " + arr.join(", "))
|
||
print("join(' - ') = " + arr.join(" - "))
|
||
|
||
// 8. 要素の設定(set)
|
||
print("\n8. 要素の設定:")
|
||
arr.set(1, "Orange")
|
||
print("After set(1, 'Orange'): " + arr.toString())
|
||
|
||
// 9. 要素の削除(remove)
|
||
print("\n9. 要素の削除:")
|
||
local removed
|
||
removed = arr.remove(2)
|
||
print("Removed: " + removed)
|
||
print("After remove(2): " + arr.toString())
|
||
print("Length: " + arr.length())
|
||
|
||
// 10. 配列のクリア(clear)
|
||
print("\n10. 配列のクリア:")
|
||
arr.clear()
|
||
print("After clear: " + arr.toString())
|
||
print("Length: " + arr.length())
|
||
print("isEmpty: " + arr.isEmpty())
|
||
|
||
print("\n=== ArrayBoxテスト完了! ===") |