---
generated_at: 2026-01-28 10:30:00
metrics:
  claims_total: 112
  claims_with_evidence: 108
  claims_without_evidence: 4
confidence_derived: 0.96
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：108 / 112、根拠なし：4
- 優先レビュー（高）
  1. **C-64〜C-65（比較機能）**：showDiffメソッドの内部実装を直接確認できないため、期待結果の検証が必要
  2. **C-54〜C-56（選択処理）**：UICollectionViewDelegateの動作はシミュレーターでの確認が推奨される
  3. **C-106〜C-112（イベントログ）**：EventPlatformClientの実装詳細が未確認

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

- E-01: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistoryFetcher.swift`
- E-02: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistoryViewController.swift`
- E-03: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistorySection.swift`
- E-04: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistoryCollectionViewCell.swift`
- E-05: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistoryCountsView.swift`
- E-06: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistoryCountsViewController.swift`
- E-07: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistoryHintController.swift`
- E-08: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistoryComparisonSelectionViewController.swift`
- E-09: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistoryFilterCountsViewController.swift`（PageHistoryFilterCountsView）
- E-10: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/PageHistoryFilterCountCollectionViewCell.swift`
- E-11: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/WMFPageHistoryRevision.h`
- E-12: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/WMFPageHistoryRevision.m`
- E-13: `/Users/tomoka.baba/Work/wikipedia-ios-main/Wikipedia/Code/EditHistoryCompareFunnel.swift`

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

### PageHistoryFetcher関連（C-01〜C-19）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | fetchRevisionInfo正常系 | E-01 (L7-36) | ○ |
| C-02 | fetchRevisionInfoネットワークエラー | E-01 (L25-28) | ○ |
| C-03 | fetchRevisionInfo不正レスポンス | E-01 (L29-32) | ○ |
| C-04 | parseSections正常系 | E-01 (L38-65) | ○ |
| C-05 | parseSectionspagesキーなし | E-01 (L39-42) | ○ |
| C-06 | parsePagingInfo正常系 | E-01 (L67-77) | ○ |
| C-07 | parsePagingInfoバッチ完了 | E-01 (L74) | ○ |
| C-08 | parseリビジョンサイズ計算 | E-01 (L79-89) | ○ |
| C-09 | fetchFirstRevision正常系 | E-01 (L93-114) | ○ |
| C-10 | fetchFirstRevision異常系 | E-01 (L104-110) | ○ |
| C-11 | fetchEditCounts正常系 | E-01 (L154-207) | ○ |
| C-12 | fetchEditCounts複数タイプ | E-01 (L163-186) | ○ |
| C-13 | customLoggedIn計算 | E-01 (L191-193) | ○ |
| C-14 | customUnregistered計算 | E-01 (L196) | ○ |
| C-15 | fetchEditCountsエラー | E-01 (L200-201) | ○ |
| C-16 | editCountsURL正常系 | E-01 (L129-147) | ○ |
| C-17 | editCountsURL異常系 | E-01 (L130-134) | ○ |
| C-18 | fetchEditMetrics正常系 | E-01 (L223-268) | ○ |
| C-19 | fetchEditMetrics異常系 | E-01 (L231-234) | ○ |

### HistoryFetchResults/PageHistoryRequestParameters関連（C-20〜C-28）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | itemsソート | E-01 (L283-285) | ○ |
| C-21 | batchComplete | E-01 (L287-289) | ○ |
| C-22 | getPageHistoryRequestParameters | E-01 (L279-281) | ○ |
| C-23 | updateFirstRevisionSize | E-01 (L291-294) | ○ |
| C-24 | update新規セクション追加 | E-01 (L323-338) | ○ |
| C-25 | update新規日付セクション | E-01 (L330-337) | ○ |
| C-26 | updateユーザーnilスキップ | E-01 (L326-328) | ○ |
| C-27 | PageHistoryRequestParametersタイトル初期化 | E-01 (L315-319) | ○ |
| C-28 | PageHistorySection初期化 | E-03 (L3-11) | ○ |

