Files
PathOfBuilding/spec/System/TestBuilds_spec.lua
2024-07-31 14:07:24 +10:00

36 lines
1.1 KiB
Lua

local function fetchBuilds(path, buildList)
buildList = buildList or {}
for file in lfs.dir(path) do
if file ~= "." and file ~= ".." then
local f = path..'/'..file
local attr = lfs.attributes (f)
assert(type(attr) == "table")
if attr.mode == "directory" then
fetchBuilds(f, buildList)
elseif file:match("^.+(%..+)$") == ".lua" then
buildList[file] = LoadModule(f)
end
end
end
return buildList
end
expose("test all builds #builds", function()
local buildList = fetchBuilds("../spec/TestBuilds")
for buildName, testBuild in pairs(buildList) do
loadBuildFromXML(testBuild.xml, buildName)
testBuild.result = {}
for key, value in pairs(testBuild.output) do
-- Have to assign it to a temporary table here, as the tests will run later, when the 'build' isn't changing
testBuild.result[key] = build.calcsTab.mainOutput[key]
it("on build: " .. buildName .. ", key: " .. key, function()
if type(value) == "number" and type(testBuild.result[key]) == "number" then
assert.are.same(round(value, 4), round(testBuild.result[key] or 0, 4))
else
assert.are.same(value, testBuild.result[key])
end
end)
end
end
end)