---
generated_at: 2026-02-22 12:00:00
metrics:
  claims_total: 193
  claims_with_evidence: 185
  claims_without_evidence: 8
confidence_derived: 0.96
---

# 根拠レポート：mruby-string-ext 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：185 / 193、根拠なし：8
- 優先レビュー（高）
  1. **UT-STE-016（start_with?の空文字列テスト）**：空文字列マッチの挙動はソースコードの`len_l >= len_r`条件から推測
  2. **UT-STE-142（centerの奇数パディング配分）**：左右パディングの具体的な配分はソースコードの`left_pad = total_pad / 2`から推測
  3. **UT-STE-192（__upto_endlessの無限列挙テスト）**：内部メソッドのためRubyレベルでの呼び出しインターフェースが不明確

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

- E-01: `mrbgems/mruby-string-ext/src/string.c` - C実装ソースコード（全メソッド定義、メソッドテーブル登録）
- E-02: `mrbgems/mruby-string-ext/mrblib/string.rb` - Ruby実装ソースコード（each_char, chars, codepoints, lines, upto, __upto_endless）
- E-03: `mrbgems/mruby-string-ext/src/string.c` 行2222-2276 - `string_ext_rom_entries[]` メソッドテーブル（Rubyメソッドとの対応関係）
- E-04: `mrbgems/mruby-string-ext/src/string.c` 行49-99 - swapcase/swapcase!のcall-seqドキュメントコメント
- E-05: `mrbgems/mruby-string-ext/src/string.c` 行139-160 - concat/<<のcall-seqドキュメントコメント
- E-06: `mrbgems/mruby-string-ext/src/string.c` 行175-209 - start_with?のcall-seqドキュメントコメント
- E-07: `mrbgems/mruby-string-ext/src/string.c` 行211-240 - end_with?のcall-seqドキュメントコメント
- E-08: `mrbgems/mruby-string-ext/src/string.c` 行521-567 - trのcall-seqドキュメントコメント
- E-09: `mrbgems/mruby-string-ext/src/string.c` 行676-718 - squeeze/squeeze!のcall-seqドキュメントコメント
- E-10: `mrbgems/mruby-string-ext/src/string.c` 行775-805 - countのcall-seqドキュメントコメント
- E-11: `mrbgems/mruby-string-ext/src/string.c` 行821-872 - chr/Integer#chrのcall-seqドキュメントコメント
- E-12: `mrbgems/mruby-string-ext/src/string.c` 行874-966 - succ/succ!のcall-seqドキュメントコメントと実装
- E-13: `mrbgems/mruby-string-ext/src/string.c` 行996-1064 - ordの実装（UTF-8/非UTF-8両方）
- E-14: `mrbgems/mruby-string-ext/src/string.c` 行1074-1186 - delete_prefix/delete_suffix のcall-seqドキュメントコメント
- E-15: `mrbgems/mruby-string-ext/src/string.c` 行1190-1244 - casecmp/casecmp?のcall-seqドキュメントコメント
- E-16: `mrbgems/mruby-string-ext/src/string.c` 行1246-1266 - __linesの実装
- E-17: `mrbgems/mruby-string-ext/src/string.c` 行1268-1326 - +@, -@, ascii_only?, bの実装
- E-18: `mrbgems/mruby-string-ext/src/string.c` 行1346-1580 - lstrip/rstrip/strip（非破壊・破壊的）の実装
- E-19: `mrbgems/mruby-string-ext/src/string.c` 行1602-1664 - __chars の実装
- E-20: `mrbgems/mruby-string-ext/src/string.c` 行1666-1832 - ljust/rjust/center の実装
- E-21: `mrbgems/mruby-string-ext/src/string.c` 行1895-1972 - slice! の実装
- E-22: `mrbgems/mruby-string-ext/src/string.c` 行1983-1990 - clear の実装
- E-23: `mrbgems/mruby-string-ext/src/string.c` 行1993-2110 - partition/rpartition の実装
- E-24: `mrbgems/mruby-string-ext/src/string.c` 行2112-2157 - insert の実装
- E-25: `mrbgems/mruby-string-ext/src/string.c` 行2159-2219 - prepend の実装
- E-26: `mrbgems/mruby-string-ext/mrblib/string.rb` 行6-14 - each_char の実装
- E-27: `mrbgems/mruby-string-ext/mrblib/string.rb` 行27-34 - chars の実装
- E-28: `mrbgems/mruby-string-ext/mrblib/string.rb` 行36-47 - codepoints の実装
- E-29: `mrbgems/mruby-string-ext/mrblib/string.rb` 行60-70 - lines の実装
- E-30: `mrbgems/mruby-string-ext/mrblib/string.rb` 行102-144 - upto の実装
- E-31: `mrbgems/mruby-string-ext/mrblib/string.rb` 行146-165 - __upto_endless の実装

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | UT-STE-001: swapcase正常系 | E-04 | ○ |
| C-02 | UT-STE-002: swapcase数字記号は不変 | E-04 | ○ |
| C-03 | UT-STE-003: swapcase空文字列 | E-04 | ○ |
| C-04 | UT-STE-004: swapcase非破壊 | E-01, E-04 | ○ |
| C-05 | UT-STE-005: swapcase!破壊的動作 | E-04 | ○ |
| C-06 | UT-STE-006: swapcase!変更なしでnil | E-01 (行78-79) | ○ |
| C-07 | UT-STE-007: <<基本連結 | E-05 | ○ |
| C-08 | UT-STE-008: <<整数コードポイント変換 | E-05, E-01 (行104-115) | ○ |
| C-09 | UT-STE-009: concat複数引数 | E-05 | ○ |
| C-10 | UT-STE-010: concat整数文字列混在 | E-05 | ○ |
| C-11 | UT-STE-011: concat不正引数TypeError | E-01 (行117) | ○ |
| C-12 | UT-STE-012: append_as_bytesバイナリ連結 | E-01 (行169-173) | ○ |
| C-13 | UT-STE-013: start_with?基本一致 | E-06 | ○ |
| C-14 | UT-STE-014: start_with?複数プレフィックス | E-06 | ○ |
| C-15 | UT-STE-015: start_with?不一致 | E-06 | ○ |
| C-16 | UT-STE-016: start_with?空文字列 | E-01 (行202: len_l >= len_r) | △ |
| C-17 | UT-STE-017: start_with?長いプレフィックス | E-06 | ○ |
| C-18 | UT-STE-018: start_with?引数なし | E-01 (行193-208) | ○ |
| C-19 | UT-STE-019: end_with?基本一致 | E-07 | ○ |
| C-20 | UT-STE-020: end_with?複数サフィックス | E-07 | ○ |
| C-21 | UT-STE-021: end_with?不一致 | E-07 | ○ |
| C-22 | UT-STE-022: end_with?長いサフィックス | E-07 | ○ |
| C-23 | UT-STE-023: tr基本置換 | E-08 | ○ |
| C-24 | UT-STE-024: trパディング | E-08 | ○ |
| C-25 | UT-STE-025: tr範囲パターン | E-08 | ○ |
| C-26 | UT-STE-026: tr否定パターン | E-08 | ○ |
| C-27 | UT-STE-027: tr非破壊 | E-01 (行558-567) | ○ |
| C-28 | UT-STE-028: tr!破壊的 | E-01 (行576-586) | ○ |
| C-29 | UT-STE-029: tr!変更なしnil | E-01 (行582-585) | ○ |
| C-30 | UT-STE-030: tr_s squeeze併用 | E-01 (行588-608) | ○ |
| C-31 | UT-STE-031: tr_s対象のみsqueeze | E-01 (行588-608) | ○ |
| C-32 | UT-STE-032: tr_s!破壊的 | E-01 (行617-627) | ○ |
| C-33 | UT-STE-033: tr_s!変更なしnil | E-01 (行623-626) | ○ |
| C-34 | UT-STE-034: squeeze引数なし | E-09 | ○ |
| C-35 | UT-STE-035: squeezeパターン指定 | E-09 | ○ |
| C-36 | UT-STE-036: squeeze範囲パターン | E-09 | ○ |
| C-37 | UT-STE-037: squeeze空文字列 | E-01 (行646) | ○ |
| C-38 | UT-STE-038: squeeze!破壊的 | E-01 (行708-718) | ○ |
| C-39 | UT-STE-039: squeeze!変更なしnil | E-01 (行714-717) | ○ |
| C-40 | UT-STE-040: delete基本削除 | E-01 (行750-773) | ○ |
| C-41 | UT-STE-041: delete範囲パターン | E-01 (行728) | ○ |
| C-42 | UT-STE-042: delete否定パターン | E-01 (行728) | ○ |
| C-43 | UT-STE-043: delete非破壊 | E-01 (行751-760) | ○ |
| C-44 | UT-STE-044: delete!破壊的 | E-01 (行763-773) | ○ |
| C-45 | UT-STE-045: delete!変更なしnil | E-01 (行769-772) | ○ |
| C-46 | UT-STE-046: count基本カウント | E-10 | ○ |
| C-47 | UT-STE-047: count範囲パターン | E-10 | ○ |
| C-48 | UT-STE-048: count否定パターン | E-10 | ○ |
| C-49 | UT-STE-049: count空文字列 | E-10 | ○ |
| C-50 | UT-STE-050: hex基本変換 | E-01 (行808-812) | ○ |
| C-51 | UT-STE-051: hex 0xプレフィックス | E-01 (行811: mrb_str_to_integer) | ○ |
| C-52 | UT-STE-052: hex空文字列 | E-01 (行811) | △ |
| C-53 | UT-STE-053: hex非16進数 | E-01 (行811) | △ |
| C-54 | UT-STE-054: oct基本変換 | E-01 (行815-819) | ○ |
| C-55 | UT-STE-055: oct空文字列 | E-01 (行818) | △ |
| C-56 | UT-STE-056: chr基本 | E-01 (行830-834) | ○ |
| C-57 | UT-STE-057: chr空文字列 | E-01 (行833) | ○ |
| C-58 | UT-STE-058: chr 1文字 | E-01 (行833) | ○ |
| C-59 | UT-STE-059: Integer#chr基本 | E-11 | ○ |
| C-60 | UT-STE-060: Integer#chr ASCII-8BIT | E-11 | ○ |
| C-61 | UT-STE-061: Integer#chr UTF-8 | E-11 | ○ |
| C-62 | UT-STE-062: Integer#chr範囲外 | E-01 (行19-20) | ○ |
| C-63 | UT-STE-063: Integer#chr負の値 | E-01 (行19) | ○ |
| C-64 | UT-STE-064: Integer#chr不明エンコーディング | E-01 (行868) | ○ |
| C-65 | UT-STE-065: Integer#chr 0 | E-01 (行19) | ○ |
| C-66 | UT-STE-066: Integer#chr 255 | E-01 (行19) | ○ |
| C-67 | UT-STE-067: succ基本 | E-12 | ○ |
| C-68 | UT-STE-068: succ複数文字 | E-12 | ○ |
| C-69 | UT-STE-069: succ z->aa繰り上がり | E-12 (行938-940) | ○ |
| C-70 | UT-STE-070: succ 9->10繰り上がり | E-12 (行934-936) | ○ |
| C-71 | UT-STE-071: succ Z->AA繰り上がり | E-12 (行941-943) | ○ |
| C-72 | UT-STE-072: succ空文字列 | E-12 (行890-891) | ○ |
| C-73 | UT-STE-073: succ非破壊 | E-01 (行960-966) | ○ |
| C-74 | UT-STE-074: succ!破壊的 | E-01 (行883-958) | ○ |
| C-75 | UT-STE-075: ord基本 | E-13 | ○ |
| C-76 | UT-STE-076: ord空文字列 | E-13 (行1004-1006, 1045-1046) | ○ |
| C-77 | UT-STE-077: ord UTF-8 | E-13 (行1010-1013) | ○ |
| C-78 | UT-STE-078: __codepoints基本 | E-01 (行1017-1063) | ○ |
| C-79 | UT-STE-079: __codepoints空文字列 | E-01 (行1022, 1025) | ○ |
| C-80 | UT-STE-080: delete_prefix基本 | E-14 | ○ |
| C-81 | UT-STE-081: delete_prefix不一致 | E-14 | ○ |
| C-82 | UT-STE-082: delete_prefix長いプレフィックス | E-01 (行1125) | ○ |
| C-83 | UT-STE-083: delete_prefix空プレフィックス | E-01 (行1126-1127) | △ |
| C-84 | UT-STE-084: delete_prefix!破壊的 | E-14 | ○ |
| C-85 | UT-STE-085: delete_prefix!不一致nil | E-14 | ○ |
| C-86 | UT-STE-086: delete_suffix基本 | E-14 | ○ |
| C-87 | UT-STE-087: delete_suffix不一致 | E-14 | ○ |
| C-88 | UT-STE-088: delete_suffix長いサフィックス | E-01 (行1182) | ○ |
| C-89 | UT-STE-089: delete_suffix!破壊的 | E-14 | ○ |
| C-90 | UT-STE-090: delete_suffix!不一致nil | E-14 | ○ |
| C-91 | UT-STE-091: casecmp等しい | E-15 | ○ |
| C-92 | UT-STE-092: casecmp self>other | E-15 | ○ |
| C-93 | UT-STE-093: casecmp self<other | E-15 | ○ |
| C-94 | UT-STE-094: casecmp非文字列nil | E-01 (行1206) | ○ |
| C-95 | UT-STE-095: casecmp?等しい | E-01 (行1238-1244) | ○ |
| C-96 | UT-STE-096: casecmp?異なる | E-01 (行1238-1244) | ○ |
| C-97 | UT-STE-097: casecmp?非文字列nil | E-01 (行1242) | ○ |
| C-98 | UT-STE-098: __lines基本 | E-16 | ○ |
| C-99 | UT-STE-099: __lines末尾改行 | E-16 | ○ |
| C-100 | UT-STE-100: __lines空文字列 | E-16 | ○ |
| C-101 | UT-STE-101: __lines改行なし | E-16 | ○ |
| C-102 | UT-STE-102: +@ frozen文字列 | E-17 (行1279-1280) | ○ |
| C-103 | UT-STE-103: +@ 非frozen文字列 | E-17 (行1282-1283) | ○ |
| C-104 | UT-STE-104: -@ 非frozen文字列 | E-17 (行1300) | ○ |
| C-105 | UT-STE-105: -@ frozen文字列 | E-17 (行1297-1298) | ○ |
| C-106 | UT-STE-106: ascii_only? ASCII | E-17 (行1304-1317) | ○ |
| C-107 | UT-STE-107: ascii_only? 非ASCII | E-17 (行1312) | ○ |
| C-108 | UT-STE-108: ascii_only? 空文字列 | E-17 (行1311) | ○ |
| C-109 | UT-STE-109: b バイナリ変換 | E-17 (行1321-1326) | ○ |
| C-110 | UT-STE-110: b 非破壊 | E-17 (行1323) | ○ |
| C-111 | UT-STE-111: lstrip基本 | E-18 | ○ |
| C-112 | UT-STE-112: lstrip空白なし | E-18 | ○ |
| C-113 | UT-STE-113: lstrip全空白 | E-18 (行1369-1371) | ○ |
| C-114 | UT-STE-114: lstripタブ改行 | E-18 (行1331-1334) | ○ |
| C-115 | UT-STE-115: rstrip基本 | E-18 | ○ |
| C-116 | UT-STE-116: rstrip null文字 | E-18 (行1340-1344) | ○ |
| C-117 | UT-STE-117: rstrip全空白 | E-18 (行1399-1402) | ○ |
| C-118 | UT-STE-118: strip基本 | E-18 | ○ |
| C-119 | UT-STE-119: stripタブ改行 | E-18 | ○ |
| C-120 | UT-STE-120: strip全空白 | E-18 (行1437-1439) | ○ |
| C-121 | UT-STE-121: strip空文字列 | E-18 | ○ |
| C-122 | UT-STE-122: lstrip!破壊的 | E-18 (行1454-1488) | ○ |
| C-123 | UT-STE-123: lstrip!変更なしnil | E-18 (行1471-1473) | ○ |
| C-124 | UT-STE-124: rstrip!破壊的 | E-18 (行1500-1525) | ○ |
| C-125 | UT-STE-125: rstrip!変更なしnil | E-18 (行1516-1518) | ○ |
| C-126 | UT-STE-126: strip!破壊的 | E-18 (行1537-1580) | ○ |
| C-127 | UT-STE-127: strip!変更なしnil | E-18 (行1571-1573) | ○ |
| C-128 | UT-STE-128: __chars基本 | E-19 | ○ |
| C-129 | UT-STE-129: __chars空文字列 | E-19 | ○ |
| C-130 | UT-STE-130: __chars UTF-8マルチバイト | E-19 (行1626-1652) | ○ |
| C-131 | UT-STE-131: ljustデフォルト | E-20 | ○ |
| C-132 | UT-STE-132: ljustカスタムパディング | E-20 | ○ |
| C-133 | UT-STE-133: ljust幅<=文字列長 | E-20 (行1687-1688) | ○ |
| C-134 | UT-STE-134: ljust空パディング | E-20 (行1682-1684) | ○ |
| C-135 | UT-STE-135: rjustデフォルト | E-20 | ○ |
| C-136 | UT-STE-136: rjustカスタムパディング | E-20 | ○ |
| C-137 | UT-STE-137: rjust幅<=文字列長 | E-20 (行1737-1738) | ○ |
| C-138 | UT-STE-138: rjust空パディング | E-20 (行1732-1734) | ○ |
| C-139 | UT-STE-139: centerデフォルト | E-20 | ○ |
| C-140 | UT-STE-140: centerカスタムパディング | E-20 | ○ |
| C-141 | UT-STE-141: center幅<=文字列長 | E-20 (行1787-1788) | ○ |
| C-142 | UT-STE-142: center奇数パディング配分 | E-20 (行1791-1793) | △ |
| C-143 | UT-STE-143: center空パディング | E-20 (行1782-1784) | ○ |
| C-144 | UT-STE-144: slice!インデックス | E-21 | ○ |
| C-145 | UT-STE-145: slice! Range | E-21 (行1926-1929) | ○ |
| C-146 | UT-STE-146: slice! start+length | E-21 (行1938-1944) | ○ |
| C-147 | UT-STE-147: slice!文字列パターン | E-21 (行1915-1924) | ○ |
| C-148 | UT-STE-148: slice!負インデックス | E-21 (行1933) | ○ |
| C-149 | UT-STE-149: slice!範囲外nil | E-21 (行1934) | ○ |
| C-150 | UT-STE-150: slice!不一致nil | E-21 (行1917) | ○ |
| C-151 | UT-STE-151: slice!負の長さnil | E-21 (行1942) | ○ |
| C-152 | UT-STE-152: clear基本 | E-22 | ○ |
| C-153 | UT-STE-153: clear空文字列 | E-22 | ○ |
| C-154 | UT-STE-154: partition基本 | E-23 | ○ |
| C-155 | UT-STE-155: partition最初の出現 | E-23 | ○ |
| C-156 | UT-STE-156: partition不一致 | E-23 (行2043-2047) | ○ |
| C-157 | UT-STE-157: partition空セパレータ | E-23 (行2020-2025) | ○ |
| C-158 | UT-STE-158: rpartition最後の出現 | E-23 | ○ |
| C-159 | UT-STE-159: rpartition不一致 | E-23 (行2103-2107) | ○ |
| C-160 | UT-STE-160: rpartition空セパレータ | E-23 (行2080-2085) | ○ |
| C-161 | UT-STE-161: insert先頭 | E-24 | ○ |
| C-162 | UT-STE-162: insert中間 | E-24 | ○ |
| C-163 | UT-STE-163: insert末尾 | E-24 | ○ |
| C-164 | UT-STE-164: insert負インデックス | E-24 (行2141-2142) | ○ |
| C-165 | UT-STE-165: insert -1末尾 | E-24 (行2141-2142) | ○ |
| C-166 | UT-STE-166: insert範囲外IndexError | E-24 (行2145-2147) | ○ |
| C-167 | UT-STE-167: insert負の範囲外IndexError | E-24 (行2145-2147) | ○ |
| C-168 | UT-STE-168: prepend基本 | E-25 | ○ |
| C-169 | UT-STE-169: prepend複数引数 | E-25 | ○ |
| C-170 | UT-STE-170: prepend引数なし | E-25 (行2181-2183) | ○ |
| C-171 | UT-STE-171: prepend空文字列 | E-25 (行2195-2197) | ○ |
| C-172 | UT-STE-172: each_char基本 | E-26 | ○ |
| C-173 | UT-STE-173: each_charブロックなし | E-26 (行7) | ○ |
| C-174 | UT-STE-174: each_char空文字列 | E-26 (行9) | ○ |
| C-175 | UT-STE-175: each_char戻り値 | E-26 (行13) | ○ |
| C-176 | UT-STE-176: chars配列 | E-27 | ○ |
| C-177 | UT-STE-177: charsブロック付き | E-27 (行28-30) | ○ |
| C-178 | UT-STE-178: chars空文字列 | E-27, E-19 | ○ |
| C-179 | UT-STE-179: codepointsブロックなし | E-28 | ○ |
| C-180 | UT-STE-180: codepointsブロック付き | E-28 (行39-41) | ○ |
| C-181 | UT-STE-181: lines基本 | E-29 | ○ |
| C-182 | UT-STE-182: linesブロック付き | E-29 (行62-65) | ○ |
| C-183 | UT-STE-183: lines空文字列 | E-29, E-16 | ○ |
| C-184 | UT-STE-184: upto単一文字 | E-30 (行109-118) | ○ |
| C-185 | UT-STE-185: upto数字文字列 | E-30 (行120-131) | ○ |
| C-186 | UT-STE-186: upto exclusive | E-30 (行113) | ○ |
| C-187 | UT-STE-187: uptoゼロパディング | E-30 (行125-126) | ○ |
| C-188 | UT-STE-188: upto逆順 | E-30 (行134-135) | ○ |
| C-189 | UT-STE-189: uptoブロックなし | E-30 (行103) | ○ |
| C-190 | UT-STE-190: upto TypeError | E-30 (行104) | ○ |
| C-191 | UT-STE-191: upto複数文字 | E-30 (行132-143) | ○ |
| C-192 | UT-STE-192: __upto_endless無限列挙 | E-31 | △ |
| C-193 | UT-STE-193: dump基本 | E-03 (行2223) | △ |

