public unsafe void DecodePtrToPtrTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var encoder = (BaseNEncoder)encoding.GetEncoder(); var inputBuffer = new byte[encodedData.Length]; for (var i = 0; i < encodedData.Length; i++) { inputBuffer[i] = (byte)encodedData[i]; } var input = new ArraySegment <byte>(inputBuffer, 0, inputBuffer.Length); var outputBuffer = new byte[plainTextData.Length]; var output = new ArraySegment <byte>(outputBuffer, 0, outputBuffer.Length); var inputUsed = 0; var outputUsed = 0; fixed(byte *inputPtr = inputBuffer) fixed(byte *outputPtr = outputBuffer) { encoder.Convert(inputPtr, inputBuffer.Length, outputPtr, outputBuffer.Length, true, out inputUsed, out outputUsed, out var completed); Assert.True(completed); } Assert.Equal(input.Count, inputUsed); Assert.Equal(output.Count, outputUsed); Assert.Equal(plainTextData, outputBuffer); }
public void GetCharsTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var actual = encoding.GetChars(plainTextData); var charCount = encoding.GetCharCount(plainTextData); Assert.Equal(encodedData, actual); Assert.Equal(charCount, actual.Length); }
public void ToBytesFromCharArrayTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var actual = encoding.GetBytes(encodedData.ToCharArray()); var bytesCount = encoding.GetByteCount(encodedData.ToCharArray(), 0, encodedData.Length); Assert.Equal(plainTextData, actual); Assert.Equal(bytesCount, actual.Length); }
public void GetMaxCharCountTest() { var alphabet = BaseNAlphabet.Base64UrlAlphabet; var baseNEncoding = new BaseNEncoding(alphabet, "name"); var expected = alphabet.DecodingBlockSize * 5; var actual = baseNEncoding.GetMaxCharCount(alphabet.EncodingBlockSize * 5); Assert.Equal(expected, actual); }
public void ToBytesFromCharArrayPartTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var random = new Random(9375220); var input = PadData(encodedData, out var offset, out var extra, random); var actual = encoding.GetBytes(input.ToCharArray(), offset, encodedData.Length); var bytesCount = encoding.GetByteCount(input.ToCharArray(), offset, encodedData.Length); Assert.Equal(plainTextData, actual); Assert.Equal(bytesCount, actual.Length); }
public void ConstructorTest() { var expectedAlphabet = BaseNAlphabet.Base64UrlAlphabet; var expectedEncodingName = "base64"; var baseNEncoding = new BaseNEncoding(expectedAlphabet, expectedEncodingName); Assert.Equal(expectedAlphabet, baseNEncoding.Alphabet); Assert.Equal(expectedEncodingName, baseNEncoding.EncodingName); Assert.Equal(expectedAlphabet.EncodingBlockSize == 1, baseNEncoding.IsSingleByte); }
public void GetByteCountString() { var base64String = "80_poA1Ahss="; var base64Bytes = new byte[] { 243, 79, 233, 160, 13, 64, 134, 203 }; var baseNEncoding = new BaseNEncoding(BaseNAlphabet.Base64UrlAlphabet, "name"); var actual = baseNEncoding.GetByteCount(base64String, 0, base64String.Length); Assert.Equal(base64Bytes.Length, actual); }
public void GetCharsPartTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var random = new Random(9375220); var input = PadData(plainTextData, out var offset, out var extra, random); var actual = encoding.GetChars(input, offset, plainTextData.Length); var charCount = encoding.GetCharCount(input, offset, plainTextData.Length); Assert.Equal(encodedData, actual); Assert.Equal(charCount, actual.Length); }
public void GetCharsByteArrayTest() { var base64String = "80_poA1Ahss="; var base64Bytes = new byte[] { 243, 79, 233, 160, 13, 64, 134, 203 }; var baseNEncoding = new BaseNEncoding(BaseNAlphabet.Base64UrlAlphabet, "name"); var actualChars = new char[base64String.Length]; baseNEncoding.GetChars(base64Bytes, 0, base64Bytes.Length, actualChars, 0); Assert.Equal(base64String.ToCharArray(), actualChars); }
public void ToBytesFromStringTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var actual = encoding.GetBytes(encodedData); #if NETCOREAPP var bytesCount = encoding.GetByteCount(encodedData, 0, encodedData.Length); #else var bytesCount = encoding.GetByteCount(encodedData.ToCharArray(), 0, encodedData.Length); #endif Assert.Equal(plainTextData, actual); Assert.Equal(bytesCount, actual.Length); }
public void GetCharsToBufferTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var decoder = (BaseNDecoder)encoding.GetDecoder(); var random = new Random(9375220); var input = PadData(plainTextData, out var offset, out var extra, random); var output = new char[encodedData.Length + 2]; var encodedChars = decoder.GetChars(input, offset, plainTextData.Length, output, 1); var charCount = decoder.GetCharCount(input, offset, plainTextData.Length, true); Assert.Equal(encodedData, new string(output, 1, output.Length - 2)); Assert.Equal(charCount, encodedChars); }
public void GetCharsSpanBytesTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var decoder = (BaseNDecoder)encoding.GetDecoder(); var outputBuffer = new char[encodedData.Length]; var input = (Span <byte>)plainTextData; var output = (Span <char>)outputBuffer; decoder.GetChars(input, output, true); var charCount = decoder.GetCharCount(input, true); Assert.Equal(encodedData, new string(output)); Assert.Equal(outputBuffer.Length, charCount); }
public unsafe void GetByteCountPtrTest() { var base64String = "80_poA1Ahss="; var base64Bytes = new byte[] { 243, 79, 233, 160, 13, 64, 134, 203 }; var baseNEncoding = new BaseNEncoding(BaseNAlphabet.Base64UrlAlphabet, "name"); fixed(char *charsPtr = base64String) { var actual = baseNEncoding.GetByteCount(charsPtr, base64String.Length); Assert.Equal(base64Bytes.Length, actual); } }
public void EncodeStreamTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var output = new MemoryStream(); using (var encodingStream = output.BaseNEncode(encoding)) { encodingStream.Write(plainTextData, 0, plainTextData.Length); encodingStream.Close(); // will flush remaining data to output stream } var outputBytes = output.ToArray(); Assert.Equal(encodedData, Encoding.ASCII.GetString(outputBytes)); }
public void EncodeSpanToSpanTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var decoder = (BaseNDecoder)encoding.GetDecoder(); var outputBuffer = new byte[encodedData.Length]; var input = (Span <byte>)plainTextData; var output = (Span <byte>)outputBuffer; decoder.Convert(input, output, true, out var inputUsed, out var outputUsed, out var completed); Assert.Equal(plainTextData.Length, inputUsed); Assert.Equal(outputBuffer.Length, outputUsed); Assert.Equal(encodedData, new string(outputBuffer.Select(b => (char)b).ToArray(), 0, outputBuffer.Length)); Assert.True(completed); }
public void EncodeBytesToBytesTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var input = new ArraySegment <byte>(plainTextData, 0, plainTextData.Length); var outputBuffer = new byte[encodedData.Length]; var output = new ArraySegment <byte>(outputBuffer, 0, outputBuffer.Length); var decoder = (BaseNDecoder)encoding.GetDecoder(); decoder.Convert(input.Array, input.Offset, input.Count, output.Array, output.Offset, output.Count, true, out var inputUsed, out var outputUsed, out var completed); Assert.Equal(input.Count, inputUsed); Assert.Equal(output.Count, outputUsed); Assert.Equal(encodedData, new string(outputBuffer.Select(b => (char)b).ToArray(), 0, output.Count)); Assert.True(completed); }
public void DecodeCharsToBytesTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var input = new ArraySegment <char>(encodedData.ToCharArray(), 0, encodedData.Length); var outputBuffer = new byte[plainTextData.Length]; var output = new ArraySegment <byte>(outputBuffer, 0, outputBuffer.Length); var encoder = (BaseNEncoder)encoding.GetEncoder(); encoder.Convert(input.Array, input.Offset, input.Count, output.Array, output.Offset, output.Count, true, out var inputUsed, out var outputUsed, out var completed); Assert.Equal(input.Count, inputUsed); Assert.Equal(output.Count, outputUsed); Assert.Equal(plainTextData, outputBuffer); Assert.True(completed); }
public unsafe void GetCharsPtrTest() { var base64String = "80_poA1Ahss="; var base64Bytes = new byte[] { 243, 79, 233, 160, 13, 64, 134, 203 }; var baseNEncoding = new BaseNEncoding(BaseNAlphabet.Base64UrlAlphabet, "name"); var actualChars = new char[base64String.Length]; fixed(char *charsPtr = actualChars) fixed(byte *bytesPtr = base64Bytes) { baseNEncoding.GetChars(bytesPtr, base64Bytes.Length, charsPtr, actualChars.Length); } Assert.Equal(base64String.ToCharArray(), actualChars); }
public void DecodeStreamTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var inputBytes = Encoding.ASCII.GetBytes(encodedData.ToCharArray(), 0, encodedData.Length); var outputStream = new MemoryStream(); using (var inputStream = new MemoryStream(inputBytes)) using (var decodeStream = inputStream.BaseNDecode(encoding)) { decodeStream.CopyTo(outputStream); } var outputBytes = outputStream.ToArray(); Assert.Equal(plainTextData, outputBytes); }
public unsafe void EncodePtrToPtrTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var decoder = (BaseNDecoder)encoding.GetDecoder(); var outputBuffer = new byte[encodedData.Length]; var inputUsed = 0; var outputUsed = 0; fixed(byte *inputPtr = plainTextData) fixed(byte *outputPtr = outputBuffer) { decoder.Convert(inputPtr, plainTextData.Length, outputPtr, outputBuffer.Length, true, out inputUsed, out outputUsed, out var completed); Assert.True(completed); } Assert.Equal(plainTextData.Length, inputUsed); Assert.Equal(outputBuffer.Length, outputUsed); Assert.Equal(encodedData, new string(outputBuffer.Select(b => (char)b).ToArray(), 0, outputBuffer.Length)); }
public void GetBytesSpanCharsTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var encoder = (BaseNEncoder)encoding.GetEncoder(); var inputBuffer = new char[encodedData.Length]; for (var i = 0; i < encodedData.Length; i++) { inputBuffer[i] = encodedData[i]; } var input = (Span <char>)inputBuffer; var outputBuffer = new byte[plainTextData.Length]; var output = (Span <byte>)outputBuffer; encoder.GetBytes(input, output, true); var byteCount = encoder.GetByteCount(input, true); Assert.Equal(plainTextData, outputBuffer); Assert.Equal(outputBuffer.Length, byteCount); }
public void DecodeSpanToSpanCharTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var encoder = (BaseNEncoder)encoding.GetEncoder(); var inputBuffer = new char[encodedData.Length]; for (var i = 0; i < encodedData.Length; i++) { inputBuffer[i] = encodedData[i]; } var input = (Span <char>)inputBuffer; var outputBuffer = new byte[plainTextData.Length]; var output = (Span <byte>)outputBuffer; encoder.Convert(input, output, true, out var inputUsed, out var outputUsed, out var completed); Assert.Equal(inputBuffer.Length, inputUsed); Assert.Equal(outputBuffer.Length, outputUsed); Assert.Equal(plainTextData, outputBuffer); Assert.True(completed); }
public void DecodeBytesToBytesTest(BaseNEncoding encoding, byte[] plainTextData, string encodedData) { var inputBuffer = new byte[encodedData.Length]; for (var i = 0; i < encodedData.Length; i++) { inputBuffer[i] = (byte)encodedData[i]; } var input = new ArraySegment <byte>(inputBuffer, 0, inputBuffer.Length); var outputBuffer = new byte[plainTextData.Length]; var output = new ArraySegment <byte>(outputBuffer, 0, outputBuffer.Length); var encoder = (BaseNEncoder)encoding.GetEncoder(); encoder.Convert(input.Array, input.Offset, input.Count, output.Array, output.Offset, output.Count, true, out var inputUsed, out var outputUsed, out var completed); Assert.Equal(inputUsed, input.Count); Assert.Equal(outputUsed, output.Count); Assert.Equal(plainTextData, outputBuffer); Assert.True(completed); }
public void ToStringTest() { var baseNEncoding = new BaseNEncoding(BaseNAlphabet.Base64UrlAlphabet, "name"); Assert.NotNull(baseNEncoding.ToString()); }
public void GetEncoderTest() { var baseNEncoding = new BaseNEncoding(BaseNAlphabet.Base64UrlAlphabet, "name"); Assert.NotNull(baseNEncoding.GetEncoder()); }