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)); }