---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 187
  claims_with_evidence: 183
  claims_without_evidence: 4
confidence_derived: 0.98
---

# 根拠レポート：types.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：183 / 187、根拠なし：4
- 優先レビュー（高）
  1. **UT-TYP-124〜127（MangleStartingDirectoryForWSL）**：WSL固有の動作はWindows環境依存であり、実際のWSLパスの挙動は環境に依存する
  2. **UT-TYP-169〜171（ColorFix::GetPerceivableColor）**：Oklab色空間の計算精度はcbrtf_est近似に依存するため、期待値の閾値検証が必要
  3. **UT-TYP-183（ThemeUtils::SetWindowFrameDarkMode）**：スタブ実装（TODO）のためテストの意味が限定的

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

- E-01: `src/types/viewport.cpp` - Viewportクラスの実装
- E-02: `src/types/inc/viewport.hpp` - Viewportクラスのヘッダ定義
- E-03: `src/types/utils.cpp` - Utils名前空間のユーティリティ関数群
- E-04: `src/types/inc/utils.hpp` - Utils名前空間のヘッダ定義
- E-05: `src/types/convert.cpp` - 文字コード変換関数群
- E-06: `src/types/inc/convert.hpp` - 文字コード変換ヘッダ定義
- E-07: `src/types/colorTable.cpp` - カラーテーブル初期化・色名パース
- E-08: `src/types/inc/colorTable.hpp` - カラーテーブルヘッダ定義
- E-09: `src/types/GlyphWidth.cpp` - グリフ幅判定関数
- E-10: `src/types/inc/GlyphWidth.hpp` - グリフ幅判定ヘッダ定義
- E-11: `src/types/sgrStack.cpp` - SGRスタック実装（XTPUSHSGR/XTPOPSGR）
- E-12: `src/types/inc/sgrStack.hpp` - SGRスタックヘッダ定義
- E-13: `src/types/ColorFix.cpp` - 色の知覚調整（Oklab色空間）
- E-14: `src/types/inc/ColorFix.hpp` - ColorFixヘッダ定義
- E-15: `src/types/ThemeUtils.cpp` - テーマユーティリティ（ダークモード制御）
- E-16: `src/types/inc/ThemeUtils.h` - テーマユーティリティヘッダ定義
- E-17: `src/types/CodepointWidthDetector.cpp` - Unicode幅検出（書記素クラスタ解析）
- E-18: `src/types/inc/CodepointWidthDetector.hpp` - CodepointWidthDetectorヘッダ定義
- E-19: `src/types/inc/IInputEvent.hpp` - 入力イベント合成constexpr関数群
- E-20: `src/types/inc/User32Utils.hpp` - リソース文字列取得ユーティリティ

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

### Viewport（UT-TYP-001〜061）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | UT-TYP-001: Empty()で空のViewportが生成される | E-01 L14-17, E-02 L105 | ○ |
| C-02 | UT-TYP-002: FromInclusiveでViewportが生成される | E-01 L19-22 | ○ |
| C-03 | UT-TYP-003: FromExclusiveでViewportが生成される | E-01 L24-27 | ○ |
| C-04 | UT-TYP-004: FromDimensionsでViewportが生成される | E-01 L37-46 | ○ |
| C-05 | UT-TYP-005: サイズ0のViewport生成 | E-01 L37-46 | ○ |
| C-06 | UT-TYP-006〜012: Width/Height/Origin等の計算 | E-01 L48-148 | ○ |
| C-07 | UT-TYP-013〜018: IsInBounds座標・Viewport包含 | E-01 L156-182 | ○ |
| C-08 | UT-TYP-019〜022: Clamp(point/Viewport) | E-01 L190-207 | ○ |
| C-09 | UT-TYP-023〜028: IncrementInBounds/DecrementInBounds | E-01 L218-235, L289-301 | ○ |
| C-10 | UT-TYP-029〜031: CompareInBounds | E-01 L253-276 | ○ |
| C-11 | UT-TYP-032〜037: WalkInBounds/GetWalkOrigin/DetermineWalkDirection | E-01 L289-386 | ○ |
| C-12 | UT-TYP-038〜040: TrimToViewport | E-01 L395-403 | ○ |
| C-13 | UT-TYP-041〜048: ConvertToOrigin/ConvertFromOrigin | E-01 L412-552 | ○ |
| C-14 | UT-TYP-049: Offset | E-01 L563-570 | ○ |
| C-15 | UT-TYP-050〜052: Union | E-01 L582-612 | ○ |
| C-16 | UT-TYP-053〜054: Intersect | E-01 L622-642 | ○ |
| C-17 | UT-TYP-055〜057: Subtract | E-01 L655-790 | ○ |
| C-18 | UT-TYP-058〜059: IsValid | E-01 L795-798 | ○ |
| C-19 | UT-TYP-060〜061: operator==/!= | E-02 L91-99 | ○ |

