---
generated_at: 2026-02-19 00:20:00
metrics:
  claims_total: 69
  claims_with_evidence: 69
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：aggregation モジュール単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

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

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

- E-01: `R/count-tally.R` - count(), tally(), add_count(), add_tally()関数群の定義（行1-294）
- E-02: `R/count-tally.R` - count.data.frame()メソッドの実装（行89-112）
- E-03: `R/count-tally.R` - tally.data.frame()メソッドの実装（行121-137）
- E-04: `R/count-tally.R` - add_count.data.frame()メソッドの実装（行172-189）
- E-05: `R/count-tally.R` - add_count_impl()内部実装（行191-215）
- E-06: `R/count-tally.R` - add_tally()関数の実装（行219-233）
- E-07: `R/count-tally.R` - tally_n()ヘルパー関数の実装（行237-243）
- E-08: `R/count-tally.R` - compat_wt()ヘルパー関数の実装（行245-262）
- E-09: `R/count-tally.R` - check_n_name()ヘルパー関数の実装（行264-284）
- E-10: `R/count-tally.R` - n_name()ヘルパー関数の実装（行286-293）
- E-11: `R/n-col.R` - ncol()マスク関数の定義（行3-5）
- E-12: `R/n-col.R` - df_n_col()関数の実装（行15-19）
- E-13: `R/n-col.R` - mat_n_col()関数の実装（行23-25）
- E-14: `R/sample.R` - sample_n()関数群の定義（行64-115）
- E-15: `R/sample.R` - sample_n.data.frame()メソッドの実装（行90-115）
- E-16: `R/sample.R` - sample_frac()関数群の定義（行119-168）
- E-17: `R/sample.R` - sample_frac.data.frame()メソッドの実装（行145-168）
- E-18: `R/sample.R` - check_size()ヘルパー関数の実装（行172-182）
- E-19: `R/sample.R` - check_frac()ヘルパー関数の実装（行184-194）
- E-20: `R/count-tally.R` - roxygen2ドキュメントコメント（行1-82）
- E-21: `R/sample.R` - roxygen2ドキュメントコメント（行1-63）

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

### count-tally.R関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | count()で単一変数のグループカウントができる | E-01, E-02, E-20 | ○ |
| C-02 | count()で複数変数のグループカウントができる | E-02, E-20 | ○ |
| C-03 | count()のsort引数で降順ソートされる | E-02, E-03 | ○ |
| C-04 | count()のwt引数で重み付きカウントができる | E-02, E-07 | ○ |
| C-05 | count()のname引数でカウント列名をカスタマイズできる | E-02, E-09 | ○ |
| C-06 | count()の.drop引数でfactor levelが保持される | E-02 | ○ |
| C-07 | count()を変数なしで呼び出すと全体行数が返る | E-02 | ○ |
| C-08 | グループ化data.frameにcount()が機能する | E-02 | ○ |
| C-09 | 0行data.frameでcount()が動作する | E-02 | ○ |
| C-10 | n列存在時にnn列が使用される | E-09, E-10 | ○ |
| C-11 | NA値を含む変数のカウントが動作する | E-02 | ○ |
| C-12 | tally()がグループなしで全体行数を返す | E-03 | ○ |
| C-13 | グループ化data.frameでtally()が各グループ行数を返す | E-03 | ○ |
| C-14 | tally()のwt引数で重み付き集計ができる | E-03, E-07 | ○ |
| C-15 | tally()のsort引数で降順ソートされる | E-03 | ○ |
| C-16 | tally()のname引数でカウント列名をカスタマイズできる | E-03, E-09 | ○ |
| C-17 | 0行data.frameでtally()が動作する | E-03 | ○ |
| C-18 | add_count()で元データに行数列が追加される | E-04 | ○ |
| C-19 | add_count()で複数変数グループ化ができる | E-04, E-05 | ○ |
| C-20 | add_count()のwt引数で重み付きカウントが追加される | E-04, E-05 | ○ |
| C-21 | add_count()のsort引数で降順ソートされる | E-04, E-06 | ○ |
| C-22 | add_count()のname引数でカウント列名をカスタマイズできる | E-04, E-06 | ○ |
| C-23 | add_count()の.drop引数が廃止エラーを発生させる | E-05 | ○ |
| C-24 | add_count()で元data.frameの構造が保持される | E-04 | ○ |
| C-25 | add_tally()で全体行数列が追加される | E-06 | ○ |
| C-26 | グループ化data.frameでadd_tally()がグループ行数を追加する | E-06 | ○ |
| C-27 | add_tally()のwt引数で重み付き集計が追加される | E-06 | ○ |
| C-28 | add_tally()のsort引数で降順ソートされる | E-06 | ○ |
| C-29 | add_tally()のname引数でカウント列名をカスタマイズできる | E-06 | ○ |
| C-30 | tally_n()でwtがNULLの場合n()式が返される | E-07 | ○ |
| C-31 | tally_n()でwt指定時にsum式が返される | E-07 | ○ |
| C-32 | compat_wt()でwt=n()の場合非推奨警告が発生する | E-08 | ○ |
| C-33 | compat_wt()で通常値がそのまま返される | E-08 | ○ |
| C-34 | check_n_name()でnameがNULLの場合自動生成される | E-09 | ○ |
| C-35 | check_n_name()でname指定時そのまま返される | E-09 | ○ |
| C-36 | check_n_name()でnameが文字列以外の場合エラー | E-09 | ○ |
| C-37 | n_name()でnが含まれない場合nが返される | E-10 | ○ |
| C-38 | n_name()でnが含まれる場合nnが返される | E-10 | ○ |
| C-39 | n_name()でn,nnが含まれる場合nnnが返される | E-10 | ○ |

