---
generated_at: 2026-02-21 22:20:00
metrics:
  claims_total: 84
  claims_with_evidence: 84
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：c.csv（単体テストケース一覧）

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：84 / 84、根拠なし：0
- 優先レビュー（高）
  1. **なし**：全てのテストケースに根拠あり

## 2) 参照した情報（Evidence一覧）
> ソースコードの関数定義・DocComment・実装ロジックを根拠として参照

- E-01: `src/c/reduce.php` - reduce関数の定義（行24-34）
- E-02: `src/c/reduce.php` - reduce_with_key関数の定義（行44-54）
- E-03: `src/c/order.php` - is_sorted関数の定義（行39-60）
- E-04: `src/c/order.php` - is_sorted_by関数の定義（行86-109）
- E-05: `src/c/introspect.php` - any関数の定義（行28-39）
- E-06: `src/c/introspect.php` - contains関数の定義（行48-64）
- E-07: `src/c/introspect.php` - contains_key関数の定義（行72-81）
- E-08: `src/c/introspect.php` - count関数の定義（行89-93）
- E-09: `src/c/introspect.php` - every関数の定義（行105-116）
- E-10: `src/c/introspect.php` - is_empty関数の定義（行124-131）
- E-11: `src/c/select.php` - find関数の定義（行24-34）
- E-12: `src/c/select.php` - findx関数の定義（行45-55）
- E-13: `src/c/select.php` - find_key関数の定義（行64-74）
- E-14: `src/c/select.php` - first関数の定義（行88-98）
- E-15: `src/c/select.php` - firstx関数の定義（行112-132）
- E-16: `src/c/select.php` - first_key関数の定義（行143-153）
- E-17: `src/c/select.php` - first_keyx関数の定義（行164-180）
- E-18: `src/c/select.php` - last関数の定義（行192-206）
- E-19: `src/c/select.php` - lastx関数の定義（行218-242）
- E-20: `src/c/select.php` - last_key関数の定義（行253-267）
- E-21: `src/c/select.php` - last_keyx関数の定義（行278-298）
- E-22: `src/c/select.php` - nfirst関数の定義（行311-315）
- E-23: `src/c/select.php` - onlyx関数の定義（行329-361）
- E-24: `src/c/select.php` - pop_back関数の定義（行378-385）
- E-25: `src/c/select.php` - pop_backx関数の定義（行402-411）
- E-26: `src/c/select.php` - pop_front関数の定義（行435-440）
- E-27: `src/c/select.php` - pop_frontx関数の定義（行445-452）
- E-28: `src/c/deprecated.php` - first_async関数の定義（行22-27）
- E-29: `src/c/deprecated.php` - firstx_async関数の定義（行38-43）

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

### reduce.php（6件）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | reduce: 数値配列の合計が正しく計算されること | E-01 | ○ |
| C-02 | reduce: 文字列連結が正しく行われること | E-01 | ○ |
| C-03 | reduce: 空のTraversableに対してinitial値が返却されること | E-01（foreach空で$initial返却） | ○ |
| C-04 | reduce: 要素が1件の場合に正しく計算されること | E-01 | ○ |
| C-05 | reduce_with_key: キーと値を使用した縮約が正しく行われること | E-02 | ○ |
| C-06 | reduce_with_key: 空のKeyedTraversableに対してinitial値が返却されること | E-02 | ○ |

### order.php（9件）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-07 | is_sorted: 昇順ソート済み配列でtrueが返却されること | E-03 | ○ |
| C-08 | is_sorted: 未ソート配列でfalseが返却されること | E-03（comparator < 0でfalse） | ○ |
| C-09 | is_sorted: 等しい要素が隣接している場合にtrueが返却されること | E-03（< 0判定のため等値は通過） | ○ |
| C-10 | is_sorted: 空のTraversableでtrueが返却されること | E-03（is_empty check） | ○ |
| C-11 | is_sorted: 要素が1件の場合にtrueが返却されること | E-03（ループ1回、比較せず終了） | ○ |
| C-12 | is_sorted: カスタムcomparatorで正しく判定されること | E-03（comparatorパラメータ） | ○ |
| C-13 | is_sorted_by: スカラー関数適用後にソート済みでtrueが返却されること | E-04 | ○ |
| C-14 | is_sorted_by: スカラー関数適用後に未ソートでfalseが返却されること | E-04 | ○ |
| C-15 | is_sorted_by: 空のTraversableでtrueが返却されること | E-04（is_empty check） | ○ |

