---
generated_at: 2026-01-28 18:15:00
metrics:
  claims_total: 100
  claims_with_evidence: 98
  claims_without_evidence: 2
confidence_derived: 0.98
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：98 / 100、根拠なし：2
- 優先レビュー（高）
  1. **C-056**: WMFImageGalleryViewControllerの元クラス定義が別ファイルにあるため、closeButtonImageの詳細な挙動確認が必要
  2. **C-083**: MediaListGalleryViewControllerの親クラスWMFImageGalleryViewControllerの仕様確認が必要

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

- E-01: `Wikipedia/Code/ImageDownload.swift` - ImageOrigin列挙型、Image、ImageDownloadクラス定義
- E-02: `Wikipedia/Code/ImageRecommendationsFunnel.swift` - イベントトラッキング用Funnelクラス
- E-03: `Wikipedia/Code/ImageCollectionViewCell.swift` - 画像表示用コレクションビューセル
- E-04: `Wikipedia/Code/ImageControllerCompletionManager.swift` - 非同期完了ハンドラ管理
- E-05: `Wikipedia/Code/ImageDimmingExampleViewController.swift` - 画像ディミング例示VC
- E-06: `Wikipedia/Code/WMFImageGalleryGradientViews.swift` - ギャラリー用グラデーションビュー
- E-07: `Wikipedia/Code/WMFImageGalleryViewController+Extensions.swift` - ギャラリーVC拡張
- E-08: `Wikipedia/Code/WMFImageURLActivitySource.swift` - URL共有用アクティビティソース
- E-09: `Wikipedia/Code/WMFImageTextActivitySource.swift` - テキスト共有用アクティビティソース
- E-10: `Wikipedia/Code/WMFImageGalleryDescriptionTextView.swift` - 説明文表示用テキストビュー
- E-11: `Wikipedia/Code/MediaListGalleryViewController.swift` - メディアリストギャラリーVC

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | ImageOrigin.networkのdebugColorはUIColor.red | E-01 (L12-13) | ○ |
| C-002 | ImageOrigin.diskのdebugColorはUIColor.yellow | E-01 (L14-15) | ○ |
| C-003 | ImageOrigin.memoryのdebugColorはUIColor.green | E-01 (L16-17) | ○ |
| C-004 | ImageOrigin.unknownのdebugColorはUIColor.black | E-01 (L18-19) | ○ |
| C-005 | ImageクラスはstaticImageとanimatedImageで初期化 | E-01 (L32-39) | ○ |
| C-006 | Imageクラスはアニメーション画像を含めて初期化可能 | E-01 (L34-38) | ○ |
| C-007 | ImageDownloadはURL、Image、originで初期化 | E-01 (L56-60) | ○ |
| C-008 | ImageDownloadはrawValueからoriginを設定可能 | E-01 (L62-66) | ○ |
| C-009 | originRawValueプロパティはorigin.rawValueを返却 | E-01 (L52-54) | ○ |
| C-010 | 静的定数は各ImageOriginのrawValueに対応 | E-01 (L43-46) | ○ |
| C-011 | ImageRecommendationsFunnel.sharedはシングルトン | E-02 (L5) | ○ |
| C-012 | logExploreDidTapFeatureAnnouncementPrimaryButtonはonboarding_step_1_dialogをログ | E-02 (L103-105) | ○ |
| C-013 | logOnboardingDidTapContinueはonboarding_step_2_dialog/nextをログ | E-02 (L107-109) | ○ |
| C-014 | logOnboardingDidTapLearnMoreはlearn_moreをログ | E-02 (L111-113) | ○ |
| C-015 | logBottomSheetDidAppearはimpressionをログ | E-02 (L131-133) | ○ |
| C-016 | logBottomSheetDidTapYesはsuggestion_acceptをログ | E-02 (L135-137) | ○ |
| C-017 | logBottomSheetDidTapNoはsuggestion_rejectをログ | E-02 (L139-141) | ○ |
| C-018 | logBottomSheetDidTapNotSureはsuggestion_skipをログ | E-02 (L143-145) | ○ |
| C-019 | logSaveChangesDidToggleWatchlistはisOnに応じてadd/removeをログ | E-02 (L215-218) | ○ |
| C-020 | logSaveChangesDidToggleWatchlist(false)はremove_watchlistをログ | E-02 (L216-217) | ○ |
| C-021 | logSaveChangesDidTapPublishはminor_edit/watchlist_addedをactionDataに含む | E-02 (L220-224) | ○ |
| C-022 | logSaveChangesPublishSuccessは全パラメータをログ | E-02 (L226-236) | ○ |
| C-023 | logSaveChangesPublishSuccessでtimeSpentがnilの場合はtime_spentを含まない | E-02 (L231-233) | ○ |
| C-024 | logRejectSurveyDidTapSubmitは拒否理由をカンマ区切りで送信 | E-02 (L246-260) | ○ |
| C-025 | logRejectSurveyDidTapSubmitでotherReasonがnilの場合はrejection_textを含まない | E-02 (L255-257) | ○ |
| C-026 | logSettingsToggleSuggestedEditsCard(true)はenable_suggested_editsをログ | E-02 (L270-273) | ○ |
| C-027 | logSettingsToggleSuggestedEditsCard(false)はdisable_suggested_editsをログ | E-02 (L271-272) | ○ |
| C-028 | logSaveChangesPublishFailはabort_sourceをログ | E-02 (L279-285) | ○ |
| C-029 | logSaveChangesPublishFailでabortSourceがnilの場合はactionDataがnil | E-02 (L280-283) | ○ |
| C-030 | captionIsRTL=trueでtextAlignmentが.right | E-03 (L9-11) | ○ |
| C-031 | captionIsRTL=falseでtextAlignmentが.left | E-03 (L10) | ○ |
| C-032 | captionプロパティでcaptionLabel.textを設定 | E-03 (L17-21) | ○ |
| C-033 | captionプロパティでcaptionLabel.textを取得 | E-03 (L15-16) | ○ |
| C-034 | setupでimageView,gradientView,captionLabelを追加 | E-03 (L24-33) | ○ |
| C-035 | resetでimageViewとcaptionLabelをクリア | E-03 (L40-44) | ○ |
| C-036 | sizeThatFitsでratio(1.02)に基づいてサイズ計算 | E-03 (L46-54) | ○ |
| C-037 | キャプションがある場合はcaptionLabelとgradientViewが表示 | E-03 (L58-66) | ○ |
| C-038 | キャプションがない場合はcaptionLabelとgradientViewが非表示 | E-03 (L67-70) | ○ |
| C-039 | apply(theme:)でテーマが適用される | E-03 (L79-84) | ○ |
| C-040 | 最初の完了ハンドラ追加時にisFirstがtrue | E-04 (L18-28) | ○ |
| C-041 | 2番目の完了ハンドラ追加時にisFirstがfalse | E-04 (L21) | ○ |
| C-042 | add(_:forIdentifier:)でタスクが追加される | E-04 (L35-45) | ○ |
| C-043 | cancel(_:token:)で特定トークンのみキャンセル | E-04 (L48-62) | ○ |
| C-044 | 最後のトークンキャンセル時にタスクもキャンセル | E-04 (L54-58) | ○ |
| C-045 | cancel(_:)で識別子のタスクをキャンセル | E-04 (L65-75) | ○ |
| C-046 | cancel(group:)でグループ内全タスクをキャンセル | E-04 (L85-95) | ○ |
| C-047 | cancelAllで全タスクをキャンセル | E-04 (L97-103) | ○ |
| C-048 | complete(_:enumerator:)で全完了ハンドラを呼び出し | E-04 (L105-120) | ○ |
| C-049 | complete後にエントリが削除される | E-04 (L113-114) | ○ |
| C-050 | isImageDimmed=trueでalpha=dimmedImageOpacity | E-05 (L10-11) | ○ |
| C-051 | isImageDimmed=falseでalpha=1.0 | E-05 (L10-11) | ○ |
| C-052 | WMFImageGalleryBottomGradientViewのグラデーション設定 | E-06 (L1-12) | ○ |
| C-053 | normalizedFadeHeightの計算ロジック | E-06 (L16-18) | ○ |
| C-054 | 高さ0の場合normalizedFadeHeightは0 | E-06 (L17) | ○ |
| C-055 | layoutSublayersでマスクが設定される | E-06 (L35-48) | ○ |
| C-056 | closeButtonImageでWMFSFSymbolIcon.closeを返却 | E-07 (L5-7) | △ |
| C-057 | WMFImageURLActivitySourceはMWKImageInfoで初期化 | E-08 (L8-10) | ○ |
| C-058 | activityViewControllerPlaceholderItemは空URL | E-08 (L13-15) | ○ |
| C-059 | Twitter投稿時にシェア用URLを返却 | E-08 (L21-24) | ○ |
| C-060 | Weibo投稿時にシェア用URLを返却 | E-08 (L22-23) | ○ |
| C-061 | その他のアクティビティではnilを返却 | E-08 (L25-27) | ○ |
| C-062 | WMFImageTextActivitySourceはMWKImageInfoで初期化 | E-09 (L7-9) | ○ |
| C-063 | activityViewControllerPlaceholderItemは空文字 | E-09 (L12-14) | ○ |
| C-064 | Twitter投稿時に"via Wikipedia"を返却 | E-09 (L20-21) | ○ |
| C-065 | Facebook投稿時にURLを返却 | E-09 (L22-25) | ○ |
| C-066 | メール送信時にURLを返却 | E-09 (L23-24) | ○ |
| C-067 | その他のアクティビティではnilを返却 | E-09 (L26-27) | ○ |
| C-068 | GalleryDescriptionOpenStatePercent.normalは22 | E-10 (L16) | ○ |
| C-069 | GalleryDescriptionOpenStatePercent.maximizedは60 | E-10 (L16) | ○ |
| C-070 | openStatePercent変更時にinvalidateIntrinsicContentSize | E-10 (L27-31) | ○ |
| C-071 | toggleOpenStateでオーバーフロー時に状態トグル | E-10 (L33-39) | ○ |
| C-072 | maximizedからnormalへの状態変更 | E-10 (L38) | ○ |
| C-073 | オーバーフローなし且つnormalでは変更なし | E-10 (L35-36) | ○ |
| C-074 | intrinsicContentSizeで制約された高さ | E-10 (L46-50) | ○ |
| C-075 | 最小高さ30が保証される | E-10 (L22, L48) | ○ |
| C-076 | invalidateIntrinsicContentSizeでスクロール無効化 | E-10 (L52-55) | ○ |
| C-077 | layoutSubviewsでスクロール有効化 | E-10 (L57-60) | ○ |
| C-078 | traitCollectionDidChangeでオフセットリセット | E-10 (L62-66) | ○ |
| C-079 | constrainedBetweenで範囲内の値を返却 | E-10 (L2-12) | ○ |
| C-080 | 最小値未満の場合は最小値を返却 | E-10 (L11) | ○ |
| C-081 | 最大割合超過時は制限される | E-10 (L8-10) | ○ |
| C-082 | availableHeight=0でも正しく処理 | E-10 (L5) | ○ |
| C-083 | MediaListGalleryViewControllerの初期化 | E-11 (L7-21) | △ |
| C-084 | initialItem=nilで最初の写真を選択 | E-11 (L12-14) | ○ |
| C-085 | fetchImageInfoForTitleでキャッシュヒット時は即座に返却 | E-11 (L30-33) | ○ |
| C-086 | キャッシュミス時はフェッチ実行 | E-11 (L36-49) | ○ |
| C-087 | フェッチ失敗時はエラー返却 | E-11 (L45-48) | ○ |
| C-088 | fetchImageForPhotoでphotoがnilの場合は早期リターン | E-11 (L53-58) | ○ |
| C-089 | titleがnilの場合は早期リターン | E-11 (L55) | ○ |
| C-090 | imageInfoがnilの場合に設定 | E-11 (L71-76) | ○ |
| C-091 | 既にimageInfoがある場合は上書きされない | E-11 (L71) | ○ |
| C-092 | 画像取得成功時にphoto.imageを設定 | E-11 (L92-93) | ○ |
| C-093 | アニメーション画像の場合はimageDataを設定 | E-11 (L90-91) | ○ |
| C-094 | imageURLがnilの場合はエラー表示 | E-11 (L80-81) | ○ |
| C-095 | didNavigateToでfetchImageForPhotoを呼び出し | E-11 (L100-102) | ○ |
| C-096 | MediaListItemNYTPhotoWrapperはimageタイプで初期化可能 | E-11 (L127-132) | ○ |
| C-097 | nilが渡された場合はnilを返却 | E-11 (L128) | ○ |
| C-098 | imageタイプ以外の場合はnilを返却 | E-11 (L128) | ○ |
| C-099 | bestImageURLはnilを返却 | E-11 (L108-110) | ○ |
| C-100 | bestImageInfoはimageInfoを返却 | E-11 (L112-114) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-056**: WMFImageGalleryViewControllerの元クラス定義が確認対象外。WMFSFSymbolIconの.closeシンボルの実装詳細が不明
  - 候補：WMFComponents/Sources/WMFComponents/ 配下のファイル
