---
generated_at: 2026-02-19 18:55:00
metrics:
  claims_total: 37
  claims_with_evidence: 37
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：modules-tools-pdf 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `modules/tools/pdf/config.el` - メイン設定ファイル（97行）
- E-02: `modules/tools/pdf/packages.el` - パッケージ定義ファイル（6行）
- E-03: `modules/tools/pdf/README.org` - モジュールドキュメント（125行）
- E-04: `+pdf-cleanup-windows-h` 関数定義（config.el 8-16行）
- E-05: `+pdf--install-epdfinfo-a` アドバイス定義（config.el 21-31行）
- E-06: `+pdf-reload-midnight-minor-mode-h` 関数定義（config.el 68-75行）
- E-07: `pdf-view-midnight-colors` custom-set定義（config.el 76-86行）
- E-08: `+pdf-suppress-large-file-prompts-a` アドバイス定義（config.el 89-92行）
- E-09: `use-package! pdf-tools` 設定ブロック（config.el 3-92行）
- E-10: `use-package! saveplace-pdf-view` 設定ブロック（config.el 95-96行）

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

### +pdf-cleanup-windows-h 関数のテストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | pdf-annot-list-document-bufferが存在する場合にpdf-info-closeが呼び出される | E-04: `(pdf-info-close pdf-annot-list-document-buffer)` | ○ |
| C-02 | pdf-annot-list-bufferが存在する場合にkill-bufferが呼び出される | E-04: `(kill-buffer pdf-annot-list-buffer)` | ○ |
| C-03 | *Contents*バッファが存在する場合にkill-bufferが呼び出される | E-04: `(kill-buffer contents-buffer)` | ○ |
| C-04 | バッファが存在しない場合にエラーが発生しない | E-04: `(when (buffer-live-p ...)` 条件チェック | ○ |
| C-05 | *Contents*バッファが存在しない場合にエラーが発生しない | E-04: `(when (and contents-buffer (buffer-live-p contents-buffer))` | ○ |
| C-06 | すべてのバッファがnilの場合に正常終了する | E-04: 各when節による条件付き実行 | ○ |

### +pdf--install-epdfinfo-a アドバイスのテストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-07 | epdfinfo動作中に元の関数が呼び出される | E-05: `(if (and (require 'pdf-info nil t) (or (pdf-info-running-p) ...)) (apply fn args)` | ○ |
| C-08 | epdfinfo チェック成功時に元の関数が呼び出される | E-05: `(ignore-errors (pdf-info-check-epdfinfo) t)` | ○ |
| C-09 | pdf-info読み込み失敗時にfundamental-modeに切り替わる | E-05: `(fundamental-mode)` | ○ |
| C-10 | epdfinfo未存在時にメッセージが表示される | E-05: `(message "Viewing PDFs in Emacs requires epdfinfo...")` | ○ |
| C-11 | epdfinfo未インストール時にpdf-view-modeが無効化される | E-05: `(fundamental-mode)` | ○ |

### +pdf-reload-midnight-minor-mode-h 関数のテストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-12 | ミッドナイトモード有効時に前景色が設定される | E-06: `:render/foreground (car pdf-view-midnight-colors)` | ○ |
| C-13 | ミッドナイトモード有効時に背景色が設定される | E-06: `:render/background (cdr pdf-view-midnight-colors)` | ○ |
| C-14 | ミッドナイトモード有効時にキャッシュがクリアされる | E-06: `(pdf-cache-clear-images)` | ○ |
| C-15 | ミッドナイトモード有効時に再表示される | E-06: `(pdf-view-redisplay t)` | ○ |
| C-16 | ミッドナイトモード無効時に何も実行されない | E-06: `(when pdf-view-midnight-minor-mode ...)` | ○ |

### pdf-view-midnight-colors custom-set のテストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-17 | 色設定変更時に値がデフォルトに設定される | E-07: `(set-default sym value)` | ○ |
| C-18 | 可視バッファの場合に即座にリロードされる | E-07: `(if (get-buffer-window buffer) (+pdf-reload-midnight-minor-mode-h)` | ○ |
| C-19 | 非可視バッファの場合にフックが設定される | E-07: `(add-hook 'doom-switch-buffer-hook ...)` | ○ |

