Hopp til innhold

Modul:Citation/CS1/Date validation/testtilfeller

Fra Wikipedia, den frie encyklopedi


-- Unit tests for [[Modul:Citation/CS1/Date validation]]. Click talk page to run tests.
local p = require('Modul:UnitTests')

function p:test_check_date_valid()
	self:preprocess_equals_many('{{#invoke:Citation/CS1/Date validation/testhjelper|check_date_valid| ', ' }}', {
		{'2014', 'true'},
		{'2014–2015', 'true'},
		{'januar 2014', 'true'},
		{'januar–februar 2014', 'true'},
		{'2014-01-01', 'true'},
		{'1. januar 2014', 'true'},
		{'10. januar 2014', 'true'},
		{'1.–3. januar 2014', 'true'},
		{'1. januar – 3. februar 2014', 'true'},
		{'10.04.2014', 'true'},
		{'10.4.2014', 'true'},
		{'1.4.2014', 'true'},
		{'2014a', 'true'}, -- disambiguator
		{'2014aa', 'false'}, -- disambiguator should only be one character
		{'1. januar 2014a', 'true'}, -- disambiguator
		{'1. januar 2014aa', 'false'}, -- disambiguator should only be one character
		{'01. januar 2014', 'false'}, -- ganske strengt altså :)
		{'10.04.14', 'false'}, -- ikke støtt årstall med to siffer
		{'100.04.2014', 'false'}, -- ugyldig dag
		{'100. januar 2014', 'false'}, -- ugyldig dag
		{'2014-13-01', 'false'}, -- ugyldig måned
		{'2014-01-32', 'false'}, -- ugyldig dag
		{'1–3. januar 2014', 'false'}, --mangler punktum
		{'1 – 3. januar 2014', 'false'}, -- ekstra mellomrom
		{'1-3. januar 2014', 'false'}, -- bindestrek, ikke tankestrek
		{'1. januar–3. januar 2014', 'false'}, -- bindestrek, ikke tankestrek
		{'1 januar 2014', 'false'}, -- mangler punktum
		{'januar 1, 2014', 'false'}, -- kvasi-engelsk
		{'1. gobbluar 2014', 'false'}, -- ugyldig månedsnavn
		{'c. 2014', 'false'}, -- special case for some reason defined in test_dates(), so it won't validate with check_date()
	})
end

function p:test_check_date_seasons()
	self:preprocess_equals_many('{{#invoke:Citation/CS1/Date validation/testhjelper|check_date_valid| ', ' }}', {
		{'våren 2014', 'true'},
		{'sommeren 2014', 'true'},
		{'høsten 2014', 'true'},
		{'vinteren 2014', 'true'},
		{'Våren 2014', 'true'},
		{'Sommeren 2014', 'true'},
		{'Høsten 2014', 'true'},
		{'Vinteren 2014', 'true'},
		{'vinteren 2014–2015', 'false'},
		{'våren 2014 – sommeren 2015', 'true'},
		{'våren–sommeren 2014', 'true'},
		{'VÅREN 2014', 'false'},
		{'SOMMEREN 2014', 'false'},
		{'HØSTEN 2014', 'false'},
		{'VINTEREN 2014', 'false'},
	})
end

function p:test_dates()
	self:preprocess_equals_many('{{#invoke:Citation/CS1/Date validation/testhjelper|dates| ', ' }}', {
		{'c. 2014', 'true'},
		{'ca. 2014', 'true'}, -- inntil videre ihvertfall, må sjekkes opp
		{'udatert', 'true'},
		{'u.d.', 'true'}, -- uten dato
		{'utdatert', 'false'}, -- typo :)
		{'n.d.', 'false'},  -- engelsk form
		{'nd.', 'false'},  -- engelsk form
	})
end

function p:test_check_date_anchor_year()
	self:preprocess_equals_many('{{#invoke:Citation/CS1/Date validation/testhjelper|check_date_anchor_year| ', ' }}', {
		{'c. 2014', ''},   -- expected?
		{'høsten 2014', '2014'},
		{'2014a', '2014a'},
		{'1. september 2014', '2014'},
		{'2014-01-03', '2014'},
	})
end


function p:test_check_date_coins()
	self:preprocess_equals_many('{{#invoke:Citation/CS1/Date validation/testhjelper|check_date_coins| ', ' }}', {
		{'c. 2014', ''},  -- expected?
		{'høsten 2014', 'høsten 2014'},
		{'2014a', '2014'},  --should remove disambiguator
		{'1. september 2014a', '1. september 2014'},  --should remove disambiguator
		{'1.–3. januar 2014', '1.-3. januar 2014'},  -- should replace endash with hyphen
		{'2014-01-03', '2014-01-03'},
	})
end

function p:test_is_valid_month_or_season()
	self:preprocess_equals_many('{{#invoke:Citation/CS1/Date validation/testhjelper|is_valid_month_or_season| ', ' }}', {
		{'januar', 'true'},
		{'februar', 'true'},
		{'mars', 'true'},
		{'april', 'true'},
		{'mai', 'true'},
		{'juni', 'true'},
		{'juli', 'true'},
		{'august', 'true'},
		{'september', 'true'},
		{'oktober', 'true'},
		{'november', 'true'},
		{'desember', 'true'},
		{'våren', 'true'},
		{'sommeren', 'true'},
		{'høsten', 'true'},
		{'vinteren', 'true'},
		{'January', 'false'},
		{'winter', 'false'},
	})
end

return p