---
generated_at: 2026-02-19 00:30:00
metrics:
  claims_total: 93
  claims_with_evidence: 93
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：core-verbs単体テストケース一覧

## 本レポートについて

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

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

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

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

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

---

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

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

- E-01: `R/filter.R` - filter(), filter_out(), filter_impl(), filter_rows(), check_filter(), check_not_both_by_and_preserve()関数の定義
- E-02: `R/select.R` - select(), select.list(), select.data.frame(), ensure_group_vars()関数の定義
- E-03: `R/mutate.R` - mutate(), mutate.data.frame(), mutate_cols(), mutate_col(), mutate_relocate(), mutate_keep()関数の定義
- E-04: `R/arrange.R` - arrange(), arrange.data.frame(), arrange_rows(), locale_to_chr_proxy_collate()関数の定義
- E-05: `R/summarise.R` - summarise(), summarize(), summarise.data.frame(), summarise.grouped_df(), summarise.rowwise_df(), summarise_cols()関数の定義
- E-06: `R/slice.R` - slice(), slice_head(), slice_tail(), slice_min(), slice_max(), slice_sample(), slice_rows(), get_slice_size(), check_slice_n_prop()関数の定義
- E-07: `R/distinct.R` - distinct(), distinct_prepare(), distinct.data.frame()関数の定義
- E-08: `R/pull.R` - pull(), pull.data.frame(), find_var()関数の定義
- E-09: `R/reframe.R` - reframe(), reframe.data.frame()関数の定義
- E-10: `R/relocate.R` - relocate(), relocate.data.frame(), eval_relocate()関数の定義
- E-11: `R/rename.R` - rename(), rename.data.frame(), rename_with(), rename_with.data.frame()関数の定義
- E-12: `R/transmute.R` - transmute(), transmute.data.frame(), check_transmute_args()関数の定義

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

### filter.R関連（C-01 - C-10）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | filter()で単一条件フィルタリングができること | E-01（216-219行: filter関数定義、UseMethod） | ○ |
| C-02 | filter()で複数条件(AND)フィルタリングができること | E-01（8-9行: カンマ区切りは&演算子で結合） | ○ |
| C-03 | filter()で.by引数によるグループ別フィルタリングができること | E-01（265-271行: compute_by呼び出し） | ○ |
| C-04 | filter()でNAがFALSEとして扱われること | E-01（42-47行: NAの扱いについてのドキュメント） | ○ |
| C-05 | 名前付き引数エラーの検出 | E-01（313-332行: check_filter関数、名前付き引数のチェック） | ○ |
| C-06 | 空のdata.frameでのフィルタリング | E-01（282行: dplyr_row_slice呼び出し、ベクトル操作） | ○ |
| C-07 | 全行がFALSEの条件での処理 | E-01（273-282行: filter_rows、loc計算） | ○ |
| C-08 | filter_out()で条件に一致する行が除外されること | E-01（224-228行: filter_out関数定義） | ○ |
| C-09 | filter_out()でのNA保持 | E-01（47行: filter_outはNAとFALSEを保持） | ○ |
| C-10 | .byと.preserveの排他制御 | E-01（452-461行: check_not_both_by_and_preserve関数） | ○ |

### select.R関連（C-11 - C-17）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | select()で列名選択ができること | E-02（53-55行: select関数定義、UseMethod） | ○ |
| C-12 | select()で範囲選択(a:f)ができること | E-02（7行: a:fの範囲選択構文のドキュメント） | ○ |
| C-13 | select()でwhere()による型選択ができること | E-02（8行: where(is.numeric)のドキュメント） | ○ |
| C-14 | select()でnew_name = old_nameによる列名変更ができること | E-02（73行: set_names(out, names(loc))でリネーム適用） | ○ |
| C-15 | select()がリストに対してエラーを返すこと | E-02（57-59行: select.list関数、abort呼び出し） | ○ |
| C-16 | グループ変数の自動追加 | E-02（80-102行: ensure_group_vars関数） | ○ |
| C-17 | 存在しない列名でのエラー | E-02（65-69行: tidyselect::eval_select呼び出し） | ○ |

### mutate.R関連（C-18 - C-27）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-18 | mutate()で新しい列を追加できること | E-03（145-147行: mutate関数定義） | ○ |
| C-19 | mutate()で既存列を上書きできること | E-03（186行: dplyr_col_modify呼び出し） | ○ |
| C-20 | mutate()でNULL指定による列削除 | E-03（57行: NULLで削除のドキュメント、293-294行: zap処理） | ○ |
| C-21 | .keep引数による保持列制御 | E-03（153-165行: .keep引数ドキュメント、234-251行: mutate_keep関数） | ○ |
| C-22 | .before引数による列位置指定 | E-03（166-169行: .before引数ドキュメント、213-232行: mutate_relocate関数） | ○ |
| C-23 | .after引数による列位置指定 | E-03（166-169行: .after引数ドキュメント、213-232行: mutate_relocate関数） | ○ |
| C-24 | 長さ1ベクトルのリサイクル | E-03（54-55行: 長さ1ベクトルのリサイクルドキュメント） | ○ |
| C-25 | サイズ不一致エラー | E-03（475-484行: mutate_incompatible_size bulletメッセージ） | ○ |
| C-26 | ベクトル以外の値でのエラー | E-03（495-502行: mutate_not_vector bulletメッセージ） | ○ |
| C-27 | across()との連携 | E-03（98-103行: across使用例のドキュメント） | ○ |

