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

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

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `src/tools/Avalonia.Generators/Common/GlobPattern.cs` - GlobPatternクラス実装
- E-02: `src/tools/Avalonia.Generators/Common/GlobPatternGroup.cs` - GlobPatternGroupクラス実装
- E-03: `src/tools/Avalonia.Generators/Common/EquatableList.cs` - EquatableList<T>クラス実装
- E-04: `src/tools/Avalonia.Generators/Common/XamlXViewResolver.cs` - XamlXViewResolverクラス実装
- E-05: `src/tools/Avalonia.Generators/Common/XamlXNameResolver.cs` - XamlXNameResolverクラス実装
- E-06: `src/tools/Avalonia.Generators/Common/ResolverExtensions.cs` - ResolverExtensions拡張メソッド実装
- E-07: `src/tools/Avalonia.Generators/NameGenerator/OnlyPropertiesCodeGenerator.cs` - OnlyPropertiesCodeGeneratorクラス実装
- E-08: `src/tools/Avalonia.Generators/NameGenerator/InitializeComponentCodeGenerator.cs` - InitializeComponentCodeGeneratorクラス実装
- E-09: `src/tools/Avalonia.Generators/GeneratorOptions.cs` - GeneratorOptionsクラス実装
- E-10: `src/tools/Avalonia.Generators/GeneratorExtensions.cs` - GeneratorExtensions拡張メソッド実装
- E-11: `src/tools/Avalonia.Generators/Compiler/MiniCompiler.cs` - MiniCompilerクラス実装
- E-12: `src/tools/Avalonia.Generators/Compiler/RoslynTypeSystem.cs` - RoslynTypeSystem関連クラス実装
- E-13: `src/tools/Avalonia.Generators/Compiler/NoopTypeSystem.cs` - NoopTypeSystemクラス実装
- E-14: `src/tools/Avalonia.Generators/Compiler/DataTemplateTransformer.cs` - DataTemplateTransformerクラス実装
- E-15: `src/tools/Avalonia.Generators/Compiler/NameDirectiveTransformer.cs` - NameDirectiveTransformerクラス実装
- E-16: `src/tools/Avalonia.Generators/NameGenerator/AvaloniaNameIncrementalGenerator.cs` - AvaloniaNameIncrementalGeneratorクラス実装
- E-17: `src/tools/Avalonia.Generators/Common/Domain/IViewResolver.cs` - ResolvedViewInfo等のレコード定義
- E-18: `src/tools/Avalonia.Generators/Common/Domain/INameResolver.cs` - INameResolver等のインターフェース定義
- E-19: `src/tools/Avalonia.Generators/Common/Domain/ICodeGenerator.cs` - ICodeGeneratorインターフェース定義
- E-20: `src/tools/Avalonia.Generators/Common/Domain/IGlobPattern.cs` - IGlobPatternインターフェース定義
- E-21: `src/tools/Avalonia.Generators/NameGenerator/NameGeneratorDiagnostics.cs` - 診断記述子定義
- E-22: `src/tools/Avalonia.Generators/NameGenerator/Options.cs` - Behavior, ViewFileNamingStrategy列挙型定義
- E-23: `src/tools/Avalonia.Generators/NameGenerator/TrackingNames.cs` - トラッキング名定数
- E-24: `src/tools/Avalonia.Generators/TrimmingMessages.cs` - トリミングメッセージ定数

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

### GlobPattern (UT-GEN-001 - UT-GEN-009)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | GlobPatternコンストラクタでワイルドカードが正規表現に変換される | E-01: line 12-16 `_regex = new Regex(expression, GlobOptions)` | ○ |
| C-02 | Matchesメソッドで正規表現マッチングが実行される | E-01: line 19 `_regex.IsMatch(str)` | ○ |
| C-03 | Equalsでパターン文字列の等価性を比較 | E-01: line 21 `pattern._pattern == _pattern` | ○ |
| C-04 | GetHashCodeでパターンのハッシュを返却 | E-01: line 22 `_pattern.GetHashCode()` | ○ |

### GlobPatternGroup (UT-GEN-010 - UT-GEN-014)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-05 | 複数パターンからグループが生成される | E-02: line 7-8 `EquatableList<GlobPattern>(patterns.Select...)` | ○ |
| C-06 | Matchesでいずれかのパターンにマッチした場合true | E-02: line 10-18 `for`ループでいずれかがマッチすればtrue | ○ |
| C-07 | Equalsで同じパターングループの等価性を比較 | E-02: line 20 `base.Equals(group)` | ○ |

