50 lines
2.5 KiB
Lua
50 lines
2.5 KiB
Lua
-- Kør: luajit tests/test_adFieldView.lua (fra repo-roden)
|
|
dofile("FS25_ADSmartPickup/adFieldModel.lua")
|
|
dofile("FS25_ADSmartPickup/adFieldView.lua")
|
|
local V = ADFieldView
|
|
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 infos = {
|
|
{id = 109, mowable = true, markerId = 5},
|
|
{id = 12, mowable = true, markerId = nil},
|
|
{id = 90, mowable = false, markerId = 7},
|
|
}
|
|
local fields = {[109] = ADFieldModel.newField(109), [12] = ADFieldModel.newField(12)}
|
|
|
|
-- V1: alle marker (etape 2: også høst og bare), sorteret efter nummer
|
|
local rows = V.rows(infos, fields)
|
|
check("V1 tre rækker", #rows, 3)
|
|
check("V1 sorteret", rows[1].info.id, 12)
|
|
check("V1 model med", rows[3].field.id, 109)
|
|
-- V2: mangler model -> ny standardmark
|
|
check("V2 standardmodel", rows[2].field.stage, "idle")
|
|
-- V3: status — manglende markør vinder over trin
|
|
check("V3 mangler markør", V.statusKey(fields[12], infos[2]), "spu_field_noMarker")
|
|
check("V3 trin", V.statusKey(fields[109], infos[1]), "spu_field_stage_idle")
|
|
|
|
-- V4: planens tekstnøgler pr. markart
|
|
check("V4 ensilage", V.planKey({product = "auto"}, "mowable"), "spu_field_plan_silage")
|
|
check("V4 hø", V.planKey({product = "hay"}, "mowable"), "spu_field_plan_hay")
|
|
check("V4 høst", V.planKey({product = "auto"}, "harvest"), "spu_field_plan_harvest")
|
|
check("V4 bar mark", V.planKey({product = "auto"}, "bare"), "spu_field_plan_prep")
|
|
-- V5: jordtilstand som korte tekstdele
|
|
local parts = V.soilParts({lime = 0.2, fert = 1, fertMax = 2, weed = 3, needs = {lime = true, plow = true}})
|
|
check("V5 dele", table.concat(parts, ","), "lime,plow,fert,weed")
|
|
check("V5 intet", #V.soilParts({lime = 2, fert = 2, fertMax = 2, weed = 0, needs = {}}), 0)
|
|
|
|
-- cropText: høstet = stub (afgrøde), bar = bar jord, ellers afgrøden
|
|
local texts = {spu_field_stubble = "stub (%s)", spu_field_bare = "bar jord"}
|
|
local function T(key) return texts[key] end
|
|
check("FVcrop stub", ADFieldView.cropText({kind = "bare", stubbleOf = "Hvede", cropTitle = "Hvede"}, T), "stub (Hvede)")
|
|
check("FVcrop bar", ADFieldView.cropText({kind = "bare"}, T), "bar jord")
|
|
check("FVcrop afgrøde", ADFieldView.cropText({kind = "harvest", cropTitle = "Majs"}, T), "Majs")
|
|
|
|
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
|
os.exit(failures == 0 and 0 or 1)
|