Beispiel #1
0
    static void Main()
    {
        Console.SetOut(new HexColor());
        ConsoleEx.AssemblyHeader(useColor: true);
        Console.WriteLine("Testing `066`Woof.Console`:");
        Console.WriteLine();
        var tasksCount = TasksLeft = 8;

        for (int i = 0; i < tasksCount; i++)
        {
            lock (L1) {
                Console.Write($"Starting test task #{i + 1}...");
                var progress = new ConsoleProgress();
                Task.Run(async() => await TestTask(progress));
                Task.Delay(1).Wait();
            }
        }
        Semaphore.Wait();
        Console.WriteLine();
        using var hexDump = new HexDump { Format = HexDump.Formats.HexColor };
        var testData = new byte[48];

        PRNG.NextBytes(testData);
        hexDump.Write(testData);
        Console.WriteLine();
        var delayFilter = new Delay();

        Console.SetOut(delayFilter);
        Console.WriteLine("Testing `0ff`Delay` filter..............`070`OK!`");
        Console.SetOut(delayFilter.Out); // remove the delay filter.
        Console.WriteLine();
        ConsoleEx.WaitForCtrlC("All test completed successfully, press Ctrl+C to exit...");
    }
        public void TestStringUtils()
        {
            Assert.AreEqual(11, StringUtils.HexCharToInteger('B'));

            var cbuf = new char[128];

            var testNumbers = new ulong[]
            {
                0, 1, 2, 100, 1000, 10000, 100000, 10000000,
                (ulong)PRNG.Next(0, 10000),
                (ulong)PRNG.Next(0, 10000),
                (ulong)PRNG.Next(0, 10000),
                (ulong)PRNG.Next(0, 10000),
                (ulong)PRNG.Next(0, 10000),
                (ulong)PRNG.Next(0, 10000),
                (ulong)PRNG.Next(0, 10000)
            };

            foreach (var val in testNumbers)
            {
                var sans = val.ToString("X");
                var str  = (PRNG.NextBool() ? "0x" : "") + sans;

                Assert.AreEqual(val, StringUtils.FromHex(str));

                var utfBytes = Encoding.UTF8.GetBytes(str);
                Assert.AreEqual(val, StringUtils.FromUTF8Hex(utfBytes));

                var cnt = StringUtils.ToHex(val, cbuf);
                Assert.AreEqual(sans.Length, cnt);
                Assert.IsTrue(sans.AsSpan().SequenceEqual(cbuf.AsSpan(0, cnt)));
            }

            var arr = new byte[64];

            PRNG.NextBytes(arr);

            var facit = BitConverter.ToString(arr).Replace("-", "");
            var my    = StringUtils.ToHex(arr);

            Assert.AreEqual(facit, my);

            var dvalstr = "0.00000000000123";
            var dval    = double.Parse(dvalstr, System.Globalization.CultureInfo.InvariantCulture);
            var lots    = StringUtils.DoubleToString(dval);

            // this is "1.23E-12"
            var defaultToString = dval.ToString(System.Globalization.CultureInfo.InvariantCulture);

            Assert.AreEqual(dvalstr, StringUtils.DoubleToString(dval));
        }