Skip to content

精度ボーナスの上限をテストで固定し定数と式の重複を解消 - #6993

Merged
TinyKitten merged 2 commits into
devfrom
fix/pin-max-accuracy-bonus-in-test
Sep 16, 2026
Merged

TinyKitten merged 2 commits into
devfrom
fix/pin-max-accuracy-bonus-in-test

Conversation

@TinyKitten

@TinyKitten TinyKitten commented Sep 16, 2026

Copy link
Copy Markdown
Member

概要

#6990useRefreshStation から切り出した精度ボーナス(src/utils/accuracyBonus.ts)について、値を固定できていないテストと、リポジトリに残っていた定数・式の重複を解消する。

アプリの挙動は変更していない。

変更の種類

  • バグ修正
  • 新機能
  • リファクタリング
  • ドキュメント
  • CI/CD
  • その他

変更内容

1. 上限値をテストで固定する

変更前の accuracyBonus.test.ts は、関数の出力をその関数自身が使っている定数と突き合わせていた。

expect(getAccuracyBonus(2000)).toBe(MAX_ACCURACY_BONUS);

これは上限を 150m から動かしても通るトートロジーで、値を固定できていない。リテラルでアサートし、頭打ちの境界(精度 300m → 150)とその手前(299m → 149.5)も併せて固定した。

定数を 150 → 300 に改変すると新しいテストは落ちる(Expected: 150 / Received: 300)。変更前のテストはこの改変で通っていた。

2. 定数の公開をやめる

MAX_ACCURACY_BONUSexport を外し、#6990 以前(useRefreshStation のファイル private)と同じ可視性に戻した。上の 1 により外から突き合わせる用途が無くなったため。

3. GPX テストの写しを共有関数へ置き換える

src/store/atoms/location.gpxEtaAssist.test.ts が定数の手写し(const MAX_ACCURACY_BONUS = 150;)と式の再実装(Math.min(accuracy * 0.5, MAX_ACCURACY_BONUS))を持っていたので、getAccuracyBonus() の呼び出しへ置き換えた。

このテストが使う精度は 30 / 60 / 250 / 600m の正値のみで、getAccuracyBonus が写しの式と異なるのは null・NaN・非正値のときだけなので、判定結果は同一

これで MAX_ACCURACY_BONUS はリポジトリ全体で accuracyBonus.ts の 1 箇所だけになった。

テスト

  • npm run lint が通ること
  • npm test が通ること
  • npm run typecheck が通ること

npm run lint(771 ファイル・エラーなし)/ npm test(289 suites・3165 tests 全件成功)/ npm run typecheck(エラーなし)。

location.gpxEtaAssist.test.ts(ETA 補助を有効にしても走行結果が変わらないことを実 GPX で確かめる回帰)も 5 件すべて pass。

実機・シミュレータでの動作確認は未実施(差分はテストと定数の可視性のみで、アプリの挙動は変わらないため)。

関連Issue

スクリーンショット(任意)

UI 変更なし: 変更は src/utils/accuracyBonus.ts と 2 つのテストファイルのみで、画面に影響する差分はない。

🤖 Generated with Claude Code

https://claude.ai/code/session_01KuvCXLRytCryvexood76po


Generated by Claude Code

Summary by CodeRabbit

  • 改善
    • ETA補助の検証で、実際の運行処理と同じ精度補正計算を使用するようになりました。
    • GPS精度補正の上限値に関するテストを強化し、さまざまな精度値で適切に上限が適用されることを確認しました。

@TinyKitten TinyKitten self-assigned this Sep 16, 2026
@github-actions github-actions Bot added the react label Sep 16, 2026
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Essentials

Run ID: 5f5d6853-d516-491b-ac46-6d611ae20d60

📥 Commits

Reviewing files that changed from the base of the PR and between 8afaba1 and 04d42a8.

📒 Files selected for processing (3)
  • src/store/atoms/location.gpxEtaAssist.test.ts
  • src/utils/accuracyBonus.test.ts
  • src/utils/accuracyBonus.ts

Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.


📝 Walkthrough

Walkthrough

精度ボーナスの上限定数を非公開化しました。精度ボーナスの境界値テストを更新しました。ETA補助テストは共有関数 getAccuracyBonus を使用します。

Changes

精度ボーナス計算

Layer / File(s) Summary
精度ボーナス定数と境界値テスト
src/utils/accuracyBonus.ts, src/utils/accuracyBonus.test.ts
MAX_ACCURACY_BONUS を非公開定数に変更しました。精度300、299、2000で上限値150を検証します。
ETA補助テストの共有計算利用
src/store/atoms/location.gpxEtaAssist.test.ts
到着半径の精度ボーナス計算に getAccuracyBonus を使用します。重複したローカル計算と定数参照を削除しました。

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Refactor

Merge Risk: ⚪ Minimal · up to 04d42

The refactor preserves accuracy-bonus behavior while removing duplicated test logic, so no merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed タイトルは、精度ボーナスの上限値をテストで固定し、定数と計算式の重複を解消する主な変更を簡潔に示しています。
Description check ✅ Passed 概要、変更の種類、変更内容、テスト結果、関連Issue欄、スクリーンショット欄を含みます。実施したテストとUI変更がない理由も具体的に記載されています。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/pin-max-accuracy-bonus-in-test

うさぎは跳ねて、共有関数へ
境界の数値を耳で確認
上限150、ぴたりと止まり
ETAの道も同じ式
にんじん片手に、変更を祝う

Comment @coderabbitai help to get the list of available commands.

@TinyKitten
TinyKitten merged commit a023bfd into dev Sep 16, 2026
7 checks passed
@TinyKitten
TinyKitten deleted the fix/pin-max-accuracy-bonus-in-test branch September 16, 2026 06:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants