-- 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)