public void TestNextWorkingDayBoxingDay()
        {
            var expected = new DateTime(2006, 12, 27);
            var actual   = new SlovakiaPublicHoliday().NextWorkingDay(new DateTime(2006, 12, 26));

            Assert.AreEqual(expected, actual);
        }
        public void TestNextWorkingDayChristmasEve2014()
        {
            var expected = new DateTime(2014, 12, 29);
            var actual   = new SlovakiaPublicHoliday().NextWorkingDay(new DateTime(2014, 12, 24));

            Assert.AreEqual(expected, actual);
        }
        public void TestNextWorkingDayEaster()
        {
            var expected = new DateTime(2017, 4, 18);
            var actual   = new SlovakiaPublicHoliday().NextWorkingDay(new DateTime(2017, 4, 14));

            Assert.AreEqual(expected, actual);
        }
        public void TestNextWorkingDaySunday()
        {
            var expected = new DateTime(2017, 6, 12);
            var actual   = new SlovakiaPublicHoliday().NextWorkingDay(new DateTime(2017, 6, 11));

            Assert.AreEqual(expected, actual);
        }
        public void TestSkHolidays1974(int month, int day)
        {
            var holiday         = new DateTime(1974, month, day);
            var holidayCalendar = new SlovakiaPublicHoliday();
            var actual          = holidayCalendar.IsPublicHoliday(holiday);

            Assert.IsTrue(actual, $"{holiday.ToString("D")} is not a holiday");
        }
        public void TestSkNoHolidays1952(int month, int day)
        {
            var holiday         = new DateTime(1952, month, day);
            var holidayCalendar = new SlovakiaPublicHoliday();
            var actual          = holidayCalendar.IsPublicHoliday(holiday);

            Assert.IsFalse(actual, $"{holiday.ToString("D")} is a holiday (shouldn't be)");
        }
        public void TestGoodFriday()
        {
            var expected = new DateTime(2017, 4, 14);
            var actual   = SlovakiaPublicHoliday.GoodFriday(2017);

            Assert.AreEqual(expected, actual);

            expected = new DateTime(2000, 4, 21);
            actual   = SlovakiaPublicHoliday.GoodFriday(2000);
            Assert.AreEqual(expected, actual);

            expected = new DateTime(2005, 3, 25);
            actual   = SlovakiaPublicHoliday.GoodFriday(2005);
            Assert.AreEqual(expected, actual);
        }
        public void TestEasterMonday()
        {
            var expected = new DateTime(2017, 4, 17);
            var actual   = SlovakiaPublicHoliday.EasterMonday(2017);

            Assert.AreEqual(expected, actual);

            expected = new DateTime(2000, 4, 24);
            actual   = SlovakiaPublicHoliday.EasterMonday(2000);
            Assert.AreEqual(expected, actual);

            expected = new DateTime(2005, 3, 28);
            actual   = SlovakiaPublicHoliday.EasterMonday(2005);
            Assert.AreEqual(expected, actual);
        }
        public void TestPreviousWorkingDay()
        {
            var actual = new SlovakiaPublicHoliday().PreviousWorkingDay(new DateTime(2016, 1, 1)); //Friday

            Assert.AreEqual(new DateTime(2015, 12, 31), actual);

            actual = new SlovakiaPublicHoliday().PreviousWorkingDay(new DateTime(2014, 12, 28)); // Sunday
            Assert.AreEqual(new DateTime(2014, 12, 23), actual);

            actual = new SlovakiaPublicHoliday().PreviousWorkingDay(new DateTime(2014, 12, 29)); // Monday
            Assert.AreEqual(new DateTime(2014, 12, 29), actual);

            actual = new SlovakiaPublicHoliday().PreviousWorkingDay(new DateTime(2016, 1, 3)); // Sunday
            Assert.AreEqual(new DateTime(2015, 12, 31), actual);

            actual = new SlovakiaPublicHoliday().PreviousWorkingDay(new DateTime(2016, 1, 4));               // Monday
            Assert.AreEqual(new DateTime(2016, 1, 4), actual);                                               //is a working day

            actual = new SlovakiaPublicHoliday().PreviousWorkingDay(new DateTime(2016, 1, 3, 11, 31, 0, 0)); //Sun with date
            Assert.AreEqual(new DateTime(2015, 12, 31), actual);
        }