public void TE_DayInMonth()
        {
            //single day
            TEDayInMonth tem = new TEDayInMonth(4);
            Assert.IsTrue(tem.Includes(new DateTime(2010, 6, 4)));
            Assert.IsTrue(tem.Includes(new DateTime(2010, 8, 4)));
            Assert.IsTrue(tem.Includes(new DateTime(2011, 9, 4)));

            Assert.IsFalse(tem.Includes(new DateTime(2010, 6, 2)));
            Assert.IsFalse(tem.Includes(new DateTime(2012, 8, 3)));
            Assert.IsFalse(tem.Includes(new DateTime(1998, 9, 5)));

            //date param
            tem = new TEDayInMonth(new DateTime(2012,1,4));
            Assert.IsTrue(tem.Includes(new DateTime(2010, 6, 4)));
            Assert.IsTrue(tem.Includes(new DateTime(2010, 8, 4)));
            Assert.IsTrue(tem.Includes(new DateTime(2011, 9, 4)));

            Assert.IsFalse(tem.Includes(new DateTime(2010, 6, 2)));
            Assert.IsFalse(tem.Includes(new DateTime(2012, 8, 3)));
            Assert.IsFalse(tem.Includes(new DateTime(1998, 9, 5)));

            //range
            TEDayInMonth temr = new TEDayInMonth(5, 10);
            Assert.IsTrue(temr.Includes(new DateTime(2010, 5, 5)));
            Assert.IsTrue(temr.Includes(new DateTime(2010, 8, 7)));
            Assert.IsTrue(temr.Includes(new DateTime(2011, 9, 10)));

            Assert.IsFalse(temr.Includes(new DateTime(2010, 6, 2)));
            Assert.IsFalse(temr.Includes(new DateTime(2012, 8, 3)));
            Assert.IsFalse(temr.Includes(new DateTime(1998, 9, 15)));

            //negative
            TEDayInMonth ten = new TEDayInMonth(-4);
            Assert.IsTrue(ten.Includes(new DateTime(2010, 6, 27)));
            Assert.IsTrue(ten.Includes(new DateTime(2010, 7, 28)));
            Assert.IsTrue(ten.Includes(new DateTime(2010, 5, 28)));

            Assert.IsFalse(ten.Includes(new DateTime(2010, 6, 26)));
            Assert.IsFalse(ten.Includes(new DateTime(2010, 7, 29)));
            Assert.IsFalse(ten.Includes(new DateTime(2010, 5, 27)));
        }