---
generated_at: 2026-01-28 14:20:00
metrics:
  claims_total: 60
  claims_with_evidence: 58
  claims_without_evidence: 2
confidence_derived: 0.97
---

# 根拠レポート：location.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：58 / 60、根拠なし：2
- 優先レビュー（高）
  1. **UT-LOC-007**：例外発生時のmounted状態チェックの詳細動作確認
  2. **UT-LOC-050**：ネットワークエラー時の具体的な例外型要確認

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

- E-01: `lib/screens/location/view/location_screen.dart` - LocationScreenウィジェット実装
- E-02: `lib/screens/location/view/place_search.dart` - PlaceSearch画面実装
- E-03: `lib/screens/location/bloc/location_bloc.dart` - LocationScreenBloc実装
- E-04: `lib/screens/location/bloc/location_state.dart` - 状態クラス定義
- E-05: `lib/screens/location/bloc/location_event.dart` - イベントクラス定義
- E-06: `lib/screens/location/bloc/location_repo.dart` - LocationRepository実装
- E-07: `lib/screens/location/utils/index.dart` - エクスポートファイル
- E-08: `lib/data_model/google_place_model.dart` - GooglePlaceModel定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-LOC-001) | 初期住所が設定される場合のaddress初期化 | E-01 L41-43 | ○ |
| C-02 (UT-LOC-002) | 初期住所がnullの場合のaddress初期化 | E-01 L41-43 | ○ |
| C-03 (UT-LOC-003) | getCurrentLocationが呼び出されること | E-01 L45 | ○ |
| C-04 (UT-LOC-004) | 住所から位置情報を取得できる場合 | E-01 L216-228 | ○ |
| C-05 (UT-LOC-005) | 住所が空で現在地から位置情報を取得 | E-01 L224-227 | ○ |
| C-06 (UT-LOC-006) | locationFromAddressが空リストを返す場合 | E-01 L224-227 | ○ |
| C-07 (UT-LOC-007) | 位置情報取得で例外が発生した場合 | E-01 L229-232 | △ |
| C-08 (UT-LOC-008) | カメラアニメーションが実行されること | E-01 L238-242 | ○ |
| C-09 (UT-LOC-009) | 緯度経度がnullの場合にデフォルト値を使用 | E-01 L36-37, L67-68, L237, L239-240 | ○ |
| C-10 (UT-LOC-010) | 検索結果の位置に移動できること | E-01 L245-256 | ○ |
| C-11 (UT-LOC-011) | getLocationが呼び出されること | E-01 L256 | ○ |
| C-12 (UT-LOC-012) | placemarkFromCoordinatesで住所情報を取得 | E-01 L260-263 | ○ |
| C-13 (UT-LOC-013) | streetが存在する場合にaddressとaddressMapに設定 | E-01 L265-268 | ○ |
| C-14 (UT-LOC-014) | thoroughfareが存在する場合に設定 | E-01 L269-272 | ○ |
| C-15 (UT-LOC-015) | subLocalityが存在する場合に設定 | E-01 L273-276 | ○ |
| C-16 (UT-LOC-016) | localityが存在する場合に設定 | E-01 L277-280 | ○ |
| C-17 (UT-LOC-017) | administrativeAreaが存在する場合に設定 | E-01 L281-284 | ○ |
| C-18 (UT-LOC-018) | postalCodeが存在する場合に設定 | E-01 L285-288 | ○ |
| C-19 (UT-LOC-019) | countryが存在する場合に設定 | E-01 L289-292 | ○ |
| C-20 (UT-LOC-020) | isoCountryCodeが存在する場合に設定 | E-01 L293-296 | ○ |
| C-21 (UT-LOC-021) | すべてのPlacemarkフィールドが空の場合 | E-01 L265-296 条件分岐 | ○ |
| C-22 (UT-LOC-022) | 位置情報取得中はLoaderが表示される | E-01 L61, L165 | ○ |
| C-23 (UT-LOC-023) | 位置情報取得後はGoogleMapが表示される | E-01 L61-164 | ○ |
| C-24 (UT-LOC-024) | onCameraMoveでpositionが更新される | E-01 L74-78 | ○ |
| C-25 (UT-LOC-025) | onCameraIdleでgetLocationが呼び出される | E-01 L79-84 | ○ |
| C-26 (UT-LOC-026) | 住所選択タップでaddressMapがpopされる | E-01 L167-169 | ○ |
| C-27 (UT-LOC-027) | 検索バータップでPlaceSearchに遷移 | E-01 L122-137 | ○ |
| C-28 (UT-LOC-028) | PlaceSearchから戻り値がLatLngの場合placeSearchを実行 | E-01 L133-136 | ○ |
| C-29 (UT-LOC-029) | addressが空の場合「お待ちください」表示 | E-01 L203-205 | ○ |
| C-30 (UT-LOC-030) | addressが設定済みの場合住所テキスト表示 | E-01 L194-202 | ○ |
| C-31 (UT-LOC-031) | LocationScreenBlocが取得されること | E-02 L28 | ○ |
| C-32 (UT-LOC-032) | LocationScreenLoadingStateでisLoading=true | E-02 L36-37 | ○ |
| C-33 (UT-LOC-033) | SearchPlaceSuccessStateでplaceModelが設定される | E-02 L38-40 | ○ |
| C-34 (UT-LOC-034) | SearchPlaceErrorStateでisLoading=false | E-02 L41-42 | ○ |
| C-35 (UT-LOC-035) | LocationScreenInitialStateでplaceModelがnull | E-02 L43-46 | ○ |
| C-36 (UT-LOC-036) | 検索キー入力でSearchPlaceEventが発行される | E-02 L78-80 | ○ |
| C-37 (UT-LOC-037) | 検索キーが空の場合SearchPlaceInitialEvent発行 | E-02 L81-83 | ○ |
| C-38 (UT-LOC-038) | 検索結果がある場合ListViewが表示される | E-02 L121-167 | ○ |
| C-39 (UT-LOC-039) | 検索結果が空の場合「結果なし」メッセージ表示 | E-02 L169-179 | ○ |
| C-40 (UT-LOC-040) | 検索結果タップでLatLngがpopされる | E-02 L130-145 | ○ |
| C-41 (UT-LOC-041) | クリアボタンで検索がリセットされる | E-02 L99-107 | ○ |
| C-42 (UT-LOC-042) | geometry.locationがnullの場合にデフォルト値0.0 | E-02 L137-144 (null演算子使用) | ○ |
| C-43 (UT-LOC-043) | 初期状態がLocationScreenInitialState | E-03 L17 | ○ |
| C-44 (UT-LOC-044) | SearchPlaceEventで検索成功時にSuccessState発行 | E-03 L23-31 | ○ |
| C-45 (UT-LOC-045) | repositoryがnullを返す場合ErrorState発行 | E-03 L27-31 | ○ |
| C-46 (UT-LOC-046) | 例外発生時にErrorState発行 | E-03 L32-34 | ○ |
| C-47 (UT-LOC-047) | SearchPlaceInitialEventでInitialState発行 | E-03 L35-37 | ○ |
| C-48 (UT-LOC-048) | Google Places APIから検索結果を取得 | E-06 L20-33 | ○ |
| C-49 (UT-LOC-049) | エンドポイントが正しく構築されること | E-06 L22-23 | ○ |
| C-50 (UT-LOC-050) | API呼び出しで例外が発生した場合 | E-06 (Dio使用) | △ |
| C-51 (UT-LOC-051) | LocationScreenEventのpropsが空リスト | E-05 L14-16 | ○ |
| C-52 (UT-LOC-052) | SearchPlaceEventのqueryが正しく設定 | E-05 L20-22 | ○ |
| C-53 (UT-LOC-053) | LocationScreenStateのpropsが空リスト | E-04 L14-16 | ○ |
| C-54 (UT-LOC-054) | SearchPlaceSuccessStateのdataが正しく設定 | E-04 L23-26 | ○ |
| C-55 (UT-LOC-055) | SearchPlaceErrorStateのmessageが正しく設定 | E-04 L29-32 | ○ |
| C-56 (UT-LOC-056) | GooglePlaceModelのfromJson | E-08 L36-38 | ○ |
| C-57 (UT-LOC-057) | GooglePlaceModelのtoJson | E-08 L39 | ○ |
| C-58 (UT-LOC-058) | ResultsのfromJson | E-08 L60-61 | ○ |
| C-59 (UT-LOC-059) | GeometryのfromJson | E-08 L73-74 | ○ |
| C-60 (UT-LOC-060) | LocationのfromJson | E-08 L84-85 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-07 (UT-LOC-007)**: `mounted`チェックはFlutterのStatefulWidgetの標準的なプロパティであり、コード上で使用されている（L230）が、例外の種類による詳細な挙動は未特定
  - 候補：位置情報パーミッション拒否 / GPS無効 / タイムアウト
- **C-50 (UT-LOC-050)**: Dio使用時のネットワークエラー（DioException）の詳細な型や挙動はDioライブラリの仕様に依存
  - 候補：DioException / SocketException / TimeoutException

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 全体的にコードとテストケースの対応が明確
- **1 (中リスク)**:
  - 外部依存（Google Places API、Geocoding API）のモック化が必要
  - 位置情報パーミッション関連のテストは実機/エミュレータ依存の可能性あり
- **0 (低リスク)**: BLoCパターンの状態遷移は明確に定義されている

## 6) レビュアーチェックリスト（最小）
- [ ] LocationScreenのgetCurrentLocation/getLocationメソッドのエラーハンドリングが十分か確認
- [ ] PlaceSearchの検索結果がnull/空の場合の境界値テストが網羅されているか確認
- [ ] Google Places APIのAPIキー設定（現在はプレースホルダー）がテスト環境で適切にモック化されるか確認
- [ ] Geocodingライブラリ（locationFromAddress、placemarkFromCoordinates）のモック戦略を検討
- [ ] Equatableを継承した状態・イベントクラスのprops実装が正しいか確認
- [ ] GooglePlaceModelのJSON変換（fromJson/toJson）に対するエッジケーステストの追加を検討
