public void TestImplicitConversionDateAsParam()
        {
            DateAsParam dateAsParam = new DateAsParam("2020-01-01");

            DateTime before = DateTime.Parse("2019-01-01");
            DateTime after  = DateTime.Parse("2021-01-01");
            DateTime same   = DateTime.Parse("2020-01-01");

            Assert.AreEqual(-1, before.CompareTo(dateAsParam));
            Assert.AreEqual(1, after.CompareTo(dateAsParam));
            Assert.AreEqual(0, same.CompareTo(dateAsParam));

            Assert.AreEqual(1, dateAsParam.CompareTo(before));
            Assert.AreEqual(-1, dateAsParam.CompareTo(after));
            Assert.AreEqual(0, dateAsParam.CompareTo(same));
        }
        public void TestDateAsParamCompare(string lowDateString, string highDateString)
        {
            DateAsParam lowDateAsParam  = new DateAsParam(lowDateString);
            DateAsParam highDateAsParam = new DateAsParam(highDateString);

            DateTime lowDateTime  = DateTime.Parse(lowDateString);
            DateTime highDateTime = DateTime.Parse(highDateString);

            Assert.AreEqual(lowDateTime.CompareTo(highDateTime), lowDateAsParam.CompareTo(highDateAsParam));
            Assert.AreEqual(highDateTime.CompareTo(lowDateTime), highDateAsParam.CompareTo(lowDateAsParam));
        }