## 4) 不足情報（Unknown / Missing）
- **hex/octの空文字列・無効入力の挙動**: `mrb_str_to_integer`関数はコアライブラリにあり、mruby-string-ext内では定義されていないため、戻り値の正確な挙動（0を返すか例外を投げるか）はコア実装に依存する
  - 候補：`src/string.c`内の`mrb_str_to_integer`実装 / CRuby互換仕様
- **delete_prefixの空文字列プレフィックス**: ソースコードの条件分岐からは推測可能だが、明示的なドキュメントがない
  - 候補：CRuby仕様書 / mrubyテストスイート
- **centerの奇数パディング配分**: `left_pad = total_pad / 2`の整数除算の挙動から推測しているが、CRuby仕様との比較が必要
  - 候補：CRuby String#center仕様
- **__upto_endlessの呼び出しインターフェース**: 内部メソッドとしてRangeから呼び出される可能性が高いが、直接の呼び出し方法が不明確
  - 候補：mruby-range-extの実装 / mrblib内の呼び出し箇所
- **dumpの実装詳細**: `mrb_str_dump`関数の実体はstring_ext_rom_entriesで登録されているが、実装本体がこのファイル内に見当たらない（コア側か別ファイルの可能性）
  - 候補：`src/string.c`内の`mrb_str_dump`実装

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - swapcase, chr, succ等の基本文字操作テスト（全体の約60%）
- 1: 中リスク - tr, squeeze, delete等のパターンマッチング系テスト（パターン構文の解釈が複雑）
- 1: 中リスク - UTF-8関連テスト（MRB_UTF8_STRINGコンパイルフラグ依存）
- 0: 低リスク - strip/lstrip/rstrip系テスト（空白文字の定義が明確）
- 1: 中リスク - slice!テスト（UTF-8時のバイトオフセット変換が複雑）
- 0: 低リスク - partition/rpartition/insert/prependテスト（ロジックが単純）

## 6) レビュアーチェックリスト（最小）
- [ ] hex/octの空文字列や無効入力時の正確な戻り値をコア実装(`mrb_str_to_integer`)で確認する
- [ ] MRB_UTF8_STRING有効/無効の両方でテストケースが十分にカバーされているか確認する
- [ ] center/ljust/rjustのマルチバイト文字列でのパディング幅計算が正確か確認する
- [ ] delete_prefix/delete_suffixの空文字列引数時の期待結果がCRuby互換か確認する
- [ ] trパターン構文（エスケープ処理、バックスラッシュ）のエッジケースが十分か確認する
- [ ] frozen文字列に対する破壊的メソッド（strip!, lstrip!, rstrip!, delete_prefix!, delete_suffix!等）のFrozenErrorテストが欠落していないか確認する
- [ ] dump関数の実装がコア側にある場合、テストの配置先として適切か確認する
