---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 313
  claims_with_evidence: 305
  claims_without_evidence: 8
confidence_derived: 0.97
---

# 根拠レポート：buffer モジュール単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：305 / 313、根拠なし：8
- 優先レビュー（高）
  1. **TextBuffer::Reflow のテストケース（C-298）**：リフロー処理は非常に複雑で、テストケースが1件では不十分な可能性
  2. **TextBuffer::GenHTML/GenRTF**：テストケースを含めていない。出力フォーマットの検証が必要
  3. **TextBuffer::SerializeTo**：シリアライズ処理のテストケースが未記載

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

- E-01: `src/buffer/out/TextColor.h` - TextColor構造体の定義（コンストラクタ、メソッド宣言、定数定義）
- E-02: `src/buffer/out/TextColor.cpp` - TextColorメソッドの実装（IsDefault, IsRgb, GetColor, GetLegacyIndex等）
- E-03: `src/buffer/out/TextAttribute.hpp` - TextAttributeクラスの定義（全メソッド宣言、enum定義）
- E-04: `src/buffer/out/TextAttribute.cpp` - TextAttributeメソッドの実装（Set/Get系、Is系、レガシー変換等）
- E-05: `src/buffer/out/cursor.h` - Cursorクラスの定義（メソッド宣言、メンバ変数）
- E-06: `src/buffer/out/cursor.cpp` - Cursorメソッドの実装（位置操作、プロパティ設定等）
- E-07: `src/buffer/out/Row.hpp` - ROWクラスの定義（メソッド宣言、WriteHelper構造体、CharToColumnMapper）
- E-08: `src/buffer/out/Row.cpp` - ROWメソッドの実装（ReplaceText, CopyFrom, Reset等）
- E-09: `src/buffer/out/textBuffer.hpp` - TextBufferクラスの定義（全publicメソッド宣言）
- E-10: `src/buffer/out/textBuffer.cpp` - TextBufferメソッドの実装（コンストラクタ、検索、マーク処理等）
- E-11: `src/buffer/out/search.h` - Searchクラスの定義（メソッド宣言、SearchFlag enum）
- E-12: `src/buffer/out/search.cpp` - Searchメソッドの実装（Reset, FindNext, MoveToPoint等）
- E-13: `src/buffer/out/OutputCell.hpp` - OutputCellクラスの定義
- E-14: `src/buffer/out/OutputCell.cpp` - OutputCellメソッドの実装
- E-15: `src/buffer/out/OutputCellView.hpp` - OutputCellViewクラスの定義
- E-16: `src/buffer/out/OutputCellView.cpp` - OutputCellViewメソッドの実装
- E-17: `src/buffer/out/OutputCellIterator.hpp` - OutputCellIteratorクラスの定義
- E-18: `src/buffer/out/OutputCellIterator.cpp` - OutputCellIteratorメソッドの実装
- E-19: `src/buffer/out/OutputCellRect.hpp` - OutputCellRectクラスの定義
- E-20: `src/buffer/out/OutputCellRect.cpp` - OutputCellRectメソッドの実装
- E-21: `src/buffer/out/ImageSlice.hpp` - ImageSliceクラスの定義
- E-22: `src/buffer/out/ImageSlice.cpp` - ImageSliceメソッドの実装
- E-23: `src/buffer/out/Marks.hpp` - ScrollbarData, MarkExtents, ScrollMark構造体の定義
- E-24: `src/buffer/out/LineRendition.hpp` - LineRendition enum、座標変換関数の定義
- E-25: `src/buffer/out/DbcsAttribute.hpp` - DbcsAttribute enum、GeneratePublicApiAttributeFormat関数の定義
- E-26: `src/buffer/out/textBufferCellIterator.hpp` - TextBufferCellIteratorクラスの定義
- E-27: `src/buffer/out/textBufferTextIterator.hpp` - TextBufferTextIteratorクラスの定義
- E-28: `src/buffer/out/UTextAdapter.h` - UTextFromTextBuffer関数の宣言
- E-29: `src/buffer/out/UTextAdapter.cpp` - UTextAdapter実装

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

### TextColor（C-01 〜 C-34）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01〜C-04 | TextColorコンストラクタの各パターン | E-01, E-02 | ○ |
| C-05〜C-09 | IsDefault/IsIndex16/IsIndex256/IsRgb判定 | E-01, E-02 | ○ |
| C-10〜C-14 | IsLegacy/IsDefaultOrLegacy判定 | E-02 | ○ |
| C-15〜C-17 | CanBeBrightened判定 | E-02 | ○ |
| C-18〜C-21 | SetColor/SetIndex/SetDefault | E-02 | ○ |
| C-22〜C-25 | GetColor（各状態、brighten処理） | E-02 | ○ |
| C-26〜C-28 | GetLegacyIndex（各パターン） | E-02 | ○ |
| C-29〜C-31 | TransposeLegacyIndex（境界値含む） | E-01 | ○ |
| C-32〜C-34 | operator==/!=, GetType | E-01, E-02 | ○ |

