38 lines
2.2 KiB
Lua
38 lines
2.2 KiB
Lua
-- Kør: luajit tests/test_adManualTransport.lua (fra repo-roden)
|
|
-- Manuel transport af brede høstere (in-game 27/9: mejetærskere med skærebord er for brede til vejene).
|
|
dofile("FS25_ADSmartPickup/adManualTransport.lua")
|
|
local M = ADManualTransport
|
|
local failures = 0
|
|
local function check(name, actual, expected)
|
|
if actual == expected then print("OK " .. name) else
|
|
failures = failures + 1
|
|
print(string.format("FAIL %s: forventede %s, fik %s", name, tostring(expected), tostring(actual)))
|
|
end
|
|
end
|
|
local WHEAT, BARLEY = 1, 2
|
|
|
|
-- valg af høster
|
|
check("manuel høster uden skærebord kan vælges", M.acceptsHarvester({manual = true, fruits = {}}, WHEAT), true)
|
|
check("automatisk høster uden skærebord kan ikke", M.acceptsHarvester({fruits = {}}, WHEAT), false)
|
|
check("automatisk høster med passende skærebord", M.acceptsHarvester({fruits = {[WHEAT] = true}}, WHEAT), true)
|
|
check("ukendt afgrøde -> ingen", M.acceptsHarvester({manual = true}, nil), false)
|
|
|
|
-- klar til overtagelse
|
|
local header = {[WHEAT] = true}
|
|
local function ready(s) local ok, why = M.readiness(s); return ok and "ok" or why end
|
|
check("hjemme -> notThere", ready({atField = false, fruits = {}, fruit = WHEAT}), "notThere")
|
|
check("på marken uden skærebord -> noHeader", ready({atField = true, fruits = {}, fruit = WHEAT}), "noHeader")
|
|
check("forkert skærebord -> wrongHeader", ready({atField = true, fruits = {[BARLEY] = true}, fruit = WHEAT}), "wrongHeader")
|
|
check("spilleren sidder i -> playerInside", ready({atField = true, fruits = header, fruit = WHEAT, controlled = true}), "playerInside")
|
|
check("klar", ready({atField = true, fruits = header, fruit = WHEAT}), "ok")
|
|
check("Start nu: spiller i og ikke på marken -> ok", ready({atField = false, fruits = header, fruit = WHEAT, controlled = true, forced = true}), "ok")
|
|
check("Start nu tjekker stadig skærebordet", ready({atField = false, fruits = {}, fruit = WHEAT, forced = true}), "noHeader")
|
|
|
|
-- påmindelser
|
|
check("første gang -> påmind", M.shouldRemind(nil, 1000), true)
|
|
check("for tidligt", M.shouldRemind(1000, 1000 + M.REMIND_MS - 1), false)
|
|
check("efter 5 min", M.shouldRemind(1000, 1000 + M.REMIND_MS), true)
|
|
|
|
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
|
os.exit(failures == 0 and 0 or 1)
|