feat: run-indstilling 'Kør hjem fra Wait under X %' (10–90, standard 50) i model, XML, Wait-regel og fane (v1.10.2.0)
This commit is contained in:
@@ -96,6 +96,17 @@ check("R6 nextId", dirty.nextId, 8)
|
||||
check("R6 tom liste", #ADRuns.fromRecords(nil).runs, 0)
|
||||
check("R6 parseIngredients trimmer", #ADRuns.parseIngredients(" STRAW FORAGE "), 2)
|
||||
|
||||
-- R7: "kør hjem under X %" — standard 50, klippes til 10..90, overlever records
|
||||
local r7, r7run = ADRuns.createRun(ADRuns.newStore(), "Tærskel")
|
||||
check("R7 standard 50 %", r7run.returnBelowPercent, 50)
|
||||
check("R7 sættes", ADRuns.getRun(ADRuns.updateRun(r7, r7run.id, {returnBelowPercent = 30}), r7run.id).returnBelowPercent, 30)
|
||||
check("R7 klippes til 90", ADRuns.getRun(ADRuns.updateRun(r7, r7run.id, {returnBelowPercent = 150}), r7run.id).returnBelowPercent, 90)
|
||||
check("R7 klippes til 10", ADRuns.getRun(ADRuns.updateRun(r7, r7run.id, {returnBelowPercent = 0}), r7run.id).returnBelowPercent, 10)
|
||||
local r7rec = ADRuns.toRecords(ADRuns.updateRun(r7, r7run.id, {returnBelowPercent = 25}))
|
||||
check("R7 i records", r7rec[1].returnBelow, 25)
|
||||
check("R7 tilbage fra records", ADRuns.fromRecords(r7rec).runs[1].returnBelowPercent, 25)
|
||||
check("R7 manglende i gammel fil -> 50", ADRuns.fromRecords({{id = 1, name = "Gammel"}}).runs[1].returnBelowPercent, 50)
|
||||
|
||||
-- ==== XML-laget mod en flad XMLFile-mock (nøgle -> værdi) ====
|
||||
dofile("FS25_ADSmartPickup/adRunsStorage.lua")
|
||||
|
||||
|
||||
@@ -842,6 +842,25 @@ UnloadTask.update(st6, 16)
|
||||
check("S6 bliver ved siloen efter bytte", st6.destinationID, 21)
|
||||
check("S6 ingen ny Wait-omdirigering", countLogsSince(mark6, "venter ved"), 0)
|
||||
|
||||
-- I5: run'ets "kør hjem under X %" styrer hvornår den ventende kører hjem
|
||||
buildWaitWorld()
|
||||
local vt, tt = makeUnloadingVehicle("Fastrac Tærskel", 551, 5000, 60000) -- rest > stald: kun tærsklen kan sende hjem
|
||||
vt.uniqueId = "vehicleThreshold"
|
||||
testVehicles = {vt}
|
||||
ADRunsController.store = ADRuns.newStore()
|
||||
local thrRun = ADRunsController.createRun("Tærskel")
|
||||
ADRunsController.updateRun(thrRun.id, {targetWayPointId = 30, returnBelowPercent = 20})
|
||||
ADRunsController.assignVehicle(thrRun.id, vt)
|
||||
UnloadTask.update(tt, 16)
|
||||
check("I5 venter først", tt.destinationID, 40)
|
||||
waitBarnLevels[STRAW] = 15000 -- 70 % fri: 50 %-reglen ville sende hjem, men tærsklen er "under 20 %" (= 80 % fri)
|
||||
UnloadTask.update(tt, 16)
|
||||
check("I5 70 % fri er ikke nok ved 'under 20 %'", tt.destinationID, 40)
|
||||
waitBarnLevels[STRAW] = 9000 -- 82 % fri >= 80 %
|
||||
UnloadTask.update(tt, 16)
|
||||
check("I5 hjem når målet er under 20 %", tt.destinationID, 30)
|
||||
ADRunsController.store = ADRuns.newStore()
|
||||
|
||||
-- ==== E: eksponerede opslag (bruges af runs-controller og læs-bytte) ====
|
||||
local eDriver = buildCowWorld()
|
||||
check("E1 aflæsningsstation ved waypoint", ADSmartPickup.getUnloadStationAtWayPointId(FS25_AutoDrive, 30, 1), unloadStations[1])
|
||||
|
||||
@@ -172,5 +172,11 @@ check("kæmpe rest: halv stald fri -> hjem", ADSupplyPlanner.canUnloadRest(15000
|
||||
check("kæmpe rest: under halv stald fri -> vent", ADSupplyPlanner.canUnloadRest(100000, 700000, 300000), false)
|
||||
check("ukendt kapacitet -> kun hele resten tæller", ADSupplyPlanner.canUnloadRest(100000, 700000, nil), false)
|
||||
|
||||
-- canUnloadRest med run-tærskel: "under 30 %" = fri >= 70 % af kapaciteten
|
||||
check("tærskel 30 %: 60 % fri er ikke nok", ADSupplyPlanner.canUnloadRest(60000, 90000, 100000, 0.7), false)
|
||||
check("tærskel 30 %: 70 % fri er nok", ADSupplyPlanner.canUnloadRest(70000, 90000, 100000, 0.7), true)
|
||||
check("hele resten passer vinder altid", ADSupplyPlanner.canUnloadRest(5000, 5000, 100000, 0.7), true)
|
||||
check("uden tærskel = 50 %-reglen", ADSupplyPlanner.canUnloadRest(50000, 90000, 100000), true)
|
||||
|
||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||
os.exit(failures == 0 and 0 or 1)
|
||||
|
||||
Reference in New Issue
Block a user