Example #1
0
        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);
            }
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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;
        }