### TextAttribute（C-35 〜 C-94）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35〜C-37 | コンストラクタの各パターン | E-03, E-04 | ○ |
| C-38〜C-40 | SetLegacyDefaultAttributes/GetLegacyAttributes | E-04 | ○ |
| C-41〜C-43 | IsLegacy/IsHyperlink | E-04 | ○ |
| C-44〜C-54 | Set/Get Foreground/Background/Color | E-04 | ○ |
| C-55〜C-68 | 下線色、文字装飾属性（Intense〜Protected） | E-04 | ○ |
| C-69〜C-73 | Invert/IsBold | E-04 | ○ |
| C-74〜C-81 | SetDefault系/BackgroundIsDefault/SetStandardErase | E-04 | ○ |
| C-82〜C-84 | グリッドライン表示判定・設定 | E-04 | ○ |
| C-85〜C-94 | operator比較, HasIdenticalVisualRepresentation, HasAnyVisualAttributes等 | E-03, E-04 | ○ |

### Cursor（C-95 〜 C-116）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-95〜C-97 | コンストラクタ/GetPosition/SetPosition | E-05, E-06 | ○ |
| C-98 | SetPositionでDelayEOLWrapリセット | E-06 | ○ |
| C-99〜C-105 | Set/Increment/DecrementX/YPosition | E-06 | ○ |
| C-106〜C-116 | Visible/Blinking/Double/Size/Style/CopyProperties/DelayEOLWrap/Type/MutationId | E-05, E-06 | ○ |

### ROW（C-117 〜 C-166）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-117〜C-118 | コンストラクタ/Reset | E-07, E-08 | ○ |
| C-119〜C-124 | WrapForced/DoubleBytePadded/LineRendition/ReadableColumnCount | E-07, E-08 | ○ |
| C-125〜C-129 | ReplaceText（正常系・境界値・ワイドグリフ） | E-07, E-08 | ○ |
| C-130〜C-134 | CopyFrom/CopyTextFrom/ReplaceAttributes/SetAttrToEnd/ClearCell | E-07, E-08 | ○ |
| C-135〜C-146 | GetAttrByColumn/GlyphAt/DbcsAttrAt/GetText/Measure/ContainsText | E-07, E-08 | ○ |
| C-147〜C-151 | NavigateToPrevious/Next/AdjustToGlyphStart/End | E-07, E-08 | ○ |
| C-152〜C-166 | Hyperlinks/size/DelimiterClassAt/ScrollbarData/ImageSlice/WriteCells/CalculateSize/CharToColumnMapper | E-07, E-08 | ○ |

### Search（C-167 〜 C-186）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-167〜C-186 | Reset/IsStale/MoveToPoint/MovePastPoint/FindNext/GetCurrent/SelectCurrent/Results/IsOk | E-11, E-12 | ○ |

### OutputCellView / OutputCell / OutputCellIterator / OutputCellRect（C-187 〜 C-218）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-187〜C-192 | OutputCellViewのコンストラクタ/Columns/operator/UpdateText | E-15, E-16 | ○ |
| C-193〜C-199 | OutputCellのコンストラクタ/TextAttr例外/SetChars | E-13, E-14 | ○ |
| C-200〜C-214 | OutputCellIteratorの各モード/operator系/距離計算/_TryMoveTrailing | E-17, E-18 | ○ |
| C-215〜C-218 | OutputCellRectのコンストラクタ/GetRow/GetRowIter | E-19, E-20 | ○ |

### ImageSlice（C-219 〜 C-231）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-219〜C-231 | コンストラクタ/BumpRevision/MutablePixels/Pixels/CopyBlock/CopyRow/EraseBlock/EraseCells/_eraseCells | E-21, E-22 | ○ |

### LineRendition / DbcsAttribute / Marks（C-232 〜 C-245）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-232〜C-235 | ScreenToBufferLine/BufferToScreenLine座標変換 | E-24 | ○ |
| C-236〜C-238 | GeneratePublicApiAttributeFormat | E-25 | ○ |
| C-239〜C-245 | MarkExtents HasCommand/HasOutput/GetExtent | E-23 | ○ |

### TextBufferCellIterator / TextBufferTextIterator（C-246 〜 C-251）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-246〜C-251 | コンストラクタ/operator bool/++/--/+=/* | E-26, E-27 | ○ |

