Module:Sandbox/Vergir: Difference between revisionsGive feedback
Jump to navigation
Jump to search
Temporary verification harness for Module:ArcaneSurge (with help from vergir-bot LLM) |
Improve verification harness: plain-text output and scaling diagnostic (with help from vergir-bot LLM) |
||
| Line 1: | Line 1: | ||
-- Temporary harness: summarises Module:ArcaneSurge output for verification. | -- Temporary harness: summarises Module:ArcaneSurge output for verification. | ||
local p = {} | local p = {} | ||
local GameData = require("Module:GameData") | |||
function p.check(frame) | function p.check(frame) | ||
local out = require("Module:ArcaneSurge").render(frame) | local out = require("Module:ArcaneSurge").render(frame) | ||
local heroes | local lines, heroes, notes = {}, 0, 0 | ||
for item in out:gmatch("<li>(.-)</li>") do | for item in out:gmatch("<li>(.-)</li>") do | ||
local | heroes = heroes + 1 | ||
local text = item:gsub("<!%-%-.-%-%->", ""):gsub("<[^>]*>", "") | |||
text = text:gsub("%s+", " "):gsub("^%s+", ""):gsub("%s+$", "") | |||
for _ in text:gmatch("%(after T") do notes = notes + 1 end | |||
table.insert(lines, text) | |||
for | |||
table.insert(lines, | |||
end | end | ||
-- | return "<pre>heroes=" .. heroes .. " notes=" .. notes .. "\n\n" | ||
local | .. mw.text.encode(table.concat(lines, "\n")) .. "</pre>" | ||
for | end | ||
-- Dumps every Scale block of a named ability, to compare live data against | |||
-- local expectations. | |||
function p.scales(frame) | |||
local name = frame.args[1] | |||
local data = mw.loadJsonData(GameData.Dataset.ABILITIES) | |||
for key, record in pairs(data) do | |||
if record["Name"] == name then | |||
local rows = { "key = " .. key } | |||
local function walk(node, path) | |||
if type(node) ~= "table" then return end | |||
for k, v in pairs(node) do | |||
if type(v) == "table" then | |||
local scale = v["Scale"] | |||
if type(scale) == "table" and scale["Type"] then | |||
table.insert(rows, path .. tostring(k) | |||
.. ": Value=" .. tostring(v["Value"]) | |||
.. " Scale.Type=" .. tostring(scale["Type"]) | |||
.. " Scale.Value=" .. tostring(scale["Value"])) | |||
end | |||
walk(v, path .. tostring(k) .. ".") | |||
end | |||
end | |||
end | |||
walk(record, "") | |||
return "<pre>" .. mw.text.encode(table.concat(rows, "\n")) .. "</pre>" | |||
end | |||
end | end | ||
return "not found: " .. tostring(name) | |||
return " | |||
end | end | ||
return p | return p | ||