Wind-adjusted fuel burn ±20% + refuel-for-flight buys 150% margin (ISS-070, ISS-071, v0.36.0)
CI / build + unit + e2e (pull_request) Successful in 10m34s
CI / build + unit + e2e (pull_request) Successful in 10m34s
This commit is contained in:
+15
-2
@@ -1,5 +1,10 @@
|
||||
import type { Page, Request } from '@playwright/test';
|
||||
import { expect, test } from '@playwright/test';
|
||||
// Real helpers (v0.36.0) — the wind-adjusted fuel math must match lib/ exactly; Playwright resolves
|
||||
// the repo's tsconfig paths, so importing beats mirroring a third copy of the formulas.
|
||||
import { initialBearingDeg } from '../lib/geo';
|
||||
import { weatherFor } from '../lib/weather';
|
||||
import { windBurnFactor } from '../lib/sim/movement';
|
||||
|
||||
// v0.12.0 package model against the live origin (https://flight.dev.kkhost.pl):
|
||||
// the full core loop through the UI — hook creates a short package at EDDF → Load
|
||||
@@ -219,10 +224,18 @@ test('full core loop via UI: load → fly to destination → exact reward + rep
|
||||
const repGain = Math.round((REP_BASE + REP_PER_KM * exactKm) * 100) / 100;
|
||||
expect(s.account.reputation).toBeCloseTo(Math.round((before.account.reputation + repGain) * 100) / 100, 9);
|
||||
|
||||
// Fuel burned per the v0.16.0 weight-proportional model (closed form — no rounding drift).
|
||||
// Fuel burned per the v0.16.0 weight-proportional model (closed form — no rounding drift),
|
||||
// wind-adjusted (v0.36.0) by departure weather vs route heading.
|
||||
const entry = before.catalog.find((e) => e.model === 'atr72')!;
|
||||
const wHub = weatherFor(HUB);
|
||||
expect(landed.fuel).toBeCloseTo(
|
||||
fuelAfter(before.planes.find((p) => p.id === planeId)!.fuel, entry.burnPerKm, entry.emptyWeightKg, entry.maxFuel, exactKm),
|
||||
fuelAfter(
|
||||
before.planes.find((p) => p.id === planeId)!.fuel,
|
||||
entry.burnPerKm * windBurnFactor(wHub.windKt, wHub.windDirDeg, initialBearingDeg(nearest.hubLat, nearest.hubLon, nearest.lat, nearest.lon)),
|
||||
entry.emptyWeightKg,
|
||||
entry.maxFuel,
|
||||
exactKm,
|
||||
),
|
||||
6,
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user