in rd-net/Test.Lifetimes/Serialization/UnsafeMarshallersTest.cs [19:82]
public void Test1()
{
UnsafeReader reader;
using (var cookie = UnsafeWriter.NewThreadLocalWriter())
{
cookie.Writer.WriteBoolean(false);
cookie.Writer.WriteBoolean(true);
cookie.Writer.WriteByte(0);
cookie.Writer.WriteByte(10);
cookie.Writer.WriteChar('y');
cookie.Writer.WriteChar('й');
cookie.Writer.WriteDecimal(1234.5678m);
cookie.Writer.WriteDouble(1234.5678d);
cookie.Writer.WriteInt16(1000);
cookie.Writer.WriteInt32(1001);
cookie.Writer.WriteInt64(-1002);
cookie.Writer.WriteString(null);
cookie.Writer.WriteString("");
cookie.Writer.WriteString("abcd = yй");
cookie.Writer.WriteArray((int[]) (null));
cookie.Writer.WriteArray(new int[0]);
cookie.Writer.WriteArray(new[] {1, 2, 3});
cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, (string[])null);
cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, new string[0]);
cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, new[] { "a", "b", "c" });
cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, (List<string>)null);
cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, new List<string>());
cookie.Writer.WriteCollection(UnsafeWriter.StringDelegate, new List<string> { "d", "e" });
reader = UnsafeReader.CreateReader(cookie.Data, cookie.Count);
}
Assert.False(reader.ReadBoolean());
Assert.True(reader.ReadBoolean());
Assert.AreEqual(0, reader.ReadByte());
Assert.AreEqual(10, reader.ReadByte());
Assert.AreEqual('y', reader.ReadChar());
Assert.AreEqual('й', reader.ReadChar());
Assert.AreEqual(1234.5678m, reader.ReadDecimal());
Assert.AreEqual(1234.5678d, reader.ReadDouble(), 1e-6);
Assert.AreEqual(1000, reader.ReadInt16());
Assert.AreEqual(1001, reader.ReadInt32());
Assert.AreEqual(-1002, reader.ReadInt64());
Assert.Null(reader.ReadString());
Assert.AreEqual("", reader.ReadString());
Assert.AreEqual("abcd = yй", reader.ReadString());
Assert.Null(reader.ReadIntArray());
Assert.AreEqual(new int[0], reader.ReadIntArray());
Assert.AreEqual(new[] {1, 2, 3}, reader.ReadIntArray());
Assert.Null(reader.ReadArray(UnsafeReader.StringDelegate));
Assert.AreEqual(new string[0], reader.ReadArray(UnsafeReader.StringDelegate));
Assert.AreEqual(new[] {"a", "b", "c"}, reader.ReadArray(UnsafeReader.StringDelegate));
Assert.Null(reader.ReadCollection(UnsafeReader.StringDelegate, n => new List<string>(n)));
CollectionAssert.AreEqual(new List<string>(), reader.ReadCollection(UnsafeReader.StringDelegate, n => new List<string>(n)));
CollectionAssert.AreEqual(new List<string> {"d", "e"}, reader.ReadCollection(UnsafeReader.StringDelegate, n => new List<string>(n)));
}