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

# 根拠レポート：DevGenerators単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `src/tools/DevGenerators/CompilerDynamicDependenciesGenerator.cs`
- E-02: `src/tools/DevGenerators/SubtypesFactoryGenerator.cs`
- E-03: `src/tools/DevGenerators/X11AtomsGenerator.cs`
- E-04: `src/tools/DevGenerators/GetProcAddressInitialization.cs`
- E-05: `src/tools/DevGenerators/Helpers.cs`
- E-06: `src/tools/DevGenerators/EnumMemberDictionaryGenerator.cs`
- E-07: `src/tools/DevGenerators/CompositionGenerator/CompositionRoslynGenerator.cs`
- E-08: `src/tools/DevGenerators/CompositionGenerator/Generator.ConfigHelpers.cs`
- E-09: `src/tools/DevGenerators/CompositionGenerator/ICompositionGeneratorSink.cs`
- E-10: `src/tools/DevGenerators/CompositionGenerator/Generator.Utils.cs`
- E-11: `src/tools/DevGenerators/CompositionGenerator/Config.cs`
- E-12: `src/tools/DevGenerators/CompositionGenerator/Generator.KeyFrameAnimation.cs`
- E-13: `src/tools/DevGenerators/CompositionGenerator/Generator.ListProxy.cs`
- E-14: `src/tools/DevGenerators/CompositionGenerator/Extensions.cs`
- E-15: `src/tools/DevGenerators/CompositionGenerator/RoslynCompositionGeneratorSink.cs`
- E-16: `src/tools/DevGenerators/CompositionGenerator/Generator.cs`

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

### CompilerDynamicDependenciesGenerator (UT-DVG-001 ~ UT-DVG-007)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Initialize メソッドは SyntaxProvider を設定する | E-01 (L14-76) | ○ |
| C-02 | GetType/FindType 呼び出しを検出する | E-01 (L17-22) | ○ |
| C-03 | DynamicDependency 属性付きコードを生成する | E-01 (L40-75) | ○ |
| C-04 | 型が0件の場合はソース生成しない | E-01 (L35-38) | ○ |
| C-05 | ToCSharpTypeName はジェネリック型名を変換する | E-01 (L79-86) | ○ |
| C-06 | 非ジェネリック型名はそのまま返却される | E-01 (L82-83) | ○ |
| C-07 | 不正なジェネリック引数数は元の型名を返却 | E-01 (L82-83) | ○ |

### SubtypesFactoryGenerator (UT-DVG-008 ~ UT-DVG-017)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-08 | Initialize で typesProvider と methodsProvider が設定される | E-02 (L113-152) | ○ |
| C-09 | IsSubtypeOf は直接継承を検出する | E-02 (L17-20) | ○ |
| C-10 | IsSubtypeOf は間接継承を再帰的に検出する | E-02 (L19) | ○ |
| C-11 | 継承関係がない場合 false を返す | E-02 (L17-20) | ○ |
| C-12 | BaseType が null の場合 false を返す | E-02 (L19) | ○ |
| C-13 | GenerateSubTypes でソースコードが生成される | E-02 (L22-53) | ○ |
| C-14 | ジェネリッククラスで型パラメータが含まれる | E-02 (L27, L30) | ○ |
| C-15 | SubtypesFactoryAttribute 付きメソッドが検出される | E-02 (L55-111) | ○ |
| C-16 | 属性引数が2つでない場合 null を返す | E-02 (L73-76) | ○ |
| C-17 | out 引数でない場合 null を返す | E-02 (L92-93) | ○ |

### X11AtomsGenerator (UT-DVG-018 ~ UT-DVG-021)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-18 | X11Atoms クラスが検出される | E-03 (L16-23) | ○ |
| C-19 | PopulateAtoms メソッドが生成される | E-03 (L47-63) | ○ |
| C-20 | フィールド名が atom 名として使用される | E-03 (L52-53, L58-60) | ○ |
| C-21 | フィールドが0件の場合空配列で生成される | E-03 (L48-49) | ○ |

