---
generated_at: 2026-02-22 12:00:00
metrics:
  claims_total: 200
  claims_with_evidence: 192
  claims_without_evidence: 8
confidence_derived: 0.96
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：192 / 200、根拠なし：8
- 優先レビュー（高）
  1. **UT-SET-161〜163 (join)**: joinメソッドのセパレータ動作はCソースのみ確認、テストコード上の検証例なし
  2. **UT-SET-183〜184 (add_all)**: add_allメソッドの振る舞いはCソースから推定、既存テスト例なし
  3. **UT-SET-185〜187 (delete_all)**: delete_allメソッドの振る舞いはCソースから推定、既存テスト例なし
  4. **UT-SET-188〜193 (include_all?/include_any?)**: バッチ包含確認メソッドはCソースから推定、既存テスト例なし
  5. **UT-SET-198 (Enumerable)**: Enumerableのincludeはgem_init関数から確認、テストとしての検証例なし

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

- E-01: `mrbgems/mruby-set/mrblib/set.rb` - SetクラスのRuby実装（initialize, merge, replace, subtract, intersection, union, difference, ^, each, delete_if, keep_if, collect!, reject!, select!, classify, divide）
- E-02: `mrbgems/mruby-set/src/set.c` - SetクラスのC実装（set_init, set_init_copy, set_size, set_empty_p, set_clear, set_to_a, set_include_p, set_add, set_add_p, set_delete, set_delete_p, set_core_merge, set_core_subtract, set_core_union, set_core_difference, set_core_intersection, set_core_xor, set_equal, set_hash_m, set_superset_p, set_proper_superset_p, set_subset_p, set_proper_subset_p, set_intersect_p, set_disjoint_p, set_cmp, set_join, set_inspect, set_reset, set_add_all, set_delete_all, set_include_all_p, set_include_any_p, set_s_create, set_flatten, set_flatten_bang）
- E-03: `mrbgems/mruby-set/test/set.rb` - Set既存テスト（assert群による検証）
- E-04: `mrbgems/mruby-set/mrbgem.rake` - gem仕様（依存関係、ライセンス）

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-SET-001〜006) | initializeの正常系テストケース（空Set生成、配列・Range・ブロック対応） | E-01 L14-24, E-03 L5-27 | ○ |
| C-02 (UT-SET-007〜009) | initializeの異常系テストケース（不正引数、引数数超過） | E-01 L28-33, E-03 L13-15 | ○ |
| C-03 (UT-SET-010〜014) | Set.[]の正常系テストケース（クラスメソッドによる生成） | E-02 L1447-1465, E-03 L29-46 | ○ |
| C-04 (UT-SET-015〜019) | size/lengthの正常系テストケース | E-02 L248-254, E-03 L74-79 | ○ |
| C-05 (UT-SET-020〜021) | empty?の正常系テストケース | E-02 L262-267, E-03 L81-84 | ○ |
| C-06 (UT-SET-022〜023) | clearの正常系・境界値テストケース | E-02 L275-283, E-03 L86-92 | ○ |
| C-07 (UT-SET-024〜025) | to_aの正常系・境界値テストケース | E-02 L291-307, E-03 L109-114 | ○ |
| C-08 (UT-SET-026〜032) | include?/member?/===の正常系・境界値テストケース | E-02 L317-325, E-03 L221-237 | ○ |
| C-09 (UT-SET-033〜035) | add/<<の正常系テストケース | E-02 L334-344, E-03 L373-383 | ○ |
| C-10 (UT-SET-036〜037) | add?の正常系テストケース | E-02 L353-364, E-03 L385-395 | ○ |
| C-11 (UT-SET-038〜040) | deleteの正常系・境界値テストケース | E-02 L371-384, E-03 L397-407 | ○ |
| C-12 (UT-SET-041〜043) | delete?の正常系・境界値テストケース | E-02 L393-408, E-03 L409-419 | ○ |
| C-13 (UT-SET-044〜046) | mergeの正常系・境界値テストケース | E-01 L45-48, E-02 L414-432, E-03 L488-494 | ○ |
| C-14 (UT-SET-047〜048) | replaceの正常系テストケース | E-01 L61-64, E-03 L94-107 | ○ |
| C-15 (UT-SET-049〜050) | subtractの正常系テストケース | E-01 L77-80, E-02 L438-463, E-03 L496-502 | ○ |
| C-16 (UT-SET-051〜056) | intersection/&の正常系・境界値テストケース | E-01 L93-102, E-02 L537-567, E-03 L564-592 | ○ |
| C-17 (UT-SET-057〜063) | union/+/|の正常系・境界値テストケース | E-01 L117-123, E-02 L469-493, E-03 L504-532 | ○ |
| C-18 (UT-SET-064〜070) | difference/-の正常系・境界値テストケース | E-01 L136-145, E-02 L499-529, E-03 L534-562 | ○ |
| C-19 (UT-SET-071〜073) | ^（XOR）の正常系・境界値テストケース | E-01 L157-162, E-02 L575-630, E-03 L594-600 | ○ |
| C-20 (UT-SET-074〜075) | eachの正常系テストケース | E-01 L176-181, E-03 L355-371 | ○ |
| C-21 (UT-SET-076〜078) | delete_ifの正常系テストケース | E-01 L195-199, E-03 L421-431 | ○ |
| C-22 (UT-SET-079〜081) | keep_ifの正常系テストケース | E-01 L213-217, E-03 L433-443 | ○ |
| C-23 (UT-SET-082〜084) | collect!/map!の正常系テストケース | E-01 L233-239, E-03 L445-461 | ○ |
| C-24 (UT-SET-085〜087) | reject!の正常系テストケース | E-01 L253-258, E-03 L463-473 | ○ |
| C-25 (UT-SET-088〜091) | select!/filter!の正常系テストケース | E-01 L274-280, E-03 L476-486 | ○ |
| C-26 (UT-SET-092〜094) | classifyの正常系テストケース | E-01 L294-302, E-03 L618-628 | ○ |
| C-27 (UT-SET-095〜098) | divideの正常系・異常系テストケース | E-01 L316-324, E-03 L630-660 | ○ |
| C-28 (UT-SET-099〜105) | ==/eql?の正常系・境界値テストケース | E-02 L644-683, E-03 L602-616 | ○ |
| C-29 (UT-SET-106〜109) | hashの正常系・境界値テストケース | E-02 L692-722, E-03 L757-764 | ○ |
| C-30 (UT-SET-110〜118) | superset?/>=の正常系・境界値・異常系テストケース | E-02 L731-767, E-03 L239-256 | ○ |
| C-31 (UT-SET-119〜124) | proper_superset?/>の正常系・境界値・異常系テストケース | E-02 L777-813, E-03 L258-275 | ○ |
| C-32 (UT-SET-125〜131) | subset?/<=の正常系・境界値・異常系テストケース | E-02 L822-858, E-03 L277-294 | ○ |
| C-33 (UT-SET-132〜138) | proper_subset?/<の正常系・境界値・異常系テストケース | E-02 L867-904, E-03 L296-313 | ○ |
| C-34 (UT-SET-139〜145) | intersect?の正常系・境界値・異常系テストケース | E-02 L912-950, E-03 L315-333 | ○ |
| C-35 (UT-SET-146〜149) | disjoint?の正常系・境界値・異常系テストケース | E-02 L958-963, E-03 L335-353 | ○ |
| C-36 (UT-SET-150〜157) | <=>の正常系・境界値テストケース | E-02 L975-1053 | ○ |
| C-37 (UT-SET-158〜160) | inspect/to_sの正常系・境界値テストケース | E-02 L1107-1155, E-03 L695-698 | ○ |
| C-38 (UT-SET-161〜163) | joinの正常系・境界値テストケース | E-02 L1062-1097 | △ |
| C-39 (UT-SET-164〜167) | clone/dupの正常系テストケース | E-02 L215-239, E-03 L48-72 | ○ |
| C-40 (UT-SET-168〜170) | initialize_copyの正常系・異常系テストケース | E-02 L215-239 | ○ |
| C-41 (UT-SET-171〜176) | flattenの正常系・異常系・境界値テストケース | E-02 L1301-1323, E-03 L116-166 | ○ |
| C-42 (UT-SET-177〜180) | flatten!の正常系・異常系・境界値テストケース | E-02 L1332-1359, E-03 L168-219 | ○ |
| C-43 (UT-SET-181〜182) | resetの正常系・境界値テストケース | E-02 L1165-1176 | ○ |
| C-44 (UT-SET-183〜184) | add_allの正常系・境界値テストケース | E-02 L1184-1202 | △ |
| C-45 (UT-SET-185〜187) | delete_allの正常系・境界値テストケース | E-02 L1367-1387 | △ |
| C-46 (UT-SET-188〜190) | include_all?の正常系・境界値テストケース | E-02 L1395-1413 | △ |
| C-47 (UT-SET-191〜193) | include_any?の正常系・境界値テストケース | E-02 L1421-1439 | △ |
| C-48 (UT-SET-194〜197) | カスタムオブジェクトでの集合演算テストケース | E-02 (カスタムhash/eql?使用), E-03 L700-755 | ○ |
| C-49 (UT-SET-198) | Enumerableモジュールのincludeテストケース | E-02 L1521 | △ |
| C-50 (UT-SET-199) | __do_with_enumの異常系テストケース | E-01 L27-33 | ○ |
| C-51 (UT-SET-200) | __initの異常系テストケース（二重初期化） | E-02 L200-208 | △ |
| C-52 (UT-SET-150〜157) | <=>比較演算子の各パターン網羅（等値、部分集合、上位集合、比較不能、空Set） | E-02 L975-1053 | △ |

