---
generated_at: 2026-02-21 20:48:00
metrics:
  claims_total: 106
  claims_with_evidence: 106
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：vec.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各テストケースに対して、ソースコード内の関数定義・コメント・invariant文などの根拠（Evidence）が存在するか
2. **根拠との整合性**：テストケースの内容が根拠と矛盾していないか
3. **網羅性**：各関数の正常系・異常系・境界値を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で各テストケースの根拠を確認
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：106 / 106、根拠なし：0
- 優先レビュー（高）
  1. **非同期関数のエラーハンドリング**：Awaitable内で例外が発生した場合の挙動テストが未定義
  2. **shuffle/sampleの乱数検証**：乱数の分布・偏りの検証は実装依存のため詳細テスト困難
  3. **パフォーマンス境界**：大量データでのメモリ・時間計算量の検証は未定義

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `src/vec/cast.php` - cast_clear_legacy_array_mark関数定義（行18-24）
- E-02: `src/vec/order.php` - range関数定義およびinvariant文（行26-37）
- E-03: `src/vec/order.php` - reverse関数定義（行46-56）
- E-04: `src/vec/order.php` - shuffle関数定義（行67-73）
- E-05: `src/vec/order.php` - sort関数定義（行91-102）
- E-06: `src/vec/order.php` - sort_by関数定義（行122-135）
- E-07: `src/vec/divide.php` - partition関数定義（行20-34）
- E-08: `src/vec/transform.php` - chunk関数定義およびinvariant文（行24-42）
- E-09: `src/vec/transform.php` - fill関数定義およびinvariant文（行53-63）
- E-10: `src/vec/transform.php` - flatten関数定義（行77-87）
- E-11: `src/vec/transform.php` - map関数定義（行98-107）
- E-12: `src/vec/transform.php` - map_with_key関数定義（行116-125）
- E-13: `src/vec/async.php` - from_async関数定義（行22-35）
- E-14: `src/vec/async.php` - filter_async関数定義（行50-64）
- E-15: `src/vec/async.php` - map_async関数定義（行79-98）
- E-16: `src/vec/async.php` - map_with_key_async関数定義（行113-132）
- E-17: `src/vec/async.php` - partition_async関数定義（行147-164）
- E-18: `src/vec/select.php` - diff関数定義（行27-42）
- E-19: `src/vec/select.php` - diff_by関数定義（行56-72）
- E-20: `src/vec/select.php` - drop関数定義およびinvariant文（行83-95）
- E-21: `src/vec/select.php` - filter関数定義（行108-120）
- E-22: `src/vec/select.php` - filter_nulls関数定義（行129-137）
- E-23: `src/vec/select.php` - filter_with_key関数定義（行148-159）
- E-24: `src/vec/select.php` - intersect関数定義（行169-182）
- E-25: `src/vec/select.php` - keys関数定義（行190-196）
- E-26: `src/vec/select.php` - sample関数定義およびinvariant文（行207-216）
- E-27: `src/vec/select.php` - slice関数定義およびinvariant文（行231-240）
- E-28: `src/vec/select.php` - take関数定義およびinvariant文（行251-266）
- E-29: `src/vec/select.php` - unique関数定義（行278-280）
- E-30: `src/vec/select.php` - unique_by関数定義（行293-298）
- E-31: `src/vec/combine.php` - concat関数定義（行25-36）
- E-32: `src/vec/combine.php` - zip関数定義（行52-64）

## 3) Claims と根拠の対応（レビューの主戦場）

### cast.php
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | vec型入力がそのまま変換される | E-01: 行21-22でvec型の分岐処理 | ○ |
| C-02 | Traversable型がvecに変換される | E-01: 行23でvec()変換 | ○ |
| C-03 | 空Traversableが空vecに変換される | E-01: 同上の処理から導出 | ○ |

### order.php
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-04 | 昇順範囲生成 | E-02: 行36でrange()呼び出し | ○ |
| C-05 | 降順範囲生成 | E-02: 行19のコメント「If start > end, returns descending」 | ○ |
| C-06 | ステップ指定範囲生成 | E-02: 行29-36でstep処理 | ○ |
| C-07 | step > abs(end-start)で開始値のみ | E-02: 行33-35の条件分岐 | ○ |
| C-08 | step<=0でinvariant違反 | E-02: 行32「invariant($step > 0, ...)」 | ○ |
| C-09 | float範囲生成 | E-02: 行26「Tv as num」で数値型許容 | ○ |
| C-10 | reverse基本動作 | E-03: 行50-54のスワップ処理 | ○ |
| C-11 | reverse空配列 | E-03: ループ条件から導出 | ○ |
| C-12 | reverse 1要素 | E-03: ループ条件から導出 | ○ |
| C-13 | shuffleランダム並替 | E-04: 行71でshuffle()呼び出し | ○ |
| C-14 | shuffle空配列 | E-04: 同上から導出 | ○ |
| C-15 | sort昇順 | E-05: 行99でsort()呼び出し | ○ |
| C-16 | sortカスタムコンパレータ | E-05: 行97でusort()呼び出し | ○ |
| C-17-19 | sort境界値 | E-05: 実装から導出 | ○ |
| C-20-22 | sort_by各種 | E-06: 行128-134の実装 | ○ |