### GetProcAddressInitializationGenerator (UT-DVG-022 ~ UT-DVG-034)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | GetProcAddress 属性付きメソッドが検出される | E-04 (L22-32) | ○ |
| C-23 | Initialize メソッドが生成される | E-04 (L249-263) | ○ |
| C-24 | AppendRefKind で ref が出力される | E-04 (L273-279) | ○ |
| C-25 | AppendRefKind で out が出力される | E-04 (L277-278) | ○ |
| C-26 | NeedsPin で配列型は true を返す | E-04 (L282-287) | ○ |
| C-27 | NeedsPin で RefKind != None は true を返す | E-04 (L284-285) | ○ |
| C-28 | ConvertToNative でピン留めプレフィックスが付く | E-04 (L289-296) | ○ |
| C-29 | ConvertToNative で bool が整数に変換される | E-04 (L293-294) | ○ |
| C-30 | ConvertToManaged で bool 戻り値が変換される | E-04 (L298-303) | ○ |
| C-31 | IsBool で System.Boolean が判定される | E-04 (L305-306) | ○ |
| C-32 | MapToNative で配列型がポインタに変換される | E-04 (L308-317) | ○ |
| C-33 | MapToNative で ref 引数がポインタに変換される | E-04 (L312-313) | ○ |
| C-34 | BuildDelegateType で関数ポインタ型が生成される | E-04 (L319-372) | ○ |

### Helpers (UT-DVG-035 ~ UT-DVG-041)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | Pad で指定数のスペースが追加される | E-05 (L14) | ○ |
| C-36 | Pad で count=0 ならスペースなし | E-05 (L14) | ○ |
| C-37 | GetFullyQualifiedName で完全修飾名が返される | E-05 (L16-19) | ○ |
| C-38 | HasFullyQualifiedName で名前一致時 true | E-05 (L21-24) | ○ |
| C-39 | HasFullyQualifiedName で名前不一致時 false | E-05 (L21-24) | ○ |
| C-40 | HasAttributeWithFullyQualifiedName で属性存在時 true | E-05 (L26-35) | ○ |
| C-41 | HasAttributeWithFullyQualifiedName で属性なし時 false | E-05 (L34) | ○ |

### EnumMemberDictionaryGenerator (UT-DVG-042 ~ UT-DVG-046)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | GenerateEnumValueDictionary 属性付きメソッドが検出される | E-06 (L28-32) | ○ |
| C-43 | enum 辞書生成コードが出力される | E-06 (L71-77) | ○ |
| C-44 | enum リスト生成コードが出力される | E-06 (L78-79) | ○ |
| C-45 | enum メンバーが正しく列挙される | E-06 (L66-80) | ○ |
| C-46 | コンストラクタメンバーが除外される | E-06 (L68-69) | ○ |

### CompositionRoslynGenerator (UT-DVG-047 ~ UT-DVG-048)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-47 | composition-schema.xml が読み込まれる | E-07 (L12-16) | ○ |
| C-48 | Generator が実行されソースが出力される | E-07 (L17-21) | ○ |

### Generator.ConfigHelpers (UT-DVG-049 ~ UT-DVG-052)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-49 | 型情報がキャッシュされる | E-08 (L21-24) | ○ |
| C-50 | オブジェクト型が正しく判定される | E-08 (L28) | ○ |
| C-51 | Nullable 型が検出される | E-08 (L29) | ○ |
| C-52 | Passthrough 型が正しく処理される | E-08 (L33-43) | ○ |

### ICompositionGeneratorSink (UT-DVG-053)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-53 | AddSource メソッドがインターフェースで定義される | E-09 (L3-6) | ○ |

### Generator.Utils (UT-DVG-054 ~ UT-DVG-058)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-54 | Unit で CompilationUnitSyntax が生成される | E-10 (L11-20) | ○ |
| C-55 | SaveTo でソースコードが出力される | E-10 (L22-32) | ○ |
| C-56 | Semicolon でセミコロントークンが返される | E-10 (L34) | ○ |
| C-57 | DeclareField でフィールド宣言が生成される | E-10 (L36-37) | ○ |
| C-58 | 初期化子付きフィールドが生成される | E-10 (L39-46) | ○ |

### Config (UT-DVG-059 ~ UT-DVG-063)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-59 | GConfig.Usings が取得できる | E-11 (L10-11) | ○ |
| C-60 | GConfig.ManualClasses が取得できる | E-11 (L13-14) | ○ |
| C-61 | GConfig.Classes が取得できる | E-11 (L16-19) | ○ |
| C-62 | GConfig.KeyFrameAnimations が取得できる | E-11 (L21-22) | ○ |
| C-63 | GBrush デフォルト継承が CompositionBrush | E-11 (L93-96) | ○ |

### Generator.KeyFrameAnimation (UT-DVG-064 ~ UT-DVG-066)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-64 | キーフレームアニメーションクラスが生成される | E-12 (L17-48) | ○ |
| C-65 | Create{Name}KeyFrameAnimation メソッドが生成される | E-12 (L50-53) | ○ |
| C-66 | InsertKeyFrame メソッドが生成される | E-12 (L39-47) | ○ |

