---
generated_at: 2026-02-20 10:00:00
metrics:
  claims_total: 169
  claims_with_evidence: 152
  claims_without_evidence: 17
confidence_derived: 0.90
---

# 根拠レポート：workspace-d-com 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.90**
  - 根拠あり：152 / 169、根拠なし：17
- 優先レビュー（高）
  1. **DCDComponent非同期メソッド（searchSymbol, findDeclaration, listCompletion等）**：DCD外部プロセス依存のため、実環境テストでの検証が必要
  2. **DubComponent各種メソッド**：DUBパッケージマネージャとの統合に依存し、モック化が必要
  3. **IndexComponent reindex/autoIndexSources**：ファイルシステムとDscannerに依存するため、統合テスト的な検証が必要

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

- E-01: `workspace-d/source/workspaced/com/ccdb.d` - ClangCompilationDatabaseComponentのソースコード
- E-02: `workspace-d/source/workspaced/com/ccdb.d` 内 unescapeCommand unittest（283-297行目）
- E-03: `workspace-d/source/workspaced/com/dcd.d` - DCDComponentのソースコード
- E-04: `workspace-d/source/workspaced/com/dcd.d` 内 supportsUnixDomainSockets unittest（777-784行目）
- E-05: `workspace-d/source/workspaced/com/dcd_version.d` - latestKnownDCDVersion定数
- E-06: `workspace-d/source/workspaced/com/dcdext.d` - DCDExtComponentのソースコード
- E-07: `workspace-d/source/workspaced/com/dfmt.d` - DfmtComponentのソースコード
- E-08: `workspace-d/source/workspaced/com/dfmt.d` 内 findDfmtInstructions unittest（289-319行目）
- E-09: `workspace-d/source/workspaced/com/dlangui.d` - DlanguiComponentのソースコード
- E-10: `workspace-d/source/workspaced/com/dlangui.d` 内 getLocationInfo unittest（286-322行目）
- E-11: `workspace-d/source/workspaced/com/dmd.d` - DMDComponentのソースコード
- E-12: `workspace-d/source/workspaced/com/dmd.d` 内 measure unittest（102-112行目）
- E-13: `workspace-d/source/workspaced/com/dscanner.d` - DscannerComponentのソースコード
- E-14: `workspace-d/source/workspaced/com/dscanner.d` 内 listDefinitions unittest（1603-1700行目）
- E-15: `workspace-d/source/workspaced/com/dub.d` - DubComponentのソースコード
- E-16: `workspace-d/source/workspaced/com/fsworkspace.d` - FSWorkspaceComponentのソースコード
- E-17: `workspace-d/source/workspaced/com/importer.d` - ImporterComponentのソースコード
- E-18: `workspace-d/source/workspaced/com/importer.d` 内 sortImports/get/add unittest（308-922行目）
- E-19: `workspace-d/source/workspaced/com/index.d` - IndexComponentのソースコード
- E-20: `workspace-d/source/workspaced/com/index.d` 内 diffInto unittest（672-700行目）
- E-21: `workspace-d/source/workspaced/com/moduleman.d` - ModulemanComponentのソースコード
- E-22: `workspace-d/source/workspaced/com/moduleman.d` 内 rename/normalizeModules/describeModule unittest（310-385行目）
- E-23: `workspace-d/source/workspaced/com/references.d` - ReferencesComponentのソースコード
- E-24: `workspace-d/source/workspaced/com/snippets/package.d` - SnippetsComponentのソースコード
- E-25: `workspace-d/source/workspaced/com/snippets/generator.d` - fillLoopScopeInfo/VariableUsageのソースコード
- E-26: `workspace-d/source/workspaced/com/snippets/generator.d` 内 determineSnippetInfo unittest（109-200行目）
- E-27: `workspace-d/source/workspaced/com/snippets/control_flow.d` - ControlFlowSnippetProviderのソースコード
- E-28: `workspace-d/source/workspaced/com/snippets/plain.d` - PlainSnippet/PlainSnippetProviderのソースコード
- E-29: `workspace-d/source/workspaced/com/snippets/smart.d` - SmartSnippetProviderのソースコード
- E-30: `workspace-d/source/workspaced/com/snippets/dependencies.d` - DependencyBasedSnippetProviderのソースコード
- E-31: `workspace-d/source/workspaced/com/snippets/external_builtin.d` - 外部ライブラリスニペット定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | ccdb load: 設定に基づきプロバイダが登録される | E-01 (load メソッド 21-35行) | ○ |
| C-02 | ccdb load: dbPath設定時にDB読み込み | E-01 (load メソッド 37-51行) | ○ |
| C-03 | ccdb load: dbPath未設定でException | E-01 (42-43行 throw new Exception) | ○ |
| C-04 | ccdb load: Exception catch | E-01 (48-51行 catch) | ○ |
| C-05 | ccdb imports/stringImports/versions: プロパティ返却 | E-01 (87-114行) | ○ |
| C-06 | CompileCommand fromJson: arguments解析 | E-01 (128-157行) | ○ |
| C-07 | CompileCommand fromJson: command解析 | E-01 (143-145行) | ○ |
| C-08 | CompileCommand fromJson: arguments/command両方なしでException | E-01 (148-149行) | ○ |
| C-09 | CompileCommand isValid: .dファイル+args>1でtrue | E-01 (160-169行) | ○ |
| C-10 | CompileCommand feedOptions: -Iフラグ | E-01 (171-220行) | ○ |
| C-11 | unescapeCommand: 正常・エスケープ処理 | E-02 (283-297行 unittest) | ○ |
| C-12 | DCD load: バージョン再利用 | E-03 (40-57行) | ○ |
| C-13 | DCD reloadBinaries: バージョン不一致Exception | E-03 (80-81行) | ○ |
| C-14 | DCD isOutdated: ローカルコンパイル判定 | E-03 (131-134行) | ○ |
| C-15 | DCD startServer: 正常起動 | E-03 (205-277行) | ○ |
| C-16 | DCD startServer: ポート競合Exception | E-03 (213行) | ○ |
| C-17 | DCD stopServerSync: 実行中停止/非実行時即return | E-03 (279-295行) | ○ |
| C-18 | DCD searchSymbol: 検索結果返却/非実行時null | E-03 (362-388行) | ○ |
| C-19 | DCD findDeclaration: 宣言検索/pos範囲外 | E-03 (456-483行) | ○ |
| C-20 | DCD listCompletion: calltips/identifiers分岐 | E-03 (591-650行) | ○ |
| C-21 | DCD getSocketFile/getRunningPort: Exception | E-03 (574-586行) | ○ |
| C-22 | DCDCompletions identifiers/calltips型チェック | E-03 (833-854行) | ○ |
| C-23 | supportsUnixDomainSockets | E-04 (777-784行 unittest) | ○ |
| C-24 | latestKnownDCDVersion定数 | E-05 | ○ |
| C-25 | DCDExt extractCallParameters | E-06 (61-361行) | ○ |
| C-26 | DCDExt getDeclarationRange | E-06 (366-376行) | ○ |
| C-27 | DCDExt getCodeBlockRange | E-06 (380-388行) | ○ |
| C-28 | DCDExt implement/implementAllSync | E-06 (527-599行) | ○ |
| C-29 | Dfmt formatSync: コードフォーマット | E-07 (37-49行) | ○ |
| C-30 | Dfmt formatSync: 空白コード→null | E-07 (39-40行) | ○ |
| C-31 | Dfmt parseConfig: 引数パース | E-07 (52-158行) | ○ |
| C-32 | Dfmt findDfmtInstructions | E-08 (289-319行 unittest) | ○ |
| C-33 | dfmtCommentText: コメント解析 | E-07 (233-247行) | ○ |
| C-34 | tryFetchProperty: JSON型チェック | E-07 (249-287行) | ○ |
| C-35 | DlanguiComponent complete: DML補完 | E-09 (22-117行) | ○ |
| C-36 | getLocationInfo: 各LocationType判定 | E-10 (286-322行 unittest) | ○ |
| C-37 | DMD measureSync: コンパイル成功 | E-12 (102-112行 unittest) | ○ |
| C-38 | DMD measureSync: 不正コード→success=false | E-11 (推定: processの戻り値チェック) | △ |
| C-39 | DScanner lint: lint結果返却 | E-13 (51-155行) | ○ |
| C-40 | DScanner listDefinitionsSync: 定義一覧 | E-14 (1603-1700行 unittest) | ○ |
| C-41 | DScanner getConfig: ini読み込み | E-13 (453-486行) | ○ |
| C-42 | typeForWarning: 既知キーの判定 | E-13 (847-908行) | ○ |
| C-43 | isVisibleOutside: 可視性判定 | E-13 (821-831行) | ○ |
| C-44 | Dub load: dubプロジェクトロード | E-15 (56-115行) | ○ |
| C-45 | Dub load: インスタンスチェック | E-15 (58-59行) | ○ |
| C-46 | Dub updateImportPaths | E-15 (210-300行) | ○ |
| C-47 | Dub setConfiguration/setBuildType/setCompiler | E-15 (523-695行) | ○ |
| C-48 | Dub validateConfiguration: Exception | E-15 (352-377行) | ○ |
| C-49 | Dub configurations/buildTypes/imports | E-15 (457-513行) | ○ |
| C-50 | Dub validateRecipeSyntaxOnFileSystem | E-15 (439-455行) | ○ |
| C-51 | FSWorkspace load: cwdとadditionalPaths | E-16 (12-21行) | ○ |
| C-52 | FSWorkspace addImports/imports | E-16 (23-33行) | ○ |
| C-53 | Importer get: インポート取得 | E-18 (846-922行 unittest) | ○ |
| C-54 | Importer add: インポート追加 | E-18 (876-922行 unittest) | ○ |
| C-55 | Importer sortImports: ソート処理 | E-18 (308-536行 unittest) | ○ |
| C-56 | Importer organizeSelective: マージ | E-17 (143-184行) | ○ |
| C-57 | ImportInfo cmp: ソート順序 | E-17 (617-633行) | ○ |
| C-58 | SelectiveImport effectiveName | E-17 (556-559行) | ○ |
| C-59 | Index load: インスタンスチェック | E-19 (41-42行) | ○ |
| C-60 | Index saveIndex/getHealth/dropIndex | E-19 (172-320行) | ○ |
| C-61 | diffInto: 差分計算 | E-20 (672-700行 unittest) | ○ |
| C-62 | isStdLib: 標準ライブラリ判定 | E-19 (771-774行) | ○ |
| C-63 | Moduleman rename: モジュールリネーム | E-22 (310-385行 unittest) | ○ |
| C-64 | Moduleman normalizeModules | E-22 (351-368行 unittest) | ○ |
| C-65 | Moduleman describeModule | E-22 (370-384行 unittest) | ○ |
| C-66 | References findReferences: 参照検索 | E-23 (29-96行) | ○ |
| C-67 | References grepFileReferences | E-23 (177-190行) | ○ |
| C-68 | Snippets determineSnippetInfo | E-26 (109-200行 unittest) | ○ |
| C-69 | fillLoopScopeInfo: 配列型/連想配列/文字列型 | E-25 (22-90行) | ○ |
| C-70 | ControlFlow provideSnippets: break/continue/case | E-27 (10-100行) | ○ |
| C-71 | PlainSnippet buildSnippet | E-28 (30-47行) | ○ |
| C-72 | Smart provideSnippets: foreach/else/catch | E-29 (12-100行) | ○ |
| C-73 | DependencySet hasAll | E-30 (24-45行) | ○ |
| C-74 | DependencyBased addSnippet/provideSnippets | E-30 (84-100行) | ○ |
| C-75 | DCDComponent非同期メソッドの期待動作(getInlayHints等) | **根拠なし** | △ |
| C-76 | DubComponent archTypes/extendedArchTypes | E-15 (532-608行) | ○ |
| C-77 | DubComponent selectedVersions/getPackageInfo | E-15 (396-414行) | ○ |
| C-78 | IndexComponent iterateAll/iterateDefinitions等のイテレータメソッド | E-19 (193-297行) | ○ |
| C-79 | IndexComponent autoIndexSources | E-19 (322-358行) | ○ |
| C-80 | DCDExt extractCallParametersテンプレート引数分離の詳細挙動 | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- DCDComponent の非同期メソッド（getInlayHints, getDocumentation, findLocalUse等）の期待結果は、外部プロセス（dcd-server/dcd-client）の実際の応答に依存するため、ソースコード上のロジックからのみ推定している
  - 候補：DCDクライアントのモック / 統合テスト環境 / DCD公式ドキュメント
