public void TestGet()
        {
            ArrayRandomAccessSource s = new ArrayRandomAccessSource(data);

            try
            {
                for (int i = 0; i < data.Length; i++)
                {
                    int ch = s.Get(i);
                    Assert.IsFalse(ch == -1);
                    Assert.AreEqual(data[i], (byte)ch, "Position " + i);
                }
                Assert.AreEqual(-1, s.Get(data.Length));
            }
            finally
            {
                s.Close();
            }
        }
Esempio n. 2
0
        virtual public void TestGet()
        {
            ArrayRandomAccessSource source1 = new ArrayRandomAccessSource(data);
            ArrayRandomAccessSource source2 = new ArrayRandomAccessSource(data);
            ArrayRandomAccessSource source3 = new ArrayRandomAccessSource(data);

            IRandomAccessSource[] inputs = { source1, source2, source3 };

            GroupedRandomAccessSource grouped = new GroupedRandomAccessSource(inputs);

            Assert.AreEqual(source1.Length + source2.Length + source3.Length, grouped.Length);

            Assert.AreEqual(source1.Get(99), grouped.Get(99));
            Assert.AreEqual(source2.Get(0), grouped.Get(100));
            Assert.AreEqual(source2.Get(1), grouped.Get(101));
            Assert.AreEqual(source1.Get(99), grouped.Get(99));
            Assert.AreEqual(source3.Get(99), grouped.Get(299));

            Assert.AreEqual(-1, grouped.Get(300));
        }
        public void TestGetArray()
        {
            byte[] chunk = new byte[257];
            ArrayRandomAccessSource s = new ArrayRandomAccessSource(data);

            try
            {
                int pos   = 0;
                int count = s.Get(pos, chunk, 0, chunk.Length);
                while (count != -1)
                {
                    AssertArrayEqual(data, pos, chunk, 0, count);
                    pos  += count;
                    count = s.Get(pos, chunk, 0, chunk.Length);
                }

                Assert.AreEqual(-1, s.Get(pos, chunk, 0, chunk.Length));
            }
            finally
            {
                s.Close();
            }
        }