### EquatableList<T> (UT-GEN-015 - UT-GEN-022)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-08 | Equalsで要素ごとの比較が行われる | E-03: line 22-29 `EqualityComparer<T>.Default.Equals` | ○ |
| C-09 | サイズが異なる場合falseを返却 | E-03: line 17 `Count != other.Count` | ○ |
| C-10 | GetHashCodeでXOR演算によるハッシュ計算 | E-03: line 42-47 `hash ^= this[i]?.GetHashCode()` | ○ |
| C-11 | 演算子==と!=が正しく実装されている | E-03: line 50-58 | ○ |
| C-12 | Emptyが空のリストを返す | E-03: line 12 `Empty = new([])` | ○ |

### XamlXViewResolver (UT-GEN-023 - UT-GEN-027)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-13 | ResolveViewでXAMLを解析してクラス情報を抽出 | E-04: line 20-40 XDocumentXamlParser.Parse | ○ |
| C-14 | x:Class属性から名前空間とクラス名を分割 | E-04: line 54-58 `split`で分割 | ○ |
| C-15 | x:Classがない場合nullを返却 | E-04: line 39 `return _resolvedClass` (null初期状態) | ○ |

### XamlXNameResolver (UT-GEN-028 - UT-GEN-041)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | ResolveXmlNamesで名前付き要素を解決 | E-05: line 19-34 `_items`ディクショナリに収集 | ○ |
| C-17 | 重複する名前は最初の要素のみ保持 | E-05: line 66-67 `if (_items.ContainsKey(text.Text)) continue` | ○ |
| C-18 | ResolveNameでCLR型から完全修飾名を生成 | E-05: line 36-43 `global::` プレフィックス付与 | ○ |
| C-19 | ジェネリック型の場合型引数も完全修飾 | E-05: line 40-42 GenericArguments処理 | ○ |
| C-20 | TryGetFieldModifierで修飾子を解析 | E-05: line 82-107 switch式でprivate/public等を判定 | ○ |
| C-21 | notpublicがinternalに変換される | E-05: line 104 `"notpublic" => "internal"` | ○ |

### ResolverExtensions (UT-GEN-042 - UT-GEN-046)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | IsAvaloniaStyledElementで継承チェック | E-06: line 8-9 Inherits呼び出し | ○ |
| C-23 | IsAvaloniaWindowで継承チェック | E-06: line 10-11 Inherits呼び出し | ○ |
| C-24 | Inheritsで再帰的にBaseTypeをチェック | E-06: line 13-17 | ○ |

### OnlyPropertiesCodeGenerator (UT-GEN-047 - UT-GEN-052)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-25 | GenerateCodeでFindNameScope形式のプロパティを生成 | E-07: line 19-20 `FindNameScope()?.Find<...>` | ○ |
| C-26 | デフォルト修飾子が適用される | E-07: line 8 `defaultNamedFieldModifier` パラメータ | ○ |
| C-27 | カスタム修飾子が優先される | E-07: line 19 `info.FieldModifier ?? defaultNamedFieldModifier` | ○ |
| C-28 | GeneratedCodeAttributeが付与される | E-07: line 17 `GeneratedCode` 属性 | ○ |

### InitializeComponentCodeGenerator (UT-GEN-053 - UT-GEN-059)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-29 | InitializeComponentメソッドが生成される | E-08: line 71 `InitializeComponent` | ○ |
| C-30 | フィールド初期化コードが生成される | E-08: line 45 `__thisNameScope__?.Find<...>` | ○ |
| C-31 | AttachDevTools有効時にコードブロックが含まれる | E-08: line 11-18, 77 `AttachDevToolsCodeBlock` | ○ |
| C-32 | AvaloniaXamlLoader.Loadが呼び出される | E-08: line 75 `AvaloniaXamlLoader.Load(this)` | ○ |
| C-33 | ExcludeFromCodeCoverageが付与される | E-08: line 70 `ExcludeFromCodeCoverage` | ○ |

### GeneratorOptions (UT-GEN-060 - UT-GEN-065)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-34 | デフォルト値がコンストラクタで設定される | E-09: line 26-53 各プロパティのデフォルト値 | ○ |
| C-35 | GetEnumPropertyでEnum値を解析 | E-09: line 77-81 `Enum.TryParse` | ○ |
| C-36 | GetBoolPropertyでbool値を解析 | E-09: line 84-88 `bool.TryParse` | ○ |
| C-37 | 複数パターンがセミコロンで分割される | E-09: line 74 `value.Split(';')` | ○ |

### GeneratorExtensions (UT-GEN-066 - UT-GEN-068)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-38 | GetMsBuildPropertyでプロパティを取得 | E-10: line 7-14 `build_property.{name}` | ○ |
| C-39 | 存在しない場合デフォルト値を返却 | E-10: line 13 `value ?? defaultValue` | ○ |