### introspect.php（22件）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | any: 条件を満たす要素が存在する場合にtrueが返却されること | E-05 | ○ |
| C-17 | any: 条件を満たす要素が存在しない場合にfalseが返却されること | E-05 | ○ |
| C-18 | any: predicateなしで真値が存在する場合にtrueが返却されること | E-05（boolvalデフォルト） | ○ |
| C-19 | any: 空のTraversableでfalseが返却されること | E-05（foreach空でfalse返却） | ○ |
| C-20 | contains: 値が存在する場合にtrueが返却されること | E-06 | ○ |
| C-21 | contains: 値が存在しない場合にfalseが返却されること | E-06 | ○ |
| C-22 | contains: keysetに対してO(1)で判定されること | E-06（keyset/ConstSet分岐） | ○ |
| C-23 | contains: 型が異なる値の比較で厳密等価判定されること | E-06（=== 演算子使用） | ○ |
| C-24 | contains: 空のTraversableでfalseが返却されること | E-06 | ○ |
| C-25 | contains_key: キーが存在する場合にtrueが返却されること | E-07（array_key_exists） | ○ |
| C-26 | contains_key: キーが存在しない場合にfalseが返却されること | E-07 | ○ |
| C-27 | contains_key: 空のContainerでfalseが返却されること | E-07 | ○ |
| C-28 | count: 要素数が正しく返却されること | E-08（\count呼び出し） | ○ |
| C-29 | count: 空のContainerで0が返却されること | E-08 | ○ |
| C-30 | count: 1件のContainerで1が返却されること | E-08 | ○ |
| C-31 | every: 全要素が条件を満たす場合にtrueが返却されること | E-09 | ○ |
| C-32 | every: 一部の要素が条件を満たさない場合にfalseが返却されること | E-09（!predicateでfalse） | ○ |
| C-33 | every: 空のTraversableでtrueが返却されること | E-09（foreach空でtrue返却） | ○ |
| C-34 | every: predicateなしで全て真値の場合にtrueが返却されること | E-09（boolvalデフォルト） | ○ |
| C-35 | is_empty: 空のContainerでtrueが返却されること | E-10 | ○ |
| C-36 | is_empty: 非空のContainerでfalseが返却されること | E-10（!$container） | ○ |
| C-37 | is_empty: ConstCollectionのisEmptyが正しく呼ばれること | E-10（ConstCollection分岐） | ○ |