### n-col.R関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | ncol()呼び出しでエラーが発生する | E-11 | ○ |
| C-41 | df_n_col()でdata.frameの列数が取得できる | E-12 | ○ |
| C-42 | df_n_col()で0列data.frameに0が返される | E-12 | ○ |
| C-43 | df_n_col()でリスト以外でエラーが発生する | E-12 | ○ |
| C-44 | mat_n_col()で行列の列数が取得できる | E-13 | ○ |
| C-45 | mat_n_col()で1列行列に1が返される | E-13 | ○ |

### sample.R関連テストケース

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 | sample_n()で指定行数がサンプリングされる | E-14, E-15 | ○ |
| C-47 | sample_n()でreplace=TRUEで復元抽出ができる | E-15 | ○ |
| C-48 | sample_n()のweight引数で重み付きサンプリングができる | E-15 | ○ |
| C-49 | sample_n()でsuperseded警告が発生する | E-14 | ○ |
| C-50 | sample_n()の.env引数が非推奨メッセージを出力する | E-15 | ○ |
| C-51 | sample_n()でデータサイズ超過時エラーが発生する | E-15, E-18 | ○ |
| C-52 | sample_n.default()でdata.frame以外にエラー | E-14 | ○ |
| C-53 | sample_n()でsize=0で0行が返される | E-15 | ○ |
| C-54 | sample_n()でsize=1で1行が返される | E-15 | ○ |
| C-55 | sample_frac()で指定割合がサンプリングされる | E-16, E-17 | ○ |
| C-56 | sample_frac()でreplace=TRUEで100%超抽出ができる | E-17 | ○ |
| C-57 | sample_frac()のweight引数で重み付きサンプリングができる | E-17 | ○ |
| C-58 | sample_frac()のデフォルトsize=1で全行が返される | E-16 | ○ |
| C-59 | sample_frac()でsuperseded警告が発生する | E-16 | ○ |
| C-60 | sample_frac()の.env引数が非推奨メッセージを出力する | E-17 | ○ |
| C-61 | sample_frac()でsize>1かつreplace=FALSEでエラー | E-17, E-19 | ○ |
| C-62 | sample_frac.default()でdata.frame以外にエラー | E-16 | ○ |
| C-63 | sample_frac()でsize=0で0行が返される | E-17 | ○ |
| C-64 | check_size()でsize<=nの場合sizeが返される | E-18 | ○ |
| C-65 | check_size()でreplace=TRUEの場合size>nでも通過 | E-18 | ○ |
| C-66 | check_size()でsize>nかつreplace=FALSEでエラー | E-18 | ○ |
| C-67 | check_frac()でsize<=1の場合sizeが返される | E-19 | ○ |
| C-68 | check_frac()でreplace=TRUEの場合size>1でも通過 | E-19 | ○ |
| C-69 | check_frac()でsize>1かつreplace=FALSEでエラー | E-19 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし。全てのテストケースに対してソースコードからの根拠が確認できました。

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードの実装に基づいて生成されています

### 注意事項
- `sample_n()`と`sample_frac()`は**superseded**（後継に置き換え推奨）のステータスです。`slice_sample()`への移行が推奨されていますが、既存コードの互換性テストとして引き続きテストケースが必要です。
- `add_count()`の`.drop`引数は**deprecated**から**defunct**に変更されており、使用時にはエラーが発生します（dplyr 1.0.0以降）。

## 6) レビュアーチェックリスト（最小）
- [ ] count/tallyファミリーの基本機能テストケース（UT-AGG-001〜017）が網羅されているか確認
- [ ] add_count/add_tallyのmutate的動作のテストケース（UT-AGG-018〜029）が適切か確認
- [ ] ヘルパー関数のテストケース（UT-AGG-030〜039）が必要十分か確認
- [ ] n-col.Rのマスク関数テストケース（UT-AGG-040〜045）が実装意図と整合しているか確認
- [ ] superseded関数（sample_n/sample_frac）のテストケース（UT-AGG-046〜069）が後方互換性確認に十分か確認
- [ ] 各テストケースの優先度が適切に設定されているか確認
- [ ] 境界値テストケースが適切に含まれているか確認
- [ ] NA値・空データフレームなどのエッジケースが網羅されているか確認
