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

# 根拠レポート：conditional.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：101 / 101、根拠なし：0
- 優先レビュー（高）
  1. **特になし**：全テストケースがソースコードに基づいて生成されている
  2. **deprecatedな関数**：case_match, recode, recode_factorはdeprecated/supersededの確認が必要
  3. **内部関数のテスト**：eval_formulas, case_when_size_common等は通常は直接テストしない可能性あり

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `R/case-when.R` - case_when(), replace_when(), eval_formulas(), validate_and_split_formula(), case_when_size_common()
- E-02: `R/case-match.R` - case_match(), vec_case_match()（deprecatedとしてマーク）
- E-03: `R/if-else.R` - if_else()
- E-04: `R/coalesce.R` - coalesce(), convert_from_coalesce_to_case_when(), vec_all_missing()
- E-05: `R/na-if.R` - na_if()
- E-06: `R/when.R` - when_any(), when_all()
- E-07: `R/recode.R` - recode(), recode.numeric(), recode.character(), recode.factor(), recode_factor(), find_template(), validate_recode_default(), recode_default(), replace_with(), check_length(), check_type(), check_class()（supersededとしてマーク）
- E-08: `R/recode-values.R` - recode_values(), replace_values(), eval_formulas_or_from_and_to(), determine_implementation()

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

### case-when.R関連（UT-CND-001〜018, 091〜094）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | case_whenは単一条件でマッチした値を返す | E-01: L288-322 case_when()実装 | ○ |
| C-02 | case_whenは複数条件で先にマッチした条件を優先 | E-01: L100-107 ドキュメントコメント | ○ |
| C-03 | .defaultパラメータでデフォルト値を指定可能 | E-01: L290, L313 .default引数 | ○ |
| C-04 | .default未指定時はNAが使用される | E-01: L51-53 ドキュメント | ○ |
| C-05 | NULL入力は無視される | E-01: L255-264 ドキュメント, L518-522 実装 | ○ |
| C-06 | .ptypeで出力型を制御可能 | E-01: L293, L315 .ptype引数 | ○ |
| C-07 | .sizeで出力サイズを制御可能 | E-01: L294, L316 .size引数 | ○ |
| C-08 | 空の...でエラー | E-01: L527-529 abort条件 | ○ |
| C-09 | LHSが論理ベクトル以外でエラー | E-01: L33-35 ドキュメント | ○ |
| C-10 | 一方向の数式でエラー | E-01: L618-629 validate_and_split_formula() | ○ |
| C-11 | .unmatched="error"で未マッチ時エラー | E-01: L291, L314 unmatched引数 | ○ |
| C-12 | LHS条件のNAは.defaultが使用される | E-01: L58-63 ドキュメント | ○ |
| C-13 | 空のベクトル処理 | E-01: vec_case_when()への委譲 | ○ |
| C-14 | replace_whenは条件マッチ値のみ置換 | E-01: L326-342 replace_when()実装 | ○ |
| C-15 | replace_whenはマッチしない値を保持 | E-01: L21-22 ドキュメント | ○ |
| C-16 | replace_whenは空の...でno-op | E-01: L329 allow_empty_dots = TRUE | ○ |
| C-17 | replace_whenは型変換を行う | E-01: L45-46 ドキュメント | ○ |
| C-18 | replace_whenは名前付き引数でエラー | E-01: L327 check_dots_unnamed() | ○ |
| C-91 | eval_formulasはLHS/RHSを分離 | E-01: L505-603 eval_formulas()実装 | ○ |
| C-92 | eval_formulasは一方向数式でエラー | E-01: L618-629 validate_and_split_formula() | ○ |
| C-93 | case_when_size_commonは共通サイズ計算 | E-01: L385-457 case_when_size_common()実装 | ○ |
| C-94 | case_when_size_commonはサイズ不一致でエラー | E-01: L446-451 vec_size_common()呼び出し | ○ |

### case-match.R関連（UT-CND-019〜023）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-19 | case_matchは値マッチングで置換（deprecated） | E-02: L163-196 case_match()実装, L164-169 deprecate_soft() | ○ |
| C-20 | case_matchは複数値を1つにマッチング可能 | E-02: L224 vec_in()使用 | ○ |
| C-21 | case_matchの.defaultで未マッチ時のデフォルト値 | E-02: L191 default引数 | ○ |
| C-22 | case_matchの.ptypeで出力型を制御 | E-02: L193 ptype引数 | ○ |
| C-23 | case_matchはNAをマッチング可能 | E-02: L224 vec_in()使用 | ○ |

