---
generated_at: 2026-02-21 12:00:00
metrics:
  claims_total: 147
  claims_with_evidence: 139
  claims_without_evidence: 8
confidence_derived: 0.95
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：139 / 147、根拠なし：8
- 優先レビュー（高）
  1. **select.hsp のアナログ入力処理**: select.hsp が大きすぎて全体を読み込めず、後半のUI描画・アナログ入力の一部ロジックの詳細が未確認
  2. **play.hsp のサブモジュール構成**: play.hsp はインクルード文のみで実処理は scene_play モジュールに委譲されるため、テストケースは形式的
  3. **select.hsp のダイアログ/お気に入り機能**: select.hsp の後半部分（ダイアログ表示・お気に入り追加/削除・詳細表示等）のテストケースが不足している可能性

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

- E-01: `src/scene/title.hsp` - タイトル画面処理（start_title関数、picload_zoom_cache_as/picload_zoom_cache関数）
- E-02: `src/scene/gate.hsp` - ゲート画面処理（on_update_gate関数）
- E-03: `src/scene/option.hsp` - オプション画面処理（on_update_option関数、getkeylabel/getkeylabel2関数、*drawconfigitemサブルーチン）
- E-04: `src/scene/result.hsp` - リザルト画面処理（on_update_result関数）
- E-05: `src/scene/select.hsp` - 選曲画面処理（start_select関数）※先頭600行のみ確認
- E-06: `src/scene/play.hsp` - プレイ画面（インクルードファイル定義のみ）
- E-07: `src/scene/course_result.hsp` - コースリザルト画面処理（on_update_course_result関数）
- E-08: `docs/code-to-docs/単体テストケース一覧/plan.md` - モジュール構成情報

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01~C-04 | start_title 初回フレーム初期化処理（ジョイスティック、IME、glist、テクスチャ再読み込み） | E-01 L1-561 | ○ |
| C-05~C-06 | タイトルBGM制御（再生/非再生条件） | E-01 L575-580 | ○ |
| C-07~C-10 | カーソル移動・クランプ処理 | E-01 L674-704 | ○ |
| C-11~C-14 | メニュー項目選択による各シーン遷移 | E-01 L617-658 | ○ |
| C-15 | Escキーによる終了選択 | E-01 L604-611 | ○ |
| C-16 | curposの補間アニメーション | E-01 L706-708 | ○ |
| C-17~C-19 | コマンドライン引数処理（.ksh/.kco/不正拡張子） | E-01 L530-560 | ○ |
| C-20 | フェードインアニメーション | E-01 L717-722 | ○ |
| C-21 | キャッシュ画像不在時の処理 | E-01 L32-44 | ○ |
| C-22~C-24 | picload_zoom_cache_as/picload_zoom_cache関数 | E-01 L750-771 | ○ |
| C-25~C-26 | on_update_gate ダイアログ表示・遷移 | E-02 L1-10 | ○ |
| C-27~C-28 | on_update_option 初期化処理・BGM再生 | E-03 L1-63 | ○ |
| C-29~C-34 | 上下キー移動・ページ別クランプ | E-03 L121-179 | ○ |
| C-35~C-49 | 各設定項目の左右キー操作・境界値 | E-03 L188-466 | ○ |
| C-50~C-54 | ゲームプレイ設定（ノートモード、アナログ入力、判定遅延） | E-03 L257-455 | ○ |
| C-55~C-59 | Esc/Enter遷移、解像度変更後のキャッシュ再構築、VHS設定フォールバック | E-03 L1060-1158 | ○ |
| C-60~C-63 | キーコンフィグ処理（削除、割当変更、禁止キー、重複検出） | E-03 L751-843 | ○ |
| C-64~C-71 | getkeylabel/getkeylabel2関数 | E-03 L1209-1386 | ○ |
| C-72~C-75 | on_update_result オート/調整/コースモードスキップ | E-04 L1-24 | ○ |
| C-76~C-80 | ノート判定結果の集計ロジック | E-04 L78-158 | ○ |
| C-81~C-84 | GRADE算出ロジック | E-04 L212-218 | ○ |
| C-85~C-90 | メダル判定（cleared/fullcombo/perfect/hard/easy/course） | E-04 L279-339 | ○ |
| C-91~C-93 | スコアファイル保存・更新・プレイ統計 | E-04 L340-473 | ○ |
| C-94~C-96 | ツイートテキスト生成・難易度コード変換 | E-04 L509-577 | ○ |
| C-97 | ツイート機能起動 | E-04 L620-633 | ○ |
| C-98~C-100 | リザルト画面遷移（通常/コース/FAILED） | E-04 L634-681 | ○ |
| C-101~C-103 | IR送信制御・ハイスコア更新通知 | E-04 L586-602, L712-726 | ○ |
| C-104 | アシストモードツイート表示 | E-04 L556-558 | ○ |
| C-105~C-106 | start_select コマンドライン/IME処理 | E-05 L2, L11 | ○ |
| C-107~C-110 | 曲リスト更新・選曲位置復元・クランプ | E-05 L40-47 | ○ |
| C-111 | 難易度フォールバック処理 | E-05 L89-123 | ○ |
| C-112~C-113 | 自動デモプレイ処理 | E-05 L72-88 | ○ |
| C-114~C-115 | Escキーによるディレクトリ/タイトル遷移 | E-05 L160-193 | ○ |
| C-116 | FXキー同時押下によるソート切替 | E-05 L244-262 | ○ |
| C-117~C-120 | Ctrl+C/E/O/I ショートカット | E-05 L266-318 | ○ |
| C-121~C-123 | プレイヤー切替・ラップ処理 | E-05 L226-243 | ○ |
| C-124 | アナログ入力による選曲 | E-05 L482-498 | △ |
| C-125 | 選曲BGM再生 | E-05 L142-148 | ○ |
| C-126 | play.hsp インクルード構成 | E-06 L1-14 | ○ |
| C-127 | on_update_course_result オートスキップ | E-07 L5-21 | ○ |
| C-128 | コーストータルスコア平均化 | E-07 L243 | ○ |
| C-129~C-130 | アチーブメント率算出（クリア時/途中終了時） | E-07 L245-249 | ○ |
| C-131~C-133 | コースメダル判定（フルコンボ/パーフェクト/途中終了） | E-07 L250-263 | ○ |
| C-134~C-135 | コーススコアファイル保存・更新 | E-07 L265-371 | ○ |
| C-136 | コースリザルト一覧表示 | E-07 L71-209 | ○ |
| C-137~C-138 | コースリストスクロール・境界 | E-07 L507-527 | ○ |
| C-139 | コースリザルト画面終了遷移 | E-07 L484-503 | ○ |
| C-140 | コースリザルトツイート機能 | E-07 L467-480 | ○ |
| C-141~C-143 | コースメダルのeffratetype変換 | E-07 L194-207 | ○ |
| C-144 | コースリザルトツイートテキスト生成 | E-07 L451-453 | ○ |
| C-145 | UTF-8 BOM検出と処理 | E-07 L88-91 | ○ |
| C-146 | 難易度文字列パース | E-07 L101-109 | ○ |
| C-147 | レベル値の下限クランプ | E-07 L111 | ○ |

