Lucene.Net.Index.TestCompoundFile.TestRandomAccess C# (CSharp) Method

TestRandomAccess() private method

private TestRandomAccess ( ) : void
return void
        public virtual void TestRandomAccess()
        {
            SetUp_2();
            CompoundFileDirectory cr = new CompoundFileDirectory(Dir, "f.comp", NewIOContext(Random()), false);

            // Open two files
            IndexInput e1 = Dir.OpenInput("f11", NewIOContext(Random()));
            IndexInput e2 = Dir.OpenInput("f3", NewIOContext(Random()));

            IndexInput a1 = cr.OpenInput("f11", NewIOContext(Random()));
            IndexInput a2 = Dir.OpenInput("f3", NewIOContext(Random()));

            // Seek the first pair
            e1.Seek(100);
            a1.Seek(100);
            Assert.AreEqual(100, e1.FilePointer);
            Assert.AreEqual(100, a1.FilePointer);
            byte be1 = e1.ReadByte();
            byte ba1 = a1.ReadByte();
            Assert.AreEqual(be1, ba1);

            // Now seek the second pair
            e2.Seek(1027);
            a2.Seek(1027);
            Assert.AreEqual(1027, e2.FilePointer);
            Assert.AreEqual(1027, a2.FilePointer);
            byte be2 = e2.ReadByte();
            byte ba2 = a2.ReadByte();
            Assert.AreEqual(be2, ba2);

            // Now make sure the first one didn't move
            Assert.AreEqual(101, e1.FilePointer);
            Assert.AreEqual(101, a1.FilePointer);
            be1 = e1.ReadByte();
            ba1 = a1.ReadByte();
            Assert.AreEqual(be1, ba1);

            // Now more the first one again, past the buffer length
            e1.Seek(1910);
            a1.Seek(1910);
            Assert.AreEqual(1910, e1.FilePointer);
            Assert.AreEqual(1910, a1.FilePointer);
            be1 = e1.ReadByte();
            ba1 = a1.ReadByte();
            Assert.AreEqual(be1, ba1);

            // Now make sure the second set didn't move
            Assert.AreEqual(1028, e2.FilePointer);
            Assert.AreEqual(1028, a2.FilePointer);
            be2 = e2.ReadByte();
            ba2 = a2.ReadByte();
            Assert.AreEqual(be2, ba2);

            // Move the second set back, again cross the buffer size
            e2.Seek(17);
            a2.Seek(17);
            Assert.AreEqual(17, e2.FilePointer);
            Assert.AreEqual(17, a2.FilePointer);
            be2 = e2.ReadByte();
            ba2 = a2.ReadByte();
            Assert.AreEqual(be2, ba2);

            // Finally, make sure the first set didn't move
            // Now make sure the first one didn't move
            Assert.AreEqual(1911, e1.FilePointer);
            Assert.AreEqual(1911, a1.FilePointer);
            be1 = e1.ReadByte();
            ba1 = a1.ReadByte();
            Assert.AreEqual(be1, ba1);

            e1.Dispose();
            e2.Dispose();
            a1.Dispose();
            a2.Dispose();
            cr.Dispose();
        }