### arrange.R関連（C-28 - C-35）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-28 | arrange()で昇順ソートができること | E-04（82-84行: arrange関数定義） | ○ |
| C-29 | desc()で降順ソートができること | E-04（38行: desc()のドキュメント、110-129行: desc処理） | ○ |
| C-30 | 複数列でのソート | E-04（62行: 複数列ソートの例） | ○ |
| C-31 | .by_group=TRUEでグループ優先ソート | E-04（40-41行: .by_groupドキュメント、91-93行: 実装） | ○ |
| C-32 | .localeによるロケール指定 | E-04（43-59行: .locale引数ドキュメント、189-225行: locale_to_chr_proxy_collate関数） | ○ |
| C-33 | NAの末尾ソート | E-04（14-16行: NAは末尾ソートのドキュメント、174行: na_values設定） | ○ |
| C-34 | desc()の複数引数エラー | E-04（119-124行: desc引数数チェック、abort呼び出し） | ○ |
| C-35 | 空のdata.frameソート | E-04（236-239行: dplyr_order_legacy、0列チェック） | ○ |

### summarise.R関連（C-36 - C-42）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | summarise()で集計ができること | E-05（106-114行: summarise関数定義） | ○ |
| C-37 | グループ別集計 | E-05（140-175行: summarise.grouped_df関数） | ○ |
| C-38 | .by引数でアドホックグループ化 | E-05（121行: compute_by呼び出し） | ○ |
| C-39 | .groups引数による出力制御 | E-05（44-57行: .groups引数ドキュメント、148-172行: 実装） | ○ |
| C-40 | サイズ1以外結果でのエラー | E-05（401-421行: summarise_incompatible_size bulletメッセージ） | ○ |
| C-41 | .byと.groupsの排他制御 | E-05（109-111行: 両方指定時のabort） | ○ |
| C-42 | summarizeがsummariseのシノニム | E-05（117行: summarize <- summarise代入） | ○ |

### slice.R関連（C-43 - C-59）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | slice()で正の整数インデックス選択 | E-06（131-141行: slice関数定義） | ○ |
| C-44 | slice()で負の整数インデックス除外 | E-06（35行: 負の値で除外のドキュメント） | ○ |
| C-45 | n()での最後の行選択 | E-06（77行: slice(n())の例） | ○ |
| C-46 | 範囲外インデックスの無視 | E-06（37行: 範囲外は無視のドキュメント、494-498行: num_as_location、oob="remove"） | ○ |
| C-47 | 重複インデックスでの行複製 | E-06（55行: 行が複数回出現可能のドキュメント） | ○ |
| C-48 | slice_head()で先頭n行取得 | E-06（162-182行: slice_head関数定義） | ○ |
| C-49 | slice_head()でprop指定 | E-06（41-46行: prop引数ドキュメント） | ○ |
| C-50 | slice_head()でnがグループサイズより大きい場合 | E-06（43-44行: グループサイズに切り捨てのドキュメント） | ○ |
| C-51 | slice_tail()で末尾n行取得 | E-06（186-206行: slice_tail関数定義） | ○ |
| C-52 | slice_min()で最小値行取得 | E-06（220-274行: slice_min関数定義） | ○ |
| C-53 | slice_min()でwith_ties=FALSE | E-06（214-215行: with_tiesドキュメント） | ○ |
| C-54 | slice_min()でna_rm=TRUE | E-06（216-218行: na_rmドキュメント、660-662行: 実装） | ○ |
| C-55 | slice_max()で最大値行取得 | E-06（278-332行: slice_max関数定義） | ○ |
| C-56 | slice_sample()でランダム抽出 | E-06（343-389行: slice_sample関数定義） | ○ |
| C-57 | slice_sample()でreplace=TRUE | E-06（336-337行: replaceドキュメント） | ○ |
| C-58 | slice_sample()でweight_by | E-06（338-342行: weight_byドキュメント） | ○ |
| C-59 | nとpropの排他制御 | E-06（557-581行: check_slice_n_prop関数） | ○ |