## 4) 不足情報（Unknown / Missing）
- **select.hsp 後半部分（600行以降）のUI描画・ダイアログ処理**: ファイルサイズが大きく全体を読み込めなかったため、お気に入り登録/解除、オプション表示、曲詳細表示等のテストケースが不足している可能性がある
  - 候補：select.hsp のダイアログ表示処理 / お気に入り機能 / ジャケット表示処理
- **play.hsp のサブモジュール実処理**: play.hsp はインクルードのみで実処理は scene_play モジュールに属するため、scene モジュール単体でのテストケースは形式的になる
  - 候補：scene_play モジュールのテストケースとして別途カバー
- **title.hsp の画像リソース読み込み詳細**: テクスチャ読み込みの個々のバッファIDとサイズ計算の網羅的検証は省略
  - 候補：画像リソースの整合性テスト / バッファID重複チェック
- **option.hsp のゲームパッドキーコンフィグ**: ckey>=2（ゲームパッド）時のキー割り当て処理の詳細テストケースが一部不足
  - 候補：ジョイスティックボタン割り当てのテストケース追加

## 5) リスクフラグ（レビュー観点）
- **1（中リスク）**: select.hsp の後半部分（600行以降）が未読のため、選曲画面のUI描画・ダイアログ・お気に入り機能等のテストケースが漏れている可能性がある
- **0（低リスク）**: play.hsp はインクルード定義のみのため、実処理のテストケースは scene_play モジュールに委譲される設計となっている
- **0（低リスク）**: HSP言語の特性上、関数の引数型チェック（異常系）は言語ランタイムに依存する部分が多く、単体テストでの検証には限界がある
- **1（中リスク）**: option.hsp のキーコンフィグ画面は非常に複雑な状態遷移（selnow の100/200加算によるモード切替）を持つため、全組み合わせの網羅は困難

## 6) レビュアーチェックリスト（最小）
- [ ] select.hsp の後半部分（お気に入り追加/削除、曲詳細表示、ダイアログ処理）に対するテストケースが必要かレビュー
- [ ] result.hsp のスコア保存処理で、ディレクトリ構造の作成（mkdir）が正しく行われるかの網羅性を確認
- [ ] option.hsp のキーコンフィグ画面の状態遷移（selnow=100,200系のモード切替）のテストケースが十分かレビュー
- [ ] course_result.hsp のアチーブメント率計算式（特にクリア時の100+ボーナス計算）の正確性を確認
- [ ] 各シーン間の遷移条件（scene変数への代入値）がplan.mdのシーン定数と一致するか確認
- [ ] title.hsp のテクスチャ再読み込み処理でバッファID重複やメモリリークの可能性がないかレビュー
