Esempio n. 1
0
        static public void Scratchpad()
        {
            var        dt  = DateTime.Now;
            HdDateTime hdt = DateTime.UtcNow;
            var        ts  = TimeSpan.FromSeconds(123);
            var        hts = HdTimeSpan.FromDays(123L);

            //ts.Days
            //dt.Day
            //dt.AddDays()
            //HdTimeSpan.
            Console.WriteLine(HdDateTime.MinValue);
            Console.WriteLine(HdDateTime.MaxValue);
            Console.WriteLine(new HdDateTime(1678, 1, 1).EpochNanoseconds);
            Console.WriteLine(new HdDateTime(2262, 1, 1).EpochNanoseconds);
            Console.WriteLine(new HdDateTime(2262, 1, 1).AddNanoseconds(-1));
            Console.WriteLine(HdDateTime.MaxValue);

            Console.WriteLine(hdt);
            Console.WriteLine(hdt.AddTicks(1));
            Console.WriteLine(hdt.AddMilliseconds(1));
            Console.WriteLine(hdt.AddSeconds(1));
            Console.WriteLine(hdt.AddHours(12));
            Console.WriteLine(hdt.AddDays(123));

            int a = hdt.Millisecond, b = hdt.Second, c = hdt.Minute, d = hdt.Hour, e = hdt.Day, f = hdt.Month, g = hdt.Year, h = hdt.DayOfYear;

            hdt = hdt.Date;
            HdTimeSpan tsss = hdt.TimeOfDay;

            DayOfWeek dw = hdt.DayOfWeek;

            //dt.AddTicks();
            //hdt.AddTicks()
        }
Esempio n. 2
0
        public void TestEquals()
        {
            HdTimeSpan a1 = new HdTimeSpan(123);
            HdTimeSpan a2 = new HdTimeSpan(123);
            HdTimeSpan b  = new HdTimeSpan(42);

            Assert.True(a1 == a1);
            Assert.False(a1 != a1);

            Assert.True(a1 == a2);
            Assert.False(a1 != a2);
            Assert.True(a1.Equals(a2));
            Assert.True(a2.Equals(a1));

            Assert.True(a1.Equals((Object)a1));
            Assert.True(a1.Equals((Object)a2));
            Assert.True(a2.Equals((Object)a1));
            Assert.True(((Object)a1).Equals((Object)a1));
            Assert.True(((Object)a1).Equals((Object)a2));
            Assert.True(((Object)a2).Equals((Object)a1));
            Assert.True(((Object)a1).Equals((Object)a2));
            Assert.True(((Object)a2).Equals((Object)a1));

            Assert.False(a1 == b);
            Assert.False(a2 == b);
            Assert.True(a1 != b);

            Assert.False(a1.Equals(b));
            Assert.False(a2.Equals(b));

            Assert.False(a1.Equals((Object)b));
            Assert.False(((Object)a1).Equals(b));
            Assert.False(((Object)a1).Equals((Object)b));
        }
Esempio n. 3
0
        public void TestPrint()
        {
            TimeSpan   ts  = new TimeSpan(123, 45, 67, 9, 1234);
            HdTimeSpan hts = new HdTimeSpan(ts);

            Console.WriteLine(ts);
            Console.WriteLine(hts);
            Assert.Equals(ts.ToString(), hts.ToString());
        }
Esempio n. 4
0
        public void TestPrint()
        {
            TimeSpan   ts  = new TimeSpan(123, 45, 67, 9, 1234);
            HdTimeSpan hts = new HdTimeSpan(ts);

            Console.Out.WriteLine(ts);
            Console.Out.WriteLine(hts);
            Assert.AreEqual(ts.ToString(), hts.ToString("d.HH:mm:ss.fffffff"));
        }
Esempio n. 5
0
        public void TestSubtractDates(DateTime a, DateTime b)
        {
            TimeSpan timeSpan = a - b;

            HdDateTime hdA        = a;
            HdDateTime hdB        = b;
            HdTimeSpan hdTimeSpan = hdA - hdB;

            Assert.IsTrue(hdTimeSpan == timeSpan);
        }
