public void TestWrite1()
        {
            MemoryStream stream = new MemoryStream();
            DocumentOutputStream dstream = new DocumentOutputStream(stream, 25);

            for (int j = 0; j < 25; j++)
            {
                dstream.Write(j);
            }
            try
            {
                dstream.Write(0);
                Assert.Fail("Should have caught IOException");
            }
            catch (IOException)
            {
            }
            byte[] output = stream.ToArray();

            Assert.AreEqual(25, output.Length);
            for (int j = 0; j < 25; j++)
            {
                Assert.AreEqual((byte)j, output[j]);
            }
            stream.Close();
        }
        public void TestWrite3()
        {
            MemoryStream stream = new MemoryStream();
            DocumentOutputStream dstream = new DocumentOutputStream(stream, 25);
            byte[] array = new byte[50];

            for (int j = 0; j < 50; j++)
            {
                array[j] = (byte)j;
            }
            dstream.Write(array, 1, 25);
            try
            {
                dstream.Write(array, 0, 1);
                Assert.Fail("Should have caught IOException");
            }
            catch (IOException )
            {
            }
            byte[] output = stream.ToArray();

            Assert.AreEqual(25, output.Length);
            for (int j = 0; j < 25; j++)
            {
                Assert.AreEqual((byte)(j + 1), output[j]);
            }
            stream.Close();
        }
        public void TestWriteFiller()
        {
            MemoryStream stream = new MemoryStream();
            DocumentOutputStream dstream = new DocumentOutputStream(stream, 25);

            for (int j = 0; j < 25; j++)
            {
                dstream.Write(j);
            }
            try
            {
                dstream.Write(0);
                Assert.Fail("Should have caught IOException");
            }
            catch (IOException )
            {
            }
            dstream.WriteFiller(100, (byte)0xff);
            byte[] output = stream.ToArray();

            Assert.AreEqual(100, output.Length);
            for (int j = 0; j < 25; j++)
            {
                Assert.AreEqual((byte)j, output[j]);
            }
            for (int j = 25; j < 100; j++)
            {
                Assert.AreEqual((byte)0xff, output[j], j.ToString());
            }
            stream.Close();
        }
        public void TestWrite2()
        {
            MemoryStream stream = new MemoryStream();
            DocumentOutputStream dstream = new DocumentOutputStream(stream, 25);

            for (int j = 0; j < 6; j++)
            {
                byte[] array = new byte[4];
                for (int i = 0; i < array.Length; i++)
                {
                    array[i] = (byte)j;
                }
                dstream.Write(array);
            }
            try
            {
                byte[] array = new byte[4];
                for (int i = 0; i < array.Length; i++)
                {
                    array[i] = (byte)7;
                }

                dstream.Write(array);
                Assert.Fail("Should have caught IOException");
            }
            catch (IOException )
            {
            }
            byte[] output = stream.ToArray();

            Assert.AreEqual(24, output.Length);
            for (int j = 0; j < 6; j++)
            {
                for (int k = 0; k < 4; k++)
                {
                    Assert.AreEqual((byte)j,
                                 output[(j * 4) + k], ((j * 4) + k).ToString());
                }
            }
            stream.Close();
        }