public unsafe void StringNonNullPeek() { foreach (int size in new int[] { 1, 127, 128, 16383, 16384, 2097151, 2097152, 268435455, 268435456, 300000000 }) { byte[] data; using (MemoryStream ms = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(ms)) writer.Write(new string('A', size)); data = ms.ToArray(); } fixed(byte *pData = data) { UnsafeBinaryMemoryReader reader = new UnsafeBinaryMemoryReader(pData); Assert.AreEqual(reader.PeekStringNonNull(), new string('A', size), "UnsafeBinaryMemoryReader String incompatible to BinaryReader."); } } }