public void Difference()
        {
            TemporalExpression te;
            //All days in june except sundays
            te = new TEMonth(Month.June) - new TEWeekDay(DayOfWeek.Sunday);

            Assert.IsTrue(te.Includes(new DateTime(2010, 6, 7)));
            Assert.IsTrue(te.Includes(new DateTime(2010, 6, 16)));
            Assert.IsTrue(te.Includes(new DateTime(2010, 6, 18)));
            Assert.IsTrue(te.Includes(new DateTime(2010, 6, 14)));
            Assert.IsTrue(te.Includes(new DateTime(2011, 6, 24)));

            Assert.IsFalse(te.Includes(new DateTime(2010, 6, 6)));
            Assert.IsFalse(te.Includes(new DateTime(2010, 6, 20)));
            Assert.IsFalse(te.Includes(new DateTime(2010, 7, 19)));
            Assert.IsFalse(te.Includes(new DateTime(2011, 6, 19)));
        }
        public void TE_Month()
        {
            //Single Month
            TEMonth tem = new TEMonth(Month.January);
            Assert.IsTrue(tem.Includes(new DateTime(2010,1,1)));
            Assert.IsTrue(tem.Includes(new DateTime(2011,1,1)));
            Assert.IsTrue(tem.Includes(new DateTime(2011,1,23)));
            Assert.IsFalse(tem.Includes(new DateTime(2011, 2, 1)));
            Assert.IsFalse(tem.Includes(new DateTime(2011, 8, 20)));

            //Single Month
            tem = new TEMonth(new DateTime(2012,1,1));
            Assert.IsTrue(tem.Includes(new DateTime(2010, 1, 1)));
            Assert.IsTrue(tem.Includes(new DateTime(2011, 1, 1)));
            Assert.IsTrue(tem.Includes(new DateTime(2011, 1, 23)));
            Assert.IsFalse(tem.Includes(new DateTime(2011, 2, 1)));
            Assert.IsFalse(tem.Includes(new DateTime(2011, 8, 20)));

            //Single Month
            tem = new TEMonth(1);
            Assert.IsTrue(tem.Includes(new DateTime(2010, 1, 1)));
            Assert.IsTrue(tem.Includes(new DateTime(2011, 1, 1)));
            Assert.IsTrue(tem.Includes(new DateTime(2011, 1, 23)));
            Assert.IsFalse(tem.Includes(new DateTime(2011, 2, 1)));
            Assert.IsFalse(tem.Includes(new DateTime(2011, 8, 20)));

            //range
            TEMonth temr = new TEMonth(Month.February, Month.June);
            Assert.IsTrue(temr.Includes(new DateTime(2010, 4, 1)));
            Assert.IsTrue(temr.Includes(new DateTime(2010, 5, 25)));
            Assert.IsTrue(temr.Includes(new DateTime(2010, 2, 1)));
            Assert.IsTrue(temr.Includes(new DateTime(2010, 6, 30)));
            Assert.IsFalse(temr.Includes(new DateTime(2011, 8, 20)));
            Assert.IsFalse(temr.Includes(new DateTime(2011, 9, 10)));
            Assert.IsFalse(temr.Includes(new DateTime(2011, 12, 1)));
        }