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 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 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 GetDecoderTest() { var baseNEncoding = new BaseNEncoding(BaseNAlphabet.Base64UrlAlphabet, "name"); Assert.NotNull(baseNEncoding.GetDecoder()); }