Module:Calendar/sandbox/testcases

Lua

CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules

✓[OK] All tests passed.

Name Expected Actual
✓[OK] test_DayOfWeek_function
✓[OK] test_Gregorian2Julian_function
✓[OK] test_GregorianDateValidator_function
✓[OK] test_Julian2Gregorian_function
✓[OK] test_calendar_math

Code

local TUT = mw.title.new(mw.getCurrentFrame():getTitle()).basePageTitle -- the title under test
local p = require(TUT.prefixedText)-- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

function suite:test_DayOfWeek_function()
	self:assertSameResult( 'Friday',  "{{#invoke:Calendar/sandbox|DayOfWeek|2017-09-01}}")
	self:assertSameResult( 'Friday',  "{{#invoke:Calendar/sandbox|DayOfWeek|1963-11-22}}")
	self:assertSameResult( 'Monday',  "{{#invoke:Calendar/sandbox|DayOfWeek|0001-01-01}}")
	self:assertSameResult( 'Tuesday', "{{#invoke:Calendar/sandbox|DayOfWeek|1929-10-29}}")
	self:assertSameResult( 'Friday',  "{{#invoke:Calendar/sandbox|DayOfWeek|1866-05-11}}")
	self:assertSameResult( 'Friday',  "{{#invoke:Calendar/sandbox|DayOfWeek|1989-10-13}}")
	self:assertSameResult( 'Friday',  "{{#invoke:Calendar/sandbox|DayOfWeek|1987-07-31}}")
	self:assertSameResult( 'Friday',  "{{#invoke:Calendar/sandbox|DayOfWeek|1985-05-31}}")
	self:assertSameResult( 'Friday',  "{{#invoke:Calendar/sandbox|DayOfWeek|1959-02-20}}")
	self:assertSameResult( 'Friday',  "{{#invoke:Calendar/sandbox|DayOfWeek|1945-10-05}}")
	self:assertSameResult( 'Friday',  "{{#invoke:Calendar/sandbox|DayOfWeek|1939-01-13}}")
end

function suite:test_Julian2Gregorian_function()
	self:assertSameResult( '1917-11-07', "{{#invoke:Calendar/sandbox|Julian2Gregorian|1917-10-25}}")
	self:assertSameResult( '1582-10-15', "{{#invoke:Calendar/sandbox|Julian2Gregorian|1582-10-05}}")
end

function suite:test_Gregorian2Julian_function()
	self:assertSameResult( '1917-10-25', "{{#invoke:Calendar/sandbox|Gregorian2Julian|1917-11-07}}")
	self:assertSameResult( '1582-10-05', "{{#invoke:Calendar/sandbox|Gregorian2Julian|1582-10-15}}")
end

function suite:test_GregorianDateValidator_function()
	self:assertSameResult( 'date is valid',     "{{#invoke:Calendar/sandbox|valid_date|1917-11-07}}")
	self:assertSameResult( 'date is not valid', "{{#invoke:Calendar/sandbox|valid_date|1582-02-30}}")
	self:assertSameResult( 'date is not valid', "{{#invoke:Calendar/sandbox|valid_date|1857-04-31}}")
	self:assertSameResult( 'date is not valid', "{{#invoke:Calendar/sandbox|valid_date|2023-02-29}}")
	self:assertSameResult( 'date is valid',     "{{#invoke:Calendar/sandbox|valid_date|2024-02-29}}")
	self:assertSameResult( 'date is valid',     "{{#invoke:Calendar/sandbox|valid_date|29-02-2023}}") -- incorect format so do not flag as wrong date
end

function suite:test_calendar_math()
	-- verify _date2jdn and _jdn2date are inversefunctions
    local jdn_array = {0, 1e1, 3e1, 1e2, 3e2, 1e3, 3e3, 1e4, 3e4, 1e5, 3e5, 1e6, 2e6} -- set of arbitrary dates
	for _, jdn in ipairs(jdn_array) do    
		self:assertEquals( jdn, p._date2jdn(p._jdn2date(jdn, 0), 0)) -- Julian    dates
		self:assertEquals( jdn, p._date2jdn(p._jdn2date(jdn, 1), 1)) -- Gregorian dates	
	end
end

return suite