---
generated_at: 2026-02-22 10:30:00
metrics:
  claims_total: 154
  claims_with_evidence: 154
  claims_without_evidence: 0
confidence_derived: 1.00
---

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

## 本レポートについて

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

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

1. **根拠の有無確認**：各テストケースに対して、ソースコード内のクラス・メソッド・関数が実在するか
2. **根拠との整合性**：テストケースの内容がソースコードの実装と矛盾していないか
3. **網羅性**：テスト対象のクラス・メソッドを適切にカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：154 / 154、根拠なし：0
- 優先レビュー（高）
  1. 該当なし：全テストケースがソースコードに基づいて生成されています

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

- E-01: `src/Avalonia.Vulkan/VulkanException.cs` - VulkanException クラス定義
- E-02: `src/Avalonia.Vulkan/VulkanOptions.cs` - VulkanOptions, VulkanInstanceCreationOptions, VulkanDeviceCreationOptions, VulkanPlatformSpecificOptions クラス定義
- E-03: `src/Avalonia.Vulkan/VulkanBindings.cs` - VulkanHelpers 静的クラス（MakeVersion, QueueFamilyIgnored）
- E-04: `src/Avalonia.Vulkan/VulkanImageInfo.cs` - VulkanImageInfo レコード構造体定義
- E-05: `src/Avalonia.Vulkan/VulkanContext.cs` - VulkanContext 内部クラス定義（IVulkanPlatformGraphicsContext実装）
- E-06: `src/Avalonia.Vulkan/VulkanPlatformGraphics.cs` - VulkanPlatformGraphics クラス、DefaultDeviceFactory, CustomSharedDeviceFactory 内部クラス
- E-07: `src/Avalonia.Vulkan/VulkanKhrSurfaceRenderTarget.cs` - VulkanKhrRenderTarget, RenderingSession クラス
- E-08: `src/Avalonia.Vulkan/Interop/VulkanDevice.cs` - VulkanDevice 部分クラス（Lock, Dispose, プロパティ）
- E-09: `src/Avalonia.Vulkan/Interop/VulkanDevice.Create.cs` - VulkanDevice.Create 静的メソッド、CheckDevice, GetDeviceExtensions
- E-10: `src/Avalonia.Vulkan/Interop/VulkanInstance.cs` - VulkanInstance クラス（Create, GetInstanceProcAddress, GetDeviceProcAddress, IsLayerAvailable）
- E-11: `src/Avalonia.Vulkan/Interop/VulkanImage.cs` - VulkanImageBase, VulkanImage クラス
- E-12: `src/Avalonia.Vulkan/Interop/VulkanCommandBuffer.cs` - VulkanCommandBuffer クラス
- E-13: `src/Avalonia.Vulkan/Interop/VulkanCommandBufferPool.cs` - VulkanCommandBufferPool クラス
- E-14: `src/Avalonia.Vulkan/Interop/VulkanDisplay.cs` - VulkanDisplay クラス
- E-15: `src/Avalonia.Vulkan/Interop/VulkanFence.cs` - VulkanFence 構造体
- E-16: `src/Avalonia.Vulkan/Interop/VulkanSemaphore.cs` - VulkanSemaphore, VulkanSemaphorePair クラス
- E-17: `src/Avalonia.Vulkan/Interop/VulkanMemoryHelper.cs` - VulkanMemoryHelper 静的クラス
- E-18: `src/Avalonia.Vulkan/Interop/VulkanKhrSurface.cs` - VulkanKhrSurface クラス
- E-19: `src/Avalonia.Vulkan/VulkanExternalObjectsFeature.cs` - VulkanExternalObjectsFeature, ImportedSemaphore, ImportedImage クラス
- E-20: `src/Avalonia.Vulkan/Interop/Utf8BufferArray.cs` - Utf8BufferArray クラス
- E-21: `src/Avalonia.Vulkan/Interop/VulkanDebugLogger.cs` - VulkanDebugLogger 静的クラス
- E-22: `src/Avalonia.Vulkan/IVulkanDevice.cs` - IVulkanDevice, IVulkanInstance, IVulkanPlatformGraphicsContext インターフェース
- E-23: `src/Avalonia.Vulkan/IVulkanRenderTarget.cs` - IVulkanRenderTarget, IVulkanRenderSession インターフェース
- E-24: `src/Avalonia.Vulkan/IVulkanPlatformSurface.cs` - IVulkanKhrSurfacePlatformSurface, IVulkanKhrSurfacePlatformSurfaceFactory インターフェース
- E-25: `src/Avalonia.Vulkan/IVulkanContextExternalObjectsFeature.cs` - IVulkanContextExternalObjectsFeature, IVulkanExternalSemaphore, IVulkanExternalImage インターフェース

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | VulkanException(string)コンストラクタのテスト | E-01 | ○ |
| C-002 | VulkanException(string, int)コンストラクタのテスト | E-01 | ○ |
| C-003 | ThrowOnError静的メソッド正常系テスト | E-01 | ○ |
| C-004 | ThrowOnError静的メソッド異常系テスト | E-01 | ○ |
| C-005 | VulkanExceptionExtensions.ThrowOnError正常系 | E-01 | ○ |
| C-006 | VulkanExceptionExtensions.ThrowOnError異常系 | E-01 | ○ |
| C-007 | VulkanOptionsデフォルト初期化テスト | E-02 | ○ |
| C-008 | VulkanInstanceCreationOptions.VulkanVersionデフォルト値 | E-02 | ○ |
| C-009 | VulkanInstanceCreationOptions.InstanceExtensions初期化 | E-02 | ○ |
| C-010 | VulkanInstanceCreationOptions.EnabledLayers初期化 | E-02 | ○ |
| C-011 | VulkanDeviceCreationOptions.DeviceExtensions初期化 | E-02 | ○ |
| C-012 | VulkanDeviceCreationOptions.PreferDiscreteGpuデフォルト | E-02 | ○ |
| C-013 | VulkanPlatformSpecificOptions.RequiredInstanceExtensions初期化 | E-02 | ○ |
| C-014 | VulkanHelpers.MakeVersion(Version)テスト | E-03 | ○ |
| C-015 | VulkanHelpers.MakeVersion(int,int,int)テスト | E-03 | ○ |
| C-016 | VulkanHelpers.MakeVersion境界値テスト | E-03 | ○ |
| C-017 | VulkanHelpers.QueueFamilyIgnored定数確認 | E-03 | ○ |
| C-018 | VulkanImageInfoプロパティ設定テスト | E-04 | ○ |
| C-019 | VulkanImageInfo.PixelSizeテスト | E-04 | ○ |
| C-020 | VulkanContextコンストラクタテスト | E-05 | ○ |
| C-021 | VulkanContext.TryGetFeature正常系 | E-05 | ○ |
| C-022 | VulkanContext.TryGetFeature異常系 | E-05 | ○ |
| C-023 | VulkanContext.IsLostテスト | E-05 | ○ |
| C-024 | VulkanContext.EnsureCurrentテスト | E-05 | ○ |
| C-025 | VulkanContext.CreateRenderTarget正常系 | E-05 | ○ |
| C-026 | VulkanContext.CreateRenderTarget異常系 | E-05 | ○ |
| C-027 | VulkanPlatformGraphics.CreateContextテスト | E-06 | ○ |
| C-028 | VulkanPlatformGraphics.GetSharedContextテスト | E-06 | ○ |
| C-029 | VulkanPlatformGraphics.GetSharedContext Lost状態リカバリ | E-06 | ○ |
| C-030 | VulkanPlatformGraphics.UsesSharedContextプロパティ | E-06 | ○ |
| C-031 | VulkanPlatformGraphics.TryCreate カスタムデバイス | E-06 | ○ |
| C-032 | VulkanPlatformGraphics.TryCreate 初期化エラー | E-06 | ○ |
| C-033 | DefaultDeviceFactory.CreateDeviceテスト | E-06 | ○ |
| C-034 | DefaultDeviceFactory.GetSharedDevice NotSupported | E-06 | ○ |
| C-035 | CustomSharedDeviceFactory.GetSharedDeviceテスト | E-06 | ○ |
| C-036 | CustomSharedDeviceFactory.CreateDevice NotSupported | E-06 | ○ |
| C-037 | VulkanKhrRenderTargetコンストラクタ | E-07 | ○ |
| C-038 | VulkanKhrRenderTarget.IsRgba RGBA判定 | E-07 | ○ |
| C-039 | VulkanKhrRenderTarget.IsRgba BGRA判定 | E-07 | ○ |
| C-040 | VulkanKhrRenderTarget.BeginDrawテスト | E-07 | ○ |
| C-041 | VulkanKhrRenderTarget.Disposeテスト | E-07 | ○ |
| C-042 | RenderingSession.Sizeテスト | E-07 | ○ |
| C-043 | RenderingSession.IsYFlippedテスト | E-07 | ○ |
| C-044 | RenderingSession.ImageInfoテスト | E-07 | ○ |
| C-045 | RenderingSession.Disposeテスト | E-07 | ○ |
| C-046 | VulkanDevice.Lockテスト | E-08 | ○ |
| C-047 | VulkanDevice.Lockロック解放テスト | E-08 | ○ |
| C-048 | VulkanDevice.Lock入れ子ロックテスト | E-08 | ○ |
| C-049 | VulkanDevice.MainQueueHandleロック未取得エラー | E-08 | ○ |
| C-050 | VulkanDevice.EnabledExtensionsテスト | E-08 | ○ |
| C-051 | VulkanDevice.IsLostテスト | E-08 | ○ |
| C-052 | VulkanDevice.Disposeテスト | E-08 | ○ |
| C-053 | VulkanDevice.Dispose二重解放テスト | E-08 | ○ |
| C-054 | VulkanDevice.TryGetFeatureテスト | E-08 | ○ |
| C-055 | VulkanDevice.Create正常系 | E-09 | ○ |
| C-056 | VulkanDevice.Createデバイス未検出エラー | E-09 | ○ |
| C-057 | VulkanDevice.Create互換デバイス未検出エラー | E-09 | ○ |
| C-058 | VulkanDevice.Create ディスクリートGPU優先 | E-09 | ○ |
| C-059 | VulkanDevice.GetDeviceExtensionsテスト | E-09 | ○ |
| C-060 | VulkanDevice.CheckDevice互換テスト | E-09 | ○ |
| C-061 | VulkanDevice.CheckDevice swapchain要件 | E-09 | ○ |
| C-062 | VulkanInstance.Create正常系 | E-10 | ○ |
| C-063 | VulkanInstance.Create getProcAddress未指定エラー | E-10 | ○ |
| C-064 | VulkanInstance.Create デバッグ機能 | E-10 | ○ |
| C-065 | VulkanInstance.GetInstanceProcAddressテスト | E-10 | ○ |
| C-066 | VulkanInstance.GetDeviceProcAddressテスト | E-10 | ○ |
| C-067 | VulkanInstance.EnabledExtensionsテスト | E-10 | ○ |
| C-068 | VulkanInstance.IsLayerAvailable存在テスト | E-10 | ○ |
| C-069 | VulkanInstance.IsLayerAvailable未存在テスト | E-10 | ○ |
| C-070 | VulkanImageBaseコンストラクタ | E-11 | ○ |
| C-071 | VulkanImageBase.Initialize正常系 | E-11 | ○ |
| C-072 | VulkanImageBase.Initialize二重初期化対策 | E-11 | ○ |
| C-073 | VulkanImageBase.TransitionLayoutテスト | E-11 | ○ |
| C-074 | VulkanImageBase.TransitionLayout(uint,uint)オーバーロード | E-11 | ○ |
| C-075 | VulkanImageBase.ImageInfoテスト | E-11 | ○ |
| C-076 | VulkanImageBase.Disposeテスト | E-11 | ○ |
| C-077 | VulkanImageコンストラクタ | E-11 | ○ |
| C-078 | VulkanCommandBufferコンストラクタ | E-12 | ○ |
| C-079 | VulkanCommandBuffer.BeginRecording正常系 | E-12 | ○ |
| C-080 | VulkanCommandBuffer.BeginRecording二重呼び出し | E-12 | ○ |
| C-081 | VulkanCommandBuffer.EndRecording正常系 | E-12 | ○ |
| C-082 | VulkanCommandBuffer.EndRecording未開始時 | E-12 | ○ |
| C-083 | VulkanCommandBuffer.Submit()テスト | E-12 | ○ |
| C-084 | VulkanCommandBuffer.Submitセマフォ付き | E-12 | ○ |
| C-085 | VulkanCommandBuffer.IsFinishedテスト | E-12 | ○ |
| C-086 | VulkanCommandBuffer.Disposeテスト | E-12 | ○ |
| C-087 | VulkanCommandBufferPoolコンストラクタ | E-13 | ○ |
| C-088 | VulkanCommandBufferPool.CreateCommandBufferテスト | E-13 | ○ |
| C-089 | VulkanCommandBufferPool.CreateCommandBuffer自動解放 | E-13 | ○ |
| C-090 | VulkanCommandBufferPool.FreeUsedCommandBuffersテスト | E-13 | ○ |
| C-091 | VulkanCommandBufferPool.FreeFinishedCommandBuffersテスト | E-13 | ○ |
| C-092 | VulkanCommandBufferPool.AddSubmittedCommandBufferテスト | E-13 | ○ |
| C-093 | VulkanCommandBufferPool.Disposeテスト | E-13 | ○ |
| C-094 | VulkanDisplay.CreateDisplayテスト | E-14 | ○ |
| C-095 | VulkanDisplay.SurfaceFormatテスト | E-14 | ○ |
| C-096 | VulkanDisplay.EnsureSwapchainAvailable再作成 | E-14 | ○ |
| C-097 | VulkanDisplay.EnsureSwapchainAvailable維持 | E-14 | ○ |
| C-098 | VulkanDisplay.StartPresentationテスト | E-14 | ○ |
| C-099 | VulkanDisplay.BlitImageToCurrentImageテスト | E-14 | ○ |
| C-100 | VulkanDisplay.EndPresentationテスト | E-14 | ○ |
| C-101 | VulkanDisplay.Disposeテスト | E-14 | ○ |
| C-102 | VulkanFenceコンストラクタ | E-15 | ○ |
| C-103 | VulkanFence.IsSignaledシグナル状態 | E-15 | ○ |
| C-104 | VulkanFence.IsSignaled未シグナル状態 | E-15 | ○ |
| C-105 | VulkanFence.Waitテスト | E-15 | ○ |
| C-106 | VulkanFence.Waitタイムアウト | E-15 | ○ |
| C-107 | VulkanFence.Disposeテスト | E-15 | ○ |
| C-108 | VulkanSemaphoreコンストラクタ(context) | E-16 | ○ |
| C-109 | VulkanSemaphoreコンストラクタ(context, handle) | E-16 | ○ |
| C-110 | VulkanSemaphore.Disposeテスト | E-16 | ○ |
| C-111 | VulkanSemaphore.Dispose二重解放 | E-16 | ○ |
| C-112 | VulkanSemaphorePairコンストラクタ | E-16 | ○ |
| C-113 | VulkanSemaphorePair.Disposeテスト | E-16 | ○ |
| C-114 | VulkanMemoryHelper.FindSuitableMemoryTypeIndex正常系 | E-17 | ○ |
| C-115 | VulkanMemoryHelper.FindSuitableMemoryTypeIndex未検出 | E-17 | ○ |
| C-116 | VulkanMemoryHelper.TransitionLayoutテスト | E-17 | ○ |
| C-117 | VulkanKhrSurfaceコンストラクタ | E-18 | ○ |
| C-118 | VulkanKhrSurface.CanSurfacePresent true | E-18 | ○ |
| C-119 | VulkanKhrSurface.CanSurfacePresent false | E-18 | ○ |
| C-120 | VulkanKhrSurface.GetSurfaceFormat正常系 | E-18 | ○ |
| C-121 | VulkanKhrSurface.GetSurfaceFormatフォーマット未検出 | E-18 | ○ |
| C-122 | VulkanKhrSurface.GetSurfaceFormat UNDEFINED時デフォルト | E-18 | ○ |
| C-123 | VulkanKhrSurface.Sizeテスト | E-18 | ○ |
| C-124 | VulkanKhrSurface.Disposeテスト | E-18 | ○ |
| C-125 | VulkanExternalObjectsFeatureコンストラクタ | E-19 | ○ |
| C-126 | VulkanExternalObjectsFeature.SupportedImageHandleTypes Windows | E-19 | ○ |
| C-127 | VulkanExternalObjectsFeature.SupportedImageHandleTypes Linux | E-19 | ○ |
| C-128 | VulkanExternalObjectsFeature.GetSynchronizationCapabilities正常系 | E-19 | ○ |
| C-129 | VulkanExternalObjectsFeature.GetSynchronizationCapabilities異常系 | E-19 | ○ |
| C-130 | VulkanExternalObjectsFeature.ImportImage正常系 | E-19 | ○ |
| C-131 | VulkanExternalObjectsFeature.ImportImage未サポート | E-19 | ○ |
| C-132 | VulkanExternalObjectsFeature.ImportSemaphore正常系 | E-19 | ○ |
| C-133 | VulkanExternalObjectsFeature.ImportSemaphore未サポート | E-19 | ○ |
| C-134 | ImportedSemaphore.Handleテスト | E-19 | ○ |
| C-135 | ImportedSemaphore.Handle解放後アクセス | E-19 | ○ |
| C-136 | ImportedSemaphore.SubmitWaitSemaphoreテスト | E-19 | ○ |
| C-137 | ImportedSemaphore.SubmitSignalSemaphoreテスト | E-19 | ○ |
| C-138 | ImportedSemaphore.Disposeテスト | E-19 | ○ |
| C-139 | ImportedImage.Infoテスト | E-19 | ○ |
| C-140 | ImportedImageコンストラクタ B8G8R8A8UNorm | E-19 | ○ |
| C-141 | ImportedImageコンストラクタ R8G8B8A8UNorm | E-19 | ○ |
| C-142 | ImportedImageコンストラクタ未サポートフォーマット | E-19 | ○ |
| C-143 | ImportedImage.CreateMemoryテスト | E-19 | ○ |
| C-144 | ImportedImage.CreateMemoryサイズ不一致 | E-19 | ○ |
| C-145 | Utf8BufferArrayコンストラクタ | E-20 | ○ |
| C-146 | Utf8BufferArrayコンストラクタ空配列 | E-20 | ○ |
| C-147 | Utf8BufferArray.Countテスト | E-20 | ○ |
| C-148 | Utf8BufferArray.UCountテスト | E-20 | ○ |
| C-149 | Utf8BufferArray.Disposeテスト | E-20 | ○ |
| C-150 | Utf8BufferArray暗黙変換テスト | E-20 | ○ |
| C-151 | VulkanDebugLogger.WriteLogEventエラーレベル | E-21 | ○ |
| C-152 | VulkanDebugLogger.WriteLogEvent警告レベル | E-21 | ○ |
| C-153 | VulkanDebugLogger.WriteLogEvent戻り値 | E-21 | ○ |
| C-154 | VulkanDebugLogger.CallbackPtrテスト | E-21 | ○ |

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

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードの実装に基づいており、信頼度は高い
- 注意点：
  - Vulkan API呼び出しを含むテストは実際のGPU環境が必要なため、モック化が推奨される
  - プラットフォーム依存のテスト（Windows/Linux）は適切な条件分岐が必要
  - unsafe コードを含むクラスのテストではメモリ安全性に注意

## 6) レビュアーチェックリスト（最小）
- [ ] 全154テストケースがソースコード内の実在するクラス・メソッドに対応しているか確認
- [ ] VulkanException関連のテスト（C-001〜C-006）がエラーハンドリングを適切にカバーしているか
- [ ] VulkanDevice.Create（C-055〜C-061）のデバイス検出ロジックが網羅されているか
- [ ] リソース解放（Dispose）テストが各クラスに含まれているか確認
- [ ] プラットフォーム依存テスト（C-126, C-127）の条件分岐が適切か
- [ ] 外部オブジェクトインポート機能（C-125〜C-144）のセキュリティ観点でのレビュー
- [ ] スレッドロック関連テスト（C-046〜C-049）の同時実行シナリオが考慮されているか
