Exemplo n.º 1
0
        public void testInCoreLimit_SwitchOnCopy()
        {
            TemporaryBuffer b = new TemporaryBuffer();

            byte[] test = new TestRng(getName())
                          .nextBytes(TemporaryBuffer.DEFAULT_IN_CORE_LIMIT * 2);
            try
            {
                MemoryStream @in = new MemoryStream(test,
                                                    TemporaryBuffer.DEFAULT_IN_CORE_LIMIT, test.Length
                                                    - TemporaryBuffer.DEFAULT_IN_CORE_LIMIT);
                b.write(test, 0, TemporaryBuffer.DEFAULT_IN_CORE_LIMIT);
                b.copy(@in);
                b.close();
                Assert.AreEqual(test.Length, b.Length);
                {
                    byte[] r = b.ToArray();
                    Assert.IsNotNull(r);
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
                {
                    MemoryStream o = new MemoryStream();
                    b.writeTo(o, null);
                    o.Close();
                    byte[] r = o.ToArray();
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
            }
            finally
            {
                b.destroy();
            }
        }
Exemplo n.º 2
0
        public void testOneBlockAndHalf_Copy()
        {
            TemporaryBuffer b = new TemporaryBuffer();

            byte[] test = new TestRng(getName())
                          .nextBytes(TemporaryBuffer.Block.SZ * 3 / 2);
            try
            {
                var @in = new MemoryStream(test);
                // [caytchen] StreamReader buffers data After the very first Read, thus advancing the Position in the underlying stream - causing this test to fail
                //var inReader = new StreamReader(@in);
                b.write(@in.ReadByte());
                b.copy(@in);
                b.close();
                Assert.AreEqual(test.Length, b.Length);
                {
                    byte[] r = b.ToArray();
                    Assert.IsNotNull(r);
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
                {
                    MemoryStream o = new MemoryStream();
                    b.writeTo(o, null);
                    o.Close();
                    byte[] r = o.ToArray();
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
            }
            finally
            {
                b.destroy();
            }
        }
Exemplo n.º 3
0
        public void testLarge_SingleWrite()
        {
            TemporaryBuffer b = new TemporaryBuffer();

            byte[] test = new TestRng(getName()).nextBytes(TemporaryBuffer.DEFAULT_IN_CORE_LIMIT * 3);
            try
            {
                b.write(test);
                b.close();
                Assert.AreEqual(test.Length, b.Length);
                {
                    byte[] r = b.ToArray();
                    Assert.IsNotNull(r);
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
                {
                    MemoryStream o = new MemoryStream();
                    b.writeTo(o, null);
                    o.Close();
                    byte[] r = o.ToArray();
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
            }
            finally
            {
                b.destroy();
            }
        }
Exemplo n.º 4
0
        public void testOneBlockAndHalf_BulkWrite()
        {
            TemporaryBuffer b = new TemporaryBuffer();

            byte[] test = new TestRng(getName()).nextBytes(TemporaryBuffer.Block.SZ * 3 / 2);
            try
            {
                b.write(test, 0, 2);
                b.write(test, 2, 4);
                b.write(test, 6, test.Length - 6 - 2);
                b.write(test, test.Length - 2, 2);
                b.close();
                Assert.AreEqual(test.Length, b.Length);
                {
                    byte[] r = b.ToArray();
                    Assert.IsNotNull(r);
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
                {
                    MemoryStream o = new MemoryStream();
                    b.writeTo(o, null);
                    o.Close();
                    byte[] r = o.ToArray();
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
            }
            finally
            {
                b.destroy();
            }
        }
Exemplo n.º 5
0
        public void testOneBlockAndHalf_SingleWrite()
        {
            TemporaryBuffer b = new TemporaryBuffer();

            byte[] test = new TestRng(getName())
                          .nextBytes(TemporaryBuffer.Block.SZ * 3 / 2);
            try
            {
                for (int i = 0; i < test.Length; i++)
                {
                    b.write(test[i]);
                }
                b.close();
                Assert.AreEqual(test.Length, b.Length);
                {
                    byte[] r = b.ToArray();
                    Assert.IsNotNull(r);
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
                {
                    MemoryStream o = new MemoryStream();
                    b.writeTo(o, null);
                    o.Close();
                    byte[] r = o.ToArray();
                    Assert.AreEqual(test.Length, r.Length);
                    Assert.IsTrue(test.SequenceEqual(r));
                }
            }
            finally
            {
                b.destroy();
            }
        }
        public virtual void TestInCoreLimit_SwitchOnCopy()
        {
            TemporaryBuffer b = new TemporaryBuffer.LocalFile();

            byte[] test = new TestRng(Sharpen.Extensions.GetTestName()).NextBytes(TemporaryBuffer
                                                                                  .DEFAULT_IN_CORE_LIMIT * 2);
            try
            {
                ByteArrayInputStream @in = new ByteArrayInputStream(test, TemporaryBuffer.DEFAULT_IN_CORE_LIMIT
                                                                    , test.Length - TemporaryBuffer.DEFAULT_IN_CORE_LIMIT);
                b.Write(test, 0, TemporaryBuffer.DEFAULT_IN_CORE_LIMIT);
                b.Copy(@in);
                b.Close();
                NUnit.Framework.Assert.AreEqual(test.Length, b.Length());
                {
                    byte[] r = b.ToByteArray();
                    NUnit.Framework.Assert.IsNotNull(r);
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    NUnit.Framework.Assert.IsTrue(Arrays.Equals(test, r));
                }
                {
                    ByteArrayOutputStream o = new ByteArrayOutputStream();
                    b.WriteTo(o, null);
                    o.Close();
                    byte[] r = o.ToByteArray();
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    NUnit.Framework.Assert.IsTrue(Arrays.Equals(test, r));
                }
            }
            finally
            {
                b.Destroy();
            }
        }
        public virtual void TestOneBlockAndHalf_Copy()
        {
            TemporaryBuffer b = new TemporaryBuffer.LocalFile();

            byte[] test = new TestRng(Sharpen.Extensions.GetTestName()).NextBytes(TemporaryBuffer.Block
                                                                                  .SZ * 3 / 2);
            try
            {
                ByteArrayInputStream @in = new ByteArrayInputStream(test);
                b.Write(@in.Read());
                b.Copy(@in);
                b.Close();
                NUnit.Framework.Assert.AreEqual(test.Length, b.Length());
                {
                    byte[] r = b.ToByteArray();
                    NUnit.Framework.Assert.IsNotNull(r);
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    NUnit.Framework.Assert.IsTrue(Arrays.Equals(test, r));
                }
                {
                    ByteArrayOutputStream o = new ByteArrayOutputStream();
                    b.WriteTo(o, null);
                    o.Close();
                    byte[] r = o.ToByteArray();
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    NUnit.Framework.Assert.IsTrue(Arrays.Equals(test, r));
                }
            }
            finally
            {
                b.Destroy();
            }
        }
        public virtual void TestOneBlock_BulkWrite()
        {
            TemporaryBuffer b = new TemporaryBuffer.LocalFile();

            byte[] test = new TestRng(Sharpen.Extensions.GetTestName()).NextBytes(TemporaryBuffer.Block
                                                                                  .SZ);
            try
            {
                b.Write(test, 0, 2);
                b.Write(test, 2, 4);
                b.Write(test, 6, test.Length - 6 - 2);
                b.Write(test, test.Length - 2, 2);
                b.Close();
                NUnit.Framework.Assert.AreEqual(test.Length, b.Length());
                {
                    byte[] r = b.ToByteArray();
                    NUnit.Framework.Assert.IsNotNull(r);
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    NUnit.Framework.Assert.IsTrue(Arrays.Equals(test, r));
                }
                {
                    ByteArrayOutputStream o = new ByteArrayOutputStream();
                    b.WriteTo(o, null);
                    o.Close();
                    byte[] r = o.ToByteArray();
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    NUnit.Framework.Assert.IsTrue(Arrays.Equals(test, r));
                }
            }
            finally
            {
                b.Destroy();
            }
        }
Exemplo n.º 9
0
 private TestRng GetRng()
 {
     if (rng == null)
     {
         rng = new TestRng(Sharpen.Extensions.GetTestName());
     }
     return(rng);
 }
Exemplo n.º 10
0
        public virtual void TestRandomWrites()
        {
            TemporaryBuffer b   = new TemporaryBuffer.LocalFile();
            TestRng         rng = new TestRng(Sharpen.Extensions.GetTestName());
            int             max = TemporaryBuffer.DEFAULT_IN_CORE_LIMIT * 2;

            byte[] expect = new byte[max];
            try
            {
                int  written = 0;
                bool onebyte = true;
                while (written < max)
                {
                    if (onebyte)
                    {
                        byte v = unchecked ((byte)rng.NextInt());
                        b.Write(v);
                        expect[written++] = v;
                    }
                    else
                    {
                        int    len = Math.Min(rng.NextInt() & 127, max - written);
                        byte[] tmp = rng.NextBytes(len);
                        b.Write(tmp, 0, len);
                        System.Array.Copy(tmp, 0, expect, written, len);
                        written += len;
                    }
                    onebyte = !onebyte;
                }
                NUnit.Framework.Assert.AreEqual(expect.Length, written);
                b.Close();
                NUnit.Framework.Assert.AreEqual(expect.Length, b.Length());
                {
                    byte[] r = b.ToByteArray();
                    NUnit.Framework.Assert.IsNotNull(r);
                    NUnit.Framework.Assert.AreEqual(expect.Length, r.Length);
                    for (int i = 0; i < expect.Length; i++)
                    {
                        Assert.AreEqual(expect[i], r[i]);
                    }
                }
                {
                    ByteArrayOutputStream o = new ByteArrayOutputStream();
                    b.WriteTo(o, null);
                    o.Close();
                    byte[] r = o.ToByteArray();
                    NUnit.Framework.Assert.AreEqual(expect.Length, r.Length);
                    for (int i = 0; i < expect.Length; i++)
                    {
                        Assert.AreEqual(expect[i], r[i]);
                    }
                }
            }
            finally
            {
                b.Destroy();
            }
        }
Exemplo n.º 11
0
        public void testRandomWrites()
        {
            TemporaryBuffer b   = new TemporaryBuffer();
            TestRng         rng = new TestRng(getName());
            int             max = TemporaryBuffer.DEFAULT_IN_CORE_LIMIT * 2;

            byte[] expect = new byte[max];
            try
            {
                int  written = 0;
                bool onebyte = true;
                while (written < max)
                {
                    if (onebyte)
                    {
                        byte v = (byte)rng.nextInt();
                        b.write(v);
                        expect[written++] = v;
                    }
                    else
                    {
                        int    len = Math.Min(rng.nextInt() & 127, max - written);
                        byte[] tmp = rng.nextBytes(len);
                        b.write(tmp, 0, len);
                        Array.Copy(tmp, 0, expect, written, len);
                        written += len;
                    }
                    onebyte = !onebyte;
                }
                Assert.AreEqual(expect.Length, written);
                b.close();

                Assert.AreEqual(expect.Length, b.Length);
                {
                    byte[] r = b.ToArray();
                    Assert.IsNotNull(r);
                    Assert.AreEqual(expect.Length, r.Length);
                    Assert.IsTrue(expect.SequenceEqual(r));
                }
                {
                    MemoryStream o = new MemoryStream();
                    b.writeTo(o, null);
                    o.Close();
                    byte[] r = o.ToArray();
                    Assert.AreEqual(expect.Length, r.Length);
                    Assert.IsTrue(expect.SequenceEqual(r));
                }
            }
            finally
            {
                b.destroy();
            }
        }
        public virtual void TestInCoreInputStream()
        {
            int cnt = 256;

            byte[] test            = new TestRng(Sharpen.Extensions.GetTestName()).NextBytes(cnt);
            TemporaryBuffer.Heap b = new TemporaryBuffer.Heap(cnt + 4);
            b.Write(test);
            b.Close();
            InputStream @in = b.OpenInputStream();

            byte[] act = new byte[cnt];
            IOUtil.ReadFully(@in, act, 0, cnt);
            NUnit.Framework.Assert.IsTrue(Arrays.Equals(test, act));
        }
Exemplo n.º 13
0
        public virtual void TestInCoreInputStream()
        {
            int cnt = 256;

            byte[] test            = new TestRng(Sharpen.Extensions.GetTestName()).NextBytes(cnt);
            TemporaryBuffer.Heap b = new TemporaryBuffer.Heap(cnt + 4);
            b.Write(test);
            b.Close();
            InputStream @in = b.OpenInputStream();

            byte[] act = new byte[cnt];
            IOUtil.ReadFully(@in, act, 0, cnt);
            for (int i = 0; i < test.Length; i++)
            {
                Assert.AreEqual(test[i], act[i]);
            }
        }
Exemplo n.º 14
0
        public virtual void TestOneBlockAndHalf_SingleWrite()
        {
            TemporaryBuffer b = new TemporaryBuffer.LocalFile();

            byte[] test = new TestRng(Sharpen.Extensions.GetTestName()).NextBytes(TemporaryBuffer.Block
                                                                                  .SZ * 3 / 2);
            try
            {
                for (int i = 0; i < test.Length; i++)
                {
                    b.Write(test[i]);
                }
                b.Close();
                NUnit.Framework.Assert.AreEqual(test.Length, b.Length());
                {
                    byte[] r = b.ToByteArray();
                    NUnit.Framework.Assert.IsNotNull(r);
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    for (int i = 0; i < test.Length; i++)
                    {
                        Assert.AreEqual(test[i], r[i]);
                    }
                }
                {
                    ByteArrayOutputStream o = new ByteArrayOutputStream();
                    b.WriteTo(o, null);
                    o.Close();
                    byte[] r = o.ToByteArray();
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    for (int i = 0; i < test.Length; i++)
                    {
                        Assert.AreEqual(test[i], r[i]);
                    }
                }
            }
            finally
            {
                b.Destroy();
            }
        }
Exemplo n.º 15
0
        public virtual void TestInCoreLimit_SwitchBeforeAppendByte()
        {
            TemporaryBuffer b = new TemporaryBuffer.LocalFile();

            byte[] test = new TestRng(Sharpen.Extensions.GetTestName()).NextBytes(TemporaryBuffer
                                                                                  .DEFAULT_IN_CORE_LIMIT * 3);
            try
            {
                b.Write(test, 0, test.Length - 1);
                b.Write(test[test.Length - 1]);
                b.Close();
                NUnit.Framework.Assert.AreEqual(test.Length, b.Length());
                {
                    byte[] r = b.ToByteArray();
                    NUnit.Framework.Assert.IsNotNull(r);
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    for (int i = 0; i < test.Length; i++)
                    {
                        Assert.AreEqual(test[i], r[i]);
                    }
                }
                {
                    ByteArrayOutputStream o = new ByteArrayOutputStream();
                    b.WriteTo(o, null);
                    o.Close();
                    byte[] r = o.ToByteArray();
                    NUnit.Framework.Assert.AreEqual(test.Length, r.Length);
                    for (int i = 0; i < test.Length; i++)
                    {
                        Assert.AreEqual(test[i], r[i]);
                    }
                }
            }
            finally
            {
                b.Destroy();
            }
        }