27 lines
1.8 KiB
Lua
27 lines
1.8 KiB
Lua
-- Kør: luajit tests/test_adHitchCreep.lua (fra repo-roden)
|
|
dofile("FS25_ADSmartPickup/adHitchCreep.lua")
|
|
local C = ADHitchCreep
|
|
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
|
|
-- plan: vognens trækøje i traktorens rum set fra krogen (x = til siden, z < 0 = bagved)
|
|
check("plan: inden for rummelig rækkevidde -> kobl direkte", C.plan({x = 0.4, z = -2.0}), "attach")
|
|
check("plan: 5 m lige bagved -> bak", C.plan({x = 0.3, z = -5.0}), "creep")
|
|
check("plan: lidt til siden -> bak", C.plan({x = -1.2, z = -6.0}), "creep")
|
|
check("plan: for langt til siden -> intet", C.plan({x = 2.5, z = -5.0}), "none")
|
|
check("plan: for langt bagved -> intet", C.plan({x = 0, z = -12.0}), "none")
|
|
check("plan: foran traktoren -> intet", C.plan({x = 0, z = 5.0}), "none")
|
|
check("plan: ingen vogn -> intet", C.plan(nil), "none")
|
|
-- skridt under bakningen
|
|
check("skridt: vognen inden for rækkevidde -> færdig", C.step({inRange = true, distance = 2.5, startDistance = 6, elapsedMs = 3000}), "done")
|
|
check("skridt: på vej -> kør", C.step({inRange = false, distance = 4, startDistance = 6, elapsedMs = 3000}), "drive")
|
|
check("skridt: for længe -> giv op", C.step({inRange = false, distance = 4, startDistance = 6, elapsedMs = C.CREEP_TIMEOUT_MS}), "giveUp")
|
|
check("skridt: kører væk fra vognen -> giv op", C.step({inRange = false, distance = 7.5, startDistance = 6, elapsedMs = 3000}), "giveUp")
|
|
check("skridt: forbi vognen uden kobling -> giv op", C.step({inRange = false, distance = 0.3, startDistance = 6, elapsedMs = 3000, passed = true}), "giveUp")
|
|
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
|
os.exit(failures == 0 and 0 or 1)
|