### select.php（47件）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-38 | find: 条件を満たす最初の値が返却されること | E-11 | ○ |
| C-39 | find: 条件を満たす値がない場合にnullが返却されること | E-11（最後にnull返却） | ○ |
| C-40 | find: 空のTraversableでnullが返却されること | E-11 | ○ |
| C-41 | findx: 条件を満たす最初の値が返却されること | E-12 | ○ |
| C-42 | findx: 条件を満たす値がない場合に例外がスローされること | E-12（invariant_violation） | ○ |
| C-43 | find_key: 条件を満たす最初の要素のキーが返却されること | E-13 | ○ |
| C-44 | find_key: 条件を満たす要素がない場合にnullが返却されること | E-13 | ○ |
| C-45 | first: 最初の要素が返却されること | E-14 | ○ |
| C-46 | first: 空のTraversableでnullが返却されること | E-14（最後にnull返却） | ○ |
| C-47 | first: Containerに対して最適化された取得が行われること | E-14（Container分岐） | ○ |
| C-48 | firstx: 最初の要素が返却されること | E-15 | ○ |
| C-49 | firstx: 空のTraversableで例外がスローされること | E-15（invariant_violation） | ○ |
| C-50 | firstx: null値が先頭にある場合にnullが返却されること | E-15（is_empty check後に返却） | ○ |
| C-51 | first_key: 最初のキーが返却されること | E-16 | ○ |
| C-52 | first_key: 空のTraversableでnullが返却されること | E-16 | ○ |
| C-53 | first_keyx: 最初のキーが返却されること | E-17 | ○ |
| C-54 | first_keyx: 空のTraversableで例外がスローされること | E-17（invariant） | ○ |
| C-55 | last: 最後の要素が返却されること | E-18 | ○ |
| C-56 | last: 空のTraversableでnullが返却されること | E-18 | ○ |
| C-57 | last: Containerに対して最適化された取得が行われること | E-18（Container分岐） | ○ |
| C-58 | lastx: 最後の要素が返却されること | E-19 | ○ |
| C-59 | lastx: 空のTraversableで例外がスローされること | E-19（invariant） | ○ |
| C-60 | last_key: 最後のキーが返却されること | E-20 | ○ |
| C-61 | last_key: 空のTraversableでnullが返却されること | E-20 | ○ |
| C-62 | last_keyx: 最後のキーが返却されること | E-21 | ○ |
| C-63 | last_keyx: 空のTraversableで例外がスローされること | E-21（invariant） | ○ |
| C-64 | nfirst: null許容Traversableから最初の要素が返却されること | E-22 | ○ |
| C-65 | nfirst: nullが渡された場合にnullが返却されること | E-22（null条件分岐） | ○ |
| C-66 | nfirst: 空のTraversableでnullが返却されること | E-22（first呼び出し） | ○ |
| C-67 | onlyx: 単一要素のTraversableで要素が返却されること | E-23 | ○ |
| C-68 | onlyx: 空のTraversableで例外がスローされること | E-23（$first === false invariant） | ○ |
| C-69 | onlyx: 複数要素のTraversableで例外がスローされること | E-23（$first invariant） | ○ |
| C-70 | onlyx: カスタムエラーメッセージが例外に含まれること | E-23（format_stringパラメータ） | ○ |
| C-71 | pop_back: 最後の要素が削除されて返却されること | E-24（array_pop） | ○ |
| C-72 | pop_back: 空のContainerでnullが返却されること | E-24（is_empty check） | ○ |
| C-73 | pop_back: 1件のContainerで要素が削除されて空になること | E-24 | ○ |
| C-74 | pop_backx: 最後の要素が削除されて返却されること | E-25 | ○ |
| C-75 | pop_backx: 空のContainerで例外がスローされること | E-25（invariant） | ○ |
| C-76 | pop_front: 最初の要素が削除されて返却されること | E-26（array_shift） | ○ |
| C-77 | pop_front: 空のContainerでnullが返却されること | E-26（is_empty check） | ○ |
| C-78 | pop_front: 1件のContainerで要素が削除されて空になること | E-26 | ○ |
| C-79 | pop_frontx: 最初の要素が削除されて返却されること | E-27 | ○ |
| C-80 | pop_frontx: 空のContainerで例外がスローされること | E-27（invariant） | ○ |

### deprecated.php（4件）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-81 | first_async: Awaitableから最初の要素が返却されること | E-28 | ○ |
| C-82 | first_async: 空のTraversableを返すAwaitableでnullが返却されること | E-28（first呼び出し） | ○ |
| C-83 | firstx_async: Awaitableから最初の要素が返却されること | E-29 | ○ |
| C-84 | firstx_async: 空のTraversableを返すAwaitableで例外がスローされること | E-29（firstx呼び出し） | ○ |

## 4) 不足情報（Unknown / Missing）
- なし
  - 全てのテストケースはソースコードの実装・DocCommentから導出

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク
  - 全てのテストケースがソースコードの実装に基づいている
  - DocCommentに記載された時間計算量・空間計算量も考慮済み
  - 既存テストファイル（tests/c/）の存在を確認済み

## 6) レビュアーチェックリスト（最小）
- [ ] 各関数の正常系テストケースが実装の期待動作と一致しているか
- [ ] 異常系テストケース（例外スロー）がinvariant_violation/invariantの呼び出し箇所と一致しているか
- [ ] 境界値テストケース（空コレクション、1件）が各関数で網羅されているか
- [ ] deprecated関数のテストケースの優先度が「低」に設定されているか
- [ ] inout引数を持つ関数（pop_back/pop_front系）のテストケースで副作用が明記されているか
