예제 #1
0
        public void TestTimeService()
        {
            var wall = TimeService.Wall;

            bool ok;

            var str = TimeService.CompactDuration(1234567.5);

            Assert.AreEqual("342h56m7.5s", str);
            ok = TimeService.TryParseDuration(str, out var back);
            Assert.AreEqual(1234567.5, back);

            Assert.AreEqual("10m", TimeService.CompactDuration(600));
            Assert.AreEqual("10s", TimeService.CompactDuration(10));
            Assert.AreEqual("100ms", TimeService.CompactDuration(0.1));

            ok = TimeService.TryParseDuration("3h2m12s", out var seconds);
            var facit = (3 * 60 * 60);

            facit += (2 * 60);
            facit += 12;
            Assert.IsTrue(ok);
            Assert.AreEqual(facit, seconds);

            ok = TimeService.TryParseDuration("faulty string", out var _);
            Assert.IsFalse(ok);

            TestParseDuration("8", 8);
            TestParseDuration("8s", 8);
            TestParseDuration("-10m", -600);
            TestParseDuration("0m", 0);
            TestParseDuration("1m1s", 61);
            TestParseDuration("3h2m12s", (3 * 60 * 60) + (2 * 60) + 12);
            TestParseDuration("1.5m", 90);
        }