示例#1
0
        public void NumbersToHexConvertTest(int seed)
        {
            var random    = new Random(seed);
            var uint8     = unchecked ((byte)(random.Next() % byte.MaxValue));
            var uint16    = unchecked ((ushort)(random.Next() % ushort.MaxValue));
            var uint32    = unchecked ((uint)random.Next());
            var uint64    = unchecked ((ulong)random.NextDouble() * long.MaxValue);
            var uint8Hex  = BitConverter.ToString(new byte[] { uint8 }).Replace("-", "").ToLowerInvariant();
            var uint16Hex = BitConverter.ToString(BitConverter.GetBytes(uint16)).Replace("-", "").ToLowerInvariant();
            var uint32Hex = BitConverter.ToString(BitConverter.GetBytes(uint32)).Replace("-", "").ToLowerInvariant();
            var uint64Hex = BitConverter.ToString(BitConverter.GetBytes(uint64)).Replace("-", "").ToLowerInvariant();

            var hexBuffer = new char[256];
            // uint8 -> hex
            var count     = HexConvert.WriteTo(uint8, hexBuffer, 0);
            var actualHex = new string(hexBuffer, 0, count);

            Assert.Equal(uint8Hex, actualHex);
            Array.Clear(hexBuffer, 0, hexBuffer.Length);

            // uint16 -> hex
            count     = HexConvert.WriteTo(uint16, hexBuffer, 0);
            actualHex = new string(hexBuffer, 0, count);
            Assert.Equal(uint16Hex, actualHex);
            Array.Clear(hexBuffer, 0, hexBuffer.Length);

            // uint32 -> hex
            count     = HexConvert.WriteTo(uint32, hexBuffer, 0);
            actualHex = new string(hexBuffer, 0, count);
            Assert.Equal(uint32Hex, actualHex);
            Array.Clear(hexBuffer, 0, hexBuffer.Length);

            // uint64 -> hex
            count     = HexConvert.WriteTo(uint64, hexBuffer, 0);
            actualHex = new string(hexBuffer, 0, count);
            Assert.Equal(uint64Hex, actualHex);
            Array.Clear(hexBuffer, 0, hexBuffer.Length);
        }