---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 176
  claims_with_evidence: 168
  claims_without_evidence: 8
confidence_derived: 0.95
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：168 / 176、根拠なし：8
- 優先レビュー（高）
  1. **C-101〜C-106（Present/\_present関連）**：実行時の動作はD3D/DXGIデバイス依存のため、モックなしでの検証が困難
  2. **C-150〜C-152（WIC関連）**：COM/WICファクトリに依存しテスト環境での再現性に要確認
  3. **C-154〜C-158（BackendD2D/D3Dレンダリング）**：GPU依存処理のためテスト環境構築が必要

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

- E-01: `src/renderer/atlas/AtlasEngine.h` — AtlasEngineクラス定義（publicメソッド一覧）
- E-02: `src/renderer/atlas/AtlasEngine.api.cpp` — IRenderEngine API実装、getter/setter実装
- E-03: `src/renderer/atlas/AtlasEngine.cpp` — AtlasEngineコアロジック（StartPaint/EndPaint/PaintBufferLine等）
- E-04: `src/renderer/atlas/AtlasEngine.r.cpp` — Present/SwapChain管理
- E-05: `src/renderer/atlas/Backend.h` — テンプレートユーティリティ関数（colorFromU32, clamp, alignForward等）
- E-06: `src/renderer/atlas/common.h` — vec2/vec4/rect/range/Buffer/ShapedRow/RenderingPayload定義
- E-07: `src/renderer/atlas/BuiltinGlyphs.h` — BuiltinGlyphs名前空間の関数宣言
- E-08: `src/renderer/atlas/BuiltinGlyphs.cpp` — IsBuiltinGlyph/GetBitmapCellIndex/DrawBuiltinGlyph実装
- E-09: `src/renderer/atlas/DWriteTextAnalysis.h` — TextAnalysisSource/TextAnalysisSinkクラス定義
- E-10: `src/renderer/atlas/DWriteTextAnalysis.cpp` — TextAnalysisSource/TextAnalysisSink実装
- E-11: `src/renderer/atlas/dwrite.h` — DWrite_GetRenderParams/DWrite_GetGammaRatios/DWrite_IsThinFontFamily宣言
- E-12: `src/renderer/atlas/dwrite.cpp` — DWriteユーティリティ関数実装
- E-13: `src/renderer/atlas/wic.h` — WIC::SaveTextureToPNG/LoadTextureFromFile宣言
- E-14: `src/renderer/atlas/wic.cpp` — WICユーティリティ関数実装
- E-15: `src/renderer/atlas/BackendD2D.h` — BackendD2D構造体定義
- E-16: `src/renderer/atlas/BackendD2D.cpp` — BackendD2D実装
- E-17: `src/renderer/atlas/BackendD3D.h` — BackendD3D構造体定義、内部構造体・列挙型
- E-18: `src/renderer/atlas/BackendD3D.cpp` — BackendD3D実装

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | colorFromU32が0xffffffffを(1,1,1,1)に変換 | E-05 L44-52 | ○ |
| C-002 | colorFromU32が各RGBAチャネルを分離 | E-05 L44-52 | ○ |
| C-003 | colorFromU32が0x00000000を(0,0,0,0)に変換 | E-05 L44-52 | ○ |
| C-004〜C-006 | colorFromU32Premultiplyのアルファ事前乗算 | E-05 L54-62 | ○ |
| C-007〜C-009 | u32ColorPremultiplyのu32形式事前乗算 | E-05 L64-75 | ○ |
| C-010〜C-014 | clamp関数の各境界動作 | E-05 L80-84 | ○ |
| C-015〜C-018 | alignForwardのアライメント切り上げ動作 | E-05 L86-91 | ○ |
| C-019〜C-021 | vec2のoperator==/operator!=動作 | E-06 L58-67 | ○ |
| C-022〜C-026 | rect::empty/non_empty判定 | E-06 L83-103 | ○ |
| C-027〜C-033 | range::empty/non_empty/contains判定 | E-06 L105-127 | ○ |
| C-034〜C-043 | Buffer構築・アクセス・ムーブセマンティクス | E-06 L164-309 | ○ |
| C-044〜C-045 | ShapedRow::Clear動作 | E-06 L470-482 | ○ |
| C-046 | RenderingPayload::MarkAllAsDirty動作 | E-06 L588-593 | ○ |
| C-047 | DirtyGenerationalSettings初期化 | E-06 L418-427 | ○ |
| C-048〜C-053 | api_narrow/vec2_narrowのナロー変換 | E-02 L28-42 | ○ |
| C-054〜C-065 | Invalidate系メソッド群 | E-02 L46-162 | ○ |
| C-066〜C-068 | UpdateDpiのDPI更新 | E-02 L189-200 | ○ |
| C-069〜C-070 | UpdateViewportのビューポート更新 | E-02 L202-222 | ○ |
| C-071〜C-072 | UpdateSoftFontの設定 | E-02 L180-187 | ○ |
| C-073 | GetDirtyArea | E-02 L286-290 | ○ |
| C-074〜C-075 | GetFontSize（null検証含む） | E-02 L292-298 | ○ |
| C-076〜C-077 | IsGlyphWideByFont（null検証含む） | E-02 L300-324 | ○ |
| C-078〜C-079 | GetPixelShaderPath/GetRetroTerminalEffect | E-02 L335-343 | ○ |
| C-080〜C-081 | GetViewportInCharacters/GetViewportInPixels | E-02 L345-357 | ○ |
| C-082〜C-083 | SetAntialiasingMode | E-02 L363-371 | ○ |
| C-084〜C-085 | EnableTransparentBackground | E-02 L378-385 | ○ |
| C-086〜C-087 | SetHwnd | E-02 L387-394 | ○ |
| C-088 | SetPixelShaderPath | E-02 L396-405 | ○ |
| C-089 | SetRetroTerminalEffect | E-02 L418-425 | ○ |
| C-090 | SetSoftwareRendering | E-02 L427-433 | ○ |
| C-091 | SetDisablePartialInvalidation | E-02 L435-441 | ○ |
| C-092 | SetGraphicsAPI | E-02 L443-449 | ○ |
| C-093〜C-096 | SetWindowSize（境界値含む） | E-02 L456-476 | ○ |
| C-097 | UpdateHyperlinkHoveredId | E-02 L503-506 | ○ |
| C-098〜C-100 | _resolveTransparencySettings | E-02 L510-527 | ○ |
| C-101 | Present正常系 | E-04 L32-53 | ○ |
| C-102 | Presentデバイスロスト時のリカバリ | E-04 L54-80 | ○ |
| C-103 | RequiresContinuousRedraw | E-04 L83-86 | ○ |
| C-104〜C-106 | _present（ダーティ領域・スクロール・空領域） | E-04 L451-509 | ○ |
| C-107〜C-113 | IsBuiltinGlyph境界値テスト | E-08 L1052-1055, E-07 L13-18 | ○ |
| C-114〜C-116 | GetBitmapCellIndex | E-08 L1070-1081 | ○ |
| C-117〜C-120 | IsSoftFontChar境界値テスト | E-07 L24-27 | ○ |
| C-121〜C-131 | TextAnalysisSource各メソッド | E-10 L12-105 | ○ |
| C-132〜C-138 | TextAnalysisSink各メソッド | E-10 L107-177 | ○ |
| C-139 | DWrite_GetRenderParams | E-12 L26-38 | ○ |
| C-140〜C-144 | DWrite_GetGammaRatios境界値 | E-12 L50-79 | ○ |
| C-145〜C-149 | DWrite_IsThinFontFamily判定 | E-12 L116-132 | ○ |
| C-150 | SaveTextureToPNG | E-14 L19-67 | △ |
| C-151 | LoadTextureFromFile正常系 | E-14 L69-153 | △ |
| C-152 | LoadTextureFromFile巨大画像リサイズ | E-14 L96-113 | △ |
| C-153 | BackendD2D::ReleaseResources | E-16 L28-34 | ○ |
| C-154 | BackendD2D::Render | E-16 L36-70 | △ |
| C-155 | BackendD2D::RequiresContinuousRedraw | E-16 L72-75 | ○ |
| C-156 | BackendD3Dコンストラクタ | E-18 L66-98 | △ |
| C-157 | BackendD3D::ReleaseResources | E-17 | △ |
| C-158 | BackendD3D::Render | E-18 | △ |
| C-159〜C-164 | AtlasGlyphEntryHashTrait各メソッド | E-17 L115-142 | ○ |
| C-165〜C-176 | AtlasEngine描画パイプラインメソッド（StartPaint/EndPaint等） | E-03, E-01 L25-49 | △ |

