Aetheria/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens d528d88883 Cut 6d: the dart-throw kernel replaces the coin-flip landing rule
FireControl.Commit used to place a hit with a coin flip between exactly
the aimed item and a uniform-random hull cell -- no spatial term, so a
near-miss on a stern item was as likely to land in the bow as the stern.

One Gaussian kernel, in hull-schematic cell units, now decides both
halves of "where will this shot go": w(cell) = exp(-d^2/2*sigma^2) over
every occupied cell, sigma = 1/Precision. HitProbability folds the
kernel's on-hull mass share (pOnHull) into PBase at fire time (R10/Q6
unaffected); Commit draws the landing cell from the same weights. A shot
that passes the roll always lands on metal -- the off-hull chance is
priced into that one roll, never resolved as a second miss stage. The
uniform-random branch is deleted outright, not demoted.

Precision now feeds every shot's pOnHull, aimed or not, so its unaided
fallback (FireControl.Precision) reads GameplaySettings.UnaidedPrecision
instead of a bare 0 -- the same shape as the existing UnaidedAccuracy/
UnaidedTracking floors. pOnHull is saturated: the discrete sum over-
estimates the continuous kernel's integral once sigma drops below about
one cell, and a mass share cannot exceed the whole kernel.

Existing fixtures across FireAuthorityTests, FireControlCut4/5/6Tests and
TargetingSystemTests authored Precision as 0 (or relied on the old 0
fallback) purely as a don't-care value under the coin-flip rule, where it
only gated the aimed-item branch. Under the kernel it drives every shot's
sigma, so those fixtures are re-authored to keep pOnHull near its
ceiling and stay pinned on what they actually test.

mutation_tests_fire_control_cut3.sh's two anchors into HitProbability's
return line and the deleted coin-flip branch are updated to the
equivalent lines/mutations on the new code.
2026-09-19 21:37:39 +02:00
..
Aetheria.Shared.Tests Cut 6d: the dart-throw kernel replaces the coin-flip landing rule 2026-09-19 21:37:39 +02:00
mutation_tests.py Un-clobber the item-provenance mutation harness; own file for this cut 2026-09-18 05:07:23 +02:00
mutation_tests_addressables_cut.py Un-clobber the item-provenance mutation harness; own file for this cut 2026-09-18 05:07:23 +02:00
mutation_tests_condition_ratio_cut8.py Cut 8: pin ConditionRatio -- perfect/dead/durability/heat/power/force-unchanged 2026-09-19 04:41:43 +02:00
mutation_tests_fire_control_cut1.sh Cut 7.2: mutation harnesses for Cuts 1 and 2 2026-09-19 19:43:57 +02:00
mutation_tests_fire_control_cut2.sh Cut 7.2: mutation harnesses for Cuts 1 and 2 2026-09-19 19:43:57 +02:00
mutation_tests_fire_control_cut3.sh Cut 6d: the dart-throw kernel replaces the coin-flip landing rule 2026-09-19 21:37:39 +02:00
mutation_tests_fire_control_cut4.py Fire control Cut 4: pin the beam roll, splash, and the OnFire short-circuit fix 2026-09-19 15:17:35 +02:00
mutation_tests_fire_control_cut5.sh Fire control Cut 5b.3: make the mutation harness's restore provable 2026-09-19 17:28:48 +02:00
mutation_tests_fire_control_cut6.sh Fire control Cut 6b: mutation harness, and comments that leaked past the negative greps 2026-09-19 18:41:38 +02:00
mutation_tests_fire_control_cut6c.sh Fire control Cut 6c tooling: targeting-catalog-6c migration, loadout exclude-sellers, mutation harness 2026-09-19 18:50:11 +02:00
mutation_tests_shield_panel_cut1.py Add the Cut 1 batchmode probe and its mutation harness 2026-09-18 06:08:24 +02:00
mutation_tests_shield_panel_cut2.py Fix ShieldManager's missing-envelope fallback regression 2026-09-18 06:45:07 +02:00
mutation_tests_shield_panel_cut3.py Add the Cut 3 batchmode probe and its mutation harness 2026-09-18 13:51:44 +02:00
mutation_tests_shield_reserve.py Pin the shield reserve ruling: 7 rules, each with a mutation 2026-09-19 02:46:26 +02:00
mutation_tests_stats_power_cut0.py Cut 0: pin the collapsed evaluation path's agreements and disagreements 2026-09-18 16:19:33 +02:00
mutation_tests_stats_power_cut1.py Cut 1: close S5/S6's validation gaps, pin S7's surviving mutants 2026-09-18 18:42:10 +02:00
mutation_tests_stats_power_cut2.py Pin Gate 1, Gate 2 and F8's mutant fix with tests and mutations 2026-09-18 20:42:05 +02:00
mutation_tests_stats_power_cut3.py F8: re-anchor cut3/cut4 mutation harnesses after later cuts moved their code 2026-09-19 06:02:08 +02:00
mutation_tests_stats_power_cut4.py F8: re-anchor cut3/cut4 mutation harnesses after later cuts moved their code 2026-09-19 06:02:08 +02:00
mutation_tests_stats_power_cut5.py Mutation harness for Cut 5's tier rules 2026-09-19 02:58:55 +02:00
mutation_tests_stats_power_cut6.py Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
mutation_tests_stats_power_cut7.py Pin Cut 7's brownout rules: BrownoutTests.cs 2026-09-19 04:11:00 +02:00
mutation_tests_stats_power_cut8.py Cut 7: refuse a stat naming a role its design lacks 2026-09-19 05:01:17 +02:00
mutation_tests_stats_power_nominal_request.py Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00