### distinct.R関連（C-60 - C-65）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-60 | distinct()で重複行除去 | E-07（68-70行: distinct関数定義） | ○ |
| C-61 | 指定列での重複判定 | E-07（7-10行: ...引数ドキュメント） | ○ |
| C-62 | .keep_all=TRUEで全列保持 | E-07（11-13行: .keep_allドキュメント、119-123行: 実装） | ○ |
| C-63 | 計算列での重複判定 | E-07（48行: 計算変数の例） | ○ |
| C-64 | 空のdata.frameでのdistinct | E-07（140-144行: dplyr_row_slice呼び出し） | ○ |
| C-65 | 全行ユニークケース | E-07（141行: vec_unique_loc呼び出し） | ○ |

### pull.R関連（C-66 - C-70）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 | pull()で列名指定抽出 | E-08（36-39行: pull関数定義） | ○ |
| C-67 | 負のインデックスで末尾から抽出 | E-08（22行: pull(-1)の例） | ○ |
| C-68 | 正のインデックスで抽出 | E-08（23行: pull(1)の例） | ○ |
| C-69 | name引数で名前付きベクトル | E-08（9-10行: nameドキュメント、43-48行: 実装） | ○ |
| C-70 | 存在しない列でエラー | E-08（42行: tidyselect::vars_pull呼び出し） | ○ |

### reframe.R関連（C-71 - C-74）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-71 | reframe()で任意行数返却 | E-09（108-110行: reframe関数定義） | ○ |
| C-72 | グループ別の可変行数 | E-09（14-15行: グループ別可変行数ドキュメント） | ○ |
| C-73 | 出力が常にアングループ化 | E-09（17行: 常にアングループ化のドキュメント） | ○ |
| C-74 | data.frameで複数列追加 | E-09（32-33行: data frame valueドキュメント） | ○ |

### relocate.R関連（C-75 - C-80）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-75 | relocate()で列を先頭に移動 | E-10（49-51行: relocate関数定義） | ○ |
| C-76 | .after引数で指定位置の後に移動 | E-10（8-10行: .afterドキュメント、132-149行: 実装） | ○ |
| C-77 | .before引数で指定位置の前に移動 | E-10（8-10行: .beforeドキュメント、116-131行: 実装） | ○ |
| C-78 | 移動と同時にリネーム | E-10（36行: リネームの例） | ○ |
| C-79 | where()での型選択 | E-10（39行: where(is.character)の例） | ○ |
| C-80 | .beforeと.afterの排他制御 | E-10（111-114行: 両方指定時のabort） | ○ |

### rename.R関連（C-81 - C-88）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-81 | rename()で列名変更 | E-11（63-65行: rename関数定義） | ○ |
| C-82 | all_of()で名前付きベクトル使用 | E-11（35-36行: all_of使用例） | ○ |
| C-83 | any_of()で存在しない列名無視 | E-11（39-42行: any_of使用例） | ○ |
| C-84 | all_of()で存在しない列名エラー | E-11（41行: all_ofでエラーの例） | ○ |
| C-85 | rename_with()で関数による列名変換 | E-11（83-85行: rename_with関数定義） | ○ |
| C-86 | rename_with()の.cols引数 | E-11（81-82行: .colsドキュメント、90行: 実装） | ○ |
| C-87 | .fnの戻り値型検証 | E-11（97-101行: 文字列チェック、cli_abort） | ○ |
| C-88 | .fnの戻り値長さ検証 | E-11（102-106行: 長さチェック、cli_abort） | ○ |

### transmute.R関連（C-89 - C-93）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-89 | transmute()で計算列のみ返却 | E-12（30-39行: transmute関数定義、superseded） | ○ |
| C-90 | グループ変数の保持 | E-12（62-66行: グループ変数保持の実装） | ○ |
| C-91 | .keep引数のエラー | E-12（80-82行: .keep引数エラー） | ○ |
| C-92 | .before引数のエラー | E-12（83-85行: .before引数エラー） | ○ |
| C-93 | .after引数のエラー | E-12（86-88行: .after引数エラー） | ○ |

## 4) 不足情報（Unknown / Missing）
- 全テストケースにソースコードの根拠が存在するため、不足情報なし

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全93件のテストケースについてソースコードの根拠あり
- 注意点:
  - transmute()はsuperseded（非推奨）のため、テストの優先度は低く設定
  - slice_sample()は乱数を使用するため、再現性のあるテスト設計が必要（seed設定）
  - filter/filter_outのNA処理は微妙な動作があるため、テストでは明確に検証すべき

## 6) レビュアーチェックリスト（最小）
- [ ] 各関数の正常系テストケースが網羅されているか
- [ ] NA、空データ、境界値のテストケースが含まれているか
- [ ] エラー条件（異常系）のテストケースが適切か
- [ ] グループ化されたデータフレームでの動作がテストされているか
- [ ] 優先度の設定が適切か（金額計算・セキュリティ関連は高、ヘルパー関数は低）
- [ ] superseded関数（transmute）のテスト優先度が適切に低く設定されているか