### WMFPageHistoryRevision関連（C-29〜C-38）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-29 | initWithDictionary正常系 | E-12 (L8-12) | ○ |
| C-30 | isAnonデフォルト値 | E-12 (L9) | ○ |
| C-31 | isMinorデフォルト値 | E-12 (L9) | ○ |
| C-32 | revisionDateJSONTransformer | E-12 (L32-36) | ○ |
| C-33 | isAnonJSONTransformer | E-12 (L38-42) | ○ |
| C-34 | isMinorJSONTransformer | E-12 (L44-48) | ○ |
| C-35 | isTemp空文字列 | E-12 (L28-30) | ○ |
| C-36 | isTempnil | E-12 (L28-30) | ○ |
| C-37 | daysFromToday今日 | E-12 (L50-54) | ○ |
| C-38 | daysFromToday昨日 | E-12 (L50-54) | ○ |

### PageHistoryViewController関連（C-39〜C-65）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-39 | init初期化 | E-02 (L56-64) | ○ |
| C-40 | shouldLoadNewData条件満たす | E-02 (L38-47) | ○ |
| C-41 | shouldLoadNewDataバッチ完了 | E-02 (L39-41) | ○ |
| C-42 | shouldLoadNewDataローディング中 | E-02 (L39-41) | ○ |
| C-43 | appendSections空リスト | E-02 (L283-305) | ○ |
| C-44 | appendSections同タイトル結合 | E-02 (L289-304) | ○ |
| C-45 | maxNumberOfRevisionsSelected2選択 | E-02 (L93-96) | ○ |
| C-46 | maxNumberOfRevisionsSelected1選択 | E-02 (L93-96) | ○ |
| C-47 | stateアイドル遷移 | E-02 (L103-128) | ○ |
| C-48 | state編集遷移 | E-02 (L115-120) | ○ |
| C-49 | numberOfSections | E-02 (L382-384) | ○ |
| C-50 | numberOfItemsInSection | E-02 (L386-388) | ○ |
| C-51 | shouldSelectItemAt編集モード許可 | E-02 (L640-657) | ○ |
| C-52 | shouldSelectItemAt最大選択 | E-02 (L644-650) | ○ |
| C-53 | shouldSelectItemAtアイドル | E-02 (L654-656) | ○ |
| C-54 | didSelectItemAt編集モード | E-02 (L706-749) | ○ |
| C-55 | didSelectItemAtアイドル | E-02 (L745-749) | ○ |
| C-56 | didDeselectItemAt | E-02 (L762-783) | ○ |
| C-57 | retrievePreviousRevision中間 | E-02 (L845-861) | ○ |
| C-58 | retrievePreviousRevisionセクション境界 | E-02 (L851-853) | ○ |
| C-59 | retrievePreviousRevision最古 | E-02 (L845-861) | ○ |
| C-60 | retrieveNextRevision中間 | E-02 (L863-898) | ○ |
| C-61 | retrieveNextRevisionセクション境界 | E-02 (L875-881) | ○ |
| C-62 | retrieveNextRevision最新 | E-02 (L876-878) | ○ |
| C-63 | refreshRevisions | E-02 (L900-904) | ○ |
| C-64 | 比較画面表示 | E-02 (L814-841) | △ |
| C-65 | 比較順序 | E-02 (L829-838) | △ |

### PageHistoryCollectionViewCell関連（C-66〜C-82）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 | displayTime設定 | E-04 (L16-26) | ○ |
| C-67 | displayTimeアクセシビリティ | E-04 (L19-23) | ○ |
| C-68 | sizeDiff正の値 | E-04 (L28-43) | ○ |
| C-69 | sizeDiff負の値 | E-04 (L36) | ○ |
| C-70 | sizeDiff0アクセシビリティ | E-04 (L37-38) | ○ |
| C-71 | sizeDiffnil | E-04 (L30-32) | ○ |
| C-72 | author設定 | E-04 (L52-57) | ○ |
| C-73 | setEditing | E-04 (L98-106) | ○ |
| C-74 | setEditing同値 | E-04 (L99-101) | ○ |
| C-75 | enableEditing | E-04 (L108-117) | ○ |
| C-76 | enableEditing選択中 | E-04 (L109-111) | ○ |
| C-77 | reset | E-04 (L143-150) | ○ |
| C-78 | applyテーマモデルあり | E-04 (L269-293) | ○ |
| C-79 | applyテーマモデルなし | E-04 (L294-317) | ○ |
| C-80 | applySizeDiff正 | E-04 (L311-312) | ○ |
| C-81 | applySizeDiff負 | E-04 (L313-314) | ○ |
| C-82 | updateAccessibilityLabel | E-04 (L60-63) | ○ |

