示例#1
0
        public void DataTypes_Resolver_DateRange_Last_Year()
        {
            var today      = new System.DateTime(2019, 4, 30);
            var resolution = TimexResolver.Resolve(new[] { "2018" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2018", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2018-01-01", resolution.Values[0].Start);
            Assert.AreEqual("2019-01-01", resolution.Values[0].End);
        }
        public void DataTypes_Resolver_DateTime_2024W01() // first day of the year is a Monday
        {
            var today      = new System.DateTime(2024, 01, 01);
            var resolution = TimexResolver.Resolve(new[] { "2024-W01" }, today.ToUniversalTime());

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2024-W01", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2024-01-01", resolution.Values[0].Start);
            Assert.AreEqual("2024-01-08", resolution.Values[0].End);
        }
        public void DataTypes_Resolver_DateRange_first_week_of_April_2019()
        {
            var today      = new System.DateTime(2021, 1, 22, 15, 30, 0);
            var resolution = TimexResolver.Resolve(new[] { "2019-04-W01" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2019-04-W01", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2019-04-01", resolution.Values[0].Start);
            Assert.AreEqual("2019-04-08", resolution.Values[0].End);
        }
示例#4
0
        public void DataTypes_Resolver_DateRange_Last_Three_Weeks()
        {
            var today      = new System.DateTime(2019, 4, 30);
            var resolution = TimexResolver.Resolve(new[] { "(2019-04-10,2019-05-01,P3W)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(2019-04-10,2019-05-01,P3W)", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2019-04-10", resolution.Values[0].Start);
            Assert.AreEqual("2019-05-01", resolution.Values[0].End);
        }
示例#5
0
        public void DataTypes_Resolver_DateRange_Winter()
        {
            var resolution = TimexResolver.Resolve(new[] { "WI" });

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("WI", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("not resolved", resolution.Values[0].Value);
            Assert.IsNull(resolution.Values[0].Start);
            Assert.IsNull(resolution.Values[0].End);
        }
        public void DataTypes_Resolver_Duration_1hour30minutes()
        {
            var resolution = TimexResolver.Resolve(new[] { "PT1H30M" });

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("PT1H30M", resolution.Values[0].Timex);
            Assert.AreEqual("duration", resolution.Values[0].Type);
            Assert.AreEqual("5400", resolution.Values[0].Value);
            Assert.IsNull(resolution.Values[0].Start);
            Assert.IsNull(resolution.Values[0].End);
        }
示例#7
0
        public void DataTypes_Resolver_Duration_10seconds()
        {
            var resolution = TimexResolver.Resolve(new[] { "PT10S" });

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("PT10S", resolution.Values[0].Timex);
            Assert.AreEqual("duration", resolution.Values[0].Type);
            Assert.AreEqual("10", resolution.Values[0].Value);
            Assert.IsNull(resolution.Values[0].Start);
            Assert.IsNull(resolution.Values[0].End);
        }
示例#8
0
        public void DataTypes_Resolver_Time_4am()
        {
            var resolution = TimexResolver.Resolve(new[] { "T04" });

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("T04", resolution.Values[0].Timex);
            Assert.AreEqual("time", resolution.Values[0].Type);
            Assert.AreEqual("04:00:00", resolution.Values[0].Value);
            Assert.IsNull(resolution.Values[0].Start);
            Assert.IsNull(resolution.Values[0].End);
        }
示例#9
0
        public void DataTypes_Resolver_Duration_5days()
        {
            var resolution = TimexResolver.Resolve(new[] { "P5D" });

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("P5D", resolution.Values[0].Timex);
            Assert.AreEqual("duration", resolution.Values[0].Type);
            Assert.AreEqual("432000", resolution.Values[0].Value);
            Assert.IsNull(resolution.Values[0].Start);
            Assert.IsNull(resolution.Values[0].End);
        }
示例#10
0
        public void DataTypes_Resolver_DateTimeRange_This_Morning()
        {
            var resolution = TimexResolver.Resolve(new[] { "2017-10-07TMO" });

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2017-10-07TMO", resolution.Values[0].Timex);
            Assert.AreEqual("datetimerange", resolution.Values[0].Type);
            Assert.AreEqual("2017-10-07 08:00:00", resolution.Values[0].Start);
            Assert.AreEqual("2017-10-07 12:00:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
示例#11
0
        public void DataTypes_Resolver_DateTimeRange_Tonight()
        {
            var resolution = TimexResolver.Resolve(new[] { "2018-03-18TNI" });

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2018-03-18TNI", resolution.Values[0].Timex);
            Assert.AreEqual("datetimerange", resolution.Values[0].Type);
            Assert.AreEqual("2018-03-18 20:00:00", resolution.Values[0].Start);
            Assert.AreEqual("2018-03-18 24:00:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_DateTime_2020W53() // has a 53-week year
        {
            var today      = new System.DateTime(2020, 12, 30);
            var resolution = TimexResolver.Resolve(new[] { "2020-W53" }, today.ToUniversalTime());

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2020-W53", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2020-12-28", resolution.Values[0].Start);
            Assert.AreEqual("2021-01-04", resolution.Values[0].End);
        }
        public void DataTypes_Resolver_DateTime_2021W02() // first day of the year is a Friday - week 2
        {
            var today      = new System.DateTime(2021, 01, 05);
            var resolution = TimexResolver.Resolve(new[] { "2021-W02" }, today.ToUniversalTime());

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2021-W02", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2021-01-11", resolution.Values[0].Start);
            Assert.AreEqual("2021-01-18", resolution.Values[0].End);
        }
        public void DataTypes_Resolver_TimeRange_11_to_11_30()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new[] { "(T11:00,T11:30,PT30M)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(T11,T11:30,PT30M)", resolution.Values[0].Timex);
            Assert.AreEqual("timerange", resolution.Values[0].Type);
            Assert.AreEqual("11:00:00", resolution.Values[0].Start);
            Assert.AreEqual("11:30:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_TimeRange_23_45_to_01_20()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new[] { "(T23:45,T01:20,PT1H35M)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(T23:45,T01:20,PT1H35M)", resolution.Values[0].Timex);
            Assert.AreEqual("timerange", resolution.Values[0].Type);
            Assert.AreEqual("23:45:00", resolution.Values[0].Start);
            Assert.AreEqual("01:20:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_DateTime_Next_Wednesday_4_am()
        {
            var today      = new System.DateTime(2017, 9, 7);
            var resolution = TimexResolver.Resolve(new [] { "2017-10-11T04" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2017-10-11T04", resolution.Values[0].Timex);
            Assert.AreEqual("datetime", resolution.Values[0].Type);
            Assert.AreEqual("2017-10-11 04:00:00", resolution.Values[0].Value);
            Assert.IsNull(resolution.Values[0].Start);
            Assert.IsNull(resolution.Values[0].End);
        }
        public void DataTypes_Resolver_DateRange_20190427_20190511_2weeks()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new[] { "(2019-04-27,2019-05-11,P2W)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(2019-04-27,2019-05-11,P2W)", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2019-04-27", resolution.Values[0].Start);
            Assert.AreEqual("2019-05-11", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_DateTimeRange_20190325_10_to_20190325_11()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new[] { "(2019-03-25T10,2019-03-25T11,PT1H)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(2019-03-25T10,2019-03-25T11,PT1H)", resolution.Values[0].Timex);
            Assert.AreEqual("datetimerange", resolution.Values[0].Type);
            Assert.AreEqual("2019-03-25 10:00:00", resolution.Values[0].Start);
            Assert.AreEqual("2019-03-25 11:00:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_DateTimeRange_20200604_15_00_to_20200604_17_30()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new[] { "(2020-06-04T15,2020-06-04T17:30,PT2H30M)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(2020-06-04T15,2020-06-04T17:30,PT2H30M)", resolution.Values[0].Timex);
            Assert.AreEqual("datetimerange", resolution.Values[0].Type);
            Assert.AreEqual("2020-06-04 15:00:00", resolution.Values[0].Start);
            Assert.AreEqual("2020-06-04 17:30:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_TimeRange_15_15_to_16_20()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new[] { "(T15:15,T16:20,PT1H5M)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(T15:15,T16:20,PT1H5M)", resolution.Values[0].Timex);
            Assert.AreEqual("timerange", resolution.Values[0].Type);
            Assert.AreEqual("15:15:00", resolution.Values[0].Start);
            Assert.AreEqual("16:20:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
示例#21
0
        public void DataTypes_Resolver_DateTime_Nov_6_at_11_45_25_UTC()
        {
            var today      = new System.DateTime(2017, 9, 28, 15, 30, 0);
            var resolution = TimexResolver.Resolve(new[] { "2019-11-06T11:45:25Z" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2019-11-06T11:45:25", resolution.Values[0].Timex);
            Assert.AreEqual("datetime", resolution.Values[0].Type);
            Assert.AreEqual("2019-11-06 11:45:25", resolution.Values[0].Value);
            Assert.IsNull(resolution.Values[0].Start);
            Assert.IsNull(resolution.Values[0].End);
        }
        public void DataTypes_Resolver_TimeRange_4am_to_8pm()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new [] { "(T04,T20,PT16H)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(T04,T20,PT16H)", resolution.Values[0].Timex);
            Assert.AreEqual("timerange", resolution.Values[0].Type);
            Assert.AreEqual("04:00:00", resolution.Values[0].Start);
            Assert.AreEqual("20:00:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
示例#23
0
        public void DataTypes_Resolver_DateTime_Weekend()
        {
            var today      = new System.DateTime(2020, 1, 7);
            var resolution = TimexResolver.Resolve(new[] { "2020-W02-WE" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2020-W02-WE", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2020-01-11", resolution.Values[0].Start);
            Assert.AreEqual("2020-01-13", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_DateTimeRange_20190401_09_30_to_20190401_11()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new[] { "(2019-04-01T09:30,2019-04-01T11,PT1H30M)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(2019-04-01T09:30,2019-04-01T11,PT1H30M)", resolution.Values[0].Timex);
            Assert.AreEqual("datetimerange", resolution.Values[0].Type);
            Assert.AreEqual("2019-04-01 09:30:00", resolution.Values[0].Start);
            Assert.AreEqual("2019-04-01 11:00:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_Date_Definite()
        {
            var today      = new System.DateTime(2017, 9, 26, 15, 30, 0);
            var resolution = TimexResolver.Resolve(new[] { "2017-09-28" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("2017-09-28", resolution.Values[0].Timex);
            Assert.AreEqual("date", resolution.Values[0].Type);
            Assert.AreEqual("2017-09-28", resolution.Values[0].Value);
            Assert.IsNull(resolution.Values[0].Start);
            Assert.IsNull(resolution.Values[0].End);
        }
        public void DataTypes_Resolver_DateTimeRange_next_monday_4am_to_next_thursday_3pm()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new [] { "(2017-10-09T04,2017-10-12T15,PT83H)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("(2017-10-09T04,2017-10-12T15,PT83H)", resolution.Values[0].Timex);
            Assert.AreEqual("datetimerange", resolution.Values[0].Type);
            Assert.AreEqual("2017-10-09 04:00:00", resolution.Values[0].Start);
            Assert.AreEqual("2017-10-12 15:00:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_TimeRange_Evening()
        {
            var today      = System.DateTime.Now;
            var resolution = TimexResolver.Resolve(new [] { "TEV" }, today);

            Assert.AreEqual(1, resolution.Values.Count);

            Assert.AreEqual("TEV", resolution.Values[0].Timex);
            Assert.AreEqual("timerange", resolution.Values[0].Type);
            Assert.AreEqual("16:00:00", resolution.Values[0].Start);
            Assert.AreEqual("20:00:00", resolution.Values[0].End);
            Assert.IsNull(resolution.Values[0].Value);
        }
        public void DataTypes_Resolver_DateRange_Demaical_Period_EN()
        {
            var sourceLanguage = CultureInfo.CurrentCulture;
            var testLanguage   = new CultureInfo("en-US", false);

            CultureInfo.CurrentCulture = testLanguage;
            var today      = new System.DateTime(2019, 4, 30);
            var resolution = TimexResolver.Resolve(new[] { "(2019-04-05,XXXX-04-11,P5.54701493625231D)" }, today);

            Assert.AreEqual(1, resolution.Values.Count);
            Assert.AreEqual("(2019-04-05,2019-04-10,P5.54701493625231D)", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2019-04-05", resolution.Values[0].Start);
            Assert.AreEqual("2019-04-10", resolution.Values[0].End);
            CultureInfo.CurrentCulture = sourceLanguage;
        }
        public void DataTypes_Resolver_DateRange_first_week_of_April()
        {
            var today      = new System.DateTime(2021, 1, 22);
            var resolution = TimexResolver.Resolve(new[] { "XXXX-04-W01" }, today);

            Assert.AreEqual(2, resolution.Values.Count);

            Assert.AreEqual("XXXX-04-W01", resolution.Values[0].Timex);
            Assert.AreEqual("daterange", resolution.Values[0].Type);
            Assert.AreEqual("2020-03-30", resolution.Values[0].Start);
            Assert.AreEqual("2020-04-06", resolution.Values[0].End);

            Assert.AreEqual("XXXX-04-W01", resolution.Values[1].Timex);
            Assert.AreEqual("daterange", resolution.Values[1].Type);
            Assert.AreEqual("2021-03-29", resolution.Values[1].Start);
            Assert.AreEqual("2021-04-05", resolution.Values[1].End);
        }
        public void DataTypes_Resolver_DateTime_Wednesday_4_am()
        {
            var today      = new System.DateTime(2017, 9, 28, 15, 30, 0);
            var resolution = TimexResolver.Resolve(new[] { "XXXX-WXX-3T04" }, today);

            Assert.AreEqual(2, resolution.Values.Count);

            Assert.AreEqual("XXXX-WXX-3T04", resolution.Values[0].Timex);
            Assert.AreEqual("datetime", resolution.Values[0].Type);
            Assert.AreEqual("2017-09-27 04:00:00", resolution.Values[0].Value);
            Assert.IsNull(resolution.Values[0].Start);
            Assert.IsNull(resolution.Values[0].End);

            Assert.AreEqual("XXXX-WXX-3T04", resolution.Values[1].Timex);
            Assert.AreEqual("datetime", resolution.Values[1].Type);
            Assert.AreEqual("2017-10-04 04:00:00", resolution.Values[1].Value);
            Assert.IsNull(resolution.Values[1].Start);
            Assert.IsNull(resolution.Values[1].End);
        }