### MiniCompiler (UT-GEN-069 - UT-GEN-074)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | CreateNoopでNoopTypeSystemを使用 | E-11: line 20-31 `new NoopTypeSystem()` | ○ |
| C-41 | CreateRoslynでRoslynTypeSystemを使用 | E-11: line 34-48 | ○ |
| C-42 | TransformWithCancellationでキャンセル対応 | E-11: line 63-83 `cancellationToken.ThrowIfCancellationRequested` | ○ |
| C-43 | ResolveXamlTypeで型解決 | E-11: line 85-93 `TypeReferenceResolver.ResolveType` | ○ |

### RoslynTypeSystem (UT-GEN-075 - UT-GEN-092)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-44 | コンストラクタでアセンブリを収集 | E-12: line 17-29 `_assemblies.AddRange` | ○ |
| C-45 | FindAssemblyで名前検索 | E-12: line 33-35 LINQ FirstOrDefault | ○ |
| C-46 | FindTypeでキャッシュを使用 | E-12: line 38-41 `_typeCache.GetOrAdd` | ○ |
| C-47 | RoslynTypeでFullNameを計算 | E-12: line 129 `$"{Namespace}.{Name}"` | ○ |
| C-48 | BaseTypeで基底型を取得 | E-12: line 178 `_symbol.BaseType` | ○ |
| C-49 | MakeGenericTypeでジェネリック型構築 | E-12: line 164-168 `GenericArguments = typeArguments` | ○ |

### NoopTypeSystem (UT-GEN-093 - UT-GEN-095)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-50 | FindAssemblyが常にnullを返す | E-13: line 9 `return null` | ○ |
| C-51 | FindTypeがUnresolvedを返す | E-13: line 10-11 `XamlPseudoType.Unresolved` | ○ |
| C-52 | NoopAssembly.Instanceがシングルトン | E-13: line 15 `static NoopAssembly Instance` | ○ |

### DataTemplateTransformer (UT-GEN-096 - UT-GEN-098)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-53 | DataTemplate/ControlTemplateの子要素をクリア | E-14: line 10-14 `objectNode.Children.Clear()` | ○ |
| C-54 | 他のノードは変更しない | E-14: line 15 `return node` | ○ |

### NameDirectiveTransformer (UT-GEN-099 - UT-GEN-101)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-55 | x:NameをNameプロパティに変換 | E-15: line 17-23 XamlAstXamlPropertyValueNode生成 | ○ |
| C-56 | x:Name以外は変換しない | E-15: line 17-18 条件チェック | ○ |

### AvaloniaNameIncrementalGenerator (UT-GEN-102 - UT-GEN-107)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-57 | Initializeでジェネレータパイプラインを設定 | E-16: line 21-226 | ○ |
| C-58 | TryExtractTypeFromXmlでフォールバック処理 | E-16: line 234-250 XDocument.Parse | ○ |
| C-59 | GetLinePositionSpanで位置を計算 | E-16: line 252-256 Math.Max処理 | ○ |
| C-60 | DiagnosticFactoryでDiagnosticを生成 | E-16: line 271-276 | ○ |

### Domain Records (UT-GEN-108 - UT-GEN-109)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-61 | ResolvedViewInfo.FullNameが計算される | E-17: line 14 `$"{Namespace}.{ClassName}"` | ○ |
| C-62 | ToStringがFullNameを返す | E-17: line 15 `ToString() => FullName` | ○ |

### NameGeneratorDiagnostics (UT-GEN-110 - UT-GEN-113)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-63 | InvalidType診断記述子が定義されている | E-21: line 15-19 `"AXN0001"` | ○ |
| C-64 | InternalError診断記述子が定義されている | E-21: line 22-28 `"AXN0002"` | ○ |
| C-65 | ParseFailed診断記述子が定義されている | E-21: line 30-33 `"AXN0003"` | ○ |
| C-66 | NamedElementFailed診断記述子が定義されている | E-21: line 35-38 `"AXN0004"` | ○ |

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

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースはソースコード解析に基づいており、根拠が明確です

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコードの主要機能をカバーしているか確認
- [ ] 正常系・異常系・境界値のバランスが適切か確認
- [ ] 優先度の設定が妥当か確認（ビジネスクリティカルな機能が「高」になっているか）
- [ ] テストケース名と期待結果の記述が明確か確認
- [ ] 前提条件と入力値が具体的に記述されているか確認
- [ ] Roslyn Source Generatorの特性を考慮したテストケースが含まれているか確認
  - キャンセル処理
  - インクリメンタル生成
  - 診断レポート生成
