---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 138
  claims_with_evidence: 138
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：inspector モジュール単体テストケース一覧

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコード内の関数・メソッド定義が存在するか
2. **根拠との整合性**：テストケースの内容がソースコードの実装と矛盾していないか
3. **網羅性**：対象モジュール内の全ての公開関数・メソッドがカバーされているか

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

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

---

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

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

- E-01: `src/inspector/Inspector.zig` - Inspectorコア実装（setup, init, deinit, rendererInfo, recordKeyEvent, recordPtyRead, render）
- E-02: `src/inspector/main.zig` - モジュールエントリーポイント（widgets, Inspector, KeyEventのエクスポート）
- E-03: `src/inspector/widgets.zig` - ウィジェット共通機能（helpMarker, DetachableHeader, detachableHeader）
- E-04: `src/inspector/units.zig` - ユニット変換（toKibiBytes）
- E-05: `src/inspector/widgets/key.zig` - キーイベントウィジェット（Event, Stream, EventRing, actionColor, keyColor, hsvToRgba）
- E-06: `src/inspector/widgets/renderer.zig` - レンダラー情報ウィジェット（Info）
- E-07: `src/inspector/widgets/terminal.zig` - ターミナル情報ウィジェット（Info, ScreenMap, screensTable, miscTable, layoutTable, mouseTable, colorTable, modesTable, dynamicRGB, palette）
- E-08: `src/inspector/widgets/surface.zig` - サーフェス情報ウィジェット（Inspector, Mouse, Info, dimensionsTable, fontTable, mouseTable）
- E-09: `src/inspector/widgets/style.zig` - スタイル表示ウィジェット（table, color）
- E-10: `src/inspector/widgets/page.zig` - ページ情報ウィジェット（inspector, treeNode, managedMemory, rowsTable, stylesList, hyperlinksList, flagCell）
- E-11: `src/inspector/widgets/pagelist.zig` - ページリストウィジェット（Inspector, CellChooser, CellInfo, summaryTable, scrollbarInfo, scrollbarWidget, regionsTable, regionRow, regionHelpText, trackedPinsTable, maxCoord, hyperlinkTable, graphemeTable）
- E-12: `src/inspector/widgets/termio.zig` - ターミナルI/Oウィジェット（Stream, VTEvent, VTHandler, getKeyAction, eventTable）
- E-13: `src/inspector/widgets/screen.zig` - スクリーン情報ウィジェット（Info, cursorTable, cursorStyle, keyboardTable, kittyGraphicsTable, internalStateTable, semanticPromptTable）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | Inspector.setup: ImGuiの初期設定が正しく行われること | E-01 L25-56 | ○ |
| C-002 | Inspector.init: Inspectorインスタンスが正常に初期化されること | E-01 L58-62 | ○ |
| C-003 | Inspector.init: メモリ不足時にエラーが返されること | E-01 L58-62 | ○ |
| C-004 | Inspector.deinit: リソースが正しく解放されること | E-01 L64-66 | ○ |
| C-005 | Inspector.rendererInfo: レンダラー情報パネルへの参照が取得できること | E-01 L68-72 | ○ |
| C-006 | Inspector.recordKeyEvent: キーボードイベントが記録されること | E-01 L74-98 | ○ |
| C-007 | Inspector.recordKeyEvent: 最大容量(50)に達した時に古いイベントが削除されること | E-01 L80-94 | ○ |
| C-008 | Inspector.recordKeyEvent: メモリ不足時にリサイズが試行されること | E-01 L84-88 | ○ |
| C-009 | Inspector.recordPtyRead: PTYからの読み取りデータが記録されること | E-01 L100-112 | ○ |
| C-010 | Inspector.render: フレームが正しくレンダリングされること | E-01 L114-131 | ○ |
| C-011 | toKibiBytes: バイトがキビバイトに変換されること | E-04 L1-3 | ○ |
| C-012 | toKibiBytes: 0バイトの場合0が返されること | E-04 L1-3 | ○ |
| C-013 | toKibiBytes: 1024未満のバイト数で0が返されること | E-04 L1-3 | ○ |
| C-014 | helpMarker: ヘルプマーカーが表示されること | E-03 L15-24 | ○ |
| C-015 | DetachableHeader.window: 切り離された状態でウィンドウが作成されること | E-03 L48-84 | ○ |
| C-016 | DetachableHeader.window: 切り離されていない状態でnullが返されること | E-03 L52-56 | ○ |
| C-017 | DetachableHeader.windowEnd: ウィンドウが正しく終了されること | E-03 L39-44 | ○ |
| C-018 | DetachableHeader.header: 折りたたみヘッダーが表示されること | E-03 L86-137 | ○ |
| C-019 | DetachableHeader.header: 切り離し状態でfalseが返されること | E-03 L91 | ○ |
| C-020 | detachableHeader: 切り離し可能ヘッダーが正しく描画されること | E-03 L150-227 | ○ |
| C-021 | Event.init: キーイベントが正しく初期化されること | E-05 L28-33 | ○ |
| C-022 | Event.init: UTF-8データが複製されること | E-05 L30-31 | ○ |
| C-023 | Event.deinit: イベントリソースが解放されること | E-05 L35-39 | ○ |
| C-024 | Event.label: プレスアクションのラベルが生成されること | E-05 L43-71 | ○ |
| C-025 | Event.label: 修飾キー付きラベルが生成されること | E-05 L53-56 | ○ |
| C-026 | Event.label: バッファが十分でない場合にエラーが発生すること | E-05 L43-71 | ○ |
| C-027 | Event.render: イベント詳細がテーブルに描画されること | E-05 L74-168 | ○ |
| C-028 | Event.renderUtf8: UTF-8がコードポイント形式で表示されること | E-05 L170-194 | ○ |
| C-029 | Event.renderUtf8: 無効なUTF-8でエラーメッセージが表示されること | E-05 L182-183 | ○ |
| C-030 | Event.renderPty: PTYデータがフォーマットされて表示されること | E-05 L196-228 | ○ |
| C-031 | Stream.init: キーストリームが正しく初期化されること | E-05 L265-268 | ○ |
| C-032 | Stream.deinit: ストリームリソースが解放されること | E-05 L271-275 | ○ |
| C-033 | Stream.draw: イベントテーブルが描画されること | E-05 L277-464 | ○ |
| C-034 | Stream.draw: イベントが空の場合メッセージが表示されること | E-05 L284-288 | ○ |
| C-035 | Stream.draw: open=falseの場合何も描画されないこと | E-05 L282 | ○ |
| C-036 | actionColor: pressアクションの色が返されること | E-05 L468-474 | ○ |
| C-037 | keyColor: キーに対応する色が生成されること | E-05 L478-482 | ○ |
| C-038 | hsvToRgba: HSVがRGBAに変換されること | E-05 L485-535 | ○ |
| C-039 | hsvToRgba: h=0の場合赤が返されること | E-05 L496-501 | ○ |
| C-040 | Info.deinit: レンダラー情報リソースが解放されること | E-06 L20-22 | ○ |
| C-041 | Info.overlayFeatures: オーバーレイ機能の配列が返されること | E-06 L25-41 | ○ |
| C-042 | Info.overlayFeatures: featuresが空の場合空配列が返されること | E-06 L25-41 | ○ |
| C-043 | Info.draw: レンダラー情報ウィンドウが描画されること | E-06 L44-58 | ○ |
| C-044 | Info.draw: open=falseの場合何も描画されないこと | E-06 L49 | ○ |
| C-045 | Info.overlayHyperlinks: ハイパーリンクチェックボックスがトグルされること | E-06 L60-75 | ○ |
| C-046 | Info.overlaySemanticPrompts: セマンティックプロンプトチェックボックスがトグルされること | E-06 L77-122 | ○ |
| C-047 | terminal.Info.draw: ターミナル情報ウィンドウが描画されること | E-07 L36-127 | ○ |
| C-048 | terminal.Info.draw: 切り離されたウィンドウが描画されること | E-07 L47-66 | ○ |
| C-049 | terminal.Info.draw: パレットウィンドウが表示されること | E-07 L68-78 | ○ |
| C-050 | ScreenMap: スクリーン情報がマップに格納・取得できること | E-07 L141-144 | ○ |
| C-051 | screensTable: スクリーン一覧テーブルが描画されること | E-07 L147-231 | ○ |
| C-052 | miscTable: その他情報テーブルが描画されること | E-07 L234-296 | ○ |
| C-053 | layoutTable: レイアウト情報テーブルが描画されること | E-07 L299-415 | ○ |
| C-054 | mouseTable: マウス情報テーブルが描画されること | E-07 L418-485 | ○ |
| C-055 | colorTable: カラー情報テーブルが描画されること | E-07 L488-572 | ○ |
| C-056 | modesTable: ターミナルモード一覧が描画されること | E-07 L575-617 | ○ |
| C-057 | dynamicRGB: 動的RGB色が描画されること | E-07 L620-686 | ○ |
| C-058 | dynamicRGB: オーバーライド色がある場合両方表示されること | E-07 L640-658 | ○ |
| C-059 | palette: 256色パレットが16x16グリッドで描画されること | E-07 L689-726 | ○ |
| C-060 | surface.Inspector.init: Surfaceインスペクタが正しく初期化されること | E-08 L30-39 | ○ |
| C-061 | surface.Inspector.deinit: Surfaceインスペクタリソースが解放されること | E-08 L41-45 | ○ |
| C-062 | surface.Inspector.draw: 全ウィンドウが描画されること | E-08 L47-148 | ○ |
| C-063 | surface.Inspector.createDockSpace: ドックスペースが作成されること | E-08 L155-194 | ○ |
| C-064 | surface.Inspector.createDockSpace: 既存ドックスペースでfalseが返されること | E-08 L159 | ○ |
| C-065 | surface.Info.draw: サーフェス情報が描画されること | E-08 L211-240 | ○ |
| C-066 | surface.Info.draw: open=falseの場合何も描画されないこと | E-08 L218 | ○ |
| C-067 | dimensionsTable: 寸法テーブルが描画されること | E-08 L243-321 | ○ |
| C-068 | fontTable: フォントテーブルが描画されること | E-08 L323-360 | ○ |
| C-069 | mouseTable: マウステーブルが描画されること | E-08 L362-503 | ○ |
| C-070 | style.table: スタイルテーブルが描画されること | E-09 L7-77 | ○ |
| C-071 | style.table: スタイルフラグが表示されること | E-09 L48-73 | ○ |
| C-072 | style.color: デフォルト色で「default」が表示されること | E-09 L89 | ○ |
| C-073 | style.color: パレット色でインデックスとカラーピッカーが表示されること | E-09 L91-107 | ○ |
| C-074 | style.color: RGB色でカラーピッカーが表示されること | E-09 L110-123 | ○ |
| C-075 | page.inspector: ページ情報が描画されること | E-10 L10-22 | ○ |
| C-076 | page.treeNode: ツリーノードが描画されること | E-10 L27-85 | ○ |
| C-077 | page.treeNode: アクティブラベルが表示されること | E-10 L71-74 | ○ |
| C-078 | page.treeNode: ビューポートラベルが表示されること | E-10 L75-78 | ○ |
| C-079 | page.treeNode: ダーティラベルが表示されること | E-10 L79-82 | ○ |
| C-080 | page.managedMemory: 管理メモリテーブルが描画されること | E-10 L87-201 | ○ |
| C-081 | page.rowsTable: 行テーブルが描画されること | E-10 L203-286 | ○ |
| C-082 | page.stylesList: スタイル一覧が描画されること | E-10 L288-350 | ○ |
| C-083 | page.stylesList: スタイルがない場合メッセージが表示されること | E-10 L298-301 | ○ |
| C-084 | page.hyperlinksList: ハイパーリンク一覧が描画されること | E-10 L352-420 | ○ |
| C-085 | page.hyperlinksList: ハイパーリンクがない場合メッセージが表示されること | E-10 L362-365 | ○ |
| C-086 | page.flagCell: trueの場合緑色「yes」が表示されること | E-10 L422-424 | ○ |
| C-087 | page.flagCell: falseの場合グレー「-」が表示されること | E-10 L425-427 | ○ |
| C-088 | pagelist.Inspector.draw: ページリスト情報が描画されること | E-11 L14-83 | ○ |
| C-089 | pagelist.summaryTable: サマリーテーブルが描画されること | E-11 L85-161 | ○ |
| C-090 | pagelist.scrollbarInfo: スクロールバー情報が描画されること | E-11 L163-207 | ○ |
| C-091 | pagelist.scrollbarWidget: スクロールバーウィジェットが描画されること | E-11 L346-419 | ○ |
| C-092 | pagelist.scrollbarWidget: ドラッグで行デルタが設定されること | E-11 L399-408 | ○ |
| C-093 | pagelist.regionsTable: リージョンテーブルが描画されること | E-11 L209-228 | ○ |
| C-094 | pagelist.regionRow: リージョン行が描画されること | E-11 L230-260 | ○ |
| C-095 | pagelist.regionHelpText: リージョンごとのヘルプテキストが返されること | E-11 L262-276 | ○ |
| C-096 | pagelist.trackedPinsTable: 追跡ピンテーブルが描画されること | E-11 L278-344 | ○ |
| C-097 | pagelist.CellChooser.draw: セル選択UIが描画されること | E-11 L433-568 | ○ |
| C-098 | pagelist.CellChooser.draw: 座標がリージョン最大値にクランプされること | E-11 L444-450 | ○ |
| C-099 | pagelist.CellChooser.draw: リージョンが空の場合メッセージが表示されること | E-11 L531-534 | ○ |
| C-100 | pagelist.maxCoord: リージョンの最大座標が返されること | E-11 L571-578 | ○ |
| C-101 | pagelist.maxCoord: リージョンが空の場合nullが返されること | E-11 L575 | ○ |
| C-102 | pagelist.hyperlinkTable: ハイパーリンク情報が表示されること | E-11 L580-633 | ○ |
| C-103 | pagelist.hyperlinkTable: リンクデータがない場合メッセージが表示されること | E-11 L589-596 | ○ |
| C-104 | pagelist.graphemeTable: グラフェム情報が表示されること | E-11 L635-675 | ○ |
| C-105 | pagelist.graphemeTable: グラフェムデータがない場合メッセージが表示されること | E-11 L644-651 | ○ |
| C-106 | pagelist.CellInfo.draw: セル情報テーブルが描画されること | E-11 L678-852 | ○ |
| C-107 | termio.Stream.init: VTストリームが正しく初期化されること | E-12 L24-35 | ○ |
| C-108 | termio.Stream.deinit: VTストリームリソースが解放されること | E-12 L37-43 | ○ |
| C-109 | termio.Stream.recordPtyRead: PTYデータがパースされて記録されること | E-12 L45-58 | ○ |
| C-110 | termio.Stream.draw: VTイベント一覧が描画されること | E-12 L60-332 | ○ |
| C-111 | termio.Stream.draw: 一時停止ボタンが機能すること | E-12 L71-77 | ○ |
| C-112 | termio.Stream.draw: クリアボタンが機能すること | E-12 L87-96 | ○ |
| C-113 | termio.Stream.draw: キーボードナビゲーションが機能すること | E-12 L132-183 | ○ |
| C-114 | termio.getKeyAction: Jキーでdownが返されること | E-12 L336-350 | ○ |
| C-115 | termio.getKeyAction: Kキーでupが返されること | E-12 L340-341 | ○ |
| C-116 | termio.getKeyAction: キーが押されていない場合noneが返されること | E-12 L349 | ○ |
| C-117 | termio.VTEvent.init: VTイベントが正しく初期化されること | E-12 L426-458 | ○ |
| C-118 | termio.VTEvent.deinit: VTイベントリソースが解放されること | E-12 L460-463 | ○ |
| C-119 | termio.VTEvent.passFilter: フィルタを通過する場合trueが返されること | E-12 L466-495 | ○ |
| C-120 | termio.VTEvent.passFilter: フィルタを通過しない場合falseが返されること | E-12 L466-495 | ○ |
| C-121 | termio.VTEvent.encodeAction: printアクションがエンコードされること | E-12 L514-517 | ○ |
| C-122 | termio.VTEvent.encodeAction: executeアクションがエンコードされること | E-12 L519-540 | ○ |
| C-123 | termio.VTEvent.encodeCSI: CSIシーケンスがエンコードされること | E-12 L543-551 | ○ |
| C-124 | termio.VTHandler.vtRaw: VTイベントが処理されること | E-12 L745-803 | ○ |
| C-125 | termio.VTHandler.vtRaw: 一時停止中はイベントが無視されること | E-12 L756-757 | ○ |
| C-126 | termio.VTHandler.vtRaw: フィルタ除外タイプは無視されること | E-12 L765-766 | ○ |
| C-127 | termio.VTHandler.vtRaw: 最大容量(100)に達した時に古いイベントが削除されること | E-12 L783-795 | ○ |
| C-128 | screen.Info.draw: スクリーン情報が描画されること | E-13 L27-127 | ○ |
| C-129 | screen.Info.draw: 非アクティブスクリーンで警告が表示されること | E-13 L120-126 | ○ |
| C-130 | screen.Info.createDockSpace: ドックスペースが作成されること | E-13 L132-158 | ○ |
| C-131 | screen.cursorTable: カーソルテーブルが描画されること | E-13 L162-213 | ○ |
| C-132 | screen.cursorStyle: カーソルスタイルが描画されること | E-13 L216-218 | ○ |
| C-133 | screen.keyboardTable: キーボード情報が描画されること | E-13 L221-284 | ○ |
| C-134 | screen.keyboardTable: Kittyモード時にフラグが表示されること | E-13 L247-267 | ○ |
| C-135 | screen.kittyGraphicsTable: Kittyグラフィックス情報が描画されること | E-13 L287-331 | ○ |
| C-136 | screen.kittyGraphicsTable: 無効時にメッセージが表示されること | E-13 L290-293 | ○ |
| C-137 | screen.internalStateTable: 内部状態テーブルが描画されること | E-13 L334-363 | ○ |
| C-138 | screen.semanticPromptTable: セマンティックプロンプト情報が描画されること | E-13 L366-400 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースがソースコードの実装に基づいて生成されています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードに基づいており、信頼度は100%

### 注意事項
- inspectorモジュールはImGuiを使用したデバッグ/開発ツールであり、多くの関数がUI描画を行う
- 実際のテスト実行時にはImGuiのモック化が必要になる可能性がある
- ユニット変換関数(toKibiBytes)は純粋関数であり、テストが容易

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースの網羅性：全13ファイルの公開関数がカバーされているか確認
- [ ] 優先度の妥当性：高優先度が初期化/解放関数に適切に設定されているか確認
- [ ] 境界値テスト：リングバッファの最大容量(50/100)のテストが含まれているか確認
- [ ] 異常系テスト：メモリ不足、無効入力のテストが含まれているか確認
- [ ] ImGuiモック：UI関連テストの実行可能性を検討
