Module:Wikipedia:WikiProject U.S. Roads/Assessment/States/Live

local p = {}

local classes = {'FA', 'A', 'GA', 'B', 'C', 'Start', 'Stub'}

do local _pagesInCat = mw.site.stats.pagesInCategory function pagesInCat(name) return _pagesInCat(name, 'pages') end end

local function pageCounts(project) local counts = {} for _,class in pairs(classes) do		local category = string.format("%s-Class %s articles", class, project) counts[class] = pagesInCat(category) end return counts end

local function totalPageCount(counts) return counts.FA + counts.A + counts.GA + counts.B + counts.C + counts.Start + counts.Stub end

local function totalWikiwork(counts) return counts.A + 2*counts.GA + 3*counts.B + 4*counts.C + 5*counts.Start + 6*counts.Stub end

function p._row(args) local insert = table.insert local format = string.format local cells = {} local rowHeader if args.gray then rowHeader = "|- bgcolor='silver'" else rowHeader = "|-" end insert(cells, rowHeader)

local state = args.state local project = state and format("%s road transport", state) or args.project local abbr = args.abbr or state

insert(cells, format("|%s", project, abbr))

local counts = pageCounts(project) for _,class in ipairs(classes) do		insert(cells, format("|align='center'|%s", class, project, counts[class])) end

local totalCount = totalPageCount(counts) insert(cells, format("|align='center'|%s", totalCount))

local totalWW = totalWikiwork(counts) insert(cells, format("|align='right'|%s", totalWW))

local roundedWW if totalCount > 0 then local relativeWW = totalWW / totalCount local math = require "Module:Math" local round = math._precision_format roundedWW = round(tostring(relativeWW), "3") else roundedWW = '0.000' end insert(cells, format("|align='right'|%s", roundedWW))

return table.concat(cells, '\n') end

function p.row(frame) local argsModule = require('Module:Arguments') local args = argsModule.getArgs(frame) return p._row(args) end

return p