uint GetDayOffset(DayOfWeek futureDay) { uint future = DateGuesser.DayOfWeekToUInt(futureDay); uint today = DateGuesser.DayOfWeekToUInt(DateTime.Today.DayOfWeek); if (future > today) { return(future - today); } else if (today > future) { return(7 - (today - future)); } else { return(7); } }
public void Today() { DateGuesser guesser = DateGuesser.Instance; DateTime dateTime = DateTime.MinValue; DateTime expected = DateTime.Today; string task = string.Empty; string text = string.Empty; // #1 text = string.Format("Sell something, {0}, on the internet", Constants.Today); bool parsed = guesser.Parse(text, out task, out dateTime); Assert.IsTrue(parsed, "#0"); Assert.AreEqual("Sell something,, on the internet", task, "#1"); Assert.AreEqual(expected.Month, dateTime.Month, "#2"); Assert.AreEqual(expected.Day, dateTime.Day, "#3"); Assert.AreEqual(expected.Year, dateTime.Year, "#4"); parsed = false; dateTime = DateTime.MinValue; // #2 text = string.Format("Buy beer {0}", Constants.Today); parsed = guesser.Parse(text, out task, out dateTime); Assert.IsTrue(parsed, "#5"); Assert.AreEqual("Buy beer", task, "#6"); Assert.AreEqual(expected.Month, dateTime.Month, "#7"); Assert.AreEqual(expected.Day, dateTime.Day, "#8"); Assert.AreEqual(expected.Year, dateTime.Year, "#9"); parsed = false; dateTime = DateTime.MinValue; // Due is separated by "|" string[] dues = Constants.Due.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries); foreach (string due in dues) { if (string.IsNullOrEmpty(due)) { continue; } // #3 text = string.Format("Print tickets {0} {1}", due, Constants.Today); parsed = guesser.Parse(text, out task, out dateTime); Assert.IsTrue(parsed, "#10"); Assert.AreEqual("Print tickets", task, string.Format("#11 -> {0}", due)); Assert.AreEqual(expected.Month, dateTime.Month, string.Format("#12 -> {0}", due)); Assert.AreEqual(expected.Day, dateTime.Day, string.Format("#13 -> {0}", due)); Assert.AreEqual(expected.Year, dateTime.Year, string.Format("#14 -> {0}", due)); parsed = false; dateTime = DateTime.MinValue; } }
public void DueValid() { DateGuesser guesser = DateGuesser.Instance; DateTime dateTime = DateTime.MinValue; DateTime expected = DateTime.MinValue; string task = string.Empty; // January string text = string.Format("Sell something due {0} 12", Constants.Months [0]); expected = GetMonthDate(1, 12); Assert.IsTrue(guesser.Parse(text, out task, out dateTime), "#0"); Assert.AreEqual("Sell something", task, "#1"); Assert.AreEqual(expected.Month, dateTime.Month, "#2"); Assert.AreEqual(expected.Day, dateTime.Day, "#3"); Assert.AreEqual(expected.Year, dateTime.Year, "#4"); dateTime = DateTime.MinValue; // April 22 expected = GetMonthDate(4, 22); text = string.Format("Sell something due {0} 22nd", Constants.Months [7]); Assert.IsTrue(guesser.Parse(text, out task, out dateTime), "#5"); Assert.AreEqual("Sell something", task, "#6"); Assert.AreEqual(expected.Month, dateTime.Month, "#7"); Assert.AreEqual(expected.Day, dateTime.Day, "#8"); Assert.AreEqual(expected.Year, dateTime.Year, "#9"); dateTime = DateTime.MinValue; // April 13th expected = GetMonthDate(4, 13); text = string.Format("Sell something due {0} 13th", Constants.Months [7]); Assert.IsTrue(guesser.Parse(text, out task, out dateTime), "#10"); Assert.AreEqual("Sell something", task, "#11"); Assert.AreEqual(expected.Month, dateTime.Month, "#12"); Assert.AreEqual(expected.Day, dateTime.Day, "#13"); Assert.AreEqual(expected.Year, dateTime.Year, "#14"); dateTime = DateTime.MinValue; // May expected = GetMonthDate(5, 1); text = string.Format("Sell something due before {0}", Constants.Months [9]); Assert.IsTrue(guesser.Parse(text, out task, out dateTime), "#15"); Assert.AreEqual("Sell something", task, "#16"); Assert.AreEqual(expected.Month, dateTime.Month, "#17"); Assert.AreEqual(expected.Day, dateTime.Day, "#18"); Assert.AreEqual(expected.Year, dateTime.Year, "#19"); // April 13th expected = GetMonthDate(4, 12); text = string.Format("Sell something due {0} 12th", Constants.Months [7]); Assert.IsTrue(guesser.Parse(text, out task, out dateTime), "#20"); Assert.AreEqual("Sell something", task, "#21"); Assert.AreEqual(expected.Month, dateTime.Month, "#22"); Assert.AreEqual(expected.Day, dateTime.Day, "#23"); Assert.AreEqual(expected.Year, dateTime.Year, "#24"); dateTime = DateTime.MinValue; }