## 4) 不足情報（Unknown / Missing）
- **C-150〜C-152（WICユーティリティ）**: WICファクトリの初期化にCOM環境が必要であり、テスト環境での再現性が保証されない。テスト実行時にCOM初期化とWICファクトリのモックまたはスタブが必要。
  - 候補：WICファクトリのモック / テスト用PNGファイルの事前生成 / 統合テストとしての分離
- **C-154, C-156, C-158（Backend描画メソッド）**: D3D11/D2Dデバイス依存の処理であり、単体テストではGPUデバイスのモックまたはWARPアダプタが必要。
  - 候補：WARPアダプタによるヘッドレステスト / 描画結果のピクセル比較テスト / リソース生成のみの検証
- **C-157（BackendD3D::ReleaseResources）**: ヘッダーにインターフェース定義はあるが具体的なReleaseResources実装のコード読取りが不完全。
  - 候補：BackendD3D.cppの該当部分の詳細確認
- **C-165〜C-176（AtlasEngine描画パイプライン）**: AtlasEngine.cpp（大規模ファイル）の全行読取りが完了しておらず、StartPaint/EndPaint/PaintBufferLine等の内部実装の詳細が一部推定に基づく。
  - 候補：AtlasEngine.cppの全行読取り / 既存テストコードの参照