### divide.php
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-23-26 | partition各種 | E-07: 行24-33のif分岐処理 | ○ |

### transform.php
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-27 | chunk基本動作 | E-08: 行32-40のループ処理 | ○ |
| C-28-29 | chunk境界値 | E-08: 実装から導出 | ○ |
| C-30 | chunk size<=0でinvariant違反 | E-08: 行28「invariant($size > 0, ...)」 | ○ |
| C-31 | fill基本動作 | E-09: 行59-61のループ処理 | ○ |
| C-32 | fill size=0 | E-09: ループ条件から導出 | ○ |
| C-33 | fill size<0でinvariant違反 | E-09: 行57「invariant($size >= 0, ...)」 | ○ |
| C-34-36 | flatten各種 | E-10: 行81-85のネストループ | ○ |
| C-37-39 | map各種 | E-11: 行103-105のループ処理 | ○ |
| C-40-41 | map_with_key各種 | E-12: 行121-123のキー付きループ | ○ |

### async.php
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42-43 | from_async各種 | E-13: 行28のAwaitAllWaitHandle | ○ |
| C-44-45 | filter_async各種 | E-14: 行54-62の処理 | ○ |
| C-46-47 | map_async各種 | E-15: 行84-94の処理 | ○ |
| C-48-49 | map_with_key_async各種 | E-16: 行118-128の処理 | ○ |
| C-50-51 | partition_async各種 | E-17: 行151-162の処理 | ○ |

### select.php
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-52-55 | diff各種 | E-18: 行33-41の条件分岐 | ○ |
| C-56-57 | diff_by各種 | E-19: 行62-71の処理 | ○ |
| C-58-60 | drop各種 | E-20: 行86-93のループ処理 | ○ |
| C-61 | drop n<0でinvariant違反 | E-20: 行84「invariant($n >= 0, ...)」 | ○ |
| C-62-66 | filter各種 | E-21: 行113-118のループ処理 | ○ |
| C-67-70 | filter_nulls各種 | E-22: 行131-135の条件処理 | ○ |
| C-71-72 | filter_with_key各種 | E-23: 行153-157のキー付き処理 | ○ |
| C-73-76 | intersect各種 | E-24: 行174-181の処理 | ○ |
| C-77-79 | keys各種 | E-25: 行192-194のキー抽出 | ○ |
| C-80-82 | sample各種 | E-26: 行213-215のshuffle+take | ○ |
| C-83 | sample size<0でinvariant違反 | E-26: 行208-212「invariant($sample_size >= 0, ...)」 | ○ |
| C-84-87 | slice各種 | E-27: 行237-239の処理 | ○ |
| C-88 | slice length<0でinvariant違反 | E-27: 行236「invariant($length === null \|\| $length >= 0, ...)」 | ○ |
| C-89-91 | take各種 | E-28: 行256-264のループ処理 | ○ |
| C-92 | take n<0でinvariant違反 | E-28: 行255「invariant($n > 0, ...)」 | ○ |
| C-93-95 | unique各種 | E-29: keyset変換による重複除去 | ○ |
| C-96-98 | unique_by各種 | E-30: Dict\from_valuesによる処理 | ○ |

### combine.php
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-99-102 | concat各種 | E-31: 行29-34のループ処理 | ○ |
| C-103-106 | zip各種 | E-32: 行56-62のペア生成処理 | ○ |

## 4) 不足情報（Unknown / Missing）
- 全てのテストケースについてソースコードから根拠を確認済み
- 以下の追加テスト観点は実装上困難または範囲外として除外：
  - 非同期関数内での例外伝播の詳細テスト
  - shuffle/sampleの乱数分布の統計的検証
  - 大量データでのパフォーマンス検証

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: 基本的な正常系・境界値テストケース
- **1（中リスク）**: shuffle/sample関数 - 乱数の性質上、決定的なテストが困難
- **1（中リスク）**: 非同期関数 - 並列実行の順序依存性の検証が困難

## 6) レビュアーチェックリスト（最小）
- [ ] 各関数のinvariant条件に対応する異常系テストが存在するか確認
- [ ] 空配列・1要素配列などの境界値テストが網羅されているか確認
- [ ] 非同期関数のテストケースでAwaitableの並列実行が考慮されているか確認
- [ ] テストIDの命名規則（UT-VEC-xxx）が連番で正しいか確認
- [ ] 優先度の設定が適切か（invariant違反は高、境界値は中など）
