public void InputContainsOnlyInvalidDataFromUtf32()
        {
            uint[] codepoints          = TextEncoderTestHelper.GenerateOnlyInvalidUtf32CodePoints(TextEncoderConstants.DataLength / sizeof(uint));
            ReadOnlySpan <byte> input  = MemoryMarshal.AsBytes(codepoints.AsSpan());
            Span <byte>         output = new byte[16];

            Assert.Equal(OperationStatus.InvalidData, Encodings.Utf32.ToUtf8(input, output, out int consumed, out int written));
            Assert.Equal(0, consumed);
            Assert.Equal(0, written);
        }
        public void InputContainsSomeInvalidDataFromUtf32()
        {
            uint[] codepoints            = TextEncoderTestHelper.GenerateOnlyInvalidUtf32CodePoints(TextEncoderConstants.DataLength / sizeof(uint));
            ReadOnlySpan <byte> input    = MemoryMarshal.AsBytes(codepoints.AsSpan());
            ReadOnlySpan <byte> expected = Text.Encoding.Convert(Text.Encoding.UTF32, Text.Encoding.UTF8, input.ToArray());
            int         expectedWritten  = TextEncoderTestHelper.GetUtf8ByteCount(codepoints);
            Span <byte> output           = new byte[expectedWritten];

            Assert.Equal(OperationStatus.InvalidData, Encodings.Utf32.ToUtf8(input, output, out int consumed, out int written));
            Assert.True(consumed < input.Length, "Consumed more input than expected");
            Assert.Equal(expectedWritten, written);
            Assert.True(expected.Slice(0, expectedWritten).SequenceEqual(output));
        }