- DubComponent の各設定操作（setArchType等）は実際のDUBパッケージマネージャとの統合に依存
  - 候補：DUBのテスト環境 / テスト用dubプロジェクト
- DCDExtComponent のextractCallParametersにおけるテンプレート引数分離の詳細な挙動はコードが複雑で、一部推定に基づく
  - 候補：dcdext.dの既存unittestデータ（大量にあるが本レポート内では省略）
- 一部のsnippetsの提供条件（特にDependencyBasedSnippetProvider）はDubComponentの存在に依存
  - 候補：Dubモック / テスト用workspace

## 5) リスクフラグ（レビュー観点）
- 1: DCD/DUB外部プロセス依存テストケースの期待値精度（中リスク）
- 1: DCDExtComponent extractCallParametersの複雑なトークン走査ロジック（中リスク）
- 0: 既存unittestが存在するモジュール（ccdb, dcd, dfmt, dlangui, dmd, dscanner, importer, index, moduleman, snippets）のテストケース（低リスク）
- 0: プロパティアクセス系のテストケース（低リスク）

## 6) レビュアーチェックリスト（最小）
- [ ] DCDComponent の非同期メソッド群のテストケースが、外部プロセスのモック化を前提とした適切な期待結果になっているか
- [ ] DubComponent のテストケースが、テスト用dubプロジェクトの前提条件を正しく記述しているか
- [ ] DCDExtComponent extractCallParameters のテンプレート引数分離テストケースの入力値・期待結果が妥当か
- [ ] 既存unittestでカバーされているテストケース（C-11, C-23, C-32, C-36, C-37, C-40, C-53-C-55, C-61, C-63-C-65, C-68）の期待結果が既存テストと整合しているか
- [ ] 各コンポーネントのloadメソッドにおけるインスタンスチェック（refInstance==null時のException）が漏れなくカバーされているか
- [ ] 境界値テスト（空配列、空文字列、範囲外位置）が主要メソッドでカバーされているか
