Documentația acestui modul poate fi creată la Modul:DateUtils/testcases/doc

local p = require('Modul:UnitTests')
local DateUtils = require('Modul:DateUtils')

function p.testFormatDate()
	local dateWithDayPrecision = {precision=11,month=11,year=2012,day=30}
	p:equals('formatDate(30 noiembrie 2012)', DateUtils.formatDate(dateWithDayPrecision), '<time datetime="2012-11-30">30 noiembrie 2012</time>')
	local dateWithMonthPrecision = {precision=10,month=11,year=2012,day=0}
	p:equals('formatDate(noiembrie 2012)', DateUtils.formatDate(dateWithMonthPrecision), '<time datetime="2012-11">noiembrie 2012</time>')
	local invalidDateWithMonthPrecision = {precision=10,month=0,year=2012,day=10}
	p:equals('formatDate(2012 with month precision)', DateUtils.formatDate(invalidDateWithMonthPrecision), '<time datetime="2012-01">ianuarie 2012</time>')
	local dateWithYearPrecision = {precision=9,month=0,year=2012,day=0}
	p:equals('formatDate(2012)', DateUtils.formatDate(dateWithYearPrecision), '<time datetime="2012">2012</time>')

	p:equals('formatDate(30 noiembrie 2012, true)', DateUtils.formatDate(dateWithDayPrecision, true), '<time datetime="2012-11-30">[[30 noiembrie]] [[2012]]</time>')
	p:equals('formatDate(noiembrie 2012, true)', DateUtils.formatDate(dateWithMonthPrecision, true), '<time datetime="2012-11">[[noiembrie]] [[2012]]</time>')
	p:equals('formatDate(2012, true)', DateUtils.formatDate(dateWithYearPrecision, true), '<time datetime="2012">[[2012]]</time>')
	
	p:equals('formatDate(parseDate(2018-05-09))', DateUtils.formatDate(DateUtils.parseDate('2018-05-09')), '<time datetime="2018-05-09">9 mai 2018</time>')
	p:equals('formatDate(parseDate(May 9, 2018))', DateUtils.formatDate(DateUtils.parseDate('May 9, 2018')), '<time datetime="2018-05-09">9 mai 2018</time>')
	p:equals('formatDate(parseDate(09/05/2018))', DateUtils.formatDate(DateUtils.parseDate('09/05/2018')), '<time datetime="2018-05-09">9 mai 2018</time>')
	p:equals('formatDate(parseDate(9 May 2018))', DateUtils.formatDate(DateUtils.parseDate('9 May 2018')), '<time datetime="2018-05-09">9 mai 2018</time>')
	p:equals('formatDate(parseDate(9 mai 2018))', DateUtils.formatDate(DateUtils.parseDate('9 mai 2018')), '<time datetime="2018-05-09">9 mai 2018</time>')
	
	p:equals('parseDate(mai 2018) luna = 5', DateUtils.parseDate('mai 2018').month, 5)
	p:equals('parseDate(mai 2018) zi = nil', DateUtils.parseDate('mai 2018').day, nil)
	p:equals('parseDate(18 mai 2018) zi = 18', DateUtils.parseDate('18 mai 2018').day, 18)
	p:equals('parseDate(18 mai 2018) luna = 5', DateUtils.parseDate('18 mai 2018').month, 5)
	p:equals('parseDate(18 mai 2018) an = 2018', DateUtils.parseDate('18 mai 2018').year, 2018)

	p:equals('parseDate(2018-05) luna = 5', DateUtils.parseDate('2018-05').month, 5)
	p:equals('parseDate(2018-05) ziua = nil', DateUtils.parseDate('2018-05').day, nil)
	p:equals('parseDate(2018-05-18) luna = 5', DateUtils.parseDate('2018-05-18').day, 18)
	p:equals('parseDate(2018-05-18) ziua = nil', DateUtils.parseDate('2018-05-18').month, 5)
	p:equals('parseDate(2018-05-18) an = 2018', DateUtils.parseDate('2018-05-18').year, 2018)

	p:equals('parseYear(27 î.Hr.)', DateUtils.parseYear('27 î.Hr.').year, -27)
	p:equals('parseYear(520)', DateUtils.parseYear('520').year, 520)
	
	p:equals('compare(1951, 1954)', DateUtils.compare({year=1951}, {year=1954}), -1)
	p:equals('compare(mai 1951, ianuarie 1951)', DateUtils.compare({year=1951, month=5}, {year=1951, month=1}), 1)
end

function p.testDateTemplate()
	p:preprocess_equals('{{Dată|2018-05}}', '<time datetime="2018-05">mai 2018</time>')
	p:preprocess_equals('{{Dată|2018|05}}', '<time datetime="2018-05">mai 2018</time>')

	p:preprocess_equals('{{Dată|2018-05-18}}', '<time datetime="2018-05-18">18 mai 2018</time>')
	p:preprocess_equals('{{Dată|2018|05|18}}', '<time datetime="2018-05-18">18 mai 2018</time>')
end

return p