---
generated_at: 2026-02-22 16:10:00
metrics:
  claims_total: 72
  claims_with_evidence: 72
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：Avalonia.Headless.Vnc 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：72 / 72、根拠なし：0
- 優先レビュー（高）
  1. **UT-VNC-020**：MainWindow未初期化時の例外処理（コード根拠あり、実際の動作確認推奨）
  2. **UT-VNC-066**：Captureメソッドのスレッドセーフ性（lockによる同期確認が必要）
  3. **UT-VNC-015〜017**：VNCサーバー起動処理（統合テスト的な検証が必要な可能性）

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

- E-01: `src/Headless/Avalonia.Headless.Vnc/AvaloniaVncLogger.cs` - ILogger実装クラス
- E-02: `src/Headless/Avalonia.Headless.Vnc/HeadlessVncPlatformExtensions.cs` - VNCプラットフォーム拡張メソッド
- E-03: `src/Headless/Avalonia.Headless.Vnc/HeadlessVncFramebufferSource.cs` - フレームバッファソース実装

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

### AvaloniaVncLogger クラス

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Log メソッドがLogLevelをLogEventLevelに変換してLoggerに出力 | E-01 (10-14行目) | ○ |
| C-02 | IsEnabled メソッドがLogger.IsEnabledを呼び出す | E-01 (16-19行目) | ○ |
| C-03 | BeginScope メソッドがDisposable.Emptyを返す | E-01 (21-24行目) | ○ |
| C-04 | ToLogEventLevel メソッドがswitch式でLogLevelをLogEventLevelに変換 | E-01 (26-38行目) | ○ |
| C-05 | 未定義のLogLevelでArgumentOutOfRangeExceptionをスロー | E-01 (36行目) | ○ |

### HeadlessVncPlatformExtensions クラス

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-06 | StartWithHeadlessVncPlatform（パスワードなし）が存在 | E-02 (27-34行目) | ○ |
| C-07 | StartWithHeadlessVncPlatform（パスワードあり）が存在 | E-02 (47-106行目) | ○ |
| C-08 | hostがnullまたは空の場合IPAddress.Loopbackを使用 | E-02 (55行目) | ○ |
| C-09 | パスワードが空白の場合AuthenticationMethod.Noneを使用 | E-02 (75-77行目) | ○ |
| C-10 | MainWindowがnullの場合InvalidOperationExceptionをスロー | E-02 (90-91行目) | ○ |
| C-11 | TcpListener.Startでサーバーを起動 | E-02 (56行目) | ○ |
| C-12 | UseHeadlessでAvaloniaHeadlessPlatformOptionsを設定 | E-02 (58-62行目) | ○ |

### HeadlessVncFramebufferSource クラス

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 | IVncFramebufferSourceインターフェースを実装 | E-03 (11行目) | ○ |
| C-14 | Windowプロパティが存在（get/set） | E-03 (13行目) | ○ |
| C-15 | 初期フレームバッファが1x1サイズで作成される | E-03 (15行目) | ○ |
| C-16 | コンストラクタでPointerChangedイベントを登録 | E-03 (23-60行目) | ○ |
| C-17 | コンストラクタでKeyChangedイベントを登録 | E-03 (62-87行目) | ○ |
| C-18 | TranslateButtonでVncButtonをMouseButtonに変換 | E-03 (29-36行目) | ○ |
| C-19 | マウス移動時にWindow.MouseMoveを呼び出す | E-03 (42行目) | ○ |
| C-20 | ボタン解放時にWindow.MouseUpを呼び出す | E-03 (43-45行目) | ○ |
| C-21 | ボタン押下時にWindow.MouseDownを呼び出す | E-03 (47-49行目) | ○ |
| C-22 | ScrollUp時にWindow.MouseWheelをVector.Oneで呼び出す | E-03 (52-53行目) | ○ |
| C-23 | ScrollDown時にWindow.MouseWheelをVector.One.Negate()で呼び出す | E-03 (55-56行目) | ○ |
| C-24 | CheckKeyIsInputModifierでShift/Ctrl/Altを判定 | E-03 (90-109行目) | ○ |
| C-25 | 修飾キー押下時に_keyStateにフラグを追加 | E-03 (103-104行目) | ○ |
| C-26 | 修飾キー解放時に_keyStateからフラグを除去 | E-03 (105-106行目) | ○ |
| C-27 | TranslateKeyで多数のキーシンボルを変換 | E-03 (111-300行目) | ○ |
| C-28 | 未知のキーで(Key.None, null)を返す | E-03 (299行目) | ○ |
| C-29 | NumPadSeparatorがNumberFormatInfo.CurrentInfo.NumberGroupSeparatorを使用 | E-03 (160行目) | ○ |
| C-30 | NumPadDecimalがNumberFormatInfo.CurrentInfo.NumberDecimalSeparatorを使用 | E-03 (162行目) | ○ |
| C-31 | CaptureメソッドがVncFramebufferを返す | E-03 (316-340行目) | ○ |
| C-32 | Capture内でlockによる排他制御を実施 | E-03 (318行目) | ○ |
| C-33 | GetLastRenderedFrameがnullの場合既存バッファを返す | E-03 (322-323行目) | ○ |
| C-34 | フレームサイズ変更時に新しいVncFramebufferを作成 | E-03 (325-328行目) | ○ |
| C-35 | ピクセルデータをCopyPixelsでコピー | E-03 (331-334行目) | ○ |
| C-36 | SetDesktopSizeがExtendedDesktopSizeStatus.Successを返す | E-03 (342-350行目) | ○ |
| C-37 | SetDesktopSize内でDispatcher.UIThread.Postを使用 | E-03 (344-348行目) | ○ |
| C-38 | SupportsResizingがtrueを返す | E-03 (352行目) | ○ |
| C-39 | VncButton enumにLeft/Middle/Right/ScrollUp/ScrollDownが定義 | E-03 (303-311行目) | ○ |
| C-40 | CheckedButtonsにLeft/Middle/Rightが含まれる | E-03 (314行目) | ○ |

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

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**：Avalonia.Headless.Vncモジュールは3ファイル構成の小規模モジュールであり、すべてのテストケースがソースコードから直接導出されています。

## 6) レビュアーチェックリスト（最小）
- [ ] ToLogEventLevelの未定義LogLevel処理が適切か確認（UT-VNC-014）
- [ ] VNCサーバー起動時のエラーハンドリングが十分か確認（UT-VNC-020, UT-VNC-021）
- [ ] Captureメソッドのスレッドセーフ性を実際のマルチスレッド環境で検証（UT-VNC-066）
- [ ] TranslateKeyのキーマッピングが実際のVNCクライアントと互換性があるか確認
- [ ] SetDesktopSizeの境界値（負の値、極端に大きい値）の処理を追加検討
- [ ] 282行目の小文字nのマッピングがKey.Mになっている点を確認（潜在的なバグの可能性）