### TextBuffer（C-252 〜 C-313）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-252〜C-253 | コンストラクタ（正常系・境界値） | E-09, E-10 | ○ |
| C-254〜C-260 | GetRowByOffset/GetMutableRowByOffset/GetScratchpadRow/IncrementCircularBuffer/GetCursor/GetSize/TotalRowCount | E-09, E-10 | ○ |
| C-261〜C-266 | CurrentAttributes/Replace/Insert/FillRect/ScrollRows | E-09, E-10 | ○ |
| C-267〜C-274 | GetLastNonSpaceCharacter/WrapForced/LineRendition/Reset/ResizeTraditional | E-09, E-10 | ○ |
| C-275〜C-282 | WordStart/WordEnd/MoveToNextWord/MoveToPreviousWord/GlyphStart/GlyphEnd/MoveToNextGlyph/MoveToPreviousGlyph | E-09, E-10 | ○ |
| C-283〜C-290 | Hyperlink管理/GetPlainText/SearchText | E-09, E-10 | ○ |
| C-291〜C-300 | マーク処理/Reflow/ActiveBuffer/ClearScrollback | E-09, E-10 | ○ |
| C-301〜C-306 | GraphemeNext/Prev/FitTextIntoColumns/NavigateCursor/CopyRow | E-09, E-10 | ○ |
| C-307〜C-311 | GetTextRects/ScreenToBufferPosition/BufferToScreenPosition | E-09, E-10 | ○ |
| C-312 | CopyHyperlinkMaps | E-09 | ○ |
| C-313 | UTextFromTextBuffer | E-28, E-29 | ○ |

### 根拠なし（△）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-未記載-1 | TextBuffer::GenHTML のテストケース | **根拠なし（対象外とした）** | △ |
| C-未記載-2 | TextBuffer::GenRTF のテストケース | **根拠なし（対象外とした）** | △ |
| C-未記載-3 | TextBuffer::SerializeTo のテストケース | **根拠なし（対象外とした）** | △ |
| C-未記載-4 | TextBuffer::GetWithControlSequences のテストケース | **根拠なし（対象外とした）** | △ |
| C-未記載-5 | TextBuffer::Write（OutputCellIterator版）のテストケース | **根拠なし（対象外とした）** | △ |
| C-未記載-6 | TextBuffer::WriteLine のテストケース | **根拠なし（対象外とした）** | △ |
| C-未記載-7 | TextBuffer::CopyProperties のテストケース | **根拠なし（対象外とした）** | △ |
| C-未記載-8 | TextBuffer::GetCellDistance のテストケース | **根拠なし（対象外とした）** | △ |

## 4) 不足情報（Unknown / Missing）
- **GenHTML / GenRTF**: コピー&ペースト用のHTML/RTF生成メソッド。外部ライブラリとの連携が複雑であり、単体テストの設計には出力フォーマットの仕様詳細が必要
  - 候補：HTML/RTF仕様書 / 既存のテスト実装（ut_textbuffer内）/ GenHTML/GenRTFの実装本体
- **SerializeTo**: シリアライズの出力先フォーマットの仕様が不明
  - 候補：SerializeToの実装本体 / シリアライズフォーマット仕様
- **Write/WriteLine**: OutputCellIteratorベースの書き込みメソッド。Replace/Insertの上位メソッドだが、組み合わせパターンが多い
  - 候補：既存テストコード / textBuffer.cppの実装詳細
- **GetWithControlSequences**: VT制御シーケンス付きテキスト取得。VT仕様に基づく複雑な出力
  - 候補：VT仕様書 / GetWithControlSequencesの実装本体
- **CopyProperties / GetCellDistance**: 比較的シンプルなメソッドだが、テストケースへの記載が漏れた
  - 候補：textBuffer.hpp/cppの実装

## 5) リスクフラグ（レビュー観点）
- **リスク1（中）**: GenHTML/GenRTF/GetWithControlSequencesのテストケースが不足。コピー&ペースト機能に影響するため、別途テストケースの追加を推奨
- **リスク1（中）**: TextBuffer::Reflowのテストケースが1件のみ。リフロー処理は行折り返し・マージン・ワイドグリフなど複雑な組み合わせがあるため、パターン網羅が必要
- **リスク0（低）**: ROWの内部実装（WriteHelper構造体）は直接テスト不要だが、ReplaceText/CopyTextFromを通じて間接的にカバーされることを確認すべき

## 6) レビュアーチェックリスト（最小）
- [ ] TextColor のGetColor メソッド: brighten処理の各パス（AVX/SSE/fallback）が網羅されているか
- [ ] TextAttribute のSetUnderlineStyle: 全UnderlineStyleバリアントがテストされているか
- [ ] ROW::ReplaceText のワイドグリフ分割ケース: leading/trailing halfの上書きパターンが十分か
- [ ] TextBuffer::Reflow: 行折り返し・マージン・ワイド文字の組み合わせが十分にテストされるか
- [ ] Search::Reset: CaseInsensitive と RegularExpression フラグの組み合わせがテストされているか
- [ ] GenHTML/GenRTF/SerializeTo/GetWithControlSequences のテストケース追加が必要か判断する
- [ ] ImageSlice の CopyCells: lineRendition が異なる場合のerase処理が正しくテストされるか
- [ ] OutputCellIterator の各Mode（Loose/Fill/Cell/CharInfo/LegacyAttr）が網羅されているか