### Utils（UT-TYP-062〜127）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | UT-TYP-062〜067: GUID変換関数群 | E-03 L28-75, E-04 L52-56 | ○ |
| C-21 | UT-TYP-068〜075: 色文字列変換関数群 | E-03 L94-145, E-04 L58-60 | ○ |
| C-22 | UT-TYP-076〜084: ColorFromXTermColor/XParseColorSpec | E-03 L154-349, E-04 L60-61 | ○ |
| C-23 | UT-TYP-085〜091: ColorFromRGB100/ColorToRGB100/ColorFromHLS/ColorToHLS | E-03 L359-509, E-04 L62-65 | ○ |
| C-24 | UT-TYP-092〜097: HexToUint/StringToUint | E-03 L518-577, E-04 L67-68 | ○ |
| C-25 | UT-TYP-098〜100: SplitString | E-03 L586-622, E-04 L69 | ○ |
| C-26 | UT-TYP-101〜104: FilterStringForPaste | E-03 L631-703, E-04 L82 | ○ |
| C-27 | UT-TYP-105〜107: IsValidHandle | E-03 L711-714, E-04 L33 | ○ |
| C-28 | UT-TYP-108〜110: TrimPaste | E-03 L1109-1132, E-04 L127 | ○ |
| C-29 | UT-TYP-111〜113: EvaluateStartingDirectory | E-03 L1242-1264, E-04 L132 | ○ |
| C-30 | UT-TYP-114〜116: Sign | E-04 L26-30 | ○ |
| C-31 | UT-TYP-117〜119: ClampToShortMax | E-04 L45-50 | ○ |
| C-32 | UT-TYP-120〜121: EndianSwap | E-04 L84-109 | ○ |
| C-33 | UT-TYP-122〜123: FindActionableControlCharacter | E-03 L1152-1238, E-04 L129 | ○ |
| C-34 | UT-TYP-124〜127: MangleStartingDirectoryForWSL | E-03 L1023-1107, E-04 L121-122 | ○ |

### Convert（UT-TYP-128〜137）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | UT-TYP-128〜130: ConvertToW | E-05 L20-54, E-06 L27-28 | ○ |
| C-36 | UT-TYP-131〜132: ConvertToA | E-05 L65-98, E-06 L30-31 | ○ |
| C-37 | UT-TYP-133〜134: GetALengthFromW | E-05 L108-131, E-06 L33-34 | ○ |
| C-38 | UT-TYP-135〜137: Utf16ToUcs2 | E-05 L133-144, E-06 L36 | ○ |

### ColorTable（UT-TYP-138〜152）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-39 | UT-TYP-138: CampbellColorTable | E-07 L217-220, E-08 L19 | ○ |
| C-40 | UT-TYP-139〜145: InitializeColorTable/ANSI/VT340/Extended | E-07 L228-283, E-08 L15-18 | ○ |
| C-41 | UT-TYP-146〜152: ColorFromXOrgAppColorName | E-07 L296-369, E-08 L21 | ○ |

### GlyphWidth（UT-TYP-153〜156）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-42 | UT-TYP-153〜156: IsGlyphFullWidth | E-09 L11-24, E-10 L13-14 | ○ |