## 5) リスクフラグ（レビュー観点）
- **1: 中リスク** — WICユーティリティ（C-150〜C-152）はCOM/WIC依存であり、CI環境でのテスト実行が困難な場合がある
- **1: 中リスク** — BackendD2D/D3Dのレンダリングテスト（C-154, C-156, C-158）はGPUデバイス依存
- **0: 低リスク** — テンプレートユーティリティ関数（colorFromU32, clamp, alignForward等）はconstexprであり確実にテスト可能
- **0: 低リスク** — BuiltinGlyphs判定関数はpure functionであり確実にテスト可能
- **0: 低リスク** — DWriteTextAnalysis系クラスはCOMインターフェース実装だがスタック上で構築可能

## 6) レビュアーチェックリスト（最小）
- [ ] colorFromU32/colorFromU32Premultiply/u32ColorPremultiplyの期待値計算が正確か（ビット演算の検証）
- [ ] api_narrow/vec2_narrowのオーバーフロー検出条件が正しいか（符号付き/符号なしの変換ルール確認）
- [ ] IsBuiltinGlyphの境界値（BoxDrawing_CharCount=0xA0、Powerline_CharCount=0x10）が正確か
- [ ] DWrite_GetGammaRatiosのインデックス計算（gamma * 10 + 0.5 - 10）とクランプ範囲が正確か
- [ ] DWrite_IsThinFontFamilyのリスト一致確認（6フォントファミリ）
- [ ] _resolveTransparencySettingsの条件分岐（透過+ClearType -> Grayscale強制変換）が正確か
- [ ] SetWindowSizeの負値・ゼロ値の挙動（pixels==0で即座にreturn）が正確か
- [ ] BackendD2D/D3Dテストのテスト環境要件（WARPアダプタ要否）を確認
