32 lines
1.4 KiB
Lua
32 lines
1.4 KiB
Lua
-- Kør: luajit tests/test_adLoadSwap.lua (fra repo-roden)
|
|
-- Ren rangering af aflæsnings-siloer (lagermål for udkørsel og læs-bytte).
|
|
|
|
dofile("FS25_ADSmartPickup/adLoadSwap.lua")
|
|
local L = ADLoadSwap
|
|
|
|
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
|
|
|
|
-- LS1: markører et andet forløb HENTER fra (fx "Milk Storage Load") vælges sidst; ellers har-varen, så afstand
|
|
local candidates = {
|
|
{marker = {id = 1, name = "Milk Storage Load"}, hasFillType = true, distance = 100},
|
|
{marker = {id = 2, name = "Milk Storage unload"}, hasFillType = true, distance = 400},
|
|
{marker = {id = 3, name = "Silo tom"}, hasFillType = false, distance = 10},
|
|
}
|
|
local ranked = L.rankDumpCandidates(candidates, {[1] = true})
|
|
check("LS1 afhentningsmarkør undgås", ranked[1].marker.id, 2)
|
|
check("LS1 derefter tom silo før afhentning", ranked[2].marker.id, 3)
|
|
check("LS1 afhentning sidst (stadig mulig)", ranked[3].marker.id, 1)
|
|
local plain = L.rankDumpCandidates(candidates, nil)
|
|
check("LS1 uden undgå-liste: har varen + nærmest", plain[1].marker.id, 1)
|
|
|
|
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
|
os.exit(failures == 0 and 0 or 1)
|