### SgrStack（UT-TYP-157〜168）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-43 | UT-TYP-157: SgrStackコンストラクタ | E-11 L11-15, E-12 L25 | ○ |
| C-44 | UT-TYP-158〜159: Push | E-11 L17-55, E-12 L35-36 | ○ |
| C-45 | UT-TYP-160〜161: Pop | E-11 L57-87, E-12 L48 | ○ |
| C-46 | UT-TYP-162〜163: スタック最大容量・リングバッファ | E-12 L51, E-11 L48-54 | ○ |
| C-47 | UT-TYP-164〜168: _CombineWithCurrentAttributes | E-11 L89-230 | ○ |

### ColorFix（UT-TYP-169〜176）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | UT-TYP-169〜171: GetPerceivableColor | E-13 L167-209, E-14 L12 | ○ |
| C-49 | UT-TYP-172〜174: AdjustLightness | E-13 L212-217, E-14 L13 | ○ |
| C-50 | UT-TYP-175〜176: GetLightness | E-13 L219-222, E-14 L14 | ○ |

### CodepointWidthDetector（UT-TYP-177〜182）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | UT-TYP-177: Singleton | E-18 L52 | ○ |
| C-52 | UT-TYP-178〜180: GraphemeNext | E-18 L55-56 | ○ |
| C-53 | UT-TYP-181〜182: GetMode/Reset | E-18 L58-60 | ○ |

### ThemeUtils（UT-TYP-183）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-54 | UT-TYP-183: SetWindowFrameDarkMode | E-15 L13-18, E-16 L7 | △ |

### IInputEvent（UT-TYP-184〜187）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-55 | UT-TYP-184: SynthesizeKeyEvent | E-19 L15-30 | ○ |
| C-56 | UT-TYP-185: SynthesizeMouseEvent | E-19 L32-48 | ○ |
| C-57 | UT-TYP-186: SynthesizeWindowBufferSizeEvent | E-19 L50-63 | ○ |
| C-58 | UT-TYP-187: SynthesizeFocusEvent | E-19 L77-87 | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-TYP-183（SetWindowFrameDarkMode）**：現在TODO状態のスタブ実装であり、実際のDWM APIとの連携テストが将来的に必要
  - 候補：DWM API仕様書 / Windows SDK ドキュメント / GH #3425 issue
- **UT-TYP-169〜171（GetPerceivableColor）**：cbrtf_est近似によるOklab計算の精度が不明。期待値の許容誤差範囲を明確にする必要がある
  - 候補：oklab仕様（bottosson.github.io） / doc/color_nudging.html
- **UIA関連クラス（ScreenInfoUiaProviderBase, UiaTextRangeBase, TermControlUiaProvider等）**：これらはCOM/UIAインターフェースの実装であり、モック/スタブが必要なため、本テストケース一覧ではカバレッジが限定的
  - 候補：Microsoft UIA仕様 / IAccessible2仕様
- **Utils::CreateV5Uuid**：BCrypt APIへの依存があり、テスト環境の制約がある
  - 候補：RFC 4122仕様

## 5) リスクフラグ（レビュー観点）
- 0: Viewport、Utils基本関数、Convert、SgrStack、IInputEvent - ソースコードから直接導出可能であり低リスク
- 1: ColorFix（Oklab近似精度）、ColorFromXOrgAppColorName（大規模テーブルの網羅性）- 中リスク
- 2: UIA関連クラス未カバー - テストケース一覧に含まれていないが、COM依存のためモック構築が必要で高リスク

## 6) レビュアーチェックリスト（最小）
- [ ] Viewportの境界値テスト（UT-TYP-005, 017, 018, 025, 028）が実際の使用パターンを網羅しているか
- [ ] ColorFromHexStringの各フォーマット（#RGB, #RRGGBB, #RRGGBBAA）のテストが十分か
- [ ] SgrStackのリングバッファ動作（UT-TYP-163）のテストが正しく11回目のPush後の状態を検証しているか
- [ ] ColorFix::GetPerceivableColorの期待値閾値（minSquaredDistance）が適切か
- [ ] MangleStartingDirectoryForWSLのテストケースがWSLの実際のパス解決動作と整合しているか
- [ ] UIA関連クラス（ScreenInfoUiaProviderBase, UiaTextRangeBase等）のテストが別途計画されているか確認
- [ ] CodepointWidthDetectorのGraphemeNext/Prevが絵文字やサロゲートペアで正しく動作するテストが追加で必要か検討