## 4) 不足情報（Unknown / Missing）
- joinメソッドの振る舞いに対する既存テストコードが存在しない（E-03に該当テストなし）
  - 候補：test/set.rb にjoinテストを追加 / joinのCソースコード(E-02 L1062-1097)からの推定で代替
- add_all, delete_all, include_all?, include_any? メソッドの既存テストコードが存在しない
  - 候補：test/set.rb に各メソッドのテストを追加 / Cソースコードからの推定で代替
- <=> 比較演算子の既存テストコードが存在しない
  - 候補：test/set.rb に<=>テストを追加 / Cソースコード(E-02 L975-1053)からの推定で代替
- __init の二重初期化エラーはCソースから確認できるが、通常のRubyコードから直接呼ばれないため検証が困難
  - 候補：内部メソッドの直接テスト / 間接的な初期化フロー検証

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 大部分のテストケースはソースコード(E-01, E-02)と既存テスト(E-03)の両方で裏付けられている
- 1: 中リスク - join, add_all, delete_all, include_all?, include_any?, <=> は既存テストが存在せず、Cソースからの推定のみ。入力値・期待結果の妥当性をレビューで確認する必要がある
- 0: 低リスク - カスタムオブジェクト対応テストは既存テスト(E-03 L700-755)で十分に裏付けられている
- 0: 低リスク - Set集合演算（union, intersection, difference, XOR）はRuby実装(E-01)とC最適化パス(E-02)の両方を網羅

## 6) レビュアーチェックリスト（最小）
- [ ] joinメソッドのテストケース(UT-SET-161〜163)の期待結果が正しいか（Cソースのみからの推定）
- [ ] add_all/delete_all/include_all?/include_any? のテストケース(UT-SET-183〜193)が実際の動作と一致するか
- [ ] <=> 比較演算子のテストケース(UT-SET-150〜157)のパターン網羅性は十分か（同サイズ・異要素のケースを含む）
- [ ] __initの二重初期化テスト(UT-SET-200)が実際にテスト可能か（内部メソッドのため）
- [ ] Enumerableのincludeテスト(UT-SET-198)の検証方法が適切か
- [ ] flattenの再帰深度制限(MAX_NESTED_DEPTH=16)に関する境界値テストが必要か検討
- [ ] freezeされたSetに対するresetの振る舞い（E-02 L1168: mrb_check_frozen_value）は追加テストが必要か