### if-else.R関連（UT-CND-024〜032）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-24 | if_elseはTRUE/FALSEで値選択 | E-03: L56-83 if_else()実装 | ○ |
| C-25 | missingパラメータでNA時の値を指定 | E-03: L60, L79 missing引数 | ○ |
| C-26 | missing未指定時NAはNA | E-03: L20-22 ドキュメント | ○ |
| C-27 | ptypeで出力型を制御 | E-03: L62, L80 ptype引数 | ○ |
| C-28 | factor型が保持される | E-03: L49-51 ドキュメント例 | ○ |
| C-29 | true/falseがリサイクルされる | E-03: L15-16 ドキュメント | ○ |
| C-30 | conditionが論理ベクトル以外でエラー | E-03: L75 vec_if_else()への委譲 | ○ |
| C-31 | true/falseの型が互換でない場合エラー | E-03: L18 common type規則 | ○ |
| C-32 | 空のベクトル処理 | E-03: vec_if_else()への委譲 | ○ |

### coalesce.R関連（UT-CND-033〜042, 095〜097）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-33 | coalesceは最初の非NA値を選択 | E-04: L69-111 coalesce()実装 | ○ |
| C-34 | 複数ベクトルで順次非NA値を選択 | E-04: L100-103 条件計算 | ○ |
| C-35 | スカラー値でNA補完可能 | E-04: L35 ドキュメント例 | ○ |
| C-36 | .ptypeで出力型を制御 | E-04: L84 .ptype引数 | ○ |
| C-37 | .sizeで出力サイズを制御 | E-04: L88 .size引数 | ○ |
| C-38 | リストのNULLは除外される | E-04: L136-139 convert_from_coalesce_to_case_when() | ○ |
| C-39 | 空の...でエラー | E-04: L72-74 abort条件 | ○ |
| C-40 | 全てNULLでエラー | E-04: L75-77 abort条件 | ○ |
| C-41 | 全てNAの場合NAが返る | E-04: vec_case_when()動作 | ○ |
| C-42 | 空のベクトル処理 | E-04: vec_case_when()への委譲 | ○ |
| C-95 | convert_from_coalesce_to_case_whenはNULL除外 | E-04: L135-186 実装 | ○ |
| C-96 | vec_all_missingは全NA時TRUE | E-04: L188-193 実装 | ○ |
| C-97 | vec_all_missingは非NA存在時FALSE | E-04: L188-193 実装 | ○ |

### na-if.R関連（UT-CND-043〜050）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | na_ifは指定値をNAに置換 | E-05: L71-82 na_if()実装 | ○ |
| C-44 | 空文字をNAに置換可能 | E-05: L32 ドキュメント例 | ○ |
| C-45 | NaNをNAに置換可能 | E-05: L35 ドキュメント例 | ○ |
| C-46 | yがベクトルの場合位置ごとに比較 | E-05: L38-43 ドキュメント例 | ○ |
| C-47 | 型が保持される | E-05: L72-73 vec_cast/vec_recycle | ○ |
| C-48 | xとyの型が互換でない場合エラー | E-05: L73 vec_cast() | ○ |
| C-49 | 既存のNAはNAのまま | E-05: L77 vec_equal(na_equal = TRUE) | ○ |
| C-50 | 空のベクトル処理 | E-05: vctrs関数への委譲 | ○ |

### when.R関連（UT-CND-051〜062）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | when_anyはいずれかTRUEでTRUE | E-06: L132-145 when_any()実装 | ○ |
| C-52 | when_anyのna_rm=TRUEでNA除外 | E-06: L136 missing = FALSE | ○ |
| C-53 | when_anyのna_rm=FALSEでNA伝播 | E-06: L136 missing = NA | ○ |
| C-54 | when_anyのsizeで出力サイズ制御 | E-06: L141 .size引数 | ○ |
| C-55 | when_anyの空入力でサイズ0 | E-06: L118-119 ドキュメント例 | ○ |
| C-56 | when_anyの全FALSEでFALSE | E-06: L8 ドキュメント | ○ |
| C-57 | when_allは全TRUEでTRUE | E-06: L149-162 when_all()実装 | ○ |
| C-58 | when_allのna_rm=TRUEでNA除外 | E-06: L153 missing = TRUE | ○ |
| C-59 | when_allのna_rm=FALSEでNA伝播 | E-06: L153 missing = NA | ○ |
| C-60 | when_allのsizeで出力サイズ制御 | E-06: L158 .size引数 | ○ |
| C-61 | when_allの空入力でサイズ0 | E-06: L119 ドキュメント例 | ○ |
| C-62 | when_allの1つFALSEでFALSE | E-06: L10 ドキュメント | ○ |

