55 lines
2.2 KiB
Python
55 lines
2.2 KiB
Python
|
import unittest
|
||
|
import datetime
|
||
|
from fixedcal.core.date import FixedDate
|
||
|
|
||
|
class TestInitWithFixedDate(unittest.TestCase):
|
||
|
def test_january_first(self):
|
||
|
fixed_date = FixedDate(day=1, month=1, year=2022)
|
||
|
self.assertEqual(fixed_date.date, datetime.date(2022, 1, 1))
|
||
|
self.assertEqual(fixed_date.day_of_year, 1)
|
||
|
|
||
|
def test_non_leap_year_day(self):
|
||
|
fixed_date = FixedDate(day=29, month=13, year=2022)
|
||
|
self.assertEqual(fixed_date.date, datetime.date(2022, 12, 31))
|
||
|
self.assertTrue(fixed_date.is_year_day)
|
||
|
|
||
|
def test_leap_year_day(self):
|
||
|
fixed_date = FixedDate(day=29, month=13, year=2024)
|
||
|
self.assertEqual(fixed_date.date, datetime.date(2024, 12, 31))
|
||
|
self.assertTrue(fixed_date.is_year_day)
|
||
|
|
||
|
def test_leap_year_june_last(self):
|
||
|
fixed_date = FixedDate(day=28, month=6, year=2024)
|
||
|
self.assertEqual(fixed_date.date, datetime.date(2024, 6, 16))
|
||
|
self.assertFalse(fixed_date.is_leap_day)
|
||
|
|
||
|
def test_leap_year_leap_day(self):
|
||
|
fixed_date = FixedDate(day=29, month=6, year=2024)
|
||
|
self.assertEqual(fixed_date.date, datetime.date(2024, 6, 17))
|
||
|
self.assertTrue(fixed_date.is_leap_day)
|
||
|
|
||
|
def test_leap_year_sol_first(self):
|
||
|
fixed_date = FixedDate(day=1, month=7, year=2024)
|
||
|
self.assertEqual(fixed_date.date, datetime.date(2024, 6, 18))
|
||
|
self.assertFalse(fixed_date.is_leap_day)
|
||
|
|
||
|
def test_non_leap_year_sol_first(self):
|
||
|
fixed_date = FixedDate(day=1, month=7, year=2022)
|
||
|
self.assertEqual(fixed_date.date, datetime.date(2022, 6, 18))
|
||
|
self.assertFalse(fixed_date.is_leap_day)
|
||
|
|
||
|
def test_non_leap_year_leap_day_raises(self):
|
||
|
self.assertRaises(ValueError, lambda : FixedDate(day=29, month=6, year=2022))
|
||
|
|
||
|
def test_day_too_big_raises(self):
|
||
|
self.assertRaises(ValueError, lambda : FixedDate(day=29, month=12, year=2022))
|
||
|
|
||
|
def test_day_zero_raises(self):
|
||
|
self.assertRaises(ValueError, lambda : FixedDate(day=0, month=3, year=2022))
|
||
|
|
||
|
def test_month_zero_raises(self):
|
||
|
self.assertRaises(ValueError, lambda : FixedDate(day=15, month=0, year=2022))
|
||
|
|
||
|
def test_month_too_big_raises(self):
|
||
|
self.assertRaises(ValueError, lambda : FixedDate(day=15, month=14, year=2022))
|