Add lua csv parser regression test(s)

This commit is contained in:
2025-11-15 16:53:03 +01:00
parent 5f1fdfa6c1
commit 07fea6238f

View File

@@ -0,0 +1,34 @@
-- Load the helper script
dofile("luahelper.lua")
-- Test helper function
local function assert(condition, message)
if not condition then error("ASSERTION FAILED: " .. (message or "unknown error")) end
end
local function test(name, fn)
local ok, err = pcall(fn)
if ok then
print("PASS: " .. name)
else
print("FAIL: " .. name .. " - " .. tostring(err))
end
end
test("regression test 001", function()
local csv =
[[Id Enabled ModuleId DepartmentId IsDepartment PositionInGraph Parents Modifiers UpgradePrice
news_department TRUE navigation TRUE 2 0 NewsAnalyticsDepartment + 1 communication_relay communication_relay
nd_charge_bonus TRUE navigation news_department FALSE 1 0 news_department NDSkillChargeBonus + 1 expert_disk expert_disk
nd_cooldown_time_reduce TRUE navigation news_department FALSE 3 0 news_department NDCooldownTimeReduce - 2 communication_relay communication_relay]]
local rows, err = fromCSV(csv, { delimiter = "\t", hasheader = true, hascomments = true })
if err then error("fromCSV error: " .. err) end
assert(#rows == 3, "Should have 3 rows")
assert(rows[1].Id == "news_department", "First row Id should be 'news_department'")
assert(rows[1].Enabled == "TRUE", "First row Enabled should be 'TRUE'")
assert(rows[1].ModuleId == "navigation", "First row ModuleId should be 'navigation'")
assert(rows[1].DepartmentId == "", "First row DepartmentId should be ''")
assert(rows[1].IsDepartment == "TRUE", "First row IsDepartment should be 'TRUE'")
end)
print("\nAll tests completed!")