public void IsDayToSendDelinquentReminderTest()
        {
            var deadlineMonth                    = 1;
            var deadlineDay                      = 15;
            var deadlineYear                     = NeptuneDateUtilities.CalculateDeadlineYear();
            var reportingPeriodEndMonth          = 10;
            var reportingPeriodEndDay            = 1;
            var delinquentReminderIntervalInDays = 5;
            var futureDeadlineYear               = deadlineYear + 1;
            var previousDeadlineYear             = deadlineYear - 1;

            var result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(deadlineYear, deadlineMonth, deadlineDay + 1), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);

            Assert.That(result, Is.False, string.Format("In reporting period but not a mod {0} day", delinquentReminderIntervalInDays));
            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(deadlineYear, deadlineMonth, deadlineDay + delinquentReminderIntervalInDays), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.True, string.Format("In reporting period and a mod {0} day", delinquentReminderIntervalInDays));

            var resultList = new List <bool>();

            for (var i = 1; i <= delinquentReminderIntervalInDays; i++)
            {
                result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(deadlineYear, reportingPeriodEndMonth, reportingPeriodEndDay).AddDays(-i),
                                                                            delinquentReminderIntervalInDays,
                                                                            deadlineMonth,
                                                                            deadlineDay,
                                                                            reportingPeriodEndMonth,
                                                                            reportingPeriodEndDay);
                resultList.Add(result);
            }
            Assert.That(resultList.Count(x => x), Is.EqualTo(1), string.Format("Should only have one reminder during this {0} day period when we are in the reporting period", delinquentReminderIntervalInDays));

            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(deadlineYear, deadlineMonth, deadlineDay), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "In reporting period and on deadline day");
            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(deadlineYear, reportingPeriodEndMonth, reportingPeriodEndDay), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "In reporting period and at reporting period end date");

            // future reporting year
            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(deadlineYear, reportingPeriodEndMonth, reportingPeriodEndDay + 7), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "After reporting period end day");

            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(futureDeadlineYear, deadlineMonth, deadlineDay + 1), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "Future reporting year but not a reporting day");
            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(futureDeadlineYear, deadlineMonth, deadlineDay + delinquentReminderIntervalInDays), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "Future reporting year and a reporting day");

            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(futureDeadlineYear, deadlineMonth, deadlineDay), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "Future reporting year and on deadline day");
            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(futureDeadlineYear, reportingPeriodEndMonth, reportingPeriodEndDay), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "Future reporting year and at reporting period end date");

            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(previousDeadlineYear, deadlineMonth, deadlineDay + 1), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "Previous reporting year but not a reporting day");
            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(previousDeadlineYear, deadlineMonth, deadlineDay + delinquentReminderIntervalInDays), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "Previous reporting year and a reporting day");

            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(previousDeadlineYear, deadlineMonth, deadlineDay), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "Previous reporting year and on deadline day");
            result = NeptuneDateUtilities.IsDayToSendDelinquentReminder(new DateTime(previousDeadlineYear, reportingPeriodEndMonth, reportingPeriodEndDay), delinquentReminderIntervalInDays, deadlineMonth, deadlineDay, reportingPeriodEndMonth, reportingPeriodEndDay);
            Assert.That(result, Is.False, "Previous reporting year and at reporting period end date");
        }