public static bool TestOverwriteModeOfList() { using (NativeBufferStream testStream = new NativeBufferStream()) { List <byte> data0 = new List <byte>(); for (int i = 0; i < 100; ++i) { data0.Add((byte)i); } testStream.WriteList(data0, 0, data0.Count); testStream.Seek(10, SeekOrigin.End); testStream.WriteList(data0, 0, data0.Count); testStream.Seek(-10, SeekOrigin.Begin); testStream.WriteList(data0, 0, data0.Count); testStream.Seek(-200, SeekOrigin.Begin); testStream.WriteList(data0, 0, data0.Count); if (testStream.Count != 420) { return(false); } byte[] result = new byte[420]; testStream.Seek(0, SeekOrigin.Begin); testStream.ReadList(result, 0, result.Length); for (int i = 0; i < 100; ++i) { if (result[i] != i) { return(false); } } for (int i = 0; i < 100; ++i) { if (result[i + 200] != i) { return(false); } } for (int i = 100; i < 110; ++i) { if (result[i + 200] != i - 10) { return(false); } } for (int i = 0; i < 100; ++i) { if (result[i + 320] != i) { return(false); } } } return(true); }
public static bool TestInsertModeOfList() { using (NativeBufferStream testStream = new NativeBufferStream()) { testStream.InsertMode = true; List <byte> data0 = new List <byte>(); for (int i = 0; i < 100; ++i) { data0.Add((byte)i); } testStream.WriteList(data0, 0, data0.Count); testStream.Seek(50, SeekOrigin.Begin); testStream.WriteList(data0, 0, data0.Count); testStream.Seek(10, SeekOrigin.End); testStream.WriteList(data0, 0, data0.Count); testStream.Seek(-10, SeekOrigin.Begin); testStream.WriteList(data0, 0, data0.Count); testStream.Seek(0, SeekOrigin.Begin); testStream.WriteList(data0, 0, data0.Count); testStream.Seek(-200, SeekOrigin.Begin); testStream.WriteList(data0, 0, data0.Count); if (testStream.Count != 820) { return(false); } byte[] result = new byte[820]; testStream.Seek(0, SeekOrigin.Begin); testStream.ReadList(result, 0, result.Length); for (int i = 0; i < 100; ++i) { if (result[i] != i) { return(false); } } for (int i = 0; i < 100; ++i) { if (result[i + 300] != i) { return(false); } } for (int i = 0; i < 100; ++i) { if (result[i + 400] != i) { return(false); } } for (int i = 0; i < 50; ++i) { if (result[i + 510] != i) { return(false); } } for (int i = 0; i < 100; ++i) { if (result[i + 560] != i) { return(false); } } for (int i = 0; i < 50; ++i) { if (result[i + 660] != i + 50) { return(false); } } for (int i = 0; i < 100; ++i) { if (result[i + 720] != i) { return(false); } } } return(true); }