feat(marker): generisk lagring af alle plan-felter (test sikrer at intet felt glemmes)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
-- Kør: luajit tests/test_adFieldStorage.lua (fra repo-roden)
|
||||
-- Lagringen skal dække HVERT felt modellen gemmer (FIELD_TYPES), og en mark skal overleve en tur gennem XML.
|
||||
dofile("FS25_ADSmartPickup/adFieldModel.lua")
|
||||
dofile("FS25_ADSmartPickup/adFieldStorage.lua")
|
||||
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
|
||||
|
||||
-- falsk XMLFile: gemmer værdier pr. nøgle
|
||||
local function fakeXml()
|
||||
local values = {}
|
||||
local xml = {}
|
||||
for _, kind in ipairs({"Int", "String", "Float"}) do
|
||||
xml["set" .. kind] = function(_, key, value) values[key] = value end
|
||||
xml["get" .. kind] = function(_, key) return values[key] end
|
||||
end
|
||||
return xml
|
||||
end
|
||||
|
||||
local field = ADFieldModel.with(ADFieldModel.startCare(ADFieldModel.newField(77), "weeding"), {
|
||||
kind = "harvest", lastFruit = "WHEAT", mowWidth = 40.8, mowVehicleId = "v1", rakeVehicleId = "v2", windrowOffset = -2.5,
|
||||
plan = {mode = "auto", product = "harvest", rake = true, storeBuildingIds = {"b1"}, rigs = 3, unloaders = 2,
|
||||
mulch = true, lime = false, soil = "plow", sow = true, sowFruit = "CANOLA", roll = true, fertilize = false, weed = false},
|
||||
})
|
||||
local record = ADFieldModel.toRecord(field)
|
||||
for key in pairs(record) do
|
||||
check("ST1 felt med i lagringen: " .. key, ADFieldStorage.FIELD_TYPES[key] ~= nil, true)
|
||||
end
|
||||
local xml = fakeXml()
|
||||
ADFieldStorage.writeRecord(xml, "k", record)
|
||||
local back = ADFieldModel.fromRecord(ADFieldStorage.readRecord(xml, "k"))
|
||||
local again = ADFieldModel.toRecord(back)
|
||||
for key, value in pairs(record) do
|
||||
check("ST2 rundtur: " .. key, tostring(again[key]), tostring(value))
|
||||
end
|
||||
|
||||
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