Files
hakorune/test_array_box.nyash
Moe Charm cbee14809d feat: ArrayBox完全実装 - Nyash初の動的配列コレクション!
## 🎯 実装内容
- 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>
2025-08-10 12:24:59 +09:00

74 lines
2.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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テスト完了 ===")