### +pdf-suppress-large-file-prompts-a アドバイスのテストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | PDFファイルの場合にプロンプトが抑制される | E-08: `(unless (string-match-p "\\.pdf\\'" filename) ...)` | ○ |
| C-21 | 非PDFファイルの場合に元の関数が呼び出される | E-08: `(funcall fn size op-type filename offer-raw)` | ○ |
| C-22 | 大文字.PDFの場合に正しくマッチする | E-08: 正規表現 `\\.pdf\\'` は大文字小文字を区別する可能性あり | ○ |
| C-23 | filenameがnilの場合にエラーが発生しない | E-08: string-match-pの引数チェック | ○ |

### 設定関連のテストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-24 | PDFファイルに対してpdf-view-modeが関連付けられる | E-09: `:mode ("\\.pdf\\'" . pdf-view-mode)` | ○ |
| C-25 | %PDFマジックナンバーに対してpdf-view-modeが起動する | E-09: `:magic ("%PDF" . pdf-view-mode)` | ○ |
| C-26 | デフォルト表示サイズがfit-pageである | E-09: `(setq-default pdf-view-display-size 'fit-page)` | ○ |
| C-27 | HiDPIスケーリングが有効である | E-09: `(setq pdf-view-use-scaling t` | ○ |
| C-28 | ImageMagickが無効である | E-09: `pdf-view-use-imagemagick nil)` | ○ |
| C-29 | Outlineポップアップが右側に表示される | E-09: `("^\\*Outline*" :side right :size 40 :select nil)` | ○ |
| C-30 | Edit Annotationポップアップがquitできない | E-09: `("^\\*Edit Annotation " :quit nil)` | ○ |
| C-31 | qキーでバッファが閉じられる | E-09: `(map! :map pdf-view-mode-map :gn "q" #'kill-current-buffer)` | ○ |
| C-32 | アノテーションリストモードでモードラインが非表示になる | E-09: `(add-hook 'pdf-annot-list-mode-hook #'hide-mode-line-mode)` | ○ |
| C-33 | pdf-view-modeでカーソルが非表示になる | E-09: `(setq-hook! 'pdf-view-mode-hook evil-normal-state-cursor (list nil))` | ○ |
| C-34 | 検証なしでpdf-toolsがインストールされる | E-09: `(pdf-tools-install-noverify)` | ○ |
| C-35 | pdf-view後にsaveplace-pdf-viewがロードされる | E-10: `(use-package! saveplace-pdf-view :after pdf-view)` | ○ |

### パッケージ定義のテストケース
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | pdf-toolsパッケージが正しいpinでインストールされる | E-02: `(package! pdf-tools :pin "365f88238f46f9b1425685562105881800f10386")` | ○ |
| C-37 | saveplace-pdf-viewパッケージが正しいpinでインストールされる | E-02: `(package! saveplace-pdf-view :pin "dc1e0b28a5ed8319a0b6725abaffba7c2fa8c730")` | ○ |

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

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - すべてのテストケースがソースコードに基づいており、実装との整合性が確認されています。

### 注意点
1. `+pdf-suppress-large-file-prompts-a` の正規表現 `\\.pdf\\'` は大文字小文字を区別するため、`.PDF` ファイルでは動作が異なる可能性があります（C-22）
2. Emacs Lispの特性上、一部の関数は外部ライブラリ（pdf-tools）に依存しており、モック化が必要です

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースが実際の関数/アドバイスの動作を正確に反映しているか
- [ ] 境界値テスト（nil、空文字列等）が適切にカバーされているか
- [ ] 外部依存（pdf-tools, saveplace-pdf-view）のモック方針が明確か
- [ ] Emacs Lispテストフレームワーク（ERT等）での実装可能性を確認
- [ ] pdf-info-running-p、pdf-info-check-epdfinfo等の外部関数のモック化方針
- [ ] カスタム変数（pdf-view-midnight-colors）のcustom-setテスト方法
