public void ReadWriteByte() { BlockStream s; int cb; s = new BlockStream(); cb = 1024 * 1024; Assert.Equal(-1, s.ReadByte()); Assert.Equal(0, s.Length); Assert.Equal(0, s.Position); for (int i = 0; i < cb; i++) { s.WriteByte((byte)i); } s.Position = 0; for (int i = 0; i < cb; i++) { Assert.Equal((byte)i, s.ReadByte()); } Assert.Equal(cb, s.Length); Assert.Equal(cb, s.Position); Assert.Equal(-1, s.ReadByte()); Assert.Equal(cb, s.Length); Assert.Equal(cb, s.Position); }
public void Basic() { BlockStream s; byte b; int cb; byte[] buf; byte[] cmp; //------------------------- cb = 1024; s = new BlockStream(); Assert.Equal(0, s.Length); Assert.Equal(0, s.Position); for (int i = 0; i < cb; i++) { s.WriteByte((byte)i); Assert.Equal((long)(i + 1), s.Position); Assert.Equal((long)(i + 1), s.Length); } s.Position = 0; for (int i = 0; i < cb; i++) { b = (byte)s.ReadByte(); Assert.Equal((byte)i, b); Assert.Equal((long)(i + 1), s.Position); Assert.Equal(cb, s.Length); } cmp = new byte[cb]; for (int i = 0; i < cb; i++) { cmp[i] = (byte)i; } buf = new byte[cb]; s.Position = 0; s.Read(buf, 0, cb); Assert.Equal(cmp, buf); Assert.Equal((long)cb, s.Position); Assert.Equal((long)cb, s.Length); //------------------------- cb = 256; s = new BlockStream(cb); Assert.Equal(0, s.Length); Assert.Equal(0, s.Position); for (int i = 0; i < cb; i++) { s.WriteByte((byte)i); Assert.Equal((long)(i + 1), s.Position); Assert.Equal((long)(i + 1), s.Length); } s.Position = 0; for (int i = 0; i < cb; i++) { b = (byte)s.ReadByte(); Assert.Equal((byte)i, b); Assert.Equal((long)(i + 1), s.Position); Assert.Equal(cb, s.Length); } cmp = new byte[cb]; for (int i = 0; i < cb; i++) { cmp[i] = (byte)i; } buf = new byte[cb]; s.Position = 0; s.Read(buf, 0, cb); Assert.Equal(cmp, buf); Assert.Equal((long)cb, s.Position); Assert.Equal((long)cb, s.Length); //------------------------- cb = 3 * 256 + 1; s = new BlockStream(cb, 256); Assert.Equal(0, s.Length); Assert.Equal(0, s.Position); for (int i = 0; i < cb; i++) { s.WriteByte((byte)i); Assert.Equal((long)(i + 1), s.Position); Assert.Equal((long)(i + 1), s.Length); } s.Position = 0; for (int i = 0; i < cb; i++) { b = (byte)s.ReadByte(); Assert.Equal((byte)i, b); Assert.Equal((long)(i + 1), s.Position); Assert.Equal(cb, s.Length); } cmp = new byte[cb]; for (int i = 0; i < cb; i++) { cmp[i] = (byte)i; } buf = new byte[cb]; s.Position = 0; s.Read(buf, 0, cb); Assert.Equal(cmp, buf); Assert.Equal((long)cb, s.Position); Assert.Equal((long)cb, s.Length); //------------------------- cb = 300; s = new BlockStream(new Block(cb / 3), new Block(cb / 3), new Block(cb / 3)); Assert.Equal(cb, s.Length); Assert.Equal(0, s.Position); for (int i = 0; i < cb; i++) { s.WriteByte((byte)i); Assert.Equal((long)(i + 1), s.Position); } s.Position = 0; for (int i = 0; i < cb; i++) { b = (byte)s.ReadByte(); Assert.Equal((byte)i, b); Assert.Equal((long)(i + 1), s.Position); } cmp = new byte[cb]; for (int i = 0; i < cb; i++) { cmp[i] = (byte)i; } buf = new byte[cb]; s.Position = 0; s.Read(buf, 0, cb); Assert.Equal(cmp, buf); Assert.Equal((long)cb, s.Position); //------------------------- cb = 300; s = new BlockStream(new BlockArray(new Block[] { new Block(cb / 3), new Block(cb / 3), new Block(cb / 3) })); Assert.Equal(cb, s.Length); Assert.Equal(0, s.Position); for (int i = 0; i < cb; i++) { s.WriteByte((byte)i); Assert.Equal((long)(i + 1), s.Position); } s.Position = 0; for (int i = 0; i < cb; i++) { b = (byte)s.ReadByte(); Assert.Equal((byte)i, b); Assert.Equal((long)(i + 1), s.Position); } cmp = new byte[cb]; for (int i = 0; i < cb; i++) { cmp[i] = (byte)i; } buf = new byte[cb]; s.Position = 0; s.Read(buf, 0, cb); Assert.Equal(cmp, buf); Assert.Equal((long)cb, s.Position); }