feat(kobling): Afkobl-markører kobler redskaber bag traktoren af (frontvægt bliver); 'hent vogn og kør til' som ADHitch.trip + konsol spuTrip/spuDetach (v1.47.0.0)
This commit is contained in:
+34
-12
@@ -8,39 +8,61 @@ local function check(name, actual, expected)
|
||||
print(string.format("FAIL %s: forventede %s, fik %s", name, tostring(expected), tostring(actual)))
|
||||
end
|
||||
end
|
||||
-- markørnavne: "Connect <navn>" (store/små bogstaver ligegyldigt), også dansk "Kobl <navn>"
|
||||
check("navn: Connect Bredal", H.connectTarget("Connect Bredal"), "Bredal")
|
||||
check("navn: små bogstaver", H.connectTarget("connect bredal"), "bredal")
|
||||
check("navn: dansk Kobl", H.connectTarget("Kobl Vogn 2"), "Vogn 2")
|
||||
check("navn: kun Connect", H.connectTarget("Connect"), "")
|
||||
check("navn: Connected er ikke en koblingsmarkør", H.connectTarget("Connected silo"), nil)
|
||||
check("navn: almindelig markør", H.connectTarget("Bredal"), nil)
|
||||
check("navn: nil", H.connectTarget(nil), nil)
|
||||
-- markørnavne -> handling + navn (store/små bogstaver ligegyldigt)
|
||||
local function parsed(name) local a, n = H.parseMarker(name) return tostring(a) .. "|" .. tostring(n) end
|
||||
check("navn: Connect Bredal", parsed("Connect Bredal"), "attach|Bredal")
|
||||
check("navn: små bogstaver", parsed("connect bredal"), "attach|bredal")
|
||||
check("navn: dansk Kobl", parsed("Kobl Vogn 2"), "attach|Vogn 2")
|
||||
check("navn: kun Connect", parsed("Connect"), "attach|")
|
||||
check("navn: Connected er ikke en koblingsmarkør", parsed("Connected silo"), "nil|nil")
|
||||
check("navn: almindelig markør", parsed("Bredal"), "nil|nil")
|
||||
check("navn: nil", parsed(nil), "nil|nil")
|
||||
check("navn: Afkobl Bredal", parsed("Afkobl Bredal"), "detach|Bredal")
|
||||
check("navn: Kobl af er afkobling, ikke kobling", parsed("Kobl af Bredal"), "detach|Bredal")
|
||||
check("navn: Detach", parsed("detach"), "detach|")
|
||||
check("navn: Disconnect", parsed("Disconnect Vogn"), "detach|Vogn")
|
||||
-- bagerste redskaber: kun led bag traktoren (z < 0 i traktorens rum), ikke frontvægt/frontlæsser
|
||||
local rear = H.rearImplements({{name = "vægt", z = 3.1}, {name = "Bredal", z = -2.4}, {name = "læsser", z = 1.5}, {name = "plov", z = -1}})
|
||||
check("bag: kun bagerste", #rear, 2)
|
||||
check("bag: første", rear[1].name, "Bredal")
|
||||
-- ankomst: AD er stoppet, traktoren står stille tæt på markøren
|
||||
check("ankomst: stoppet ved markør", H.hasArrived({adActive = false, distance = 1.2, speed = 0.1}), true)
|
||||
check("ankomst: AD kører stadig", H.hasArrived({adActive = true, distance = 0.5, speed = 0}), false)
|
||||
check("ankomst: for langt væk", H.hasArrived({adActive = false, distance = 9, speed = 0}), false)
|
||||
check("ankomst: ruller stadig", H.hasArrived({adActive = false, distance = 1, speed = 3}), false)
|
||||
-- vagten: efter ankomst forsøges koblingen et stykke tid, derefter opgives den
|
||||
local job = H.newJob(25, "Connect Bredal")
|
||||
local job = H.newJob(25, "Connect Bredal", "attach")
|
||||
check("job: venter på AD", job.state, "driving")
|
||||
check("job: handling", job.action, "attach")
|
||||
H.step(job, {adActive = true, distance = 30, speed = 10}, 1000, false)
|
||||
check("job: kører stadig", job.state, "driving")
|
||||
H.step(job, {adActive = false, distance = 1, speed = 0}, 500, false)
|
||||
check("job: ankommet, kobling ikke lykkedes endnu", job.state, "attaching")
|
||||
check("job: ankommet, kobling ikke lykkedes endnu", job.state, "acting")
|
||||
H.step(job, {adActive = false, distance = 1, speed = 0}, 500, true)
|
||||
check("job: koblet på", job.state, "done")
|
||||
local failJob = H.newJob(25, "Connect Bredal")
|
||||
local failJob = H.newJob(25, "Connect Bredal", "attach")
|
||||
H.step(failJob, {adActive = false, distance = 1, speed = 0}, 500, false)
|
||||
for _ = 1, 20 do H.step(failJob, {adActive = false, distance = 1, speed = 0}, 500, false) end
|
||||
check("job: opgivet efter vagt-tid", failJob.state, "failed")
|
||||
check("job: årsag", failJob.reason, "noAttachable")
|
||||
local lostJob = H.newJob(25, "Connect Bredal")
|
||||
local dropJob = H.newJob(9, "Afkobl Bredal", "detach")
|
||||
H.step(dropJob, {adActive = false, distance = 1, speed = 0}, 500, false)
|
||||
for _ = 1, 20 do H.step(dropJob, {adActive = false, distance = 1, speed = 0}, 500, false) end
|
||||
check("job: afkobling opgivet", dropJob.reason, "nothingToDetach")
|
||||
local lostJob = H.newJob(25, "Connect Bredal", "attach")
|
||||
H.step(lostJob, {adActive = false, distance = 40, speed = 0}, 500, false)
|
||||
check("job: AD ikke startet endnu (opstart-frist)", lostJob.state, "driving")
|
||||
H.step(lostJob, {adActive = true, distance = 40, speed = 5}, 500, false)
|
||||
H.step(lostJob, {adActive = false, distance = 40, speed = 0}, 500, false)
|
||||
check("job: AD stoppede langt fra markøren", lostJob.state, "failed")
|
||||
check("job: årsag stoppet undervejs", lostJob.reason, "stoppedAway")
|
||||
-- tur: "Connect Bredal > Start" -> to markørnavne
|
||||
local a, b = H.parseTrip("Connect", "Bredal", ">", "Start")
|
||||
check("tur: hent", a, "Connect Bredal")
|
||||
check("tur: mål", b, "Start")
|
||||
check("tur: uden mål", select(2, H.parseTrip("Connect", "Bredal")), nil)
|
||||
local markers = {{name = "Start", id = 1}, {name = "Connect Bredal", id = 9}}
|
||||
check("markør: navn uden hensyn til store/små", H.findMarker(markers, "connect bredal").id, 9)
|
||||
check("markør: ukendt", H.findMarker(markers, "Stald"), nil)
|
||||
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