Esempio n. 6
0
        public void TestSubtract(TimeSpan a, TimeSpan b)
        {
            TimeSpan timeSpan = a - b;

            HdTimeSpan hdA        = a;
            HdTimeSpan hdB        = b;
            HdTimeSpan hdTimeSpan = hdA - hdB;

            Assert.IsTrue(hdTimeSpan == timeSpan);
        }
Esempio n. 7
0
 public void CheckPrint(String str, String fmt, HdTimeSpan ts, bool compareWithTimeSpan = false)
 {
     Assert.AreEqual(str, ts.ToString(fmt));
     if (compareWithTimeSpan)
     {
         Assert.AreEqual(ts.TimeSpan.ToString(fmt), ((HdTimeSpan)(ts.TimeSpan)).ToString(fmt));
     }
     //StringBuilder sb = new StringBuilder();
     //Assert.AreEqual(str, num.appendTo(sb, fmt).toString());
 }
Esempio n. 8
0
        public void TestAdd(TimeSpan a, TimeSpan b)
        {
            TimeSpan sum = a + b;

            HdTimeSpan hdA   = a;
            HdTimeSpan hdB   = b;
            HdTimeSpan hdSum = hdA + hdB;

            Assert.IsTrue(hdA == a);
            Assert.IsTrue(hdB == b);
            Assert.IsTrue(hdSum == sum);
        }
Esempio n. 9
0
        private void CheckParse(String from, String fmt, HdTimeSpan expected)
        {
            HdTimeSpan parsed = HdTimeSpan.Parse(from, fmt);

            if (!expected.Equals(parsed))
            {
                // Comparison is here to avoid problems with Formatter affecting tests for Parser
                Assert.AreEqual(expected, parsed);
                Assert.AreEqual(expected.ToString(), parsed.ToString());
            }

            Assert.AreEqual(expected.TotalNanoseconds, parsed.TotalNanoseconds);
        }
Esempio n. 10
0
        private void CheckFormatFail(String from, String fmt, String msg)
        {
            try
            {
                HdTimeSpan.Parse(from, fmt);
            }
            catch (FormatError e)
            {
                if (e.Message.Contains(msg))
                {
                    return;
                }
            }

            Assert.Fail("Was expected to throw");
        }
Esempio n. 11
0
        public void TestParse()
        {
            CheckParse("-0000091024123456", "ddddddddddHHmmss", new HdTimeSpan(-91024, -12, -34, -56));

            CheckParse("5", "s", HdTimeSpan.FromSeconds(5));
            CheckParse("0", "s", HdTimeSpan.FromSeconds(0));
            CheckParse("005", "s", HdTimeSpan.FromSeconds(5));

            CheckParse("12:34:56", "H:m:s", new HdTimeSpan(12, 34, 56));
            CheckParse("12:34:56", "HH:mm:ss", new HdTimeSpan(12, 34, 56));

            CheckParse("1024T12:34:56", "dTH:m:s", new HdTimeSpan(1024, 12, 34, 56));
            CheckParse("1024T12:34:56", "d'T'H:m:s", new HdTimeSpan(1024, 12, 34, 56));

            // Unseparated fixed width fields
            CheckParse("123", "ss", HdTimeSpan.FromSeconds(12));
            CheckParse("123456", "HHmmss", new HdTimeSpan(12, 34, 56));
            CheckParse("1024123456", "ddddHHmmss", new HdTimeSpan(1024, 12, 34, 56));
            CheckParse("91024123456", "dddddHHmmss", new HdTimeSpan(91024, 12, 34, 56));
            CheckParse("0000091024123456", "ddddddddddHHmmss", new HdTimeSpan(91024, 12, 34, 56));
            CheckParse("101024123456", "ddddddHHmmss", new HdTimeSpan(101024, 12, 34, 56));

            // Sign
            CheckParse("-5", "s", HdTimeSpan.FromSeconds(-5));
            CheckParse("-1024T12:34:56", "dTH:m:s", new HdTimeSpan(-1024, -12, -34, -56));
            CheckParse("-123456", "HHmmss", new HdTimeSpan(-12, -34, -56));
            CheckParse("-0000091024123456", "ddddddddddHHmmss", new HdTimeSpan(-91024, -12, -34, -56));

            // Fractions (Only fixed length patterns supported)
            CheckParse("4.2", "s.f", HdTimeSpan.FromMilliseconds(4200));
            CheckParse("4.200000", "s.ffffff", HdTimeSpan.FromMilliseconds(4200));
            CheckParse("4.020", "s.ff", HdTimeSpan.FromMilliseconds(4020));
            CheckParse("4.200000000", "s.fffffffff", HdTimeSpan.FromMilliseconds(4200));
            CheckParse("4.000000002", "s.fffffffff", HdTimeSpan.FromNanoseconds(4000000002L));

            CheckParse("4.2", "s.S", HdTimeSpan.FromMilliseconds(4200));
            CheckParse("4.123", "s.SSS", HdTimeSpan.FromMilliseconds(4123));
        }