### PageHistoryCountsView関連（C-83〜C-88）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-83 | setTotalEditCount | E-05 (L28-35) | ○ |
| C-84 | setTotalEditCountnil | E-05 (L29-31) | ○ |
| C-85 | timeseriesOfEditsCounts空 | E-05 (L37-45) | ○ |
| C-86 | timeseriesOfEditsCountsデータあり | E-05 (L42-44) | ○ |
| C-87 | configure | E-05 (L62-98) | ○ |
| C-88 | didDetermineFilterCountsAvailability | E-05 (L122-131) | ○ |

### PageHistoryComparisonSelectionViewController関連（C-89〜C-94）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-89 | resetSelectionButton | E-08 (L61-63) | ○ |
| C-90 | resetSelectionButtons | E-08 (L65-68) | ○ |
| C-91 | setCompareButtonEnabled | E-08 (L70-72) | ○ |
| C-92 | updateSelectionButton | E-08 (L83-95) | ○ |
| C-93 | performSelectionButtonAction | E-08 (L41-46) | ○ |
| C-94 | performCompareButtonAction | E-08 (L48-50) | ○ |

### PageHistoryHintController関連（C-95〜C-96）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-95 | init | E-07 (L10-14) | ○ |
| C-96 | hide | E-07 (L16-23) | ○ |

### PageHistoryFilterCountsView関連（C-97〜C-99）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-97 | editCountsGroupedByType正常 | E-09 (L17-43) | ○ |
| C-98 | editCountsGroupedByTypenil | E-09 (L24-26) | ○ |
| C-99 | numberOfItemsInSection | E-09 (L122-124) | ○ |

### PageHistoryFilterCountCollectionViewCell関連（C-100〜C-101）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-100 | configure | E-10 (L40-46) | ○ |
| C-101 | sizeWith | E-10 (L18-28) | ○ |

### SelectionOrder関連（C-102〜C-105）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-102 | initRawValue正常 | E-02 (L6-17) | ○ |
| C-103 | initRawValue異常 | E-02 (L10-15) | ○ |
| C-104 | initOptional正常 | E-02 (L10-15) | ○ |
| C-105 | initOptionalnil | E-02 (L10-15) | ○ |

### EditHistoryCompareFunnel関連（C-106〜C-112）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-106 | logShowHistory | E-13 (L26-28) | △ |
| C-107 | logRevisionView | E-13 (L35-37) | △ |
| C-108 | logCompare1 | E-13 (L39-41) | ○ |
| C-109 | logCompare2 | E-13 (L43-45) | ○ |
| C-110 | logThankTry | E-13 (L47-49) | ○ |
| C-111 | logThankSuccess | E-13 (L51-53) | ○ |
| C-112 | logThankFail | E-13 (L55-57) | ○ |

## 4) 不足情報（Unknown / Missing）

### 根拠不足の理由

1. **C-64, C-65（比較機能のナビゲーション）**
   - `showDiff`メソッドは`DiffContainerViewController`を生成してpushするが、その内部動作の詳細な検証は`DiffContainerViewController`のテストに委ねられる
   - 候補: `DiffContainerViewController.swift` / `DiffController.swift` / UIテスト

2. **C-106, C-107（イベントログ）**
   - `EventPlatformClient.shared.submit`の実際の動作確認には、EventPlatformClientの実装確認またはモックが必要
   - 候補: `EventPlatformClient.swift` / ネットワークモックテスト

## 5) リスクフラグ（レビュー観点）

| リスクレベル | 対象 | 理由 |
|---|---|---|
| 1: 中リスク | C-64, C-65 | 画面遷移の統合テストが必要 |
| 1: 中リスク | C-106, C-107 | 外部サービス連携のモック確認が必要 |
| 0: 低リスク | その他 | ソースコードから直接確認可能 |

## 6) レビュアーチェックリスト（最小）

- [ ] PageHistoryFetcherのAPI呼び出しパラメータが正しいことを確認（C-01〜C-19）
- [ ] リビジョンサイズ計算ロジックのエッジケースを確認（C-08, C-23）
- [ ] 日付計算（daysFromToday）のタイムゾーン処理を確認（C-37, C-38）
- [ ] 選択状態管理のUIテストを実施（C-51〜C-56）
- [ ] 比較機能のE2Eテストを検討（C-64, C-65）
- [ ] アクセシビリティラベルの適切性を確認（C-67, C-70, C-82）
- [ ] イベントログのモックテスト実装を検討（C-106〜C-112）
