public void BufferToHexConvertTest(int count) { var expectedBuffer = new byte[count]; new Random(count).NextBytes(expectedBuffer); var expectedHexString = BitConverter.ToString(expectedBuffer).Replace("-", "").ToLowerInvariant(); var expectedHexBuffer = expectedHexString.ToCharArray(); // buffer -> hex string var hexString = HexConvert.ToString(expectedBuffer, 0, expectedBuffer.Length); Assert.Equal(expectedHexString, hexString); // buffer -> hex buffer var hexBuffer = HexConvert.ToCharArray(expectedBuffer, 0, expectedBuffer.Length); Assert.Equal(expectedHexBuffer, hexBuffer); // buffer -> hex buffer (copy) hexBuffer = new char[expectedHexBuffer.Length]; HexConvert.Encode(new ArraySegment <byte>(expectedBuffer, 0, expectedBuffer.Length), new ArraySegment <char>(hexBuffer)); Assert.Equal(expectedHexBuffer, hexBuffer); }
public void HexBytesEncodeTest(int count) { var inputBytes = new byte[count]; var r = new Random(count); r.NextBytes(inputBytes); var expectedBase64String = BitConverter.ToString(inputBytes).Replace("-", "").ToLowerInvariant(); var expectedBase64Buffer = expectedBase64String.ToCharArray().Select(v => (byte)v).ToArray(); // transform block var inputOffset = r.Next(0, 100); var inputBuffer = new byte[inputOffset + inputBytes.Length + inputOffset]; Buffer.BlockCopy(inputBytes, 0, inputBuffer, inputOffset, inputBytes.Length); var outputOffset = r.Next(0, 100); var outputBuffer = new byte[outputOffset + expectedBase64Buffer.Length]; var written = HexConvert.Encode(new ArraySegment <byte>(inputBuffer, inputOffset, inputBytes.Length), new ArraySegment <byte>(outputBuffer, outputOffset, outputBuffer.Length - outputOffset), out var inputUsed, out var outputUsed); var actualOutput = outputBuffer.Skip(outputOffset).ToArray(); Assert.Equal(expectedBase64Buffer.Length, written); Assert.Equal(expectedBase64Buffer.Length, outputUsed); Assert.Equal(inputBytes.Length, inputUsed); Assert.Equal(expectedBase64Buffer, actualOutput); }