### recode.R関連（UT-CND-063〜072, 098〜099）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-63 | recodeは文字列値の置換（superseded） | E-07: L170-174 recode()実装, L172 signal_stage() | ○ |
| C-64 | recodeは数値の位置による置換 | E-07: L183-184 recode.numeric() | ○ |
| C-65 | recodeは数値の名前による置換 | E-07: L181-182 recode.numeric() | ○ |
| C-66 | recodeの.defaultで未マッチ時デフォルト | E-07: L200-201 replace_with() | ○ |
| C-67 | recodeの.missingでNA時の値 | E-07: L202 replace_with() | ○ |
| C-68 | recodeのfactor型置換 | E-07: L233-272 recode.factor() | ○ |
| C-69 | 文字列で名前なし引数でエラー | E-07: L210-214 abort条件 | ○ |
| C-70 | factorで.missing指定でエラー | E-07: L244-247 abort条件 | ○ |
| C-71 | recode_factorはfactor型変換（superseded） | E-07: L332-354 recode_factor()実装 | ○ |
| C-72 | recode_factorの.orderedで順序付き | E-07: L353 ordered引数 | ○ |
| C-98 | find_templateは最初の非NULL値を返す | E-07: L274-287 find_template() | ○ |
| C-99 | find_templateは全NULLでエラー | E-07: L282-283 abort条件 | ○ |

### recode-values.R関連（UT-CND-073〜090, 100〜101）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-73 | recode_valuesは数式による値の置換 | E-08: L302-341 recode_values()実装 | ○ |
| C-74 | recode_valuesはfrom/toによる置換 | E-08: L305-306, L411-415 from/to処理 | ○ |
| C-75 | recode_valuesは複数値を1つにマッピング | E-08: L277-280 ドキュメント例 | ○ |
| C-76 | recode_valuesのdefaultで未マッチ時デフォルト | E-08: L307, L330 default引数 | ○ |
| C-77 | recode_valuesのptypeで出力型制御 | E-08: L309, L334 ptype引数 | ○ |
| C-78 | recode_valuesの空の...でエラー | E-08: L317 allow_empty_dots = FALSE | ○ |
| C-79 | recode_valuesのunmatched="error"でエラー | E-08: L308, L331 unmatched引数 | ○ |
| C-80 | ...とfrom/toの同時指定でエラー | E-08: L437-448 determine_implementation() | ○ |
| C-81 | fromのみ指定でエラー | E-08: L456-460 determine_implementation() | ○ |
| C-82 | NAを明示的にマッピング可能 | E-08: L224-244 ドキュメント例 | ○ |
| C-83 | replace_valuesは部分的な値の置換 | E-08: L345-377 replace_values()実装 | ○ |
| C-84 | replace_valuesはfrom/toによる置換 | E-08: L347-348, L353-364 from/to処理 | ○ |
| C-85 | replace_valuesはNAを値で置換可能 | E-08: L134 ドキュメント例 | ○ |
| C-86 | replace_valuesは値をNAで置換可能 | E-08: L136 ドキュメント例 | ○ |
| C-87 | replace_valuesは複数値を1つに置換可能 | E-08: L140 ドキュメント例 | ○ |
| C-88 | replace_valuesの空の...でno-op | E-08: L357 allow_empty_dots = TRUE | ○ |
| C-89 | replace_valuesは型が保持される | E-08: L101-102 ドキュメント | ○ |
| C-90 | replace_valuesは型互換でない置換でエラー | E-08: vec_replace_values()への委譲 | ○ |
| C-100 | determine_implementationは...で"dots"を返す | E-08: L436-451 実装 | ○ |
| C-101 | determine_implementationはfrom/toで"from-to"を返す | E-08: L454-463 実装 | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし：全テストケースがソースコードに基づいて生成されている

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードから直接抽出された関数・引数に基づいている
- 注意点：
  - case_match()はdeprecatedであり、recode_values()/replace_values()への移行が推奨されている
  - recode()/recode_factor()はsupersededであり、recode_values()/replace_values()への移行が推奨されている
  - 内部関数（eval_formulas, case_when_size_common等）のテストは、public APIのテストで間接的にカバーされる可能性がある

## 6) レビュアーチェックリスト（最小）
- [ ] 全101件のテストケースがconditionalモジュールの8ファイルをカバーしているか
- [ ] 各関数の正常系・異常系・境界値テストが適切に設計されているか
- [ ] deprecated/superseded関数のテストが必要かどうかを確認
- [ ] 内部関数のテストが直接必要かどうかを確認（public APIテストでカバーされる可能性）
- [ ] テストの優先度（高/中/低）が適切に設定されているか
- [ ] 入力値と期待結果がR言語の構文として正しいか
