//[InlineData(TextEncoderTestHelper.SupportedEncoding.FromUtf32)] // Open issue: https://github.com/dotnet/corefxlab/issues/1513
        public void InputBufferContainsSomeInvalidData(TextEncoderTestHelper.SupportedEncoding from)
        {
            string inputStringEndsWithLow = TextEncoderTestHelper.GenerateInvalidStringEndsWithLow(TextEncoderConstants.DataLength);
            string inputStringInvalid     = TextEncoderTestHelper.GenerateStringWithInvalidChars(TextEncoderConstants.DataLength);

            byte[] inputUtf8Bytes = TextEncoderTestHelper.GenerateUtf8BytesWithInvalidBytes(TextEncoderConstants.DataLength);

            byte[]      expectedBytes;
            Span <byte> encodedBytes;

            int expectedBytesWritten;
            int bytesWritten;

            switch (from)
            {
            case TextEncoderTestHelper.SupportedEncoding.FromUtf8:
                expectedBytes = Text.Encoding.Convert(testEncoder, testEncoder, inputUtf8Bytes);
                ReadOnlySpan <byte> inputUtf8 = inputUtf8Bytes;
                expectedBytesWritten = TextEncoderTestHelper.GetUtf8ByteCount(inputUtf8);
                encodedBytes         = new Span <byte>(new byte[expectedBytesWritten]);
                Assert.False(utf8.TryEncode(inputUtf8, encodedBytes, out int charactersConsumed, out bytesWritten));
                Assert.True(charactersConsumed < inputUtf8Bytes.Length);
                break;

            case TextEncoderTestHelper.SupportedEncoding.FromUtf16:
                byte[] inputStringUtf16 = testEncoderUnicode.GetBytes(inputStringEndsWithLow);
                expectedBytes = Text.Encoding.Convert(testEncoderUnicode, testEncoder, inputStringUtf16);
                ReadOnlySpan <char> inputUtf16 = inputStringEndsWithLow.AsSpan();
                expectedBytesWritten = TextEncoderTestHelper.GetUtf8ByteCount(inputUtf16);
                encodedBytes         = new Span <byte>(new byte[expectedBytesWritten + 10]);
                Assert.False(utf8.TryEncode(inputUtf16, encodedBytes, out charactersConsumed, out bytesWritten));
                Assert.True(charactersConsumed < inputStringEndsWithLow.Length);
                inputStringUtf16     = testEncoderUnicode.GetBytes(inputStringInvalid);
                expectedBytes        = Text.Encoding.Convert(testEncoderUnicode, testEncoder, inputStringUtf16);
                inputUtf16           = inputStringInvalid.AsSpan();
                expectedBytesWritten = TextEncoderTestHelper.GetUtf8ByteCount(inputUtf16);
                encodedBytes         = new Span <byte>(new byte[expectedBytesWritten]);
                Assert.False(utf8.TryEncode(inputUtf16, encodedBytes, out charactersConsumed, out bytesWritten));
                Assert.True(charactersConsumed < inputStringInvalid.Length);
                break;

            case TextEncoderTestHelper.SupportedEncoding.FromString:
                inputStringUtf16 = testEncoderUnicode.GetBytes(inputStringEndsWithLow);
                expectedBytes    = Text.Encoding.Convert(testEncoderUnicode, testEncoder, inputStringUtf16);
                string inputStr = inputStringEndsWithLow;
                expectedBytesWritten = TextEncoderTestHelper.GetUtf8ByteCount(inputStr);
                encodedBytes         = new Span <byte>(new byte[expectedBytesWritten + 10]);
                Assert.False(utf8.TryEncode(inputStr, encodedBytes, out bytesWritten));
                inputStringUtf16     = testEncoderUnicode.GetBytes(inputStringInvalid);
                expectedBytes        = Text.Encoding.Convert(testEncoderUnicode, testEncoder, inputStringUtf16);
                inputStr             = inputStringInvalid;
                expectedBytesWritten = TextEncoderTestHelper.GetUtf8ByteCount(inputStr);
                encodedBytes         = new Span <byte>(new byte[expectedBytesWritten]);
                Assert.False(utf8.TryEncode(inputStr, encodedBytes, out bytesWritten));
                break;

            case TextEncoderTestHelper.SupportedEncoding.FromUtf32:      // Invalid if codePoint > 0x10FFFF
            default:
                expectedBytes = Text.Encoding.Convert(testEncoderUtf32, testEncoder, inputUtf8Bytes);
                ReadOnlySpan <uint> input = inputUtf8Bytes.AsSpan().NonPortableCast <byte, uint>();
                expectedBytesWritten = TextEncoderTestHelper.GetUtf8ByteCount(input);
                encodedBytes         = new Span <byte>(new byte[expectedBytesWritten]);
                Assert.False(utf8.TryEncode(input, encodedBytes, out charactersConsumed, out bytesWritten));
                Assert.True(charactersConsumed < inputUtf8Bytes.Length);
                break;
            }

            Assert.Equal(expectedBytesWritten, bytesWritten);
            Assert.True(expectedBytes.AsSpan().Slice(0, expectedBytesWritten).SequenceEqual(encodedBytes));
        }