summaryrefslogtreecommitdiff
path: root/spec/dates_spec.lua
blob: a8b5a71970d033f1d2f777fc15100d3ab02085ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
local dates = require "activity.dates"


describe("Days in a year", function()
	it("should support regular years", function()
		assert.are.equal(365, dates.days_in(1970))
		assert.are.equal(365, dates.days_in(2001))
	end)

	it("should support lean years", function()
		assert.are.equal(366, dates.days_in(2004))
		assert.are.equal(366, dates.days_in(1980))
	end)

	it("should support *00 years", function()
		assert.are.equal(366, dates.days_in(2000))
		assert.are.equal(365, dates.days_in(2100))
		assert.are.equal(365, dates.days_in(2200))
		assert.are.equal(365, dates.days_in(2300))
		assert.are.equal(366, dates.days_in(2400))
	end)
end)


describe("This year is", function()
	local this_year = tonumber(os.date"%Y")  -- Quite useless test

	it(tostring(this_year), function()
		assert.are.equal(this_year, dates.this_year())
	end)
end)


describe("First week day of", function()
	it("2023 is Sunday", function()
		assert.are.equal(1, dates.first_week_day(2023))
	end)

	it("2022 is Saturday", function()
		assert.are.equal(7, dates.first_week_day(2022))
	end)

	it("2020 is Wednesday", function()
		assert.are.equal(4, dates.first_week_day(2020))
	end)
end)