public static bool TestOverwriteModeOfArray() { using (NativeBufferStream testStream = new NativeBufferStream()) { byte[] data0 = new byte[100]; for (int i = 0; i < 100; ++i) { data0[i] = (byte)i; } testStream.Write(data0, 0, data0.Length); testStream.Seek(10, SeekOrigin.End); testStream.Write(data0, 0, data0.Length); testStream.Seek(-10, SeekOrigin.Begin); testStream.Write(data0, 0, data0.Length); testStream.Seek(-200, SeekOrigin.Begin); testStream.Write(data0, 0, data0.Length); if (testStream.Count != 420) { return(false); } byte[] result = new byte[420]; testStream.Seek(0, SeekOrigin.Begin); testStream.Read(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 TestInsertModeOfArray() { using (NativeBufferStream testStream = new NativeBufferStream()) { testStream.InsertMode = true; byte[] data0 = new byte[100]; for (int i = 0; i < 100; ++i) { data0[i] = (byte)i; } testStream.Write(data0, 0, data0.Length); testStream.Seek(50, SeekOrigin.Begin); testStream.Write(data0, 0, data0.Length); testStream.Seek(10, SeekOrigin.End); testStream.Write(data0, 0, data0.Length); testStream.Seek(-10, SeekOrigin.Begin); testStream.Write(data0, 0, data0.Length); testStream.Seek(0, SeekOrigin.Begin); testStream.Write(data0, 0, data0.Length); testStream.Seek(-200, SeekOrigin.Begin); testStream.Write(data0, 0, data0.Length); if (testStream.Count != 820) { return(false); } byte[] result = new byte[820]; testStream.Seek(0, SeekOrigin.Begin); testStream.Read(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); }