Module:WikiProject assessment progression/testcases: Difference between revisions
Appearance
Content deleted Content added
m Try against suite (might need to be in a function) |
Assign from function call |
||
Line 5: | Line 5: | ||
local suite = ScribuntoUnit:new() |
local suite = ScribuntoUnit:new() |
||
local projectTotal = |
local projectTotal = calculateProjectTotal() |
||
⚫ | |||
function suite:calculateProjectTotal() |
|||
) |
|||
return self.preprocess( |
|||
⚫ | '{{#expr:{{PAGESINCATEGORY:FA-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:FL-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:FM-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:A-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:GA-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:B-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:C-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Start-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Stub-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:List-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Book-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Category-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Disambig-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:File-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Portal-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Project-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Redirect-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Template-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Unassessed spaceflight articles|pages|R}}}}' |
||
) |
|||
end |
|||
function suite:assertTypeEquals(expectedType, functionName, message) |
function suite:assertTypeEquals(expectedType, functionName, message) |
Revision as of 22:36, 6 December 2020
![]() | This is the test cases page for the module Module:WikiProject assessment progression. Results of the test cases. |
-- Unit tests for [[Module:WikiProject assessment progression]]. Click talk page to run tests.
local moduleName = 'WikiProject assessment progression/sandbox'
local myModule = require('Module:' .. moduleName)
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
local projectTotal = calculateProjectTotal()
function suite:calculateProjectTotal()
return self.preprocess(
'{{#expr:{{PAGESINCATEGORY:FA-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:FL-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:FM-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:A-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:GA-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:B-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:C-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Start-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Stub-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:List-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Book-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Category-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Disambig-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:File-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Portal-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Project-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Redirect-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Template-Class spaceflight articles|pages|R}} + {{PAGESINCATEGORY:Unassessed spaceflight articles|pages|R}}}}'
)
end
function suite:assertTypeEquals(expectedType, functionName, message)
local outputType = type(functionName)
self:assertEquals(expectedType, outputType, message)
end
-- Confirm test function itself is working
function suite:test_assertTypeEquals_returns_correctly()
self:assertTypeEquals('number', 10, 'assertTypeEquals failed to compare value to its type')
end
-- Confirm output is a number formatted as a string
function suite:test_module_outputs_number_as_string()
local asString = self.frame:preprocess('{{#invoke:'..moduleName..'|main|project=spaceflight}}')
local asNumber = tonumber(asString)
self:assertTypeEquals('string', asString, 'Module output is not formatted as a string')
self:assertTypeEquals('number', asNumber, 'Module output cannot be converted to a number')
end
-- Confirm output returns expected value
function suite:test_module_outputs_expected_value()
local expectedOutput = self.frame:preprocess('{{#expr:100 * ((' .. projectTotal .. ' - {{PAGESINCATEGORY:Unassessed spaceflight articles|pages|R}} ) / ' .. projectTotal .. ' ) round 1}}')
local moduleOutput = self.frame:preprocess('{{#invoke:'..moduleName..'|main|project=spaceflight}}')
self:assertEquals(expectedOutput, moduleOutput, 'Module output does not match expected calculation')
end
-- Confirm output returns expected value for single class
function suite:test_module_outputs_expected_for_single_class()
local expectedOutput = self.frame:preprocess('{{#expr:100 * ({{PAGESINCATEGORY:Stub-Class spaceflight articles|pages|R}} / ' .. projectTotal .. ' ) round 1}}')
local moduleOutput = self.frame:preprocess('{{#invoke:'..moduleName..'|main|project=spaceflight|class=Stub}}')
self:assertEquals(expectedOutput, moduleOutput, 'Module output differs for total on single class')
end
--[[ Confirm that module returns an error if no results are found for project name given
function suite:test_module_returns_error_if_invalid_project_specified()
local invalidProject = self.frame:preprocess('{{#invoke:WikiProject assessment progression|main|project=SPAceflight}}')
self:assertEquals('Error: project not found for project name "SPAceflight"', invalidProject)
end
--]]
return suite