Esempio n. 12
0
        public void TestAppend(MutableStringAppendTestType type)
        {
            if (type == MutableStringAppendTestType.Char)
            {
                s.Assign("sasd");
                s.Append('e');
                Assert.AreEqual(s, "sasde");
                s.Assign('e');
                Assert.AreEqual(s, "e");
                s.Add('t');
                Assert.AreEqual(s, "et");
            }
            if (type == MutableStringAppendTestType.String)
            {
                s.Assign("qwert");
                s.Append("yuiop");
                Assert.AreEqual(s, "qwertyuiop");
                s.Assign("qwerty");
                Assert.AreEqual(s, "qwerty");
            }
            if (type == MutableStringAppendTestType.Integer)
            {
                s.Assign("");
                s.Append(-123);
                Assert.AreEqual(s, "-123");
                s.Assign("");
                s.Append(124);
                Assert.AreEqual(s, "124");
                s.Assign(-123);
                Assert.AreEqual(s, "-123");
                s.Assign(124);
                Assert.AreEqual(s, "124");
            }
            if (type == MutableStringAppendTestType.MutableString)
            {
                s.Assign("aba");
                s1.Assign("caba");
                s.Append(s1);
                Assert.AreEqual(s, "abacaba");
                s1.Append(s);
                Assert.AreEqual(s1, "cabaabacaba");

                s.Assign(s1);
                Assert.AreEqual(s, "cabaabacaba");
            }
            if (type == MutableStringAppendTestType.ArrayOfChar)
            {
                s.Clear();
                s.Append(ar);
                Assert.AreEqual(s, "sswtuj1r");

                s.Assign(ar);
                Assert.AreEqual(s, "sswtuj1r");
            }
            if (type == MutableStringAppendTestType.ArrayOfCharWithOffset)
            {
                s.Clear();
                s.Append(ar, 2, 4);
                Assert.AreEqual(s, "wtuj");
                s.Append(ar, 0, 1);
                Assert.AreEqual(s, "wtujs");

                s.Assign(ar, 2, 4);
                Assert.AreEqual(s, "wtuj");
            }
            if (type == MutableStringAppendTestType.CharPtr)
            {
                unsafe
                {
                    fixed(char *ptr = ar)
                    {
                        s.Clear();
                        s.Append(ptr, 5);
                        Assert.AreEqual(s, "sswtu");

                        s.Assign(ptr, 5);
                        Assert.AreEqual(s, "sswtu");
                    }
                }
            }
            if (type == MutableStringAppendTestType.StringBuilder)
            {
                StringBuilder builder = new StringBuilder();
                builder.Append("qazxcvb");
                s.Clear();
                s.Append(builder);
                Assert.AreEqual(s, "qazxcvb");

                s.Assign(builder);
                Assert.AreEqual(s, "qazxcvb");
            }
            if (type == MutableStringAppendTestType.Long)
            {
                s.Assign("");
                s.Append((long)-123);
                Assert.AreEqual(s, "-123");
                s.Assign("");
                s.Append((long)124);
                Assert.AreEqual(s, "124");

                s.Assign((long)-123);
                Assert.AreEqual(s, "-123");
                s.Assign((long)124);
                Assert.AreEqual(s, "124");
            }
            if (type == MutableStringAppendTestType.Short)
            {
                s.Assign("");
                s.Append((short)-123);
                Assert.AreEqual(s, "-123");
                s.Assign("");
                s.Append((short)124);
                Assert.AreEqual(s, "124");

                s.Assign((short)-123);
                Assert.AreEqual(s, "-123");
                s.Assign((short)124);
                Assert.AreEqual(s, "124");
            }
            if (type == MutableStringAppendTestType.UTF8)
            {
                s.Clear();
                s.AppendUTF8(utf8);
                Assert.AreEqual(s, "AAAABa");
                s.Clear();
                s.AppendUTF8(utf8, 4, 2);
                Assert.AreEqual(s, "Ba");
                s.Clear();
                unsafe
                {
                    fixed(byte *ptr = utf8)
                    {
                        s.AppendUTF8(ptr, 6);
                        Assert.AreEqual(s, "AAAABa");
                    }
                }
                s.AssignUTF8(utf8);
                Assert.AreEqual(s, "AAAABa");
                s.AssignUTF8(utf8, 4, 2);
                Assert.AreEqual(s, "Ba");
                unsafe
                {
                    fixed(byte *ptr = utf8)
                    {
                        s.AssignUTF8(ptr, 6);
                        Assert.AreEqual(s, "AAAABa");
                    }
                }
            }
            if (type == MutableStringAppendTestType.UTF16)
            {
                String tempString = "abacaba";
                utf16 = UnicodeEncoding.Unicode.GetBytes(tempString);
                s.Clear();
                s.AppendUTF16(utf16);
                Assert.AreEqual(s, "abacaba");
                s.Clear();
                unsafe
                {
                    fixed(byte *ptr = utf16)
                    {
                        s.AppendUTF16(ptr, 4);
                        Assert.AreEqual(s, "ab");
                    }
                }
                s.Clear();
                s.AppendUTF16(utf16, 0, 4);
                Assert.AreEqual(s, "ab");

                s.AssignUTF16(utf16);
                Assert.AreEqual(s, "abacaba");
                unsafe
                {
                    fixed(byte *ptr = utf16)
                    {
                        s.AssignUTF16(ptr, 4);
                        Assert.AreEqual(s, "ab");
                    }
                }
                s.AssignUTF16(utf16, 0, 4);
                Assert.AreEqual(s, "ab");
            }
            if (type == MutableStringAppendTestType.UUID)
            {
                s.Clear();
                s.Assign(uuid, UUIDPrintFormat.LowerCase);
                s.Append(uuid, UUIDPrintFormat.LowerCase);
                Assert.AreEqual("01234567-89ab-cdef-1011-12131415161701234567-89ab-cdef-1011-121314151617", s);

                s.Clear();
                s.Assign(uuid, UUIDPrintFormat.UpperCase);
                s.Append(uuid, UUIDPrintFormat.UpperCase);
                Assert.AreEqual("01234567-89AB-CDEF-1011-12131415161701234567-89AB-CDEF-1011-121314151617", s);

                s.Clear();
                s.Assign(uuid, UUIDPrintFormat.LowerCaseWithoutDashes);
                s.Append(uuid, UUIDPrintFormat.LowerCaseWithoutDashes);
                Assert.AreEqual("0123456789abcdef10111213141516170123456789abcdef1011121314151617", s);

                s.Clear();
                s.Assign(uuid, UUIDPrintFormat.UpperCaseWithoutDashes);
                s.Append(uuid, UUIDPrintFormat.UpperCaseWithoutDashes);
                Assert.AreEqual("0123456789ABCDEF10111213141516170123456789ABCDEF1011121314151617", s);
            }

            if (type == MutableStringAppendTestType.DateTime)
            {
                s.Clear();
                DateTime dateTime = new DateTime(2016, 1, 1, 9, 7, 55, 555);
                s.Append(dateTime);
                Assert.AreEqual(s.ToString(), "01/01/2016 09:07:55.555");
                dateTime = new DateTime(2016, 10, 11, 19, 17, 55, 555);
                s.Assign(dateTime);
                Assert.AreEqual(s.ToString(), "10/11/2016 19:17:55.555");
            }
            if (type == MutableStringAppendTestType.HdDateTime)
            {
                s.Clear();
                HdDateTime dateTime = new HdDateTime(new DateTime(2016, 1, 1, 9, 7, 55, 555), 10);
                s.Append(dateTime);
                Assert.AreEqual(s.ToString(), "01/01/2016 09:07:55.555.10");
                dateTime = new HdDateTime(new DateTime(2016, 10, 11, 19, 17, 55, 555), 9);
                s.Assign(dateTime);
                Assert.AreEqual(s.ToString(), "10/11/2016 19:17:55.555.09");
            }
            if (type == MutableStringAppendTestType.TimeSpan)
            {
                s.Clear();
                TimeSpan timeSpan = new TimeSpan(10, 9, 7, 55, 555);
                s.Append(timeSpan);
                Assert.AreEqual(s.ToString(), "10.09:07:55.555");
                timeSpan = new TimeSpan(9, 19, 17, 55, 55);
                s.Assign(timeSpan);
                Assert.AreEqual(s.ToString(), "9.19:17:55.055");
            }
            if (type == MutableStringAppendTestType.HdTimeSpan)
            {
                s.Clear();
                HdTimeSpan timeSpan = new HdTimeSpan(new TimeSpan(10, 9, 7, 55, 555));
                s.Append(timeSpan);
                Assert.AreEqual(s.ToString(), "10.09:07:55.555.00");
                timeSpan = new HdTimeSpan(new TimeSpan(9, 19, 17, 55, 55));
                s.Assign(timeSpan);
                Assert.AreEqual(s.ToString(), "9.19:17:55.055.00");
            }
            if (type == MutableStringAppendTestType.Double)
            {
                s.Clear();
                s.Append((double)3.14);
                Assert.AreEqual((s.ToString() == "3.14" || s.ToString() == "3,14"), true);
                s.Assign((double)3.1459);
                Assert.AreEqual((s.ToString() == "3.1459" || s.ToString() == "3,1459"), true);
            }
            if (type == MutableStringAppendTestType.Float)
            {
                s.Clear();
                s.Append((float)3.14);
                Assert.AreEqual((s.ToString() == "3.14" || s.ToString() == "3,14"), true);
                s.Assign((float)3.1459);
                Assert.AreEqual((s.ToString() == "3.1459" || s.ToString() == "3,1459"), true);
            }
            if (type == MutableStringAppendTestType.Boolean)
            {
                s.Clear();
                s.Append(true);
                Assert.AreEqual(s.ToString(), "True");
                s.Assign(false);
                Assert.AreEqual(s.ToString(), "False");
            }
            if (type == MutableStringAppendTestType.Decimal)
            {
                s.Clear();
                s.Append((decimal)3.14);
                Assert.AreEqual((s.ToString() == "3.14" || s.ToString() == "3,14"), true);
                s.Assign((decimal)3.1459);
                Assert.AreEqual((s.ToString() == "3.1459" || s.ToString() == "3,1459"), true);
            }
            if (type == MutableStringAppendTestType.Object)
            {
                s.Clear();
                Tuple <int, int> tuple = new Tuple <int, int>(1, 1);
                s.Append(tuple);
                Assert.AreEqual(tuple.ToString(), s.ToString());
                s.Assign(tuple);
                Assert.AreEqual(tuple.ToString(), s.ToString());
            }
        }