- **C-083**: 親クラスWMFImageGalleryViewControllerの詳細な仕様確認が必要
  - 候補：外部ライブラリまたはWMFComponents内の定義

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: ImageOrigin、Image、ImageDownload - 単純なモデルクラスで明確な実装
- **0 (低リスク)**: ImageCollectionViewCell - UIコンポーネントで自己完結型
- **0 (低リスク)**: ImageControllerCompletionManager - 非同期処理管理で内部ロジック完結
- **1 (中リスク)**: ImageRecommendationsFunnel - EventPlatformClientへの依存があり、イベント送信の実際の動作確認が必要
- **1 (中リスク)**: MediaListGalleryViewController - 外部API呼び出しとキャッシュ管理があり、統合テストでの確認推奨
- **0 (低リスク)**: WMFImageGallery*View - グラデーション・高さ計算で数値ベースの検証が容易
- **0 (低リスク)**: WMFImage*ActivitySource - UIActivityItemSourceプロトコル準拠で明確な挙動

## 6) レビュアーチェックリスト（最小）
- [ ] ImageRecommendationsFunnelの各ログメソッドが正しいアクションとインターフェースを送信しているか
- [ ] ImageControllerCompletionManagerのスレッドセーフティが正しく実装されているか（DispatchQueueの使用）
- [ ] MediaListGalleryViewControllerのimageInfosキャッシュがメインスレッドでのみアクセスされているか
- [ ] WMFImageGalleryDescriptionTextViewの高さ計算が全ての画面サイズで正しく動作するか
- [ ] 共有機能（ActivitySource）の各SNSプラットフォーム対応が最新のAPI仕様に準拠しているか
