예제 #1
0
        public void BigNumbersDateTimeTimeTest()
        {
            var t = new DateTimeTimeUtils();

            var oneDay = TimeSpan.FromDays(1);
            var zero   = t.Zero();

            var indexAtOneDay = t.TimeToIndex(zero, zero.Add(oneDay), 1000 * 1000);

            var timeFromIndex = t.IndexToTime(zero, indexAtOneDay, 1000 * 1000);

            var time = timeFromIndex.Subtract(zero);

            Assert.AreEqual(TimeSpan.FromDays(1), time);
        }
예제 #2
0
        public void DateTimeIndexToTimeTest()
        {
            var t = new DateTimeTimeUtils();

            var now = DateTime.Now;

            Assert.AreEqual(now.AddMilliseconds(400), t.IndexToTime(now, 4, 10000));
            Assert.AreEqual(now, t.IndexToTime(now, 0, 10000));
            Assert.AreEqual(t.Zero(), t.IndexToTime(t.Zero(), 0, 10000));

            var oneDay = TimeSpan.FromDays(1);

            Assert.AreEqual(now.Add(oneDay), t.IndexToTime(now, (long)oneDay.TotalSeconds, 1000));
            Assert.AreEqual(now.Add(oneDay), t.IndexToTime(now, (long)oneDay.TotalMilliseconds, 1000 * 1000));
        }
예제 #3
0
        public void HugeNumbersDateTimeTimeTest()
        {
            var t = new DateTimeTimeUtils();

            var frequency = 25 * 1000 * 1000;

            var oneWeek = TimeSpan.FromDays(7);
            var zero    = t.Zero();

            var indexAtOneWeek = t.TimeToIndex(zero, zero.Add(oneWeek), frequency);

            var timeFromIndex = t.IndexToTime(zero, indexAtOneWeek, frequency);

            var time = timeFromIndex.Subtract(zero);

            Assert.AreEqual(TimeSpan.FromDays(7), time);
        }