### Generator.ListProxy (UT-DVG-067 ~ UT-DVG-069)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-67 | リストプロキシインターフェースが追加される | E-13 (L101-104) | ○ |
| C-68 | リスト操作メソッドが生成される | E-13 (L23-88) | ○ |
| C-69 | InitializeDefaults にリスト初期化が追加される | E-13 (L113-117) | ○ |

### Extensions (UT-DVG-070 ~ UT-DVG-081)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-70 | AddModifiers で修飾子が追加される | E-14 (L10-15) | ○ |
| C-71 | modifiers が null の場合元のクラスが返される | E-14 (L12-13) | ○ |
| C-72 | WithLowerFirst で先頭文字が小文字に変換される | E-14 (L52-57) | ○ |
| C-73 | 空文字列の場合空文字列が返される | E-14 (L54-55) | ○ |
| C-74 | MemberAccess でメンバーアクセス式が構築される | E-14 (L59-67) | ○ |
| C-75 | 空配列の場合 ArgumentException がスローされる | E-14 (L61-62) | ○ |
| C-76 | checkNull=true で条件付きアクセスが返される | E-14 (L79-84) | ○ |
| C-77 | checkNull=false で通常アクセスが返される | E-14 (L83) | ○ |
| C-78 | WithBaseType で基底型が追加される | E-14 (L86-89) | ○ |
| C-79 | StripPrefix でプレフィックスが除去される | E-14 (L91-95) | ○ |
| C-80 | プレフィックスがない場合元の文字列が返される | E-14 (L93-94) | ○ |
| C-81 | 空文字列の場合空文字列が返される | E-14 (L91-92) | ○ |

### RoslynCompositionGeneratorSink (UT-DVG-082 ~ UT-DVG-083)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-82 | コンストラクタで SourceProductionContext が保存される | E-15 (L9-12) | ○ |
| C-83 | AddSource で _ctx.AddSource が呼び出される | E-15 (L14) | ○ |

### Generator (UT-DVG-084 ~ UT-DVG-100)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-84 | コンストラクタで設定が正しく初期化される | E-16 (L18-26) | ○ |
| C-85 | Generate で全クラスに対して GenerateClass が呼ばれる | E-16 (L30-36) | ○ |
| C-86 | Generate で GenerateAnimations が呼ばれる | E-16 (L35) | ○ |
| C-87 | ServerName で Server 接頭辞が付与される | E-16 (L38) | ○ |
| C-88 | ServerName で null の場合 ServerObject が返される | E-16 (L38) | ○ |
| C-89 | ChangesName で Changes 接尾辞が付与される | E-16 (L39) | ○ |
| C-90 | GenerateClass でクライアントクラスが生成される | E-16 (L299-301) | ○ |
| C-91 | GenerateClass でサーバークラスが生成される | E-16 (L303-304) | ○ |
| C-92 | GenerateClass で ChangedFieldsEnum が生成される | E-16 (L296-297) | ○ |
| C-93 | GenerateClass でリストプロキシが追加される | E-16 (L268-269) | ○ |
| C-94 | GenerateClientProperty でクライアントプロパティが生成される | E-16 (L307-346) | ○ |
| C-95 | GenerateClientProperty で変更通知メソッドが生成される | E-16 (L342-345) | ○ |
| C-96 | GenerateChangedFieldsEnum でプロパティごとに enum 値が生成される | E-16 (L348-373) | ○ |
| C-97 | Animated プロパティは追加フラグが生成される | E-16 (L366-367) | ○ |
| C-98 | プロパティ数に応じた基底型が選択される | E-16 (L370) | ○ |
| C-99 | GeneratePropertySetterAssignment でシリアライズ登録コードが生成される | E-16 (L375-407) | ○ |
| C-100 | 暗黙アニメーションチェックが生成される | E-16 (L385-403) | ○ |

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

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースがソースコードに直接対応しています

## 6) レビュアーチェックリスト（最小）
- [ ] 各ソースジェネレーターの Initialize メソッドに対するテストケースが網羅されているか確認
- [ ] 静的ヘルパーメソッド（ToCSharpTypeName, IsSubtypeOf 等）の境界値テストが十分か確認
- [ ] CompositionGenerator の複雑な生成ロジックに対するテストケースが適切か確認
- [ ] エラーハンドリング（null 入力、不正な引数）のテストケースが含まれているか確認
- [ ] Roslyn API を使用するコードのモック戦略が明確か確認