Esempio n. 13
0
        public void TestFormat()
        {
            // Plain numbers
            CheckPrint("34627623,.45634", "34627623,.45634", HdTimeSpan.FromSeconds(12), false);

            // Check quoted text
            CheckPrint("Abcmsy", "'Abcmsy'", HdTimeSpan.Zero);
            CheckPrint("00Abcmsy000", "00'Abcmsy'000", HdTimeSpan.Zero, false);
            CheckPrint("'Abc'msy", "'''Abc''msy'", HdTimeSpan.Zero, false);
            CheckPrint("0'0Abc''msy00'0", "0''0'Abc''''msy'00''0", HdTimeSpan.Zero, false);

            // Seconds
            CheckPrint("12", "s", HdTimeSpan.FromSeconds(12));
            CheckPrint("0", "s", HdTimeSpan.FromSeconds(0));
            CheckPrint("00", "ss", HdTimeSpan.FromSeconds(0));
            CheckPrint("005", "0ss", HdTimeSpan.FromSeconds(65));
            CheckPrint("000005", "ssssss", HdTimeSpan.FromSeconds(65));

            // Seconds & Fractions of Second. 'S' and 'f' are now synonyms
            CheckPrint("12.3", "s.S", HdTimeSpan.FromMilliseconds(12_300));
            CheckPrint("0.345", "s.SSS", HdTimeSpan.FromMicroseconds(345_000));
            CheckPrint("00.023", "ss.SSS", HdTimeSpan.FromMilliseconds(600_023));
            CheckPrint("05.123", "ss.SSS", HdTimeSpan.FromMilliseconds(65_123));
            CheckPrint("05.123000", "ss.SSSSSS", HdTimeSpan.FromMilliseconds(65_123));

            CheckPrint("05.0001", "ss.ffff", HdTimeSpan.FromMicroseconds(65_000_123));
            CheckPrint("05.00012", "ss.fffff", HdTimeSpan.FromMicroseconds(65_000_123));
            CheckPrint("05.000123", "ss.ffffff", HdTimeSpan.FromMicroseconds(65_000_123));
            CheckPrint("05.123000", "ss.ffffff", HdTimeSpan.FromNanoseconds(65_123_000_123L));
            CheckPrint("05.123000", "ss.ffffff", HdTimeSpan.FromNanoseconds(65_123_000_999L));
            CheckPrint("05.123000", "ss.ffffff", HdTimeSpan.FromNanoseconds(65_123_000_999L));
            CheckPrint("05.1230009", "ss.fffffff", HdTimeSpan.FromNanoseconds(65_123_000_999L));
            CheckPrint("05.12300012", "ss.ffffffff", HdTimeSpan.FromNanoseconds(65_123_000_123L));
            CheckPrint("05.123000123", "ss.fffffffff", HdTimeSpan.FromNanoseconds(65_123_000_123L));
            CheckPrint("05.000000123", "ss.fffffffff", HdTimeSpan.FromNanoseconds(65_000_000_123L));
            CheckPrint("5.000123000", "s.fffffffff", HdTimeSpan.FromNanoseconds(65_000_123_000L));

            // Minutes
            CheckPrint("5", "m", HdTimeSpan.FromMinutes(425));
            CheckPrint("7", "m", HdTimeSpan.FromSeconds(425));
            CheckPrint("05", "mm", HdTimeSpan.FromMinutes(425));
            CheckPrint("00005", "0mmmm", HdTimeSpan.FromMinutes(425));

            // Hours
            CheckPrint("5", "H", HdTimeSpan.FromHours(48 + 5));
            CheckPrint("4", "H", HdTimeSpan.FromMinutes(245));
            CheckPrint("07", "HH", HdTimeSpan.FromMinutes(425));
            CheckPrint("0007005", "0HHHmmm", HdTimeSpan.FromMinutes(425));
            CheckPrint("07:5.789", "HH:m.SSS", HdTimeSpan.FromMinutes(425).Add(HdTimeSpan.FromMilliseconds(789)));

            // Sign insertion
            CheckPrint("-12", "s", HdTimeSpan.FromSeconds(-12));
            CheckPrint("-0", "s", HdTimeSpan.FromMilliseconds(-1));
            CheckPrint("-05", "ss", HdTimeSpan.FromSeconds(-425));

            // "Advanced" sign insertion
            CheckPrint("-000005", "ssssss", HdTimeSpan.FromSeconds(-425));
            CheckPrint("-00000005", "00ssssss", HdTimeSpan.FromSeconds(-425));
            CheckPrint("Abc-00000005", "Abc00ssssss", HdTimeSpan.FromSeconds(-425));
            CheckPrint("Abcmsy-00000005", "'Abcmsy'00ssssss", HdTimeSpan.FromSeconds(-425));
            CheckPrint(";.:-000005", ";.:ssssss", HdTimeSpan.FromSeconds(-425));
            CheckPrint(";.:-00000005", ";.:00ssssss", HdTimeSpan.FromSeconds(-425));
        }